diff --git a/.codecov.yml b/.codecov.yml index 998b66ce7ed..fead3ad004f 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -19,3 +19,16 @@ comment: off # annotations in files that seemingly have nothing to do with the PR. github_checks: annotations: false + +# Attempt to fix "Missing base commit" messages in the codecov UI. +# Because we do not run full tests on package PRs, package PRs' merge +# commits on `develop` don't have coverage info. It appears that +# codecov will give you an error if the pseudo-base's coverage data +# doesn't all apply properly to the real PR base. +# +# See here for docs: +# https://docs.codecov.com/docs/comparing-commits#pseudo-comparison +# See here for another potential solution: +# https://community.codecov.com/t/2480/15 +codecov: + allow_coverage_offsets: true diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 9a568285ea1..00000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -name: "\U0001F41E Bug report" -about: Report a bug in the core of Spack (command not working as expected, etc.) -labels: "bug,triage" ---- - - - -### Steps to reproduce the issue - -```console -$ spack -$ spack -... -``` - -### Error Message - - -```console -$ spack --debug --stacktrace -``` - -### Information on your system - - - - - -### Additional information - - -- [ ] I have run `spack debug report` and reported the version of Spack/Python/Platform -- [ ] I have searched the issues of this repo and believe this is not a duplicate -- [ ] I have run the failing commands in debug mode and reported the output - - diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000000..e94915f017d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,58 @@ +name: "\U0001F41E Bug report" +description: Report a bug in the core of Spack (command not working as expected, etc.) +labels: [bug, triage] +body: + - type: textarea + id: reproduce + attributes: + label: Steps to reproduce + description: | + Explain, in a clear and concise way, the command you ran and the result you were trying to achieve. + Example: "I ran `spack find` to list all the installed packages and ..." + placeholder: | + ```console + $ spack + $ spack + ... + ``` + validations: + required: true + - type: textarea + id: error + attributes: + label: Error message + description: | + If Spack reported an error, provide the error message. If it did not report an error but the output appears incorrect, provide the incorrect output. If there was no error message and no output but the result is incorrect, describe how it does not match what you expect. + placeholder: | + ```console + $ spack --debug --stacktrace + ``` + - type: textarea + id: information + attributes: + label: Information on your system + description: Please include the output of `spack debug report` + validations: + required: true + - type: markdown + attributes: + value: | + If you have any relevant configuration detail (custom `packages.yaml` or `modules.yaml`, etc.) you can add that here as well. + - type: checkboxes + id: checks + attributes: + label: General information + options: + - label: I have run `spack debug report` and reported the version of Spack/Python/Platform + required: true + - label: I have searched the issues of this repo and believe this is not a duplicate + required: true + - label: I have run the failing commands in debug mode and reported the output + required: true + - type: markdown + attributes: + value: | + We encourage you to try, as much as possible, to reduce your problem to the minimal example that still reproduces the issue. That would help us a lot in fixing it quickly and effectively! + If you want to ask a question about the tool (how to use it, what it can currently do, etc.), try the `#general` channel on [our Slack](https://slack.spack.io/) first. We have a welcoming community and chances are you'll get your reply faster and without opening an issue. + + Other than that, thanks for taking the time to contribute to Spack! diff --git a/.github/ISSUE_TEMPLATE/build_error.md b/.github/ISSUE_TEMPLATE/build_error.md deleted file mode 100644 index d26db233d38..00000000000 --- a/.github/ISSUE_TEMPLATE/build_error.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -name: "\U0001F4A5 Build error" -about: Some package in Spack didn't build correctly -title: "Installation issue: " -labels: "build-error" ---- - - - -### Steps to reproduce the issue - - -```console -$ spack install -... -``` - -### Information on your system - - - - - -### Additional information - - -* [spack-build-out.txt]() -* [spack-build-env.txt]() - - - -### General information - - -- [ ] I have run `spack debug report` and reported the version of Spack/Python/Platform -- [ ] I have run `spack maintainers ` and @mentioned any maintainers -- [ ] I have uploaded the build log and environment files -- [ ] I have searched the issues of this repo and believe this is not a duplicate diff --git a/.github/ISSUE_TEMPLATE/build_error.yml b/.github/ISSUE_TEMPLATE/build_error.yml new file mode 100644 index 00000000000..cf5d867ffe2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/build_error.yml @@ -0,0 +1,64 @@ +name: "\U0001F4A5 Build error" +description: Some package in Spack didn't build correctly +title: "Installation issue: " +labels: [build-error] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to report this build failure. To proceed with the report please: + 1. Title the issue `Installation issue: `. + 2. Provide the information required below. + + We encourage you to try, as much as possible, to reduce your problem to the minimal example that still reproduces the issue. That would help us a lot in fixing it quickly and effectively! + - type: textarea + id: reproduce + attributes: + label: Steps to reproduce the issue + description: | + Fill in the exact spec you are trying to build and the relevant part of the error message + placeholder: | + ```console + $ spack install + ... + ``` + validations: + required: true + - type: textarea + id: information + attributes: + label: Information on your system + description: Please include the output of `spack debug report` + validations: + required: true + - type: markdown + attributes: + value: | + If you have any relevant configuration detail (custom `packages.yaml` or `modules.yaml`, etc.) you can add that here as well. + - type: textarea + id: additional_information + attributes: + label: Additional information + description: | + Please upload the following files: + * **`spack-build-out.txt`** + * **`spack-build-env.txt`** + + They should be present in the stage directory of the failing build. Also upload any `config.log` or similar file if one exists. + - type: markdown + attributes: + value: | + Some packages have maintainers who have volunteered to debug build failures. Run `spack maintainers ` and **@mention** them here if they exist. + - type: checkboxes + id: checks + attributes: + label: General information + options: + - label: I have run `spack debug report` and reported the version of Spack/Python/Platform + required: true + - label: I have run `spack maintainers ` and **@mentioned** any maintainers + required: true + - label: I have uploaded the build log and environment files + required: true + - label: I have searched the issues of this repo and believe this is not a duplicate + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000000..a49eab2f6b9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: true \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index b6e5e27e6f1..00000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -name: "\U0001F38A Feature request" -about: Suggest adding a feature that is not yet in Spack -labels: feature - ---- - - - -### Rationale - - - -### Description - - - - -### Additional information - - - -### General information - -- [ ] I have run `spack --version` and reported the version of Spack -- [ ] I have searched the issues of this repo and believe this is not a duplicate - - - - \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000000..a247d9395a1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,41 @@ +name: "\U0001F38A Feature request" +description: Suggest adding a feature that is not yet in Spack +labels: [feature] +body: + - type: textarea + id: summary + attributes: + label: Summary + description: Please add a concise summary of your suggestion here. + validations: + required: true + - type: textarea + id: rationale + attributes: + label: Rationale + description: Is your feature request related to a problem? Please describe it! + - type: textarea + id: description + attributes: + label: Description + description: Describe the solution you'd like and the alternatives you have considered. + - type: textarea + id: additional_information + attributes: + label: Additional information + description: Add any other context about the feature request here. + - type: checkboxes + id: checks + attributes: + label: General information + options: + - label: I have run `spack --version` and reported the version of Spack + required: true + - label: I have searched the issues of this repo and believe this is not a duplicate + required: true + - type: markdown + attributes: + value: | + If you want to ask a question about the tool (how to use it, what it can currently do, etc.), try the `#general` channel on [our Slack](https://slack.spack.io/) first. We have a welcoming community and chances are you'll get your reply faster and without opening an issue. + + Other than that, thanks for taking the time to contribute to Spack! diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml new file mode 100644 index 00000000000..ac2215a7685 --- /dev/null +++ b/.github/workflows/bootstrap.yml @@ -0,0 +1,161 @@ +name: Bootstrapping + +on: + pull_request: + branches: + - develop + - releases/** + paths-ignore: + # Don't run if we only modified packages in the + # built-in repository or documentation + - 'var/spack/repos/builtin/**' + - '!var/spack/repos/builtin/packages/clingo-bootstrap/**' + - '!var/spack/repos/builtin/packages/python/**' + - '!var/spack/repos/builtin/packages/re2c/**' + - 'lib/spack/docs/**' + schedule: + # nightly at 2:16 AM + - cron: '16 2 * * *' + +jobs: + + fedora-sources: + runs-on: ubuntu-latest + container: "fedora:latest" + steps: + - name: Install dependencies + run: | + dnf install -y \ + bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \ + make patch unzip which xz python3 python3-devel tree \ + cmake bison bison-devel libstdc++-static + - uses: actions/checkout@v2 + - name: Setup repo and non-root user + run: | + git --version + git fetch --unshallow + . .github/workflows/setup_git.sh + useradd spack-test + chown -R spack-test . + - name: Bootstrap clingo + shell: runuser -u spack-test -- bash {0} + run: | + source share/spack/setup-env.sh + spack bootstrap untrust github-actions + spack external find cmake bison + spack -d solve zlib + tree ~/.spack/bootstrap/store/ + + ubuntu-sources: + runs-on: ubuntu-latest + container: "ubuntu:latest" + steps: + - name: Install dependencies + env: + DEBIAN_FRONTEND: noninteractive + run: | + apt-get update -y && apt-get upgrade -y + apt-get install -y \ + bzip2 curl file g++ gcc gfortran git gnupg2 gzip \ + make patch unzip xz-utils python3 python3-dev tree \ + cmake bison + - uses: actions/checkout@v2 + - name: Setup repo and non-root user + run: | + git --version + git fetch --unshallow + . .github/workflows/setup_git.sh + useradd -m spack-test + chown -R spack-test . + - name: Bootstrap clingo + shell: runuser -u spack-test -- bash {0} + run: | + source share/spack/setup-env.sh + spack bootstrap untrust github-actions + spack external find cmake bison + spack -d solve zlib + tree ~/.spack/bootstrap/store/ + + opensuse-sources: + runs-on: ubuntu-latest + container: "opensuse/tumbleweed:latest" + steps: + - name: Install dependencies + run: | + 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 + - uses: actions/checkout@v2 + - name: Setup repo and non-root user + run: | + git --version + git fetch --unshallow + . .github/workflows/setup_git.sh + - name: Bootstrap clingo + run: | + source share/spack/setup-env.sh + spack bootstrap untrust github-actions + spack external find cmake bison + spack -d solve zlib + tree ~/.spack/bootstrap/store/ + + macos-sources: + runs-on: macos-latest + steps: + - name: Install dependencies + run: | + brew install cmake bison@2.7 tree + - uses: actions/checkout@v2 + - name: Bootstrap clingo + run: | + source share/spack/setup-env.sh + export PATH=/usr/local/opt/bison@2.7/bin:$PATH + spack bootstrap untrust github-actions + spack external find --not-buildable cmake bison + spack -d solve zlib + tree ~/.spack/bootstrap/store/ + + macos-clingo-binaries: + runs-on: macos-latest + strategy: + matrix: + python-version: ['3.5', '3.6', '3.7', '3.8', '3.9'] + steps: + - name: Install dependencies + run: | + brew install tree + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Bootstrap clingo + run: | + source share/spack/setup-env.sh + spack bootstrap untrust spack-install + spack -d solve zlib + tree ~/.spack/bootstrap/store/ + + + ubuntu-clingo-binaries: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['2.7', '3.5', '3.6', '3.7', '3.8', '3.9'] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Setup repo and non-root user + run: | + git --version + git fetch --unshallow + . .github/workflows/setup_git.sh + - name: Bootstrap clingo + run: | + source share/spack/setup-env.sh + spack bootstrap untrust spack-install + spack -d solve zlib + tree ~/.spack/bootstrap/store/ diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml new file mode 100644 index 00000000000..d2dd2d825ee --- /dev/null +++ b/.github/workflows/build-containers.yml @@ -0,0 +1,72 @@ +name: Build & Deploy Docker Containers +on: + # Build new Spack develop containers nightly. + schedule: + - cron: '34 0 * * *' + # Let's also build & tag Spack containers on releases. + release: + types: [published] + +jobs: + deploy-images: + runs-on: ubuntu-latest + strategy: + # Even if one container fails to build we still want the others + # to continue their builds. + fail-fast: false + # A matrix of Dockerfile paths, associated tags, and which architectures + # they support. + matrix: + dockerfile: [[amazon-linux, amazonlinux-2.dockerfile, 'linux/amd64,linux/arm64'], + [centos7, centos-7.dockerfile, 'linux/amd64,linux/arm64'], + [leap15, leap-15.dockerfile, 'linux/amd64,linux/arm64'], + [ubuntu-xenial, ubuntu-1604.dockerfile, 'linux/amd64,linux/arm64'], + [ubuntu-bionic, ubuntu-1804.dockerfile, 'linux/amd64,linux/arm64']] + name: Build ${{ matrix.dockerfile[0] }} + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set Container Tag Normal (Nightly) + run: | + container="ghcr.io/spack/${{ matrix.dockerfile[0]}}:latest" + echo "container=${container}" >> $GITHUB_ENV + echo "versioned=${container}" >> $GITHUB_ENV + + # On a new release create a container with the same tag as the release. + - name: Set Container Tag on Release + if: github.event_name == 'release' + run: | + versioned="ghcr.io/spack/${{matrix.dockerfile[0]}}:${GITHUB_REF##*/}" + echo "versioned=${versioned}" >> $GITHUB_ENV + + - name: Check ${{ matrix.dockerfile[1] }} Exists + run: | + printf "Preparing to build ${{ env.container }} from ${{ matrix.dockerfile[1] }}" + if [ ! -f "share/spack/docker/${{ matrix.dockerfile[1]}}" ]; then + printf "Dockerfile ${{ matrix.dockerfile[0]}} does not exist" + exit 1; + fi + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Build & Deploy ${{ matrix.dockerfile[1] }} + uses: docker/build-push-action@v2 + with: + file: share/spack/docker/${{matrix.dockerfile[1]}} + platforms: ${{ matrix.dockerfile[2] }} + push: true + tags: | + ${{ env.container }} + ${{ env.versioned }} diff --git a/.github/workflows/linux_build_tests.yaml b/.github/workflows/linux_build_tests.yaml deleted file mode 100644 index 256b8bc4566..00000000000 --- a/.github/workflows/linux_build_tests.yaml +++ /dev/null @@ -1,77 +0,0 @@ -name: linux builds - -on: - push: - branches: - - develop - - releases/** - paths-ignore: - # Don't run if we only modified packages in the built-in repository - - 'var/spack/repos/builtin/**' - - '!var/spack/repos/builtin/packages/lz4/**' - - '!var/spack/repos/builtin/packages/mpich/**' - - '!var/spack/repos/builtin/packages/tut/**' - - '!var/spack/repos/builtin/packages/py-setuptools/**' - - '!var/spack/repos/builtin/packages/openjpeg/**' - - '!var/spack/repos/builtin/packages/r-rcpp/**' - - '!var/spack/repos/builtin/packages/ruby-rake/**' - # Don't run if we only modified documentation - - 'lib/spack/docs/**' - pull_request: - branches: - - develop - - releases/** - paths-ignore: - # Don't run if we only modified packages in the built-in repository - - 'var/spack/repos/builtin/**' - - '!var/spack/repos/builtin/packages/lz4/**' - - '!var/spack/repos/builtin/packages/mpich/**' - - '!var/spack/repos/builtin/packages/tut/**' - - '!var/spack/repos/builtin/packages/py-setuptools/**' - - '!var/spack/repos/builtin/packages/openjpeg/**' - - '!var/spack/repos/builtin/packages/r-rcpp/**' - - '!var/spack/repos/builtin/packages/ruby-rake/**' - # Don't run if we only modified documentation - - 'lib/spack/docs/**' - -jobs: - build: - runs-on: ubuntu-latest - strategy: - matrix: - package: - - lz4 # MakefilePackage - - mpich~fortran # AutotoolsPackage - - 'tut%gcc@:10.99.99' # WafPackage - - py-setuptools # PythonPackage - - openjpeg # CMakePackage - - r-rcpp # RPackage - - ruby-rake # RubyPackage - steps: - - uses: actions/checkout@v2 - - uses: actions/cache@v2.1.6 - with: - path: ~/.ccache - key: ccache-build-${{ matrix.package }} - restore-keys: | - ccache-build-${{ matrix.package }} - - uses: actions/setup-python@v2 - with: - python-version: 3.9 - - name: Install System Packages - run: | - sudo apt-get update - sudo apt-get -yqq install ccache gfortran perl perl-base r-base r-base-core r-base-dev ruby findutils openssl libssl-dev libpciaccess-dev - R --version - perl --version - ruby --version - - name: Copy Configuration - run: | - ccache -M 300M && ccache -z - # Set up external deps for build tests, b/c they take too long to compile - cp share/spack/qa/configuration/*.yaml etc/spack/ - - name: Run the build test - run: | - . share/spack/setup-env.sh - SPEC=${{ matrix.package }} share/spack/qa/run-build-tests - ccache -s diff --git a/.github/workflows/unit_tests.yaml b/.github/workflows/unit_tests.yaml index 32b1baf39a5..9fdcf4aefad 100644 --- a/.github/workflows/unit_tests.yaml +++ b/.github/workflows/unit_tests.yaml @@ -131,10 +131,7 @@ jobs: # Needed for unit tests sudo apt-get -y install \ coreutils cvs gfortran graphviz gnupg2 mercurial ninja-build \ - patchelf - # Needed for kcov - sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev - sudo apt-get -y install zlib1g-dev libdw-dev libiberty-dev + patchelf cmake bison libbison-dev kcov - name: Install Python packages run: | pip install --upgrade pip six setuptools codecov coverage[toml] @@ -148,24 +145,13 @@ jobs: # Need this for the git tests to succeed. git --version . .github/workflows/setup_git.sh - - name: Install kcov for bash script coverage - if: ${{ needs.changes.outputs.with_coverage == 'true' }} - env: - KCOV_VERSION: 34 - run: | - KCOV_ROOT=$(mktemp -d) - wget --output-document=${KCOV_ROOT}/${KCOV_VERSION}.tar.gz https://github.com/SimonKagstrom/kcov/archive/v${KCOV_VERSION}.tar.gz - tar -C ${KCOV_ROOT} -xzvf ${KCOV_ROOT}/${KCOV_VERSION}.tar.gz - mkdir -p ${KCOV_ROOT}/build - cd ${KCOV_ROOT}/build && cmake -Wno-dev ${KCOV_ROOT}/kcov-${KCOV_VERSION} && cd - - make -C ${KCOV_ROOT}/build && sudo make -C ${KCOV_ROOT}/build install - - name: Bootstrap clingo from sources + - name: Bootstrap clingo if: ${{ matrix.concretizer == 'clingo' }} env: SPACK_PYTHON: python run: | . share/spack/setup-env.sh - spack external find --not-buildable cmake bison + spack bootstrap untrust spack-install spack -v solve zlib - name: Run unit tests (full suite with coverage) if: ${{ needs.changes.outputs.with_coverage == 'true' }} @@ -185,7 +171,7 @@ jobs: SPACK_TEST_SOLVER: ${{ matrix.concretizer }} run: | share/spack/qa/run-unit-tests - - uses: codecov/codecov-action@v2.0.2 + - uses: codecov/codecov-action@v2.0.3 if: ${{ needs.changes.outputs.with_coverage == 'true' }} with: flags: unittests,linux,${{ matrix.concretizer }} @@ -204,10 +190,7 @@ jobs: run: | sudo apt-get -y update # Needed for shell tests - sudo apt-get install -y coreutils csh zsh tcsh fish dash bash - # Needed for kcov - sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev - sudo apt-get -y install zlib1g-dev libdw-dev libiberty-dev + sudo apt-get install -y coreutils kcov csh zsh tcsh fish dash bash - name: Install Python packages run: | pip install --upgrade pip six setuptools codecov coverage[toml] @@ -216,17 +199,6 @@ jobs: # Need this for the git tests to succeed. git --version . .github/workflows/setup_git.sh - - name: Install kcov for bash script coverage - if: ${{ needs.changes.outputs.with_coverage == 'true' }} - env: - KCOV_VERSION: 38 - run: | - KCOV_ROOT=$(mktemp -d) - wget --output-document=${KCOV_ROOT}/${KCOV_VERSION}.tar.gz https://github.com/SimonKagstrom/kcov/archive/v${KCOV_VERSION}.tar.gz - tar -C ${KCOV_ROOT} -xzvf ${KCOV_ROOT}/${KCOV_VERSION}.tar.gz - mkdir -p ${KCOV_ROOT}/build - cd ${KCOV_ROOT}/build && cmake -Wno-dev ${KCOV_ROOT}/kcov-${KCOV_VERSION} && cd - - make -C ${KCOV_ROOT}/build && sudo make -C ${KCOV_ROOT}/build install - name: Run shell tests (without coverage) if: ${{ needs.changes.outputs.with_coverage == 'false' }} run: | @@ -237,7 +209,7 @@ jobs: COVERAGE: true run: | share/spack/qa/run-shell-tests - - uses: codecov/codecov-action@v2.0.2 + - uses: codecov/codecov-action@v2.0.3 if: ${{ needs.changes.outputs.with_coverage == 'true' }} with: flags: shelltests,linux @@ -314,21 +286,7 @@ jobs: # Needed for unit tests sudo apt-get -y install \ coreutils cvs gfortran graphviz gnupg2 mercurial ninja-build \ - patchelf - # Needed for kcov - sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev - sudo apt-get -y install zlib1g-dev libdw-dev libiberty-dev - - name: Install kcov for bash script coverage - if: ${{ needs.changes.outputs.with_coverage == 'true' }} - env: - KCOV_VERSION: 34 - run: | - KCOV_ROOT=$(mktemp -d) - wget --output-document=${KCOV_ROOT}/${KCOV_VERSION}.tar.gz https://github.com/SimonKagstrom/kcov/archive/v${KCOV_VERSION}.tar.gz - tar -C ${KCOV_ROOT} -xzvf ${KCOV_ROOT}/${KCOV_VERSION}.tar.gz - mkdir -p ${KCOV_ROOT}/build - cd ${KCOV_ROOT}/build && cmake -Wno-dev ${KCOV_ROOT}/kcov-${KCOV_VERSION} && cd - - make -C ${KCOV_ROOT}/build && sudo make -C ${KCOV_ROOT}/build install + patchelf kcov - name: Install Python packages run: | pip install --upgrade pip six setuptools codecov coverage[toml] clingo @@ -353,7 +311,7 @@ jobs: SPACK_TEST_SOLVER: clingo run: | share/spack/qa/run-unit-tests - - uses: codecov/codecov-action@v2.0.2 + - uses: codecov/codecov-action@v2.0.3 if: ${{ needs.changes.outputs.with_coverage == 'true' }} with: flags: unittests,linux,clingo @@ -379,10 +337,14 @@ jobs: run: | brew install dash fish gcc gnupg2 kcov - name: Run unit tests + env: + SPACK_TEST_SOLVER: clingo run: | git --version . .github/workflows/setup_git.sh . share/spack/setup-env.sh + $(which spack) bootstrap untrust spack-install + $(which spack) solve zlib if [ "${{ needs.changes.outputs.with_coverage }}" == "true" ] then coverage run $(which spack) unit-test -x @@ -395,7 +357,7 @@ jobs: echo "ONLY PACKAGE RECIPES CHANGED [skipping coverage]" $(which spack) unit-test -x -m "not maybeslow" -k "package_sanity" fi - - uses: codecov/codecov-action@v2.0.2 + - uses: codecov/codecov-action@v2.0.3 if: ${{ needs.changes.outputs.with_coverage == 'true' }} with: files: ./coverage.xml diff --git a/.gitignore b/.gitignore index c3d2670af45..c75b98089c7 100644 --- a/.gitignore +++ b/.gitignore @@ -132,6 +132,7 @@ celerybeat.pid .env .venv env/ +!/lib/spack/env venv/ ENV/ env.bak/ diff --git a/README.md b/README.md index 964637da168..7c55157ebac 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Spack Spack [![Unit Tests](https://github.com/spack/spack/workflows/linux%20tests/badge.svg)](https://github.com/spack/spack/actions) -[![Linux Builds](https://github.com/spack/spack/workflows/linux%20builds/badge.svg)](https://github.com/spack/spack/actions) +[![Bootstrapping](https://github.com/spack/spack/actions/workflows/bootstrap.yml/badge.svg)](https://github.com/spack/spack/actions/workflows/bootstrap.yml) [![macOS Builds (nightly)](https://github.com/spack/spack/workflows/macOS%20builds%20nightly/badge.svg?branch=develop)](https://github.com/spack/spack/actions?query=workflow%3A%22macOS+builds+nightly%22) [![codecov](https://codecov.io/gh/spack/spack/branch/develop/graph/badge.svg)](https://codecov.io/gh/spack/spack) [![Read the Docs](https://readthedocs.org/projects/spack/badge/?version=latest)](https://spack.readthedocs.io) diff --git a/bin/spack b/bin/spack index a4c442227dd..dffcbd20262 100755 --- a/bin/spack +++ b/bin/spack @@ -28,6 +28,7 @@ exit 1 from __future__ import print_function import os +import os.path import sys min_python3 = (3, 5) @@ -70,6 +71,28 @@ if "ruamel.yaml" in sys.modules: if "ruamel" in sys.modules: del sys.modules["ruamel"] +# The following code is here to avoid failures when updating +# the develop version, due to spurious argparse.pyc files remaining +# in the libs/spack/external directory, see: +# https://github.com/spack/spack/pull/25376 +# TODO: Remove in v0.18.0 or later +try: + import argparse +except ImportError: + argparse_pyc = os.path.join(spack_external_libs, 'argparse.pyc') + if not os.path.exists(argparse_pyc): + raise + try: + os.remove(argparse_pyc) + import argparse # noqa + except Exception: + msg = ('The file\n\n\t{0}\n\nis corrupted and cannot be deleted by Spack. ' + 'Either delete it manually or ask some administrator to ' + 'delete it for you.') + print(msg.format(argparse_pyc)) + sys.exit(1) + + import spack.main # noqa # Once we've set up the system path, run the spack main method diff --git a/etc/spack/defaults/bootstrap.yaml b/etc/spack/defaults/bootstrap.yaml index 78bb43f4b17..392c48b7bbd 100644 --- a/etc/spack/defaults/bootstrap.yaml +++ b/etc/spack/defaults/bootstrap.yaml @@ -5,3 +5,28 @@ bootstrap: # Root directory for bootstrapping work. The software bootstrapped # by Spack is installed in a "store" subfolder of this root directory root: ~/.spack/bootstrap + # Methods that can be used to bootstrap software. Each method may or + # may not be able to bootstrap all of the software that Spack needs, + # depending on its type. + sources: + - name: 'github-actions' + type: buildcache + description: | + Buildcache generated from a public workflow using Github Actions. + The sha256 checksum of binaries is checked before installation. + info: + url: https://mirror.spack.io/bootstrap/github-actions/v0.1 + homepage: https://github.com/alalazo/spack-bootstrap-mirrors + releases: https://github.com/alalazo/spack-bootstrap-mirrors/releases + # This method is just Spack bootstrapping the software it needs from sources. + # It has been added here so that users can selectively disable bootstrapping + # from sources by "untrusting" it. + - name: spack-install + type: install + description: | + Specs built from sources by Spack. May take a long time. + trusted: + # By default we trust bootstrapping from sources and from binaries + # produced on Github via the workflow + github-actions: true + spack-install: true \ No newline at end of file diff --git a/etc/spack/defaults/config.yaml b/etc/spack/defaults/config.yaml index 2400686e60d..64a50cc8059 100644 --- a/etc/spack/defaults/config.yaml +++ b/etc/spack/defaults/config.yaml @@ -134,6 +134,10 @@ config: # enabling locks. locks: true + # The default url fetch method to use. + # If set to 'curl', Spack will require curl on the user's system + # If set to 'urllib', Spack will use python built-in libs to fetch + url_fetch_method: urllib # The maximum number of jobs to use for the build system (e.g. `make`), when # the -j flag is not given on the command line. Defaults to 16 when not set. diff --git a/lib/spack/docs/basic_usage.rst b/lib/spack/docs/basic_usage.rst index cf1fc28614c..38c4f42571d 100644 --- a/lib/spack/docs/basic_usage.rst +++ b/lib/spack/docs/basic_usage.rst @@ -695,6 +695,136 @@ structured the way you want: } +^^^^^^^^^^^^^^ +``spack diff`` +^^^^^^^^^^^^^^ + +It's often the case that you have two versions of a spec that you need to +disambiguate. Let's say that we've installed two variants of zlib, one with +and one without the optimize variant: + +.. code-block:: console + + $ spack install zlib + $ spack install zlib -optimize + +When we do ``spack find`` we see the two versions. + +.. code-block:: console + + $ spack find zlib + ==> 2 installed packages + -- linux-ubuntu20.04-skylake / gcc@9.3.0 ------------------------ + zlib@1.2.11 zlib@1.2.11 + + +Let's now say that we want to uninstall zlib. We run the command, and hit a problem +real quickly since we have two! + +.. code-block:: console + + $ spack uninstall zlib + ==> Error: zlib matches multiple packages: + + -- linux-ubuntu20.04-skylake / gcc@9.3.0 ------------------------ + efzjziy zlib@1.2.11 sl7m27m zlib@1.2.11 + + ==> Error: You can either: + a) use a more specific spec, or + b) specify the spec by its hash (e.g. `spack uninstall /hash`), or + c) use `spack uninstall --all` to uninstall ALL matching specs. + +Oh no! We can see from the above that we have two different versions of zlib installed, +and the only difference between the two is the hash. This is a good use case for +``spack diff``, which can easily show us the "diff" or set difference +between properties for two packages. Let's try it out. +Since the only difference we see in the ``spack find`` view is the hash, let's use +``spack diff`` to look for more detail. We will provide the two hashes: + +.. code-block:: console + + $ spack diff /efzjziy /sl7m27m + ==> Warning: This interface is subject to change. + + --- zlib@1.2.11efzjziyc3dmb5h5u5azsthgbgog5mj7g + +++ zlib@1.2.11sl7m27mzkbejtkrajigj3a3m37ygv4u2 + @@ variant_value @@ + - zlib optimize False + + zlib optimize True + + +The output is colored, and written in the style of a git diff. This means that you +can copy and paste it into a GitHub markdown as a code block with language "diff" +and it will render nicely! Here is an example: + +.. code-block:: md + + ```diff + --- zlib@1.2.11/efzjziyc3dmb5h5u5azsthgbgog5mj7g + +++ zlib@1.2.11/sl7m27mzkbejtkrajigj3a3m37ygv4u2 + @@ variant_value @@ + - zlib optimize False + + zlib optimize True + ``` + +Awesome! Now let's read the diff. It tells us that our first zlib was built with ``~optimize`` +(``False``) and the second was built with ``+optimize`` (``True``). You can't see it in the docs +here, but the output above is also colored based on the content being an addition (+) or +subtraction (-). + +This is a small example, but you will be able to see differences for any attributes on the +installation spec. Running ``spack diff A B`` means we'll see which spec attributes are on +``B`` but not on ``A`` (green) and which are on ``A`` but not on ``B`` (red). Here is another +example with an additional difference type, ``version``: + +.. code-block:: console + + $ spack diff python@2.7.8 python@3.8.11 + ==> Warning: This interface is subject to change. + + --- python@2.7.8/tsxdi6gl4lihp25qrm4d6nys3nypufbf + +++ python@3.8.11/yjtseru4nbpllbaxb46q7wfkyxbuvzxx + @@ variant_value @@ + - python patches a8c52415a8b03c0e5f28b5d52ae498f7a7e602007db2b9554df28cd5685839b8 + + python patches 0d98e93189bc278fbc37a50ed7f183bd8aaf249a8e1670a465f0db6bb4f8cf87 + @@ version @@ + - openssl 1.0.2u + + openssl 1.1.1k + - python 2.7.8 + + python 3.8.11 + +Let's say that we were only interested in one kind of attribute above, ``version``. +We can ask the command to only output this attribute. To do this, you'd add +the ``--attribute`` for attribute parameter, which defaults to all. Here is how you +would filter to show just versions: + +.. code-block:: console + + $ spack diff --attribute version python@2.7.8 python@3.8.11 + ==> Warning: This interface is subject to change. + + --- python@2.7.8/tsxdi6gl4lihp25qrm4d6nys3nypufbf + +++ python@3.8.11/yjtseru4nbpllbaxb46q7wfkyxbuvzxx + @@ version @@ + - openssl 1.0.2u + + openssl 1.1.1k + - python 2.7.8 + + python 3.8.11 + +And you can add as many attributes as you'd like with multiple `--attribute` arguments +(for lots of attributes, you can use ``-a`` for short). Finally, if you want to view the +data as json (and possibly pipe into an output file) just add ``--json``: + + +.. code-block:: console + + $ spack diff --json python@2.7.8 python@3.8.11 + + +This data will be much longer because along with the differences for ``A`` vs. ``B`` and +``B`` vs. ``A``, the JSON output also showsthe intersection. + + ------------------------ Using installed packages ------------------------ diff --git a/lib/spack/docs/build_systems.rst b/lib/spack/docs/build_systems.rst index 59b9bb643a6..0411ce75bc6 100644 --- a/lib/spack/docs/build_systems.rst +++ b/lib/spack/docs/build_systems.rst @@ -63,6 +63,7 @@ on these ideas for each distinct build system that Spack supports: build_systems/intelpackage build_systems/rocmpackage build_systems/custompackage + build_systems/multiplepackage For reference, the :py:mod:`Build System API docs ` provide a list of build systems and methods/attributes that can be diff --git a/lib/spack/docs/build_systems/multiplepackage.rst b/lib/spack/docs/build_systems/multiplepackage.rst new file mode 100644 index 00000000000..ae3b4adaf30 --- /dev/null +++ b/lib/spack/docs/build_systems/multiplepackage.rst @@ -0,0 +1,350 @@ +.. Copyright 2013-2021 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) + +.. _multiplepackage: + +---------------------- +Multiple Build Systems +---------------------- + +Quite frequently, a package will change build systems from one version to the +next. For example, a small project that once used a single Makefile to build +may now require Autotools to handle the increased number of files that need to +be compiled. Or, a package that once used Autotools may switch to CMake for +Windows support. In this case, it becomes a bit more challenging to write a +single build recipe for this package in Spack. + +There are several ways that this can be handled in Spack: + +#. Subclass the new build system, and override phases as needed (preferred) +#. Subclass ``Package`` and implement ``install`` as needed +#. Create separate ``*-cmake``, ``*-autotools``, etc. packages for each build system +#. Rename the old package to ``*-legacy`` and create a new package +#. Move the old package to a ``legacy`` repository and create a new package +#. Drop older versions that only support the older build system + +Of these options, 1 is preferred, and will be demonstrated in this +documentation. Options 3-5 have issues with concretization, so shouldn't be +used. Options 4-5 also don't support more than two build systems. Option 6 only +works if the old versions are no longer needed. Option 1 is preferred over 2 +because it makes it easier to drop the old build system entirely. + +The exact syntax of the package depends on which build systems you need to +support. Below are a couple of common examples. + +^^^^^^^^^^^^^^^^^^^^^ +Makefile -> Autotools +^^^^^^^^^^^^^^^^^^^^^ + +Let's say we have the following package: + +.. code-block:: python + + class Foo(MakefilePackage): + version("1.2.0", sha256="...") + + def edit(self, spec, prefix): + filter_file("CC=", "CC=" + spack_cc, "Makefile") + + def install(self, spec, prefix): + install_tree(".", prefix) + + +The package subclasses from :ref:`makefilepackage`, which has three phases: + +#. ``edit`` (does nothing by default) +#. ``build`` (runs ``make`` by default) +#. ``install`` (runs ``make install`` by default) + +In this case, the ``install`` phase needed to be overridden because the +Makefile did not have an install target. We also modify the Makefile to use +Spack's compiler wrappers. The default ``build`` phase is not changed. + +Starting with version 1.3.0, we want to use Autotools to build instead. +:ref:`autotoolspackage` has four phases: + +#. ``autoreconf`` (does not if a configure script already exists) +#. ``configure`` (runs ``./configure --prefix=...`` by default) +#. ``build`` (runs ``make`` by default) +#. ``install`` (runs ``make install`` by default) + +If the only version we need to support is 1.3.0, the package would look as +simple as: + +.. code-block:: python + + class Foo(AutotoolsPackage): + version("1.3.0", sha256="...") + + def configure_args(self): + return ["--enable-shared"] + + +In this case, we use the default methods for each phase and only override +``configure_args`` to specify additional flags to pass to ``./configure``. + +If we wanted to write a single package that supports both versions 1.2.0 and +1.3.0, it would look something like: + +.. code-block:: python + + class Foo(AutotoolsPackage): + version("1.3.0", sha256="...") + version("1.2.0", sha256="...", deprecated=True) + + def configure_args(self): + return ["--enable-shared"] + + # Remove the following once version 1.2.0 is dropped + @when("@:1.2") + def patch(self): + filter_file("CC=", "CC=" + spack_cc, "Makefile") + + @when("@:1.2") + def autoreconf(self, spec, prefix): + pass + + @when("@:1.2") + def configure(self, spec, prefix): + pass + + @when("@:1.2") + def install(self, spec, prefix): + install_tree(".", prefix) + + +There are a few interesting things to note here: + +* We added ``deprecated=True`` to version 1.2.0. This signifies that version + 1.2.0 is deprecated and shouldn't be used. However, if a user still relies + on version 1.2.0, it's still there and builds just fine. +* We moved the contents of the ``edit`` phase to the ``patch`` function. Since + ``AutotoolsPackage`` doesn't have an ``edit`` phase, the only way for this + step to be executed is to move it to the ``patch`` function, which always + gets run. +* The ``autoreconf`` and ``configure`` phases become no-ops. Since the old + Makefile-based build system doesn't use these, we ignore these phases when + building ``foo@1.2.0``. +* The ``@when`` decorator is used to override these phases only for older + versions. The default methods are used for ``foo@1.3:``. + +Once a new Spack release comes out, version 1.2.0 and everything below the +comment can be safely deleted. The result is the same as if we had written a +package for version 1.3.0 from scratch. + +^^^^^^^^^^^^^^^^^^ +Autotools -> CMake +^^^^^^^^^^^^^^^^^^ + +Let's say we have the following package: + +.. code-block:: python + + class Bar(AutotoolsPackage): + version("1.2.0", sha256="...") + + def configure_args(self): + return ["--enable-shared"] + + +The package subclasses from :ref:`autotoolspackage`, which has four phases: + +#. ``autoreconf`` (does not if a configure script already exists) +#. ``configure`` (runs ``./configure --prefix=...`` by default) +#. ``build`` (runs ``make`` by default) +#. ``install`` (runs ``make install`` by default) + +In this case, we use the default methods for each phase and only override +``configure_args`` to specify additional flags to pass to ``./configure``. + +Starting with version 1.3.0, we want to use CMake to build instead. +:ref:`cmakepackage` has three phases: + +#. ``cmake`` (runs ``cmake ...`` by default) +#. ``build`` (runs ``make`` by default) +#. ``install`` (runs ``make install`` by default) + +If the only version we need to support is 1.3.0, the package would look as +simple as: + +.. code-block:: python + + class Bar(CMakePackage): + version("1.3.0", sha256="...") + + def cmake_args(self): + return [self.define("BUILD_SHARED_LIBS", True)] + + +In this case, we use the default methods for each phase and only override +``cmake_args`` to specify additional flags to pass to ``cmake``. + +If we wanted to write a single package that supports both versions 1.2.0 and +1.3.0, it would look something like: + +.. code-block:: python + + class Bar(CMakePackage): + version("1.3.0", sha256="...") + version("1.2.0", sha256="...", deprecated=True) + + def cmake_args(self): + return [self.define("BUILD_SHARED_LIBS", True)] + + # Remove the following once version 1.2.0 is dropped + def configure_args(self): + return ["--enable-shared"] + + @when("@:1.2") + def cmake(self, spec, prefix): + configure("--prefix=" + prefix, *self.configure_args()) + + +There are a few interesting things to note here: + +* We added ``deprecated=True`` to version 1.2.0. This signifies that version + 1.2.0 is deprecated and shouldn't be used. However, if a user still relies + on version 1.2.0, it's still there and builds just fine. +* Since CMake and Autotools are so similar, we only need to override the + ``cmake`` phase, we can use the default ``build`` and ``install`` phases. +* We override ``cmake`` to run ``./configure`` for older versions. + ``configure_args`` remains the same. +* The ``@when`` decorator is used to override these phases only for older + versions. The default methods are used for ``bar@1.3:``. + +Once a new Spack release comes out, version 1.2.0 and everything below the +comment can be safely deleted. The result is the same as if we had written a +package for version 1.3.0 from scratch. + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Multiple build systems for the same version +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +During the transition from one build system to another, developers often +support multiple build systems at the same time. Spack can only use a single +build system for a single version. To decide which build system to use for a +particular version, take the following things into account: + +1. If the developers explicitly state that one build system is preferred over + another, use that one. +2. If one build system is considered "experimental" while another is considered + "stable", use the stable build system. +3. Otherwise, use the newer build system. + +The developer preference for which build system to use can change over time as +a newer build system becomes stable/recommended. + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Dropping support for old build systems +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +When older versions of a package don't support a newer build system, it can be +tempting to simply delete them from a package. This significantly reduces +package complexity and makes the build recipe much easier to maintain. However, +other packages or Spack users may rely on these older versions. The recommended +approach is to first support both build systems (as demonstrated above), +:ref:`deprecate ` versions that rely on the old build system, and +remove those versions and any phases that needed to be overridden in the next +Spack release. + +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Three or more build systems +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In rare cases, a package may change build systems multiple times. For example, +a package may start with Makefiles, then switch to Autotools, then switch to +CMake. The same logic used above can be extended to any number of build systems. +For example: + +.. code-block:: python + + class Baz(CMakePackage): + version("1.4.0", sha256="...") # CMake + version("1.3.0", sha256="...") # Autotools + version("1.2.0", sha256="...") # Makefile + + def cmake_args(self): + return [self.define("BUILD_SHARED_LIBS", True)] + + # Remove the following once version 1.3.0 is dropped + def configure_args(self): + return ["--enable-shared"] + + @when("@1.3") + def cmake(self, spec, prefix): + configure("--prefix=" + prefix, *self.configure_args()) + + # Remove the following once version 1.2.0 is dropped + @when("@:1.2") + def patch(self): + filter_file("CC=", "CC=" + spack_cc, "Makefile") + + @when("@:1.2") + def cmake(self, spec, prefix): + pass + + @when("@:1.2") + def install(self, spec, prefix): + install_tree(".", prefix) + + +^^^^^^^^^^^^^^^^^^^ +Additional examples +^^^^^^^^^^^^^^^^^^^ + +When writing new packages, it often helps to see examples of existing packages. +Here is an incomplete list of existing Spack packages that have changed build +systems before: + +================ ===================== ================ +Package Previous Build System New Build System +================ ===================== ================ +amber custom CMake +arpack-ng Autotools CMake +atk Autotools Meson +blast None Autotools +dyninst Autotools CMake +evtgen Autotools CMake +fish Autotools CMake +gdk-pixbuf Autotools Meson +glib Autotools Meson +glog Autotools CMake +gmt Autotools CMake +gtkplus Autotools Meson +hpl Makefile Autotools +interproscan Perl Maven +jasper Autotools CMake +kahip SCons CMake +kokkos Makefile CMake +kokkos-kernels Makefile CMake +leveldb Makefile CMake +libdrm Autotools Meson +libjpeg-turbo Autotools CMake +mesa Autotools Meson +metis None CMake +mpifileutils Autotools CMake +muparser Autotools CMake +mxnet Makefile CMake +nest Autotools CMake +neuron Autotools CMake +nsimd CMake nsconfig +opennurbs Makefile CMake +optional-lite None CMake +plasma Makefile CMake +preseq Makefile Autotools +protobuf Autotools CMake +py-pygobject Autotools Python +singularity Autotools Makefile +span-lite None CMake +ssht Makefile CMake +string-view-lite None CMake +superlu Makefile CMake +superlu-dist Makefile CMake +uncrustify Autotools CMake +================ ===================== ================ + +Packages that support multiple build systems can be a bit confusing to write. +Don't hesitate to open an issue or draft pull request and ask for advice from +other Spack developers! diff --git a/lib/spack/docs/conf.py b/lib/spack/docs/conf.py index 5e2795cf49c..2b58223e1dc 100644 --- a/lib/spack/docs/conf.py +++ b/lib/spack/docs/conf.py @@ -107,6 +107,7 @@ def setup(sphinx): 'sphinx.ext.intersphinx', 'sphinx.ext.napoleon', 'sphinx.ext.todo', + 'sphinx.ext.viewcode', 'sphinxcontrib.programoutput', ] diff --git a/lib/spack/docs/environments.rst b/lib/spack/docs/environments.rst index dbc1e23bf44..fd96698e971 100644 --- a/lib/spack/docs/environments.rst +++ b/lib/spack/docs/environments.rst @@ -732,13 +732,17 @@ Configuring environment views The Spack Environment manifest file has a top-level keyword ``view``. Each entry under that heading is a view descriptor, headed by a name. The view descriptor contains the root of the view, and -optionally the projections for the view, and ``select`` and -``exclude`` lists for the view. For example, in the following manifest +optionally the projections for the view, ``select`` and +``exclude`` lists for the view and link information via ``link`` and +``link_type``. For example, in the following manifest file snippet we define a view named ``mpis``, rooted at ``/path/to/view`` in which all projections use the package name, version, and compiler name to determine the path for a given package. This view selects all packages that depend on MPI, and excludes those built with the PGI compiler at version 18.5. +All the dependencies of each root spec in the environment will be linked +in the view due to the command ``link: all`` and the files in the view will +be symlinks to the spack install directories. .. code-block:: yaml @@ -751,11 +755,16 @@ excludes those built with the PGI compiler at version 18.5. exclude: ['%pgi@18.5'] projections: all: {name}/{version}-{compiler.name} + link: all + link_type: symlink For more information on using view projections, see the section on :ref:`adding_projections_to_views`. The default for the ``select`` and ``exclude`` values is to select everything and exclude nothing. The -default projection is the default view projection (``{}``). +default projection is the default view projection (``{}``). The ``link`` +defaults to ``all`` but can also be ``roots`` when only the root specs +in the environment are desired in the view. The ``link_type`` defaults +to ``symlink`` but can also take the value of ``hardlink`` or ``copy``. Any number of views may be defined under the ``view`` heading in a Spack Environment. diff --git a/lib/spack/docs/getting_started.rst b/lib/spack/docs/getting_started.rst index 3d0e90d3ab7..419e1293bb3 100644 --- a/lib/spack/docs/getting_started.rst +++ b/lib/spack/docs/getting_started.rst @@ -9,21 +9,16 @@ Getting Started =============== -------------- -Prerequisites -------------- +-------------------- +System Prerequisites +-------------------- -Spack has the following minimum requirements, which must be installed -before Spack is run: +Spack has the following minimum system requirements, which are assumed to +be present on the machine where Spack is run: -#. Python 2 (2.6 or 2.7) or 3 (3.5 - 3.9) to run Spack -#. A C/C++ compiler for building -#. The ``make`` executable for building -#. The ``tar``, ``gzip``, ``unzip``, ``bzip2``, ``xz`` and optionally ``zstd`` - executables for extracting source code -#. The ``patch`` command to apply patches -#. The ``git`` and ``curl`` commands for fetching -#. If using the ``gpg`` subcommand, ``gnupg2`` is required +.. csv-table:: System prerequisites for Spack + :file: tables/system_prerequisites.csv + :header-rows: 1 These requirements can be easily installed on most modern Linux systems; on macOS, XCode is required. Spack is designed to run on HPC @@ -89,6 +84,151 @@ sourcing time, ensuring future invocations of the ``spack`` command will continue to use the same consistent python version regardless of changes in the environment. +^^^^^^^^^^^^^^^^^^^^ +Bootstrapping clingo +^^^^^^^^^^^^^^^^^^^^ + +Spack supports using ``clingo`` as an external solver to compute which software +needs to be installed. The default configuration allows Spack to install +``clingo`` from a public buildcache, created by a Github Action workflow. In this +case the bootstrapping procedure is transparent to the user, except for a +slightly long waiting time on the first concretization of a spec: + +.. code-block:: console + + $ spack find -b + ==> Showing internal bootstrap store at "/home/spack/.spack/bootstrap/store" + ==> 0 installed packages + + $ time spack solve zlib + ==> Best of 2 considered solutions. + ==> Optimization Criteria: + Priority Criterion Value + 1 deprecated versions used 0 + 2 version weight 0 + 3 number of non-default variants (roots) 0 + 4 multi-valued variants 0 + 5 preferred providers for roots 0 + 6 number of non-default variants (non-roots) 0 + 7 preferred providers (non-roots) 0 + 8 compiler mismatches 0 + 9 version badness 0 + 10 count of non-root multi-valued variants 0 + 11 non-preferred compilers 0 + 12 target mismatches 0 + 13 non-preferred targets 0 + + zlib@1.2.11%gcc@11.1.0+optimize+pic+shared arch=linux-ubuntu18.04-broadwell + + real 0m30,618s + user 0m27,278s + sys 0m1,549s + +After this command you'll see that ``clingo`` has been installed for Spack's own use: + +.. code-block:: console + + $ spack find -b + ==> Showing internal bootstrap store at "/home/spack/.spack/bootstrap/store" + ==> 2 installed packages + -- linux-rhel5-x86_64 / gcc@9.3.0 ------------------------------- + clingo-bootstrap@spack python@3.6 + +Subsequent calls to the concretizer will then be much faster: + +.. code-block:: console + + $ time spack solve zlib + [ ... ] + real 0m1,222s + user 0m1,146s + sys 0m0,059s + +If for security or for other reasons you don't want to or can't install precompiled +binaries, Spack can fall-back to bootstrap ``clingo`` from source files. To forbid +Spack from retrieving binaries from the bootstrapping buildcache, the following +command must be given: + +.. code-block:: console + + $ spack bootstrap untrust github-actions + ==> "github-actions" is now untrusted and will not be used for bootstrapping + +since an "untrusted" way of bootstrapping software will not be considered +by Spack. You can verify the new settings are effective with: + +.. code-block:: console + + $ spack bootstrap list + Name: github-actions UNTRUSTED + + Type: buildcache + + Info: + url: https://mirror.spack.io/bootstrap/github-actions/v0.1 + homepage: https://github.com/alalazo/spack-bootstrap-mirrors + releases: https://github.com/alalazo/spack-bootstrap-mirrors/releases + + Description: + Buildcache generated from a public workflow using Github Actions. + The sha256 checksum of binaries is checked before installation. + + + Name: spack-install TRUSTED + + Type: install + + Description: + Specs built from sources by Spack. May take a long time. + +When bootstrapping from sources, Spack requires a compiler with support +for C++14 (GCC on ``linux``, Apple Clang on ``darwin``) and static C++ +standard libraries on ``linux``. Spack will build the required software +on the first request to concretize a spec: + +.. code-block:: console + + $ spack solve zlib + [+] /usr (external bison-3.0.4-wu5pgjchxzemk5ya2l3ddqug2d7jv6eb) + [+] /usr (external cmake-3.19.4-a4kmcfzxxy45mzku4ipmj5kdiiz5a57b) + [+] /usr (external python-3.6.9-x4fou4iqqlh5ydwddx3pvfcwznfrqztv) + ==> Installing re2c-1.2.1-e3x6nxtk3ahgd63ykgy44mpuva6jhtdt + [ ... ] + ==> Optimization: [0, 0, 0, 0, 0, 1, 0, 0, 0] + zlib@1.2.11%gcc@10.1.0+optimize+pic+shared arch=linux-ubuntu18.04-broadwell + +.. tip:: + + If you want to speed-up bootstrapping ``clingo`` from sources, you may try to + search for ``cmake`` and ``bison`` on your system: + + .. code-block:: console + + $ spack external find cmake bison + ==> The following specs have been detected on this system and added to /home/spack/.spack/packages.yaml + bison@3.0.4 cmake@3.19.4 + +""""""""""""""""""" +The Bootstrap Store +""""""""""""""""""" + +All the tools Spack needs for its own functioning are installed in a separate store, which lives +under the ``${HOME}/.spack`` directory. The software installed there can be queried with: + +.. code-block:: console + + $ spack find --bootstrap + ==> Showing internal bootstrap store at "/home/spack/.spack/bootstrap/store" + ==> 3 installed packages + -- linux-ubuntu18.04-x86_64 / gcc@10.1.0 ------------------------ + clingo-bootstrap@spack python@3.6.9 re2c@1.2.1 + +In case it's needed the bootstrap store can also be cleaned with: + +.. code-block:: console + + $ spack clean -b + ==> Removing software in "/home/spack/.spack/bootstrap/store" ^^^^^^^^^^^^^^^^^^ Check Installation @@ -117,53 +257,6 @@ environment*, especially for ``PATH``. Only software that comes with the system, or that you know you wish to use with Spack, should be included. This procedure will avoid many strange build errors. -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Optional: Bootstrapping clingo -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Spack supports using clingo as an external solver to compute which software -needs to be installed. If you have a default compiler supporting C++14 Spack -can automatically bootstrap this tool from sources the first time it is -needed: - -.. code-block:: console - - $ spack solve zlib - [+] /usr (external bison-3.0.4-wu5pgjchxzemk5ya2l3ddqug2d7jv6eb) - [+] /usr (external cmake-3.19.4-a4kmcfzxxy45mzku4ipmj5kdiiz5a57b) - [+] /usr (external python-3.6.9-x4fou4iqqlh5ydwddx3pvfcwznfrqztv) - ==> Installing re2c-1.2.1-e3x6nxtk3ahgd63ykgy44mpuva6jhtdt - [ ... ] - ==> Optimization: [0, 0, 0, 0, 0, 1, 0, 0, 0] - zlib@1.2.11%gcc@10.1.0+optimize+pic+shared arch=linux-ubuntu18.04-broadwell - -If you want to speed-up bootstrapping, you may try to search for ``cmake`` and ``bison`` -on your system: - -.. code-block:: console - - $ spack external find cmake bison - ==> The following specs have been detected on this system and added to /home/spack/.spack/packages.yaml - bison@3.0.4 cmake@3.19.4 - -All the tools Spack needs for its own functioning are installed in a separate store, which lives -under the ``${HOME}/.spack`` directory. The software installed there can be queried with: - -.. code-block:: console - - $ spack find --bootstrap - ==> Showing internal bootstrap store at "/home/spack/.spack/bootstrap/store" - ==> 3 installed packages - -- linux-ubuntu18.04-x86_64 / gcc@10.1.0 ------------------------ - clingo-bootstrap@spack python@3.6.9 re2c@1.2.1 - -In case it's needed the bootstrap store can also be cleaned with: - -.. code-block:: console - - $ spack clean -b - ==> Removing software in "/home/spack/.spack/bootstrap/store" - ^^^^^^^^^^^^^^^^^^^^^^^^^^ Optional: Alternate Prefix ^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -367,6 +460,34 @@ then inject those flags into the compiler command. Compiler flags entered from the command line will be discussed in more detail in the following section. +Some compilers also require additional environment configuration. +Examples include Intels oneAPI and AMDs AOCC compiler suites, +which have custom scripts for loading environment variables and setting paths. +These variables should be specified in the ``environment`` section of the compiler +specification. The operations available to modify the environment are ``set``, ``unset``, +``prepend_path``, ``append_path``, and ``remove_path``. For example: + +.. code-block:: yaml + + compilers: + - compiler: + modules: [] + operating_system: centos6 + paths: + cc: /opt/intel/oneapi/compiler/latest/linux/bin/icx + cxx: /opt/intel/oneapi/compiler/latest/linux/bin/icpx + f77: /opt/intel/oneapi/compiler/latest/linux/bin/ifx + fc: /opt/intel/oneapi/compiler/latest/linux/bin/ifx + spec: oneapi@latest + environment: + set: + MKL_ROOT: "/path/to/mkl/root" + unset: # A list of environment variables to unset + - CC + prepend_path: # Similar for append|remove_path + LD_LIBRARY_PATH: /ld/paths/added/by/setvars/sh + + ^^^^^^^^^^^^^^^^^^^^^^^ Build Your Own Compiler ^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/lib/spack/docs/packaging_guide.rst b/lib/spack/docs/packaging_guide.rst index 6616d2a331a..3239438bccb 100644 --- a/lib/spack/docs/packaging_guide.rst +++ b/lib/spack/docs/packaging_guide.rst @@ -612,6 +612,7 @@ it executable, then runs it with some arguments. installer = Executable(self.stage.archive_file) installer('--prefix=%s' % prefix, 'arg1', 'arg2', 'etc.') +.. _deprecate: ^^^^^^^^^^^^^^^^^^^^^^^^ Deprecating old versions @@ -4367,9 +4368,9 @@ The signature for ``cache_extra_test_sources`` is: where ``srcs`` is a string or a list of strings corresponding to the paths for the files and or subdirectories, relative to the staged -source, that are to be copied to the corresponding path relative to -``self.install_test_root``. All of the contents within each subdirectory -will be also be copied. +source, that are to be copied to the corresponding relative test path +under the prefix. All of the contents within each subdirectory will +also be copied. For example, a package method for copying everything in the ``tests`` subdirectory plus the ``foo.c`` and ``bar.c`` files from ``examples`` @@ -4377,8 +4378,13 @@ can be implemented as shown below. .. note:: - The ``run_after`` directive ensures associated files are copied - **after** the package is installed by the build process. + The method name ``copy_test_sources`` here is for illustration + purposes. You are free to use a name that is more suited to your + package. + + The key to copying the files at build time for stand-alone testing + is use of the ``run_after`` directive, which ensures the associated + files are copied **after** the provided build stage. .. code-block:: python @@ -4395,18 +4401,13 @@ can be implemented as shown below. In this case, the method copies the associated files from the build stage **after** the software is installed to the package's metadata directory. The result is the directory and files will be cached in -paths under ``self.install_test_root`` as follows: - -* ``join_path(self.install_test_root, 'tests')`` along with its files - and subdirectories -* ``join_path(self.install_test_root, 'examples', 'foo.c')`` -* ``join_path(self.install_test_root, 'examples', 'bar.c')`` +a special test subdirectory under the installation prefix. These paths are **automatically copied** to the test stage directory -where they are available to the package's ``test`` method through the -``self.test_suite.current_test_cache_dir`` property. In our example, -the method can access the directory and files using the following -paths: +during stand-alone testing. The package's ``test`` method can access +them using the ``self.test_suite.current_test_cache_dir`` property. +In our example, the method would use the following paths to reference +the copy of each entry listed in ``srcs``, respectively: * ``join_path(self.test_suite.current_test_cache_dir, 'tests')`` * ``join_path(self.test_suite.current_test_cache_dir, 'examples', 'foo.c')`` @@ -4414,9 +4415,8 @@ paths: .. note:: - Library developers will want to build the associated tests under - the ``self.test_suite.current_test_cache_dir`` and against their - **installed** libraries before running them. + Library developers will want to build the associated tests + against their **installed** libraries before running them. .. note:: @@ -4426,11 +4426,6 @@ paths: would be appropriate for ensuring the installed software continues to work as the underlying system evolves. -.. note:: - - You are free to use a method name that is more suitable for - your package. - .. _cache_custom_files: """"""""""""""""""" @@ -4509,7 +4504,8 @@ can retrieve the expected output from ``examples/foo.out`` using: def test(self): .. - filename = join_path(self.install_test_root, 'examples', 'foo.out') + filename = join_path(self.test_suite.current_test_cache_dir, + 'examples', 'foo.out') expected = get_escaped_text_output(filename) .. @@ -4677,9 +4673,6 @@ directory paths are provided in the table below. * - Test Suite Stage Files - ``self.test_suite.stage`` - ``join_path(self.test_suite.stage, 'results.txt')`` - * - Cached Build-time Files - - ``self.install_test_root`` - - ``join_path(self.install_test_root, 'examples', 'foo.c')`` * - Staged Cached Build-time Files - ``self.test_suite.current_test_cache_dir`` - ``join_path(self.test_suite.current_test_cache_dir, 'examples', 'foo.c')`` diff --git a/lib/spack/docs/tables/system_prerequisites.csv b/lib/spack/docs/tables/system_prerequisites.csv new file mode 100644 index 00000000000..398ae5aeaea --- /dev/null +++ b/lib/spack/docs/tables/system_prerequisites.csv @@ -0,0 +1,17 @@ +Name, Supported Versions, Notes, Requirement Reason +Python, 2.6/2.7/3.5-3.9, , Interpreter for Spack +C/C++ Compilers, , , Building software +make, , , Build software +patch, , , Build software +bash, , , Compiler wrappers +tar, , , Extract/create archives +gzip, , , Compress/Decompress archives +unzip, , , Compress/Decompress archives +bzip, , , Compress/Decompress archives +xz, , , Compress/Decompress archives +zstd, , Optional, Compress/Decompress archives +file, , , Create/Use Buildcaches +gnupg2, , , Sign/Verify Buildcaches +git, , , Manage Software Repositories +svn, , Optional, Manage Software Repositories +hg, , Optional, Manage Software Repositories diff --git a/lib/spack/env/cc b/lib/spack/env/cc index 5157a5f3815..2bcff42dfd0 100755 --- a/lib/spack/env/cc +++ b/lib/spack/env/cc @@ -163,7 +163,7 @@ case "$command" in lang_flags=F debug_flags="-g" ;; - ld) + ld|ld.gold|ld.lld) mode=ld ;; *) diff --git a/lib/spack/env/ld.gold b/lib/spack/env/ld.gold new file mode 120000 index 00000000000..2652f5f42c0 --- /dev/null +++ b/lib/spack/env/ld.gold @@ -0,0 +1 @@ +cc \ No newline at end of file diff --git a/lib/spack/env/ld.lld b/lib/spack/env/ld.lld new file mode 120000 index 00000000000..2652f5f42c0 --- /dev/null +++ b/lib/spack/env/ld.lld @@ -0,0 +1 @@ +cc \ No newline at end of file diff --git a/lib/spack/external/argparse.py b/lib/spack/external/py2/argparse.py similarity index 100% rename from lib/spack/external/argparse.py rename to lib/spack/external/py2/argparse.py diff --git a/lib/spack/llnl/util/filesystem.py b/lib/spack/llnl/util/filesystem.py index 3cf6553165a..e44f8c608f7 100644 --- a/lib/spack/llnl/util/filesystem.py +++ b/lib/spack/llnl/util/filesystem.py @@ -692,7 +692,7 @@ def replace_directory_transaction(directory_name, tmp_root=None): try: yield tmp_dir - except (Exception, KeyboardInterrupt, SystemExit) as e: + except (Exception, KeyboardInterrupt, SystemExit): # Delete what was there, before copying back the original content if os.path.exists(directory_name): shutil.rmtree(directory_name) @@ -701,10 +701,7 @@ def replace_directory_transaction(directory_name, tmp_root=None): dst=os.path.dirname(directory_name) ) tty.debug('DIRECTORY RECOVERED [{0}]'.format(directory_name)) - - msg = 'the transactional move of "{0}" failed.' - msg += '\n ' + str(e) - raise RuntimeError(msg.format(directory_name)) + raise else: # Otherwise delete the temporary directory shutil.rmtree(tmp_dir) @@ -1102,14 +1099,14 @@ def find(root, files, recursive=True): Accepts any glob characters accepted by fnmatch: - ======= ==================================== - Pattern Meaning - ======= ==================================== - * matches everything - ? matches any single character - [seq] matches any character in ``seq`` - [!seq] matches any character not in ``seq`` - ======= ==================================== + ========== ==================================== + Pattern Meaning + ========== ==================================== + ``*`` matches everything + ``?`` matches any single character + ``[seq]`` matches any character in ``seq`` + ``[!seq]`` matches any character not in ``seq`` + ========== ==================================== Parameters: root (str): The root directory to start searching from diff --git a/lib/spack/llnl/util/lang.py b/lib/spack/llnl/util/lang.py index 3e81a34422b..ac431ecbaf8 100644 --- a/lib/spack/llnl/util/lang.py +++ b/lib/spack/llnl/util/lang.py @@ -7,7 +7,6 @@ import functools import inspect -import multiprocessing import os import re import sys @@ -31,23 +30,6 @@ ignore_modules = [r'^\.#', '~$'] -# On macOS, Python 3.8 multiprocessing now defaults to the 'spawn' start -# method. Spack cannot currently handle this, so force the process to start -# using the 'fork' start method. -# -# TODO: This solution is not ideal, as the 'fork' start method can lead to -# crashes of the subprocess. Figure out how to make 'spawn' work. -# -# See: -# * https://github.com/spack/spack/pull/18124 -# * https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods # noqa: E501 -# * https://bugs.python.org/issue33725 -if sys.version_info >= (3,): # novm - fork_context = multiprocessing.get_context('fork') -else: - fork_context = multiprocessing - - def index_by(objects, *funcs): """Create a hierarchy of dictionaries by splitting the supplied set of objects on unique values of the supplied functions. @@ -258,6 +240,47 @@ def new_dec(*args, **kwargs): return new_dec +def key_ordering(cls): + """Decorates a class with extra methods that implement rich comparison + operations and ``__hash__``. The decorator assumes that the class + implements a function called ``_cmp_key()``. The rich comparison + operations will compare objects using this key, and the ``__hash__`` + function will return the hash of this key. + + If a class already has ``__eq__``, ``__ne__``, ``__lt__``, ``__le__``, + ``__gt__``, or ``__ge__`` defined, this decorator will overwrite them. + + Raises: + TypeError: If the class does not have a ``_cmp_key`` method + """ + def setter(name, value): + value.__name__ = name + setattr(cls, name, value) + + if not has_method(cls, '_cmp_key'): + raise TypeError("'%s' doesn't define _cmp_key()." % cls.__name__) + + setter('__eq__', + lambda s, o: + (s is o) or (o is not None and s._cmp_key() == o._cmp_key())) + setter('__lt__', + lambda s, o: o is not None and s._cmp_key() < o._cmp_key()) + setter('__le__', + lambda s, o: o is not None and s._cmp_key() <= o._cmp_key()) + + setter('__ne__', + lambda s, o: + (s is not o) and (o is None or s._cmp_key() != o._cmp_key())) + setter('__gt__', + lambda s, o: o is None or s._cmp_key() > o._cmp_key()) + setter('__ge__', + lambda s, o: o is None or s._cmp_key() >= o._cmp_key()) + + setter('__hash__', lambda self: hash(self._cmp_key())) + + return cls + + #: sentinel for testing that iterators are done in lazy_lexicographic_ordering done = object() @@ -892,3 +915,19 @@ class Devnull(object): """ def write(self, *_): pass + + +def elide_list(line_list, max_num=10): + """Takes a long list and limits it to a smaller number of elements, + replacing intervening elements with '...'. For example:: + + elide_list([1,2,3,4,5,6], 4) + + gives:: + + [1, 2, 3, '...', 6] + """ + if len(line_list) > max_num: + return line_list[:max_num - 1] + ['...'] + line_list[-1:] + else: + return line_list diff --git a/lib/spack/llnl/util/lock.py b/lib/spack/llnl/util/lock.py index 0c0cc7f634e..c1544ab8abf 100644 --- a/lib/spack/llnl/util/lock.py +++ b/lib/spack/llnl/util/lock.py @@ -9,6 +9,7 @@ import socket import time from datetime import datetime +from typing import Dict, Tuple # novm import llnl.util.tty as tty @@ -36,6 +37,126 @@ true_fn = lambda: True +class OpenFile(object): + """Record for keeping track of open lockfiles (with reference counting). + + There's really only one ``OpenFile`` per inode, per process, but we record the + filehandle here as it's the thing we end up using in python code. You can get + the file descriptor from the file handle if needed -- or we could make this track + file descriptors as well in the future. + """ + def __init__(self, fh): + self.fh = fh + self.refs = 0 + + +class OpenFileTracker(object): + """Track open lockfiles, to minimize number of open file descriptors. + + The ``fcntl`` locks that Spack uses are associated with an inode and a process. + This is convenient, because if a process exits, it releases its locks. + Unfortunately, this also means that if you close a file, *all* locks associated + with that file's inode are released, regardless of whether the process has any + other open file descriptors on it. + + Because of this, we need to track open lock files so that we only close them when + a process no longer needs them. We do this by tracking each lockfile by its + inode and process id. This has several nice properties: + + 1. Tracking by pid ensures that, if we fork, we don't inadvertently track the parent + process's lockfiles. ``fcntl`` locks are not inherited across forks, so we'll + just track new lockfiles in the child. + 2. Tracking by inode ensures that referencs are counted per inode, and that we don't + inadvertently close a file whose inode still has open locks. + 3. Tracking by both pid and inode ensures that we only open lockfiles the minimum + number of times necessary for the locks we have. + + Note: as mentioned elsewhere, these locks aren't thread safe -- they're designed to + work in Python and assume the GIL. + """ + + def __init__(self): + """Create a new ``OpenFileTracker``.""" + self._descriptors = {} # type: Dict[Tuple[int, int], OpenFile] + + def get_fh(self, path): + """Get a filehandle for a lockfile. + + This routine will open writable files for read/write even if you're asking + for a shared (read-only) lock. This is so that we can upgrade to an exclusive + (write) lock later if requested. + + Arguments: + path (str): path to lock file we want a filehandle for + """ + # Open writable files as 'r+' so we can upgrade to write later + os_mode, fh_mode = (os.O_RDWR | os.O_CREAT), 'r+' + + pid = os.getpid() + open_file = None # OpenFile object, if there is one + stat = None # stat result for the lockfile, if it exists + + try: + # see whether we've seen this inode/pid before + stat = os.stat(path) + key = (stat.st_ino, pid) + open_file = self._descriptors.get(key) + + except OSError as e: + if e.errno != errno.ENOENT: # only handle file not found + raise + + # path does not exist -- fail if we won't be able to create it + parent = os.path.dirname(path) or '.' + if not os.access(parent, os.W_OK): + raise CantCreateLockError(path) + + # if there was no already open file, we'll need to open one + if not open_file: + if stat and not os.access(path, os.W_OK): + # we know path exists but not if it's writable. If it's read-only, + # only open the file for reading (and fail if we're trying to get + # an exclusive (write) lock on it) + os_mode, fh_mode = os.O_RDONLY, 'r' + + fd = os.open(path, os_mode) + fh = os.fdopen(fd, fh_mode) + open_file = OpenFile(fh) + + # if we just created the file, we'll need to get its inode here + if not stat: + inode = os.fstat(fd).st_ino + key = (inode, pid) + + self._descriptors[key] = open_file + + open_file.refs += 1 + return open_file.fh + + def release_fh(self, path): + """Release a filehandle, only closing it if there are no more references.""" + try: + inode = os.stat(path).st_ino + except OSError as e: + if e.errno != errno.ENOENT: # only handle file not found + raise + inode = None # this will not be in self._descriptors + + key = (inode, os.getpid()) + open_file = self._descriptors.get(key) + assert open_file, "Attempted to close non-existing lock path: %s" % path + + open_file.refs -= 1 + if not open_file.refs: + del self._descriptors[key] + open_file.fh.close() + + +#: Open file descriptors for locks in this process. Used to prevent one process +#: from opening the sam file many times for different byte range locks +file_tracker = OpenFileTracker() + + def _attempts_str(wait_time, nattempts): # Don't print anything if we succeeded on the first try if nattempts <= 1: @@ -56,7 +177,8 @@ class Lock(object): Note that this is for managing contention over resources *between* processes and not for managing contention between threads in a process: the functions of this object are not thread-safe. A process also must not - maintain multiple locks on the same file. + maintain multiple locks on the same file (or, more specifically, on + overlapping byte ranges in the same file). """ def __init__(self, path, start=0, length=0, default_timeout=None, @@ -161,25 +283,10 @@ def _lock(self, op, timeout=None): # Create file and parent directories if they don't exist. if self._file is None: - parent = self._ensure_parent_directory() + self._ensure_parent_directory() + self._file = file_tracker.get_fh(self.path) - # Open writable files as 'r+' so we can upgrade to write later - os_mode, fd_mode = (os.O_RDWR | os.O_CREAT), 'r+' - if os.path.exists(self.path): - if not os.access(self.path, os.W_OK): - if op == fcntl.LOCK_SH: - # can still lock read-only files if we open 'r' - os_mode, fd_mode = os.O_RDONLY, 'r' - else: - raise LockROFileError(self.path) - - elif not os.access(parent, os.W_OK): - raise CantCreateLockError(self.path) - - fd = os.open(self.path, os_mode) - self._file = os.fdopen(fd, fd_mode) - - elif op == fcntl.LOCK_EX and self._file.mode == 'r': + if op == fcntl.LOCK_EX and self._file.mode == 'r': # Attempt to upgrade to write lock w/a read-only file. # If the file were writable, we'd have opened it 'r+' raise LockROFileError(self.path) @@ -292,7 +399,8 @@ def _unlock(self): """ fcntl.lockf(self._file, fcntl.LOCK_UN, self._length, self._start, os.SEEK_SET) - self._file.close() + + file_tracker.release_fh(self.path) self._file = None self._reads = 0 self._writes = 0 diff --git a/lib/spack/llnl/util/tty/__init__.py b/lib/spack/llnl/util/tty/__init__.py index 987e226d5d1..ca3b5c4b8d6 100644 --- a/lib/spack/llnl/util/tty/__init__.py +++ b/lib/spack/llnl/util/tty/__init__.py @@ -5,6 +5,7 @@ from __future__ import unicode_literals +import contextlib import fcntl import os import struct @@ -28,6 +29,7 @@ _msg_enabled = True _warn_enabled = True _error_enabled = True +_output_filter = lambda s: s indent = " " @@ -90,6 +92,18 @@ def error_enabled(): return _error_enabled +@contextlib.contextmanager +def output_filter(filter_fn): + """Context manager that applies a filter to all output.""" + global _output_filter + saved_filter = _output_filter + try: + _output_filter = filter_fn + yield + finally: + _output_filter = saved_filter + + class SuppressOutput: """Class for disabling output in a scope using 'with' keyword""" @@ -166,13 +180,23 @@ def msg(message, *args, **kwargs): if _stacktrace: st_text = process_stacktrace(2) if newline: - cprint("@*b{%s==>} %s%s" % ( - st_text, get_timestamp(), cescape(message))) + cprint( + "@*b{%s==>} %s%s" % ( + st_text, + get_timestamp(), + cescape(_output_filter(message)) + ) + ) else: - cwrite("@*b{%s==>} %s%s" % ( - st_text, get_timestamp(), cescape(message))) + cwrite( + "@*b{%s==>} %s%s" % ( + st_text, + get_timestamp(), + cescape(_output_filter(message)) + ) + ) for arg in args: - print(indent + six.text_type(arg)) + print(indent + _output_filter(six.text_type(arg))) def info(message, *args, **kwargs): @@ -188,18 +212,29 @@ def info(message, *args, **kwargs): st_text = "" if _stacktrace: st_text = process_stacktrace(st_countback) - cprint("@%s{%s==>} %s%s" % ( - format, st_text, get_timestamp(), cescape(six.text_type(message)) - ), stream=stream) + cprint( + "@%s{%s==>} %s%s" % ( + format, + st_text, + get_timestamp(), + cescape(_output_filter(six.text_type(message))) + ), + stream=stream + ) for arg in args: if wrap: lines = textwrap.wrap( - six.text_type(arg), initial_indent=indent, - subsequent_indent=indent, break_long_words=break_long_words) + _output_filter(six.text_type(arg)), + initial_indent=indent, + subsequent_indent=indent, + break_long_words=break_long_words + ) for line in lines: stream.write(line + '\n') else: - stream.write(indent + six.text_type(arg) + '\n') + stream.write( + indent + _output_filter(six.text_type(arg)) + '\n' + ) def verbose(message, *args, **kwargs): diff --git a/lib/spack/llnl/util/tty/log.py b/lib/spack/llnl/util/tty/log.py index f081893c85e..bc79b323351 100644 --- a/lib/spack/llnl/util/tty/log.py +++ b/lib/spack/llnl/util/tty/log.py @@ -533,13 +533,15 @@ def __enter__(self): # Sets a daemon that writes to file what it reads from a pipe try: # need to pass this b/c multiprocessing closes stdin in child. + input_multiprocess_fd = None try: - input_multiprocess_fd = MultiProcessFd( - os.dup(sys.stdin.fileno()) - ) + if sys.stdin.isatty(): + input_multiprocess_fd = MultiProcessFd( + os.dup(sys.stdin.fileno()) + ) except BaseException: # just don't forward input if this fails - input_multiprocess_fd = None + pass with replace_environment(self.env): self.process = multiprocessing.Process( diff --git a/lib/spack/spack/__init__.py b/lib/spack/spack/__init__.py index 1b14a7d5ff6..8b5c7a94c6b 100644 --- a/lib/spack/spack/__init__.py +++ b/lib/spack/spack/__init__.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) #: major, minor, patch version for Spack, in a tuple -spack_version_info = (0, 16, 1) +spack_version_info = (0, 16, 2) #: String containing Spack version joined with .'s spack_version = '.'.join(str(v) for v in spack_version_info) diff --git a/lib/spack/spack/architecture.py b/lib/spack/spack/architecture.py index 17fbc0e2f14..c9217e09415 100644 --- a/lib/spack/spack/architecture.py +++ b/lib/spack/spack/architecture.py @@ -72,6 +72,7 @@ import spack.config import spack.error as serr import spack.paths +import spack.spec import spack.util.classes import spack.util.executable import spack.version @@ -197,7 +198,6 @@ def optimization_flags(self, compiler): contains both the name and the version of the compiler we want to use """ # Mixed toolchains are not supported yet - import spack.compilers if isinstance(compiler, spack.compiler.Compiler): if spack.compilers.is_mixed_toolchain(compiler): msg = ('microarchitecture specific optimizations are not ' @@ -218,7 +218,6 @@ def optimization_flags(self, compiler): # of its name in compilers.yaml. Depending on where this function # is called we might get either a CompilerSpec or a fully fledged # compiler object. - import spack.spec if isinstance(compiler, spack.spec.CompilerSpec): compiler = spack.compilers.compilers_for_spec(compiler).pop() try: @@ -593,17 +592,20 @@ def use_platform(new_platform): assert isinstance(new_platform, Platform), msg.format(new_platform) original_platform_fn, original_all_platforms_fn = platform, all_platforms - platform = _PickleableCallable(new_platform) - all_platforms = _PickleableCallable([type(new_platform)]) - # Clear configuration and compiler caches - spack.config.config.clear_caches() - spack.compilers._cache_config_files = [] + try: + platform = _PickleableCallable(new_platform) + all_platforms = _PickleableCallable([type(new_platform)]) - yield new_platform + # Clear configuration and compiler caches + spack.config.config.clear_caches() + spack.compilers._cache_config_files = [] - platform, all_platforms = original_platform_fn, original_all_platforms_fn + yield new_platform - # Clear configuration and compiler caches - spack.config.config.clear_caches() - spack.compilers._cache_config_files = [] + finally: + platform, all_platforms = original_platform_fn, original_all_platforms_fn + + # Clear configuration and compiler caches + spack.config.config.clear_caches() + spack.compilers._cache_config_files = [] diff --git a/lib/spack/spack/audit.py b/lib/spack/spack/audit.py index 76616f31e0f..47894383a56 100644 --- a/lib/spack/spack/audit.py +++ b/lib/spack/spack/audit.py @@ -37,12 +37,16 @@ def _search_duplicate_compilers(error_cls): """ import collections import itertools +import re + +from six.moves.urllib.request import urlopen try: from collections.abc import Sequence # novm except ImportError: from collections import Sequence + #: Map an audit tag to a list of callables implementing checks CALLBACKS = {} @@ -261,6 +265,45 @@ def _search_duplicate_specs_in_externals(error_cls): kwargs=('pkgs',) ) +#: Sanity checks on linting +# This can take some time, so it's run separately from packages +package_https_directives = AuditClass( + group='packages-https', + tag='PKG-HTTPS-DIRECTIVES', + description='Sanity checks on https checks of package urls, etc.', + kwargs=('pkgs',) +) + + +@package_https_directives +def _linting_package_file(pkgs, error_cls): + """Check for correctness of links + """ + import llnl.util.lang + + import spack.repo + import spack.spec + + errors = [] + for pkg_name in pkgs: + pkg = spack.repo.get(pkg_name) + + # Does the homepage have http, and if so, does https work? + if pkg.homepage.startswith('http://'): + https = re.sub("http", "https", pkg.homepage, 1) + try: + response = urlopen(https) + except Exception as e: + msg = 'Error with attempting https for "{0}": ' + errors.append(error_cls(msg.format(pkg.name), [str(e)])) + continue + + if response.getcode() == 200: + msg = 'Package "{0}" uses http but has a valid https endpoint.' + errors.append(msg.format(pkg.name)) + + return llnl.util.lang.dedupe(errors) + @package_directives def _unknown_variants_in_directives(pkgs, error_cls): diff --git a/lib/spack/spack/binary_distribution.py b/lib/spack/spack/binary_distribution.py index 647b71cfe3e..4ef5dee06ae 100644 --- a/lib/spack/spack/binary_distribution.py +++ b/lib/spack/spack/binary_distribution.py @@ -29,6 +29,7 @@ import spack.database as spack_db import spack.fetch_strategy as fs import spack.hash_types as ht +import spack.hooks.sbang import spack.mirror import spack.relocate as relocate import spack.util.file_cache as file_cache @@ -615,9 +616,8 @@ def write_buildinfo_file(spec, workdir, rel=False): prefix_to_hash[str(d.prefix)] = d.dag_hash() # Create buildinfo data and write it to disk - import spack.hooks.sbang as sbang buildinfo = {} - buildinfo['sbang_install_path'] = sbang.sbang_install_path() + buildinfo['sbang_install_path'] = spack.hooks.sbang.sbang_install_path() buildinfo['relative_rpaths'] = rel buildinfo['buildpath'] = spack.store.layout.root buildinfo['spackprefix'] = spack.paths.prefix @@ -1169,8 +1169,6 @@ def relocate_package(spec, allow_root): """ Relocate the given package """ - import spack.hooks.sbang as sbang - workdir = str(spec.prefix) buildinfo = read_buildinfo_file(workdir) new_layout_root = str(spack.store.layout.root) @@ -1209,7 +1207,8 @@ def relocate_package(spec, allow_root): prefix_to_prefix_bin = OrderedDict({}) if old_sbang_install_path: - prefix_to_prefix_text[old_sbang_install_path] = sbang.sbang_install_path() + install_path = spack.hooks.sbang.sbang_install_path() + prefix_to_prefix_text[old_sbang_install_path] = install_path prefix_to_prefix_text[old_prefix] = new_prefix prefix_to_prefix_bin[old_prefix] = new_prefix @@ -1223,7 +1222,7 @@ def relocate_package(spec, allow_root): # now a POSIX script that lives in the install prefix. Old packages # will have the old sbang location in their shebangs. orig_sbang = '#!/bin/bash {0}/bin/sbang'.format(old_spack_prefix) - new_sbang = sbang.sbang_shebang_line() + new_sbang = spack.hooks.sbang.sbang_shebang_line() prefix_to_prefix_text[orig_sbang] = new_sbang tty.debug("Relocating package from", diff --git a/lib/spack/spack/bootstrap.py b/lib/spack/spack/bootstrap.py index 92bbb2fa420..be48d66a214 100644 --- a/lib/spack/spack/bootstrap.py +++ b/lib/spack/spack/bootstrap.py @@ -2,7 +2,10 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from __future__ import print_function + import contextlib +import json import os import sys @@ -18,7 +21,10 @@ import llnl.util.tty as tty import spack.architecture +import spack.binary_distribution import spack.config +import spack.environment +import spack.main import spack.paths import spack.repo import spack.spec @@ -28,6 +34,214 @@ import spack.util.path from spack.util.environment import EnvironmentModifications +#: Map a bootstrapper type to the corresponding class +_bootstrap_methods = {} + + +def _bootstrapper(type): + """Decorator to register classes implementing bootstrapping + methods. + + Args: + type (str): string identifying the class + """ + def _register(cls): + _bootstrap_methods[type] = cls + return cls + return _register + + +def _try_import_from_store(module, abstract_spec_str): + """Return True if the module can be imported from an already + installed spec, False otherwise. + + Args: + module: Python module to be imported + abstract_spec_str: abstract spec that may provide the module + """ + bincache_platform = spack.architecture.real_platform() + if str(bincache_platform) == 'cray': + bincache_platform = spack.platforms.linux.Linux() + with spack.architecture.use_platform(bincache_platform): + abstract_spec_str = str(spack.spec.Spec(abstract_spec_str)) + + # We have to run as part of this python interpreter + abstract_spec_str += ' ^' + spec_for_current_python() + + installed_specs = spack.store.db.query(abstract_spec_str, installed=True) + + for candidate_spec in installed_specs: + lib_spd = candidate_spec['python'].package.default_site_packages_dir + lib64_spd = lib_spd.replace('lib/', 'lib64/') + module_paths = [ + os.path.join(candidate_spec.prefix, lib_spd), + os.path.join(candidate_spec.prefix, lib64_spd) + ] + sys.path.extend(module_paths) + + try: + if _python_import(module): + msg = ('[BOOTSTRAP MODULE {0}] The installed spec "{1}/{2}" ' + 'provides the "{0}" Python module').format( + module, abstract_spec_str, candidate_spec.dag_hash() + ) + tty.debug(msg) + return True + except Exception as e: + msg = ('unexpected error while trying to import module ' + '"{0}" from spec "{1}" [error="{2}"]') + tty.warn(msg.format(module, candidate_spec, str(e))) + else: + msg = "Spec {0} did not provide module {1}" + tty.warn(msg.format(candidate_spec, module)) + + sys.path = sys.path[:-2] + + return False + + +@_bootstrapper(type='buildcache') +class _BuildcacheBootstrapper(object): + """Install the software needed during bootstrapping from a buildcache.""" + def __init__(self, conf): + self.name = conf['name'] + self.url = conf['info']['url'] + + def try_import(self, module, abstract_spec_str): + # This import is local since it is needed only on Cray + import spack.platforms.linux + + if _try_import_from_store(module, abstract_spec_str): + return True + + # Try to install from an unsigned binary cache + abstract_spec = spack.spec.Spec( + abstract_spec_str + ' ^' + spec_for_current_python() + ) + + # On Cray we want to use Linux binaries if available from mirrors + bincache_platform = spack.architecture.real_platform() + if str(bincache_platform) == 'cray': + bincache_platform = spack.platforms.linux.Linux() + with spack.architecture.use_platform(bincache_platform): + abstract_spec = spack.spec.Spec( + abstract_spec_str + ' ^' + spec_for_current_python() + ) + + # Read information on verified clingo binaries + json_filename = '{0}.json'.format(module) + json_path = os.path.join( + spack.paths.share_path, 'bootstrap', self.name, json_filename + ) + with open(json_path) as f: + data = json.load(f) + + buildcache = spack.main.SpackCommand('buildcache') + # Ensure we see only the buildcache being used to bootstrap + mirror_scope = spack.config.InternalConfigScope( + 'bootstrap', {'mirrors:': {self.name: self.url}} + ) + with spack.config.override(mirror_scope): + # This index is currently needed to get the compiler used to build some + # specs that wwe know by dag hash. + spack.binary_distribution.binary_index.regenerate_spec_cache() + index = spack.binary_distribution.update_cache_and_get_specs() + for item in data['verified']: + candidate_spec = item['spec'] + python_spec = item['python'] + # Skip specs which are not compatible + if not abstract_spec.satisfies(candidate_spec): + continue + + if python_spec not in abstract_spec: + continue + + for pkg_name, pkg_hash, pkg_sha256 in item['binaries']: + msg = ('[BOOTSTRAP MODULE {0}] Try installing "{1}" from binary ' + 'cache at "{2}"') + tty.debug(msg.format(module, pkg_name, self.url)) + index_spec = next(x for x in index if x.dag_hash() == pkg_hash) + # Reconstruct the compiler that we need to use for bootstrapping + compiler_entry = { + "modules": [], + "operating_system": str(index_spec.os), + "paths": { + "cc": "/dev/null", + "cxx": "/dev/null", + "f77": "/dev/null", + "fc": "/dev/null" + }, + "spec": str(index_spec.compiler), + "target": str(index_spec.target.family) + } + with spack.architecture.use_platform(bincache_platform): + with spack.config.override( + 'compilers', [{'compiler': compiler_entry}] + ): + spec_str = '/' + pkg_hash + install_args = [ + 'install', + '--sha256', pkg_sha256, + '-a', '-u', '-o', '-f', spec_str + ] + buildcache(*install_args, fail_on_error=False) + # TODO: undo installations that didn't complete? + + if _try_import_from_store(module, abstract_spec_str): + return True + return False + + +@_bootstrapper(type='install') +class _SourceBootstrapper(object): + """Install the software needed during bootstrapping from sources.""" + def __init__(self, conf): + self.conf = conf + + @staticmethod + def try_import(module, abstract_spec_str): + if _try_import_from_store(module, abstract_spec_str): + return True + + # Try to build and install from sources + with spack_python_interpreter(): + # Add hint to use frontend operating system on Cray + if str(spack.architecture.platform()) == 'cray': + abstract_spec_str += ' os=fe' + + concrete_spec = spack.spec.Spec( + abstract_spec_str + ' ^' + spec_for_current_python() + ) + + if module == 'clingo': + # TODO: remove when the old concretizer is deprecated + concrete_spec._old_concretize() + else: + concrete_spec.concretize() + + msg = "[BOOTSTRAP MODULE {0}] Try installing '{1}' from sources" + tty.debug(msg.format(module, abstract_spec_str)) + + # Install the spec that should make the module importable + concrete_spec.package.do_install() + + return _try_import_from_store(module, abstract_spec_str=abstract_spec_str) + + +def _make_bootstrapper(conf): + """Return a bootstrap object built according to the + configuration argument + """ + btype = conf['type'] + return _bootstrap_methods[btype](conf) + + +def _source_is_trusted(conf): + trusted, name = spack.config.get('bootstrap:trusted'), conf['name'] + if name not in trusted: + return False + return trusted[name] + def spec_for_current_python(): """For bootstrapping purposes we are just interested in the Python @@ -54,7 +268,7 @@ def spack_python_interpreter(): which Spack is currently running as the only Python external spec available. """ - python_prefix = os.path.dirname(os.path.dirname(sys.executable)) + python_prefix = sys.exec_prefix external_python = spec_for_current_python() entry = { @@ -68,63 +282,58 @@ def spack_python_interpreter(): yield -def make_module_available(module, spec=None, install=False): - """Ensure module is importable""" - # If we already can import it, that's great - try: - __import__(module) +def ensure_module_importable_or_raise(module, abstract_spec=None): + """Make the requested module available for import, or raise. + + This function tries to import a Python module in the current interpreter + using, in order, the methods configured in bootstrap.yaml. + + If none of the methods succeed, an exception is raised. The function exits + on first success. + + Args: + module (str): module to be imported in the current interpreter + abstract_spec (str): abstract spec that might provide the module. If not + given it defaults to "module" + + Raises: + ImportError: if the module couldn't be imported + """ + # If we can import it already, that's great + tty.debug("[BOOTSTRAP MODULE {0}] Try importing from Python".format(module)) + if _python_import(module): return - except ImportError: - pass - # If it's already installed, use it - # Search by spec - spec = spack.spec.Spec(spec or module) + abstract_spec = abstract_spec or module + source_configs = spack.config.get('bootstrap:sources', []) + for current_config in source_configs: + if not _source_is_trusted(current_config): + msg = ('[BOOTSTRAP MODULE {0}] Skipping source "{1}" since it is ' + 'not trusted').format(module, current_config['name']) + tty.debug(msg) + continue - # We have to run as part of this python - # We can constrain by a shortened version in place of a version range - # because this spec is only used for querying or as a placeholder to be - # replaced by an external that already has a concrete version. This syntax - # is not sufficient when concretizing without an external, as it will - # concretize to python@X.Y instead of python@X.Y.Z - python_requirement = '^' + spec_for_current_python() - spec.constrain(python_requirement) - installed_specs = spack.store.db.query(spec, installed=True) - - for ispec in installed_specs: - # TODO: make sure run-environment is appropriate - module_path = ispec['python'].package.get_python_lib(prefix=ispec.prefix) + b = _make_bootstrapper(current_config) try: - sys.path.append(module_path) - __import__(module) - return - except ImportError: - tty.warn("Spec %s did not provide module %s" % (ispec, module)) - sys.path = sys.path[:-1] + if b.try_import(module, abstract_spec): + return + except Exception as e: + msg = '[BOOTSTRAP MODULE {0}] Unexpected error "{1}"' + tty.debug(msg.format(module, str(e))) - def _raise_error(module_name, module_spec): - error_msg = 'cannot import module "{0}"'.format(module_name) - if module_spec: - error_msg += ' from spec "{0}'.format(module_spec) - raise ImportError(error_msg) + # We couldn't import in any way, so raise an import error + msg = 'cannot bootstrap the "{0}" Python module'.format(module) + if abstract_spec: + msg += ' from spec "{0}"'.format(abstract_spec) + raise ImportError(msg) - if not install: - _raise_error(module, spec) - with spack_python_interpreter(): - # We will install for ourselves, using this python if needed - # Concretize the spec - spec.concretize() - spec.package.do_install() - - module_path = spec['python'].package.get_python_lib(prefix=spec.prefix) +def _python_import(module): try: - sys.path.append(module_path) __import__(module) - return except ImportError: - sys.path = sys.path[:-1] - _raise_error(module, spec) + return False + return True def get_executable(exe, spec=None, install=False): @@ -138,7 +347,8 @@ def get_executable(exe, spec=None, install=False): When ``install`` is True, Spack will use the python used to run Spack as an external. The ``install`` option should only be used with packages that install quickly (when using external python) or are guaranteed by Spack - organization to be in a binary mirror (clingo).""" + organization to be in a binary mirror (clingo). + """ # Search the system first runner = spack.util.executable.which(exe) if runner: @@ -212,15 +422,16 @@ def _bootstrap_config_scopes(): @contextlib.contextmanager def ensure_bootstrap_configuration(): bootstrap_store_path = store_path() - with spack.architecture.use_platform(spack.architecture.real_platform()): - with spack.repo.use_repositories(spack.paths.packages_path): - with spack.store.use_store(bootstrap_store_path): - # Default configuration scopes excluding command line - # and builtin but accounting for platform specific scopes - config_scopes = _bootstrap_config_scopes() - with spack.config.use_configuration(*config_scopes): - with spack_python_interpreter(): - yield + with spack.environment.deactivate_environment(): + with spack.architecture.use_platform(spack.architecture.real_platform()): + with spack.repo.use_repositories(spack.paths.packages_path): + with spack.store.use_store(bootstrap_store_path): + # Default configuration scopes excluding command line + # and builtin but accounting for platform specific scopes + config_scopes = _bootstrap_config_scopes() + with spack.config.use_configuration(*config_scopes): + with spack_python_interpreter(): + yield def store_path(): @@ -251,14 +462,17 @@ def clingo_root_spec(): else: spec_str += ' %gcc' - # Add hint to use frontend operating system on Cray - if str(spack.architecture.platform()) == 'cray': - spec_str += ' os=fe' - # Add the generic target generic_target = archspec.cpu.host().family spec_str += ' target={0}'.format(str(generic_target)) tty.debug('[BOOTSTRAP ROOT SPEC] clingo: {0}'.format(spec_str)) - return spack.spec.Spec(spec_str) + return spec_str + + +def ensure_clingo_importable_or_raise(): + """Ensure that the clingo module is available for import.""" + ensure_module_importable_or_raise( + module='clingo', abstract_spec=clingo_root_spec() + ) diff --git a/lib/spack/spack/build_environment.py b/lib/spack/spack/build_environment.py index 7e99dc6441e..97903075e1e 100644 --- a/lib/spack/spack/build_environment.py +++ b/lib/spack/spack/build_environment.py @@ -61,6 +61,7 @@ import spack.schema.environment import spack.store import spack.subprocess_context +import spack.user_environment import spack.util.path from spack.error import NoHeadersError, NoLibrariesError from spack.util.cpus import cpus_available @@ -69,6 +70,7 @@ env_flag, filter_system_paths, get_path, + inspect_path, is_system_path, preserve_environment, system_dirs, @@ -781,6 +783,13 @@ def setup_package(pkg, dirty, context='build'): "config to assume that the package is part of the system" " includes and omit it when invoked with '--cflags'.") elif context == 'test': + env.extend( + inspect_path( + pkg.spec.prefix, + spack.user_environment.prefix_inspections(pkg.spec.platform), + exclude=is_system_path + ) + ) pkg.setup_run_environment(env) env.prepend_path('PATH', '.') diff --git a/lib/spack/spack/build_systems/cmake.py b/lib/spack/spack/build_systems/cmake.py index a3a1bb51e33..bf431e139d9 100644 --- a/lib/spack/spack/build_systems/cmake.py +++ b/lib/spack/spack/build_systems/cmake.py @@ -254,9 +254,9 @@ def define_from_variant(self, cmake_var, variant=None): .. code-block:: python - [define_from_variant('BUILD_SHARED_LIBS', 'shared'), - define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'), - define_from_variant('SWR')] + [self.define_from_variant('BUILD_SHARED_LIBS', 'shared'), + self.define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'), + self.define_from_variant('SWR')] will generate the following configuration options: diff --git a/lib/spack/spack/build_systems/cuda.py b/lib/spack/spack/build_systems/cuda.py index b2b77835004..79d63fab10b 100644 --- a/lib/spack/spack/build_systems/cuda.py +++ b/lib/spack/spack/build_systems/cuda.py @@ -5,6 +5,7 @@ import spack.variant from spack.directives import conflicts, depends_on, variant +from spack.multimethod import when from spack.package import PackageBase @@ -87,90 +88,87 @@ def cuda_flags(arch_list): # Linux x86_64 compiler conflicts from here: # https://gist.github.com/ax3l/9489132 - 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('%gcc@:4', when='+cuda ^cuda@11.0.2: target=x86_64:') - conflicts('%gcc@10:', when='+cuda ^cuda@:11.0.3 target=x86_64:') - conflicts('%gcc@11:', when='+cuda ^cuda@:11.1.0 target=x86_64:') - conflicts('%pgi@:14.8', when='+cuda ^cuda@:7.0.27 target=x86_64:') - conflicts('%pgi@:15.3,15.5:', when='+cuda ^cuda@7.5 target=x86_64:') - conflicts('%pgi@:16.2,16.0:16.3', when='+cuda ^cuda@8 target=x86_64:') - conflicts('%pgi@:15,18:', when='+cuda ^cuda@9.0:9.1 target=x86_64:') - conflicts('%pgi@:16,19:', when='+cuda ^cuda@9.2.88:10 target=x86_64:') - conflicts('%pgi@:17,20:', - when='+cuda ^cuda@10.1.105:10.2.89 target=x86_64:') - conflicts('%pgi@:17,21:', - when='+cuda ^cuda@11.0.2:11.1.0 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:') + with when('~allow-unsupported-compilers'): + 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('%gcc@:4', when='+cuda ^cuda@11.0.2: target=x86_64:') + conflicts('%gcc@10:', when='+cuda ^cuda@:11.0.3 target=x86_64:') + conflicts('%gcc@11:', when='+cuda ^cuda@:11.1.0 target=x86_64:') + conflicts('%pgi@:14.8', when='+cuda ^cuda@:7.0.27 target=x86_64:') + conflicts('%pgi@:15.3,15.5:', when='+cuda ^cuda@7.5 target=x86_64:') + conflicts('%pgi@:16.2,16.0:16.3', when='+cuda ^cuda@8 target=x86_64:') + conflicts('%pgi@:15,18:', when='+cuda ^cuda@9.0:9.1 target=x86_64:') + conflicts('%pgi@:16,19:', when='+cuda ^cuda@9.2.88:10 target=x86_64:') + conflicts('%pgi@:17,20:', when='+cuda ^cuda@10.1.105:10.2.89 target=x86_64:') + conflicts('%pgi@:17,21:', when='+cuda ^cuda@11.0.2:11.1.0 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:') - # x86_64 vs. ppc64le differ according to NVidia docs - # Linux ppc64le compiler conflicts from Table from the docs below: - # https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html - # https://docs.nvidia.com/cuda/archive/9.2/cuda-installation-guide-linux/index.html - # https://docs.nvidia.com/cuda/archive/9.1/cuda-installation-guide-linux/index.html - # https://docs.nvidia.com/cuda/archive/9.0/cuda-installation-guide-linux/index.html - # https://docs.nvidia.com/cuda/archive/8.0/cuda-installation-guide-linux/index.html + # x86_64 vs. ppc64le differ according to NVidia docs + # Linux ppc64le compiler conflicts from Table from the docs below: + # https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html + # https://docs.nvidia.com/cuda/archive/9.2/cuda-installation-guide-linux/index.html + # https://docs.nvidia.com/cuda/archive/9.1/cuda-installation-guide-linux/index.html + # https://docs.nvidia.com/cuda/archive/9.0/cuda-installation-guide-linux/index.html + # 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:') - # officially, CUDA 11.0.2 only supports the system GCC 8.3 on ppc64le - conflicts('%gcc@:4', when='+cuda ^cuda@11.0.2: target=ppc64le:') - conflicts('%gcc@10:', when='+cuda ^cuda@:11.0.3 target=ppc64le:') - conflicts('%gcc@11:', when='+cuda ^cuda@:11.1.0 target=ppc64le:') - conflicts('%pgi', when='+cuda ^cuda@:8 target=ppc64le:') - conflicts('%pgi@:16', when='+cuda ^cuda@:9.1.185 target=ppc64le:') - conflicts('%pgi@:17', when='+cuda ^cuda@:10 target=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.3 target=ppc64le:') - conflicts('%clang@11:', when='+cuda ^cuda@:11.1.0 target=ppc64le:') + # 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:') + # officially, CUDA 11.0.2 only supports the system GCC 8.3 on ppc64le + conflicts('%gcc@:4', when='+cuda ^cuda@11.0.2: target=ppc64le:') + conflicts('%gcc@10:', when='+cuda ^cuda@:11.0.2 target=ppc64le:') + conflicts('%gcc@11:', when='+cuda ^cuda@:11.1.0 target=ppc64le:') + conflicts('%pgi', when='+cuda ^cuda@:8 target=ppc64le:') + conflicts('%pgi@:16', when='+cuda ^cuda@:9.1.185 target=ppc64le:') + conflicts('%pgi@:17', when='+cuda ^cuda@:10 target=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:') - # 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:') - # 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') + # 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:') + # 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') - # 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') + # 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') - # Darwin. - # TODO: add missing conflicts for %apple-clang cuda@:10 - conflicts('platform=darwin', when='+cuda ^cuda@11.0.2:') + # Darwin. + # TODO: add missing conflicts for %apple-clang cuda@:10 + conflicts('platform=darwin', when='+cuda ^cuda@11.0.2: ') # Make sure cuda_arch can not be used without +cuda for value in cuda_arch_values: diff --git a/lib/spack/spack/build_systems/python.py b/lib/spack/spack/build_systems/python.py index 27b1d4a10c4..c3bf323d84c 100644 --- a/lib/spack/spack/build_systems/python.py +++ b/lib/spack/spack/build_systems/python.py @@ -127,7 +127,10 @@ def import_modules(self): list: list of strings of module names """ modules = [] - root = self.spec['python'].package.get_python_lib(prefix=self.prefix) + root = os.path.join( + self.prefix, + self.spec['python'].package.config_vars['python_lib']['false']['false'], + ) # Some Python libraries are packages: collections of modules # distributed in directories containing __init__.py files @@ -252,12 +255,11 @@ def install_args(self, spec, prefix): # Get all relative paths since we set the root to `prefix` # We query the python with which these will be used for the lib and inc # directories. This ensures we use `lib`/`lib64` as expected by python. - pure_site_packages_dir = spec['python'].package.get_python_lib( - plat_specific=False, prefix='') - plat_site_packages_dir = spec['python'].package.get_python_lib( - plat_specific=True, prefix='') - inc_dir = spec['python'].package.get_python_inc( - plat_specific=True, prefix='') + pure_site_packages_dir = spec['python'].package.config_vars[ + 'python_lib']['false']['false'] + plat_site_packages_dir = spec['python'].package.config_vars[ + 'python_lib']['true']['false'] + inc_dir = spec['python'].package.config_vars['python_inc']['true'] args += ['--root=%s' % prefix, '--install-purelib=%s' % pure_site_packages_dir, diff --git a/lib/spack/spack/build_systems/sip.py b/lib/spack/spack/build_systems/sip.py index 744989e2d6e..1b9d01fbf48 100644 --- a/lib/spack/spack/build_systems/sip.py +++ b/lib/spack/spack/build_systems/sip.py @@ -64,7 +64,10 @@ def import_modules(self): list: list of strings of module names """ modules = [] - root = self.spec['python'].package.get_python_lib(prefix=self.prefix) + root = os.path.join( + self.prefix, + self.spec['python'].package.config_vars['python_lib']['false']['false'], + ) # Some Python libraries are packages: collections of modules # distributed in directories containing __init__.py files diff --git a/lib/spack/spack/ci.py b/lib/spack/spack/ci.py index 7f3d88a9257..6fbddf6385a 100644 --- a/lib/spack/spack/ci.py +++ b/lib/spack/spack/ci.py @@ -45,6 +45,8 @@ ] SPACK_PR_MIRRORS_ROOT_URL = 's3://spack-binaries-prs' +SPACK_SHARED_PR_MIRROR_URL = url_util.join(SPACK_PR_MIRRORS_ROOT_URL, + 'shared_pr_mirror') TEMP_STORAGE_MIRROR_NAME = 'ci_temporary_mirror' spack_gpg = spack.main.SpackCommand('gpg') @@ -612,11 +614,14 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file, 'strip-compilers': False, }) - # Add this mirror if it's enabled, as some specs might be up to date - # here and thus not need to be rebuilt. + # Add per-PR mirror (and shared PR mirror) if enabled, as some specs might + # be up to date in one of those and thus not need to be rebuilt. if pr_mirror_url: spack.mirror.add( 'ci_pr_mirror', pr_mirror_url, cfg.default_modify_scope()) + spack.mirror.add('ci_shared_pr_mirror', + SPACK_SHARED_PR_MIRROR_URL, + cfg.default_modify_scope()) pipeline_artifacts_dir = artifacts_root if not pipeline_artifacts_dir: @@ -1316,17 +1321,20 @@ def relate_cdash_builds(spec_map, cdash_base_url, job_build_id, cdash_project, request = Request(cdash_api_url, data=enc_data, headers=headers) - response = opener.open(request) - response_code = response.getcode() + try: + response = opener.open(request) + response_code = response.getcode() - if response_code != 200 and response_code != 201: - msg = 'Relate builds ({0} -> {1}) failed (resp code = {2})'.format( - job_build_id, dep_build_id, response_code) - tty.warn(msg) - return + if response_code != 200 and response_code != 201: + msg = 'Relate builds ({0} -> {1}) failed (resp code = {2})'.format( + job_build_id, dep_build_id, response_code) + tty.warn(msg) + return - response_text = response.read() - tty.debug('Relate builds response: {0}'.format(response_text)) + response_text = response.read() + tty.debug('Relate builds response: {0}'.format(response_text)) + except Exception as e: + print("Relating builds in CDash failed: {0}".format(e)) def write_cdashid_to_mirror(cdashid, spec, mirror_url): diff --git a/lib/spack/spack/cmd/__init__.py b/lib/spack/spack/cmd/__init__.py index 3944d5450e5..f0a70308222 100644 --- a/lib/spack/spack/cmd/__init__.py +++ b/lib/spack/spack/cmd/__init__.py @@ -21,6 +21,7 @@ from llnl.util.tty.color import colorize import spack.config +import spack.environment as ev import spack.error import spack.extensions import spack.paths @@ -186,29 +187,13 @@ def matching_spec_from_env(spec): If no matching spec is found in the environment (or if no environment is active), this will return the given spec but concretized. """ - env = spack.environment.get_env({}, cmd_name) + env = ev.active_environment() if env: return env.matching_spec(spec) or spec.concretized() else: return spec.concretized() -def elide_list(line_list, max_num=10): - """Takes a long list and limits it to a smaller number of elements, - replacing intervening elements with '...'. For example:: - - elide_list([1,2,3,4,5,6], 4) - - gives:: - - [1, 2, 3, '...', 6] - """ - if len(line_list) > max_num: - return line_list[:max_num - 1] + ['...'] + line_list[-1:] - else: - return line_list - - def disambiguate_spec(spec, env, local=False, installed=True, first=False): """Given a spec, figure out which installed package it refers to. @@ -501,3 +486,71 @@ def extant_file(f): if not os.path.isfile(f): raise argparse.ArgumentTypeError('%s does not exist' % f) return f + + +def require_active_env(cmd_name): + """Used by commands to get the active environment + + If an environment is not found, print an error message that says the calling + command *needs* an active environment. + + Arguments: + cmd_name (str): name of calling command + + Returns: + (spack.environment.Environment): the active environment + """ + env = ev.active_environment() + + if env: + return env + else: + tty.die( + '`spack %s` requires an environment' % cmd_name, + 'activate an environment first:', + ' spack env activate ENV', + 'or use:', + ' spack -e ENV %s ...' % cmd_name) + + +def find_environment(args): + """Find active environment from args or environment variable. + + Check for an environment in this order: + 1. via ``spack -e ENV`` or ``spack -D DIR`` (arguments) + 2. via a path in the spack.environment.spack_env_var environment variable. + + If an environment is found, read it in. If not, return None. + + Arguments: + args (argparse.Namespace): argparse namespace with command arguments + + Returns: + (spack.environment.Environment): a found environment, or ``None`` + """ + + # treat env as a name + env = args.env + if env: + if ev.exists(env): + return ev.read(env) + + else: + # if env was specified, see if it is a directory otherwise, look + # at env_dir (env and env_dir are mutually exclusive) + env = args.env_dir + + # if no argument, look for the environment variable + if not env: + env = os.environ.get(ev.spack_env_var) + + # nothing was set; there's no active environment + if not env: + return None + + # if we get here, env isn't the name of a spack environment; it has + # to be a path to an environment, or there is something wrong. + if ev.is_env_dir(env): + return ev.Environment(env) + + raise ev.SpackEnvironmentError('no environment in %s' % env) diff --git a/lib/spack/spack/cmd/activate.py b/lib/spack/spack/cmd/activate.py index a6c27b2f1d6..9b96733faee 100644 --- a/lib/spack/spack/cmd/activate.py +++ b/lib/spack/spack/cmd/activate.py @@ -30,8 +30,7 @@ def activate(parser, args): if len(specs) != 1: tty.die("activate requires one spec. %d given." % len(specs)) - env = ev.get_env(args, 'activate') - spec = spack.cmd.disambiguate_spec(specs[0], env) + spec = spack.cmd.disambiguate_spec(specs[0], ev.active_environment()) if not spec.package.is_extension: tty.die("%s is not an extension." % spec.name) diff --git a/lib/spack/spack/cmd/add.py b/lib/spack/spack/cmd/add.py index 453b9cd886b..631038ff2b9 100644 --- a/lib/spack/spack/cmd/add.py +++ b/lib/spack/spack/cmd/add.py @@ -7,7 +7,6 @@ import spack.cmd import spack.cmd.common.arguments as arguments -import spack.environment as ev description = 'add a spec to an environment' section = "environments" @@ -22,7 +21,7 @@ def setup_parser(subparser): def add(parser, args): - env = ev.get_env(args, 'add', required=True) + env = spack.cmd.require_active_env(cmd_name='add') with env.write_transaction(): for spec in spack.cmd.parse_specs(args.specs): diff --git a/lib/spack/spack/cmd/analyze.py b/lib/spack/spack/cmd/analyze.py index 0bdf47e73f6..f584674ae27 100644 --- a/lib/spack/spack/cmd/analyze.py +++ b/lib/spack/spack/cmd/analyze.py @@ -95,7 +95,7 @@ def analyze(parser, args, **kwargs): sys.exit(0) # handle active environment, if any - env = ev.get_env(args, 'analyze') + env = ev.active_environment() # Get an disambiguate spec (we should only have one) specs = spack.cmd.parse_specs(args.spec) diff --git a/lib/spack/spack/cmd/audit.py b/lib/spack/spack/cmd/audit.py index 67d761b7d83..0e879250217 100644 --- a/lib/spack/spack/cmd/audit.py +++ b/lib/spack/spack/cmd/audit.py @@ -2,6 +2,7 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import llnl.util.tty as tty import llnl.util.tty.color as cl import spack.audit @@ -19,12 +20,24 @@ def setup_parser(subparser): # Audit configuration files sp.add_parser('configs', help='audit configuration files') + # Https and other linting + https_parser = sp.add_parser('packages-https', help='check https in packages') + https_parser.add_argument( + '--all', + action='store_true', + default=False, + dest='check_all', + help="audit all packages" + ) + # Audit package recipes pkg_parser = sp.add_parser('packages', help='audit package recipes') - pkg_parser.add_argument( - 'name', metavar='PKG', nargs='*', - help='package to be analyzed (if none all packages will be processed)', - ) + + for group in [pkg_parser, https_parser]: + group.add_argument( + 'name', metavar='PKG', nargs='*', + help='package to be analyzed (if none all packages will be processed)', + ) # List all checks sp.add_parser('list', help='list available checks and exits') @@ -41,6 +54,17 @@ def packages(parser, args): _process_reports(reports) +def packages_https(parser, args): + + # Since packages takes a long time, --all is required without name + if not args.check_all and not args.name: + tty.die("Please specify one or more packages to audit, or --all.") + + pkgs = args.name or spack.repo.path.all_package_names() + reports = spack.audit.run_group(args.subcommand, pkgs=pkgs) + _process_reports(reports) + + def list(parser, args): for subcommand, check_tags in spack.audit.GROUPS.items(): print(cl.colorize('@*b{' + subcommand + '}:')) @@ -58,6 +82,7 @@ def audit(parser, args): subcommands = { 'configs': configs, 'packages': packages, + 'packages-https': packages_https, 'list': list } subcommands[args.subcommand](parser, args) diff --git a/lib/spack/spack/cmd/bootstrap.py b/lib/spack/spack/cmd/bootstrap.py index 2c95da117cb..ae3e1b76398 100644 --- a/lib/spack/spack/cmd/bootstrap.py +++ b/lib/spack/spack/cmd/bootstrap.py @@ -2,10 +2,13 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from __future__ import print_function + import os.path import shutil import llnl.util.tty +import llnl.util.tty.color import spack.cmd.common.arguments import spack.config @@ -51,6 +54,27 @@ def setup_parser(subparser): help='set the bootstrap directory to this value' ) + list = sp.add_parser( + 'list', help='list the methods available for bootstrapping' + ) + _add_scope_option(list) + + trust = sp.add_parser( + 'trust', help='trust a bootstrapping method' + ) + _add_scope_option(trust) + trust.add_argument( + 'name', help='name of the method to be trusted' + ) + + untrust = sp.add_parser( + 'untrust', help='untrust a bootstrapping method' + ) + _add_scope_option(untrust) + untrust.add_argument( + 'name', help='name of the method to be untrusted' + ) + def _enable_or_disable(args): # Set to True if we called "enable", otherwise set to false @@ -100,11 +124,97 @@ def _root(args): print(root) +def _list(args): + sources = spack.config.get( + 'bootstrap:sources', default=None, scope=args.scope + ) + + if not sources: + llnl.util.tty.msg( + "No method available for bootstrapping Spack's dependencies" + ) + return + + def _print_method(source, trusted): + color = llnl.util.tty.color + + def fmt(header, content): + header_fmt = "@*b{{{0}:}} {1}" + color.cprint(header_fmt.format(header, content)) + + trust_str = "@*y{UNKNOWN}" + if trusted is True: + trust_str = "@*g{TRUSTED}" + elif trusted is False: + trust_str = "@*r{UNTRUSTED}" + + fmt("Name", source['name'] + ' ' + trust_str) + print() + fmt(" Type", source['type']) + print() + + info_lines = ['\n'] + for key, value in source.get('info', {}).items(): + info_lines.append(' ' * 4 + '@*{{{0}}}: {1}\n'.format(key, value)) + if len(info_lines) > 1: + fmt(" Info", ''.join(info_lines)) + + description_lines = ['\n'] + for line in source['description'].split('\n'): + description_lines.append(' ' * 4 + line + '\n') + + fmt(" Description", ''.join(description_lines)) + + trusted = spack.config.get('bootstrap:trusted', {}) + for s in sources: + _print_method(s, trusted.get(s['name'], None)) + + +def _write_trust_state(args, value): + name = args.name + sources = spack.config.get('bootstrap:sources') + + matches = [s for s in sources if s['name'] == name] + if not matches: + names = [s['name'] for s in sources] + msg = ('there is no bootstrapping method named "{0}". Valid ' + 'method names are: {1}'.format(name, ', '.join(names))) + raise RuntimeError(msg) + + if len(matches) > 1: + msg = ('there is more than one bootstrapping method named "{0}". ' + 'Please delete all methods but one from bootstrap.yaml ' + 'before proceeding').format(name) + raise RuntimeError(msg) + + # Setting the scope explicitly is needed to not copy over to a new scope + # the entire default configuration for bootstrap.yaml + scope = args.scope or spack.config.default_modify_scope('bootstrap') + spack.config.add( + 'bootstrap:trusted:{0}:{1}'.format(name, str(value)), scope=scope + ) + + +def _trust(args): + _write_trust_state(args, value=True) + msg = '"{0}" is now trusted for bootstrapping' + llnl.util.tty.msg(msg.format(args.name)) + + +def _untrust(args): + _write_trust_state(args, value=False) + msg = '"{0}" is now untrusted and will not be used for bootstrapping' + llnl.util.tty.msg(msg.format(args.name)) + + def bootstrap(parser, args): callbacks = { 'enable': _enable_or_disable, 'disable': _enable_or_disable, 'reset': _reset, - 'root': _root + 'root': _root, + 'list': _list, + 'trust': _trust, + 'untrust': _untrust } callbacks[args.subcommand](args) diff --git a/lib/spack/spack/cmd/buildcache.py b/lib/spack/spack/cmd/buildcache.py index ea1297c726c..64f24dcc346 100644 --- a/lib/spack/spack/cmd/buildcache.py +++ b/lib/spack/spack/cmd/buildcache.py @@ -2,10 +2,11 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - +import argparse import os import shutil import sys +import tempfile import llnl.util.tty as tty @@ -15,16 +16,20 @@ import spack.cmd.common.arguments as arguments import spack.config import spack.environment as ev +import spack.fetch_strategy as fs import spack.hash_types as ht import spack.mirror import spack.relocate import spack.repo import spack.spec import spack.store +import spack.util.crypto import spack.util.url as url_util +import spack.util.web as web_util from spack.cmd import display_specs from spack.error import SpecError from spack.spec import Spec, save_dependency_spec_yamls +from spack.stage import Stage from spack.util.string import plural description = "create, download and install binary packages" @@ -97,6 +102,8 @@ def setup_parser(subparser): install.add_argument('-o', '--otherarch', action='store_true', help="install specs from other architectures" + " instead of default platform and OS") + # This argument is needed by the bootstrapping logic to verify checksums + install.add_argument('--sha256', help=argparse.SUPPRESS) arguments.add_common_arguments(install, ['specs']) install.set_defaults(func=installtarball) @@ -223,6 +230,36 @@ def setup_parser(subparser): help='Destination mirror url') copy.set_defaults(func=buildcache_copy) + # Sync buildcache entries from one mirror to another + sync = subparsers.add_parser('sync', help=buildcache_sync.__doc__) + source = sync.add_mutually_exclusive_group(required=True) + source.add_argument('--src-directory', + metavar='DIRECTORY', + type=str, + help="Source mirror as a local file path") + source.add_argument('--src-mirror-name', + metavar='MIRROR_NAME', + type=str, + help="Name of the source mirror") + source.add_argument('--src-mirror-url', + metavar='MIRROR_URL', + type=str, + help="URL of the source mirror") + dest = sync.add_mutually_exclusive_group(required=True) + dest.add_argument('--dest-directory', + metavar='DIRECTORY', + type=str, + help="Destination mirror as a local file path") + dest.add_argument('--dest-mirror-name', + metavar='MIRROR_NAME', + type=str, + help="Name of the destination mirror") + dest.add_argument('--dest-mirror-url', + metavar='MIRROR_URL', + type=str, + help="URL of the destination mirror") + sync.set_defaults(func=buildcache_sync) + # Update buildcache index without copying any additional packages update_index = subparsers.add_parser( 'update-index', help=buildcache_update_index.__doc__) @@ -420,7 +457,7 @@ def createtarball(args): """create a binary package from an existing install""" # restrict matching to current environment if one is active - env = ev.get_env(args, 'buildcache create') + env = ev.active_environment() output_location = None if args.directory: @@ -495,6 +532,15 @@ def install_tarball(spec, args): else: tarball = bindist.download_tarball(spec) if tarball: + if args.sha256: + checker = spack.util.crypto.Checker(args.sha256) + msg = ('cannot verify checksum for "{0}"' + ' [expected={1}]') + msg = msg.format(tarball, args.sha256) + if not checker.check(tarball): + raise spack.binary_distribution.NoChecksumException(msg) + tty.debug('Verified SHA256 checksum of the build cache') + tty.msg('Installing buildcache for spec %s' % spec.format()) bindist.extract_tarball(spec, tarball, args.allow_root, args.unsigned, args.force) @@ -555,7 +601,7 @@ def check_binaries(args): if args.spec or args.spec_yaml: specs = [get_concrete_spec(args)] else: - env = ev.get_env(args, 'buildcache', required=True) + env = spack.cmd.require_active_env(cmd_name='buildcache') env.concretize() specs = env.all_specs() @@ -767,6 +813,123 @@ def buildcache_copy(args): shutil.copyfile(cdashid_src_path, cdashid_dest_path) +def buildcache_sync(args): + """ Syncs binaries (and associated metadata) from one mirror to another. + Requires an active environment in order to know which specs to sync. + + Args: + src (str): Source mirror URL + dest (str): Destination mirror URL + """ + # Figure out the source mirror + source_location = None + if args.src_directory: + source_location = args.src_directory + scheme = url_util.parse(source_location, scheme='').scheme + if scheme != '': + raise ValueError( + '"--src-directory" expected a local path; got a URL, instead') + # Ensure that the mirror lookup does not mistake this for named mirror + source_location = 'file://' + source_location + elif args.src_mirror_name: + source_location = args.src_mirror_name + result = spack.mirror.MirrorCollection().lookup(source_location) + if result.name == "": + raise ValueError( + 'no configured mirror named "{name}"'.format( + name=source_location)) + elif args.src_mirror_url: + source_location = args.src_mirror_url + scheme = url_util.parse(source_location, scheme='').scheme + if scheme == '': + raise ValueError( + '"{url}" is not a valid URL'.format(url=source_location)) + + src_mirror = spack.mirror.MirrorCollection().lookup(source_location) + src_mirror_url = url_util.format(src_mirror.fetch_url) + + # Figure out the destination mirror + dest_location = None + if args.dest_directory: + dest_location = args.dest_directory + scheme = url_util.parse(dest_location, scheme='').scheme + if scheme != '': + raise ValueError( + '"--dest-directory" expected a local path; got a URL, instead') + # Ensure that the mirror lookup does not mistake this for named mirror + dest_location = 'file://' + dest_location + elif args.dest_mirror_name: + dest_location = args.dest_mirror_name + result = spack.mirror.MirrorCollection().lookup(dest_location) + if result.name == "": + raise ValueError( + 'no configured mirror named "{name}"'.format( + name=dest_location)) + elif args.dest_mirror_url: + dest_location = args.dest_mirror_url + scheme = url_util.parse(dest_location, scheme='').scheme + if scheme == '': + raise ValueError( + '"{url}" is not a valid URL'.format(url=dest_location)) + + dest_mirror = spack.mirror.MirrorCollection().lookup(dest_location) + dest_mirror_url = url_util.format(dest_mirror.fetch_url) + + # Get the active environment + env = spack.cmd.require_active_env(cmd_name='buildcache sync') + + tty.msg('Syncing environment buildcache files from {0} to {1}'.format( + src_mirror_url, dest_mirror_url)) + + build_cache_dir = bindist.build_cache_relative_path() + buildcache_rel_paths = [] + + tty.debug('Syncing the following specs:') + for s in env.all_specs(): + tty.debug(' {0}{1}: {2}'.format( + '* ' if s in env.roots() else ' ', s.name, s.dag_hash())) + + buildcache_rel_paths.extend([ + os.path.join( + build_cache_dir, bindist.tarball_path_name(s, '.spack')), + os.path.join( + build_cache_dir, bindist.tarball_name(s, '.spec.yaml')), + os.path.join( + build_cache_dir, bindist.tarball_name(s, '.cdashid')) + ]) + + tmpdir = tempfile.mkdtemp() + + try: + for rel_path in buildcache_rel_paths: + src_url = url_util.join(src_mirror_url, rel_path) + local_path = os.path.join(tmpdir, rel_path) + dest_url = url_util.join(dest_mirror_url, rel_path) + + tty.debug('Copying {0} to {1} via {2}'.format( + src_url, dest_url, local_path)) + + stage = Stage(src_url, + name="temporary_file", + path=os.path.dirname(local_path), + keep=True) + + try: + stage.create() + stage.fetch() + web_util.push_to_url( + local_path, + dest_url, + keep_original=True) + except fs.FetchError as e: + tty.debug('spack buildcache unable to sync {0}'.format(rel_path)) + tty.debug(e) + finally: + stage.destroy() + finally: + shutil.rmtree(tmpdir) + + def update_index(mirror_url, update_keys=False): mirror = spack.mirror.MirrorCollection().lookup(mirror_url) outdir = url_util.format(mirror.push_url) diff --git a/lib/spack/spack/cmd/ci.py b/lib/spack/spack/cmd/ci.py index 64306ec8a75..a376d9ed957 100644 --- a/lib/spack/spack/cmd/ci.py +++ b/lib/spack/spack/cmd/ci.py @@ -22,6 +22,7 @@ import spack.environment as ev import spack.hash_types as ht import spack.mirror +import spack.util.spack_yaml as syaml import spack.util.url as url_util import spack.util.web as web_util @@ -30,6 +31,7 @@ level = "long" CI_REBUILD_INSTALL_BASE_ARGS = ['spack', '-d', '-v'] +INSTALL_FAIL_CODE = 1 def get_env_var(variable_name): @@ -116,7 +118,7 @@ def ci_generate(args): for creating a build group for the generated workload and registering all generated jobs under that build group. If this environment variable is not set, no build group will be created on CDash.""" - env = ev.get_env(args, 'ci generate', required=True) + env = spack.cmd.require_active_env(cmd_name='ci generate') output_file = args.output_file copy_yaml_to = args.copy_to @@ -150,7 +152,7 @@ def ci_generate(args): def ci_reindex(args): """Rebuild the buildcache index associated with the mirror in the active, gitlab-enabled environment. """ - env = ev.get_env(args, 'ci rebuild-index', required=True) + env = spack.cmd.require_active_env(cmd_name='ci rebuild-index') yaml_root = ev.config_dict(env.yaml) if 'mirrors' not in yaml_root or len(yaml_root['mirrors'].values()) < 1: @@ -167,7 +169,7 @@ def ci_rebuild(args): """Check a single spec against the remote mirror, and rebuild it from source if the mirror does not contain the full hash match of the spec as computed locally. """ - env = ev.get_env(args, 'ci rebuild', required=True) + env = spack.cmd.require_active_env(cmd_name='ci rebuild') # Make sure the environment is "gitlab-enabled", or else there's nothing # to do. @@ -491,7 +493,7 @@ def ci_rebuild(args): # If a spec fails to build in a spack develop pipeline, we add it to a # list of known broken full hashes. This allows spack PR pipelines to # avoid wasting compute cycles attempting to build those hashes. - if install_exit_code == 1 and spack_is_develop_pipeline: + if install_exit_code == INSTALL_FAIL_CODE and spack_is_develop_pipeline: tty.debug('Install failed on develop') if 'broken-specs-url' in gitlab_ci: broken_specs_url = gitlab_ci['broken-specs-url'] @@ -502,9 +504,17 @@ def ci_rebuild(args): tmpdir = tempfile.mkdtemp() empty_file_path = os.path.join(tmpdir, 'empty.txt') + broken_spec_details = { + 'broken-spec': { + 'job-url': get_env_var('CI_JOB_URL'), + 'pipeline-url': get_env_var('CI_PIPELINE_URL'), + 'concrete-spec-yaml': job_spec.to_dict(hash=ht.full_hash) + } + } + try: with open(empty_file_path, 'w') as efd: - efd.write('') + efd.write(syaml.dump(broken_spec_details)) web_util.push_to_url( empty_file_path, broken_spec_path, @@ -566,6 +576,26 @@ def ci_rebuild(args): cdash_build_id, pipeline_mirror_url)) spack_ci.write_cdashid_to_mirror( cdash_build_id, job_spec, pipeline_mirror_url) + + # If this is a develop pipeline, check if the spec that we just built is + # on the broken-specs list. If so, remove it. + if spack_is_develop_pipeline and 'broken-specs-url' in gitlab_ci: + broken_specs_url = gitlab_ci['broken-specs-url'] + just_built_hash = job_spec.full_hash() + broken_spec_path = url_util.join(broken_specs_url, just_built_hash) + if web_util.url_exists(broken_spec_path): + tty.msg('Removing {0} from the list of broken specs'.format( + broken_spec_path)) + try: + web_util.remove_url(broken_spec_path) + except Exception as err: + # If we got some kind of S3 (access denied or other connection + # error), the first non boto-specific class in the exception + # hierarchy is Exception. Just print a warning and return + msg = 'Error removing {0} from broken specs list: {1}'.format( + broken_spec_path, err) + tty.warn(msg) + else: tty.debug('spack install exited non-zero, will not create buildcache') diff --git a/lib/spack/spack/cmd/clean.py b/lib/spack/spack/cmd/clean.py index 3b663582939..ebcf7cc862d 100644 --- a/lib/spack/spack/cmd/clean.py +++ b/lib/spack/spack/cmd/clean.py @@ -104,6 +104,6 @@ def clean(parser, args): if args.bootstrap: msg = 'Removing software in "{0}"' tty.msg(msg.format(spack.bootstrap.store_path())) - with spack.store.use_store(spack.bootstrap.store_path()): + with spack.bootstrap.ensure_bootstrap_configuration(): uninstall = spack.main.SpackCommand('uninstall') uninstall('-a', '-y') diff --git a/lib/spack/spack/cmd/concretize.py b/lib/spack/spack/cmd/concretize.py index e6a8ecf6f50..433236b238b 100644 --- a/lib/spack/spack/cmd/concretize.py +++ b/lib/spack/spack/cmd/concretize.py @@ -3,6 +3,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import spack.cmd import spack.environment as ev description = 'concretize an environment and write a lockfile' @@ -23,7 +24,7 @@ def setup_parser(subparser): def concretize(parser, args): - env = ev.get_env(args, 'concretize', required=True) + env = spack.cmd.require_active_env(cmd_name='concretize') if args.test == 'all': tests = True diff --git a/lib/spack/spack/cmd/config.py b/lib/spack/spack/cmd/config.py index f1bdced6e02..2fc57a52c5e 100644 --- a/lib/spack/spack/cmd/config.py +++ b/lib/spack/spack/cmd/config.py @@ -118,7 +118,7 @@ def _get_scope_and_section(args): # w/no args and an active environment, point to env manifest if not section: - env = ev.get_env(args, 'config edit') + env = ev.active_environment() if env: scope = env.env_file_config_scope_name() diff --git a/lib/spack/spack/cmd/deactivate.py b/lib/spack/spack/cmd/deactivate.py index 0afa4af82b3..d67981cd9ee 100644 --- a/lib/spack/spack/cmd/deactivate.py +++ b/lib/spack/spack/cmd/deactivate.py @@ -36,7 +36,7 @@ def deactivate(parser, args): if len(specs) != 1: tty.die("deactivate requires one spec. %d given." % len(specs)) - env = ev.get_env(args, 'deactivate') + env = ev.active_environment() spec = spack.cmd.disambiguate_spec(specs[0], env) pkg = spec.package diff --git a/lib/spack/spack/cmd/dependencies.py b/lib/spack/spack/cmd/dependencies.py index 2f923fece03..e4d6c3fe566 100644 --- a/lib/spack/spack/cmd/dependencies.py +++ b/lib/spack/spack/cmd/dependencies.py @@ -41,7 +41,7 @@ def dependencies(parser, args): tty.die("spack dependencies takes only one spec.") if args.installed: - env = ev.get_env(args, 'dependencies') + env = ev.active_environment() spec = spack.cmd.disambiguate_spec(specs[0], env) format_string = '{name}{@version}{%compiler}{/hash:7}' diff --git a/lib/spack/spack/cmd/dependents.py b/lib/spack/spack/cmd/dependents.py index 6097f46ff91..76b308c295e 100644 --- a/lib/spack/spack/cmd/dependents.py +++ b/lib/spack/spack/cmd/dependents.py @@ -82,7 +82,7 @@ def dependents(parser, args): tty.die("spack dependents takes only one spec.") if args.installed: - env = ev.get_env(args, 'dependents') + env = ev.active_environment() spec = spack.cmd.disambiguate_spec(specs[0], env) format_string = '{name}{@version}{%compiler}{/hash:7}' diff --git a/lib/spack/spack/cmd/deprecate.py b/lib/spack/spack/cmd/deprecate.py index 2ab3cb17c8c..216095cb8ed 100644 --- a/lib/spack/spack/cmd/deprecate.py +++ b/lib/spack/spack/cmd/deprecate.py @@ -71,7 +71,7 @@ def setup_parser(sp): def deprecate(parser, args): """Deprecate one spec in favor of another""" - env = ev.get_env(args, 'deprecate') + env = ev.active_environment() specs = spack.cmd.parse_specs(args.specs) if len(specs) != 2: diff --git a/lib/spack/spack/cmd/develop.py b/lib/spack/spack/cmd/develop.py index 22bd6dad86d..efba1f2fd76 100644 --- a/lib/spack/spack/cmd/develop.py +++ b/lib/spack/spack/cmd/develop.py @@ -9,7 +9,6 @@ import spack.cmd import spack.cmd.common.arguments as arguments -import spack.environment as ev from spack.error import SpackError description = "add a spec to an environment's dev-build information" @@ -37,7 +36,7 @@ def setup_parser(subparser): def develop(parser, args): - env = ev.get_env(args, 'develop', required=True) + env = spack.cmd.require_active_env(cmd_name='develop') if not args.spec: if args.clone is False: diff --git a/lib/spack/spack/cmd/diff.py b/lib/spack/spack/cmd/diff.py new file mode 100644 index 00000000000..85b73b6545c --- /dev/null +++ b/lib/spack/spack/cmd/diff.py @@ -0,0 +1,197 @@ +# Copyright 2013-2021 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 sys + +import llnl.util.tty as tty +from llnl.util.tty.color import cprint, get_color_when + +import spack.cmd +import spack.cmd.common.arguments as arguments +import spack.environment as ev +import spack.solver.asp as asp +import spack.util.environment +import spack.util.spack_json as sjson + +description = "compare two specs" +section = "basic" +level = "long" + + +def setup_parser(subparser): + arguments.add_common_arguments( + subparser, ['specs']) + + subparser.add_argument( + '--json', + action='store_true', + default=False, + dest='dump_json', + help="Dump json output instead of pretty printing." + ) + subparser.add_argument( + '--first', + action='store_true', + default=False, + dest='load_first', + help="load the first match if multiple packages match the spec" + ) + subparser.add_argument( + '-a', '--attribute', + action='append', + help="select the attributes to show (defaults to all)" + ) + + +def compare_specs(a, b, to_string=False, color=None): + """ + Generate a comparison, including diffs (for each side) and an intersection. + + We can either print the result to the console, or parse + into a json object for the user to save. We return an object that shows + the differences, intersection, and names for a pair of specs a and b. + + Arguments: + a (spack.spec.Spec): the first spec to compare + b (spack.spec.Spec): the second spec to compare + a_name (str): the name of spec a + b_name (str): the name of spec b + to_string (bool): return an object that can be json dumped + color (bool): whether to format the names for the console + """ + if color is None: + color = get_color_when() + + # Prepare a solver setup to parse differences + setup = asp.SpackSolverSetup() + + a_facts = set(t for t in setup.spec_clauses(a, body=True)) + b_facts = set(t for t in setup.spec_clauses(b, body=True)) + + # We want to present them to the user as simple key: values + intersect = sorted(a_facts.intersection(b_facts)) + spec1_not_spec2 = sorted(a_facts.difference(b_facts)) + spec2_not_spec1 = sorted(b_facts.difference(a_facts)) + + # Format the spec names to be colored + fmt = "{name}{@version}{/hash}" + a_name = a.format(fmt, color=color) + b_name = b.format(fmt, color=color) + + # We want to show what is the same, and then difference for each + return { + "intersect": flatten(intersect) if to_string else intersect, + "a_not_b": flatten(spec1_not_spec2) if to_string else spec1_not_spec2, + "b_not_a": flatten(spec2_not_spec1) if to_string else spec2_not_spec1, + "a_name": a_name, + "b_name": b_name, + } + + +def flatten(functions): + """ + Given a list of ASP functions, convert into a list of key: value tuples. + + We are squashing whatever is after the first index into one string for + easier parsing in the interface + """ + updated = [] + for fun in functions: + updated.append([fun.name, " ".join(str(a) for a in fun.args)]) + return updated + + +def print_difference(c, attributes="all", out=None): + """ + Print the difference. + + Given a diffset for A and a diffset for B, print red/green diffs to show + the differences. + """ + # Default to standard out unless another stream is provided + out = out or sys.stdout + + A = c['b_not_a'] + B = c['a_not_b'] + + cprint("@R{--- %s}" % c["a_name"]) # bright red + cprint("@G{+++ %s}" % c["b_name"]) # bright green + + # Cut out early if we don't have any differences! + if not A and not B: + print("No differences\n") + return + + def group_by_type(diffset): + grouped = {} + for entry in diffset: + if entry[0] not in grouped: + grouped[entry[0]] = [] + grouped[entry[0]].append(entry[1]) + + # Sort by second value to make comparison slightly closer + for key, values in grouped.items(): + values.sort() + return grouped + + A = group_by_type(A) + B = group_by_type(B) + + # print a directionally relevant diff + keys = list(A) + list(B) + + category = None + for key in keys: + if "all" not in attributes and key not in attributes: + continue + + # Write the attribute, B is subtraction A is addition + subtraction = [] if key not in B else B[key] + addition = [] if key not in A else A[key] + + # Bail out early if we don't have any entries + if not subtraction and not addition: + continue + + # If we have a new category, create a new section + if category != key: + category = key + + # print category in bold, colorized + cprint("@*b{@@ %s @@}" % category) # bold blue + + # Print subtractions first + while subtraction: + cprint("@R{- %s}" % subtraction.pop(0)) # bright red + if addition: + cprint("@G{+ %s}" % addition.pop(0)) # bright green + + # Any additions left? + while addition: + cprint("@G{+ %s}" % addition.pop(0)) + + +def diff(parser, args): + env = ev.active_environment() + + if len(args.specs) != 2: + tty.die("You must provide two specs to diff.") + + specs = [spack.cmd.disambiguate_spec(spec, env, first=args.load_first) + for spec in spack.cmd.parse_specs(args.specs)] + + # Calculate the comparison (c) + color = False if args.dump_json else get_color_when() + c = compare_specs(specs[0], specs[1], to_string=True, color=color) + + # Default to all attributes + attributes = args.attribute or ["all"] + + if args.dump_json: + print(sjson.dump(c)) + else: + tty.warn("This interface is subject to change.\n") + print_difference(c, attributes) diff --git a/lib/spack/spack/cmd/env.py b/lib/spack/spack/cmd/env.py index 64b9a2411d0..5d436624bd0 100644 --- a/lib/spack/spack/cmd/env.py +++ b/lib/spack/spack/cmd/env.py @@ -6,7 +6,6 @@ import os import shutil import sys -from collections import namedtuple import llnl.util.filesystem as fs import llnl.util.tty as tty @@ -89,6 +88,11 @@ def env_activate(args): ) return 1 + # Error out when -e, -E, -D flags are given, cause they are ambiguous. + if args.env or args.no_env or args.env_dir: + tty.die('Calling spack env activate with --env, --env-dir and --no-env ' + 'is ambiguous') + if ev.exists(env) and not args.dir: spack_env = ev.root(env) short_name = env @@ -103,12 +107,11 @@ def env_activate(args): tty.die("No such environment: '%s'" % env) if spack_env == os.environ.get('SPACK_ENV'): - tty.die("Environment %s is already active" % args.activate_env) + tty.debug("Environment %s is already active" % args.activate_env) + return - active_env = ev.get_env(namedtuple('args', ['env'])(env), - 'activate') cmds = ev.activate( - active_env, add_view=args.with_view, shell=args.shell, + ev.Environment(spack_env), add_view=args.with_view, shell=args.shell, prompt=env_prompt if args.prompt else None ) sys.stdout.write(cmds) @@ -139,6 +142,11 @@ def env_deactivate(args): ) return 1 + # Error out when -e, -E, -D flags are given, cause they are ambiguous. + if args.env or args.no_env or args.env_dir: + tty.die('Calling spack env deactivate with --env, --env-dir and --no-env ' + 'is ambiguous') + if 'SPACK_ENV' not in os.environ: tty.die('No environment is currently active.') @@ -314,7 +322,7 @@ def env_view_setup_parser(subparser): def env_view(args): - env = ev.get_env(args, 'env view') + env = ev.active_environment() if env: if args.action == ViewAction.regenerate: @@ -341,7 +349,7 @@ def env_status_setup_parser(subparser): def env_status(args): - env = ev.get_env(args, 'env status') + env = ev.active_environment() if env: if env.path == os.getcwd(): tty.msg('Using %s in current directory: %s' @@ -372,7 +380,7 @@ def env_loads_setup_parser(subparser): def env_loads(args): - env = ev.get_env(args, 'env loads', required=True) + env = spack.cmd.require_active_env(cmd_name='env loads') # Set the module types that have been selected module_type = args.module_type diff --git a/lib/spack/spack/cmd/extensions.py b/lib/spack/spack/cmd/extensions.py index d80eb84b60a..0ef2137b1d8 100644 --- a/lib/spack/spack/cmd/extensions.py +++ b/lib/spack/spack/cmd/extensions.py @@ -67,7 +67,7 @@ def extensions(parser, args): if not spec[0].package.extendable: tty.die("%s is not an extendable package." % spec[0].name) - env = ev.get_env(args, 'extensions') + env = ev.active_environment() spec = cmd.disambiguate_spec(spec[0], env) if not spec.package.extendable: diff --git a/lib/spack/spack/cmd/fetch.py b/lib/spack/spack/cmd/fetch.py index bb4f535180c..4993c499127 100644 --- a/lib/spack/spack/cmd/fetch.py +++ b/lib/spack/spack/cmd/fetch.py @@ -47,7 +47,7 @@ def fetch(parser, args): # fetch all uninstalled specs from it otherwise fetch all. # If we are also not in an environment, complain to the # user that we don't know what to do. - env = ev.get_env(args, "fetch") + env = ev.active_environment() if env: if args.missing: specs = env.uninstalled_specs() diff --git a/lib/spack/spack/cmd/find.py b/lib/spack/spack/cmd/find.py index 875c236164d..8378f6ef6e1 100644 --- a/lib/spack/spack/cmd/find.py +++ b/lib/spack/spack/cmd/find.py @@ -205,24 +205,24 @@ def display_env(env, args, decorator): def find(parser, args): - q_args = query_arguments(args) - # Query the current store or the internal bootstrap store if required if args.bootstrap: bootstrap_store_path = spack.bootstrap.store_path() - msg = 'Showing internal bootstrap store at "{0}"' - tty.msg(msg.format(bootstrap_store_path)) - with spack.store.use_store(bootstrap_store_path): - results = args.specs(**q_args) - else: - results = args.specs(**q_args) + with spack.bootstrap.ensure_bootstrap_configuration(): + msg = 'Showing internal bootstrap store at "{0}"' + tty.msg(msg.format(bootstrap_store_path)) + _find(parser, args) + return + _find(parser, args) + +def _find(parser, args): + q_args = query_arguments(args) + results = args.specs(**q_args) + + env = ev.active_environment() decorator = lambda s, f: f - added = set() - removed = set() - - env = ev.get_env(args, 'find') if env: - decorator, added, roots, removed = setup_env(env) + decorator, _, roots, _ = setup_env(env) # use groups by default except with format. if args.groups is None: @@ -233,7 +233,7 @@ def find(parser, args): msg = "No package matches the query: {0}" msg = msg.format(' '.join(args.constraint)) tty.msg(msg) - return 1 + raise SystemExit(1) # If tags have been specified on the command line, filter by tags if args.tags: diff --git a/lib/spack/spack/cmd/gc.py b/lib/spack/spack/cmd/gc.py index f85f27bfca9..08fcd928739 100644 --- a/lib/spack/spack/cmd/gc.py +++ b/lib/spack/spack/cmd/gc.py @@ -7,7 +7,7 @@ import spack.cmd.common.arguments import spack.cmd.uninstall -import spack.environment +import spack.environment as ev import spack.store description = "remove specs that are now no longer needed" @@ -24,7 +24,7 @@ def gc(parser, args): # Restrict garbage collection to the active environment # speculating over roots that are yet to be installed - env = spack.environment.get_env(args=None, cmd_name='gc') + env = ev.active_environment() if env: msg = 'Restricting the garbage collection to the "{0}" environment' tty.msg(msg.format(env.name)) diff --git a/lib/spack/spack/cmd/graph.py b/lib/spack/spack/cmd/graph.py index c7675f1ada1..00781495089 100644 --- a/lib/spack/spack/cmd/graph.py +++ b/lib/spack/spack/cmd/graph.py @@ -10,6 +10,7 @@ import spack.cmd import spack.cmd.common.arguments as arguments import spack.config +import spack.environment as ev import spack.store from spack.graph import graph_ascii, graph_dot @@ -35,7 +36,7 @@ def setup_parser(subparser): subparser.add_argument( '-i', '--installed', action='store_true', - help="graph all installed specs in dot format (implies --dot)") + help="graph installed specs, or specs in the active env (implies --dot)") arguments.add_common_arguments(subparser, ['deptype', 'specs']) @@ -45,7 +46,12 @@ def graph(parser, args): if args.specs: tty.die("Can't specify specs with --installed") args.dot = True - specs = spack.store.db.query() + + env = ev.active_environment() + if env: + specs = env.all_specs() + else: + specs = spack.store.db.query() else: specs = spack.cmd.parse_specs(args.specs, concretize=not args.static) diff --git a/lib/spack/spack/cmd/install.py b/lib/spack/spack/cmd/install.py index f71a788ec1a..b0f00629ce5 100644 --- a/lib/spack/spack/cmd/install.py +++ b/lib/spack/spack/cmd/install.py @@ -204,7 +204,7 @@ def install_specs(cli_args, kwargs, specs): """ # handle active environment, if any - env = ev.get_env(cli_args, 'install') + env = ev.active_environment() try: if env: @@ -219,7 +219,7 @@ def install_specs(cli_args, kwargs, specs): # If there is any ambiguity in the above call to matching_spec # (i.e. if more than one spec in the environment matches), then - # SpackEnvironmentError is rasied, with a message listing the + # SpackEnvironmentError is raised, with a message listing the # the matches. Getting to this point means there were either # no matches or exactly one match. @@ -243,7 +243,7 @@ def install_specs(cli_args, kwargs, specs): if m_spec in env.roots() or cli_args.no_add: # either the single match is a root spec (and --no-add is - # the default for roots) or --no-add was stated explictly + # the default for roots) or --no-add was stated explicitly tty.debug('just install {0}'.format(m_spec.name)) specs_to_install.append(m_spec) else: @@ -324,10 +324,14 @@ def get_tests(specs): else: return False + # Parse cli arguments and construct a dictionary + # that will be passed to the package installer + update_kwargs_from_args(args, kwargs) + if not args.spec and not args.specfiles: # if there are no args but an active environment # then install the packages from it. - env = ev.get_env(args, 'install') + env = ev.active_environment() if env: tests = get_tests(env.user_specs) kwargs['tests'] = tests @@ -352,7 +356,7 @@ def get_tests(specs): tty.msg("Installing environment {0}".format(env.name)) with reporter('build'): - env.install_all(args, **kwargs) + env.install_all(**kwargs) tty.debug("Regenerating environment views for {0}" .format(env.name)) @@ -381,10 +385,6 @@ def get_tests(specs): if args.deprecated: spack.config.set('config:deprecated', True, scope='command_line') - # Parse cli arguments and construct a dictionary - # that will be passed to the package installer - update_kwargs_from_args(args, kwargs) - # 1. Abstract specs from cli abstract_specs = spack.cmd.parse_specs(args.spec) tests = get_tests(abstract_specs) diff --git a/lib/spack/spack/cmd/license.py b/lib/spack/spack/cmd/license.py index 8af0f4fa269..3627b353917 100644 --- a/lib/spack/spack/cmd/license.py +++ b/lib/spack/spack/cmd/license.py @@ -175,7 +175,8 @@ def wrong_spdx_identifier(line, path): if error: return error - print('{0}: the license does not match the expected format'.format(path)) + print('{0}: the license header at the top of the file does not match the \ + expected format'.format(path)) return GENERAL_MISMATCH diff --git a/lib/spack/spack/cmd/load.py b/lib/spack/spack/cmd/load.py index 6749e169fac..8bfeac7e695 100644 --- a/lib/spack/spack/cmd/load.py +++ b/lib/spack/spack/cmd/load.py @@ -55,7 +55,7 @@ def setup_parser(subparser): def load(parser, args): - env = ev.get_env(args, 'load') + env = ev.active_environment() specs = [spack.cmd.disambiguate_spec(spec, env, first=args.load_first) for spec in spack.cmd.parse_specs(args.specs)] diff --git a/lib/spack/spack/cmd/location.py b/lib/spack/spack/cmd/location.py index 61687f02bc4..f844f51ed6c 100644 --- a/lib/spack/spack/cmd/location.py +++ b/lib/spack/spack/cmd/location.py @@ -11,7 +11,6 @@ import spack.cmd import spack.cmd.common.arguments as arguments -import spack.environment import spack.environment as ev import spack.paths import spack.repo @@ -73,7 +72,7 @@ def location(parser, args): return if args.location_env: - path = spack.environment.root(args.location_env) + path = ev.root(args.location_env) if not os.path.isdir(path): tty.die("no such environment: '%s'" % args.location_env) print(path) @@ -97,7 +96,7 @@ def location(parser, args): # install_dir command matches against installed specs. if args.install_dir: - env = ev.get_env(args, 'location') + env = ev.active_environment() spec = spack.cmd.disambiguate_spec(specs[0], env) print(spec.prefix) return diff --git a/lib/spack/spack/cmd/mirror.py b/lib/spack/spack/cmd/mirror.py index 84d7fa06498..fa202f09f08 100644 --- a/lib/spack/spack/cmd/mirror.py +++ b/lib/spack/spack/cmd/mirror.py @@ -253,7 +253,7 @@ def _determine_specs_to_mirror(args): "To mirror all packages, use the '--all' option" " (this will require significant time and space).") - env = ev.get_env(args, 'mirror') + env = ev.active_environment() if env: env_specs = env.all_specs() else: diff --git a/lib/spack/spack/cmd/module.py b/lib/spack/spack/cmd/module.py index a03df1b787c..1df0bf920a6 100644 --- a/lib/spack/spack/cmd/module.py +++ b/lib/spack/spack/cmd/module.py @@ -3,11 +3,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import argparse from typing import Callable, Dict # novm -import llnl.util.tty as tty - import spack.cmd.modules.lmod import spack.cmd.modules.tcl @@ -18,49 +15,12 @@ _subcommands = {} # type: Dict[str, Callable] -_deprecated_commands = ('refresh', 'find', 'rm', 'loads') - def setup_parser(subparser): sp = subparser.add_subparsers(metavar='SUBCOMMAND', dest='module_command') spack.cmd.modules.lmod.add_command(sp, _subcommands) spack.cmd.modules.tcl.add_command(sp, _subcommands) - for name in _deprecated_commands: - add_deprecated_command(sp, name) - - -def add_deprecated_command(subparser, name): - parser = subparser.add_parser(name) - parser.add_argument( - '-m', '--module-type', help=argparse.SUPPRESS, - choices=spack.modules.module_types.keys(), action='append' - ) - - -def handle_deprecated_command(args, unknown_args): - command = args.module_command - unknown = ' '.join(unknown_args) - - module_types = args.module_type or ['tcl'] - - msg = '`spack module {0} {1}` has moved. Use these commands instead:\n' - msg = msg.format(command, ' '.join('-m ' + x for x in module_types)) - for x in module_types: - msg += '\n\t$ spack module {0} {1} {2}'.format(x, command, unknown) - msg += '\n' - tty.die(msg) - - -def module(parser, args, unknown_args): - - # Here we permit unknown arguments to intercept deprecated calls - if args.module_command in _deprecated_commands: - handle_deprecated_command(args, unknown_args) - - # Fail if unknown arguments are present, once we excluded a deprecated - # command - if unknown_args: - tty.die('unrecognized arguments: {0}'.format(' '.join(unknown_args))) +def module(parser, args): _subcommands[args.module_command](parser, args) diff --git a/lib/spack/spack/cmd/remove.py b/lib/spack/spack/cmd/remove.py index 1f97e6e6e5d..a2417089dbb 100644 --- a/lib/spack/spack/cmd/remove.py +++ b/lib/spack/spack/cmd/remove.py @@ -7,7 +7,6 @@ import spack.cmd import spack.cmd.common.arguments as arguments -import spack.environment as ev description = 'remove specs from an environment' section = "environments" @@ -28,7 +27,7 @@ def setup_parser(subparser): def remove(parser, args): - env = ev.get_env(args, 'remove', required=True) + env = spack.cmd.require_active_env(cmd_name='remove') with env.write_transaction(): if args.all: diff --git a/lib/spack/spack/cmd/stage.py b/lib/spack/spack/cmd/stage.py index c3a3c21e68c..8903cb83e51 100644 --- a/lib/spack/spack/cmd/stage.py +++ b/lib/spack/spack/cmd/stage.py @@ -34,7 +34,7 @@ def stage(parser, args): spack.stage.create_stage_root(custom_path) if not args.specs: - env = ev.get_env(args, 'stage') + env = ev.active_environment() if env: tty.msg("Staging specs from environment %s" % env.name) for spec in env.specs_by_hash.values(): diff --git a/lib/spack/spack/cmd/style.py b/lib/spack/spack/cmd/style.py index b2961261161..eb95904dfb4 100644 --- a/lib/spack/spack/cmd/style.py +++ b/lib/spack/spack/cmd/style.py @@ -312,7 +312,7 @@ def run_mypy(mypy_cmd, file_list, args): @tool("isort") def run_isort(isort_cmd, file_list, args): # always run with config from running spack prefix - isort_args = ("--settings-file", os.path.join(spack.paths.prefix, "pyproject.toml")) + isort_args = ("--settings-path", os.path.join(spack.paths.prefix, "pyproject.toml")) if not args.fix: isort_args += ("--check", "--diff") diff --git a/lib/spack/spack/cmd/test.py b/lib/spack/spack/cmd/test.py index c480b4394f2..d2a5e7214b1 100644 --- a/lib/spack/spack/cmd/test.py +++ b/lib/spack/spack/cmd/test.py @@ -155,7 +155,7 @@ def test_run(args): spack.config.set('config:fail_fast', True, scope='command_line') # Get specs to test - env = ev.get_env(args, 'test') + env = ev.active_environment() hashes = env.all_hashes() if env else None specs = spack.cmd.parse_specs(args.specs) if args.specs else [None] @@ -221,7 +221,7 @@ def test_list(args): # TODO: This can be extended to have all of the output formatting options # from `spack find`. - env = ev.get_env(args, 'test') + env = ev.active_environment() hashes = env.all_hashes() if env else None specs = spack.store.db.query(hashes=hashes) diff --git a/lib/spack/spack/cmd/undevelop.py b/lib/spack/spack/cmd/undevelop.py index 3f8288e09a3..a26519ac381 100644 --- a/lib/spack/spack/cmd/undevelop.py +++ b/lib/spack/spack/cmd/undevelop.py @@ -7,7 +7,6 @@ import spack.cmd import spack.cmd.common.arguments as arguments -import spack.environment as ev description = 'remove specs from an environment' section = "environments" @@ -22,7 +21,7 @@ def setup_parser(subparser): def undevelop(parser, args): - env = ev.get_env(args, 'undevelop', required=True) + env = spack.cmd.require_active_env(cmd_name='undevelop') if args.all: specs = env.dev_specs.keys() diff --git a/lib/spack/spack/cmd/uninstall.py b/lib/spack/spack/cmd/uninstall.py index ead4f8ac84c..fdd9986108f 100644 --- a/lib/spack/spack/cmd/uninstall.py +++ b/lib/spack/spack/cmd/uninstall.py @@ -311,7 +311,7 @@ def get_uninstall_list(args, specs, env): def uninstall_specs(args, specs): - env = ev.get_env(args, 'uninstall') + env = ev.active_environment() uninstall_list, remove_list = get_uninstall_list(args, specs, env) anything_to_do = set(uninstall_list).union(set(remove_list)) diff --git a/lib/spack/spack/cmd/verify.py b/lib/spack/spack/cmd/verify.py index 723aa2f9943..a1d8acdf153 100644 --- a/lib/spack/spack/cmd/verify.py +++ b/lib/spack/spack/cmd/verify.py @@ -74,7 +74,7 @@ def verify(parser, args): elif args.specs_or_files: # construct disambiguated spec list - env = ev.get_env(args, 'verify') + env = ev.active_environment() specs = list(map(lambda x: spack.cmd.disambiguate_spec(x, env, local=local), spec_args)) diff --git a/lib/spack/spack/cmd/view.py b/lib/spack/spack/cmd/view.py index 7c745a4da0b..fc0c30c7e23 100644 --- a/lib/spack/spack/cmd/view.py +++ b/lib/spack/spack/cmd/view.py @@ -42,12 +42,7 @@ import spack.schema.projections import spack.store from spack.config import validate -from spack.filesystem_view import ( - YamlFilesystemView, - view_copy, - view_hardlink, - view_symlink, -) +from spack.filesystem_view import YamlFilesystemView, view_func_parser from spack.util import spack_yaml as s_yaml description = "project packages to a compact naming scheme on the filesystem." @@ -187,12 +182,10 @@ def view(parser, args): ordered_projections = {} # What method are we using for this view - if args.action in ("hardlink", "hard"): - link_fn = view_hardlink - elif args.action in ("copy", "relocate"): - link_fn = view_copy + if args.action in actions_link: + link_fn = view_func_parser(args.action) else: - link_fn = view_symlink + link_fn = view_func_parser('symlink') view = YamlFilesystemView( path, spack.store.layout, @@ -209,7 +202,7 @@ def view(parser, args): elif args.action in actions_link: # only link commands need to disambiguate specs - env = ev.get_env(args, 'view link') + env = ev.active_environment() specs = [spack.cmd.disambiguate_spec(s, env) for s in specs] elif args.action in actions_status: diff --git a/lib/spack/spack/compilers/aocc.py b/lib/spack/spack/compilers/aocc.py index dcb6589861c..b544a42e79d 100644 --- a/lib/spack/spack/compilers/aocc.py +++ b/lib/spack/spack/compilers/aocc.py @@ -98,15 +98,12 @@ def fc_pic_flag(self): @classmethod @llnl.util.lang.memoized def extract_version_from_output(cls, output): - loc_ver = 'unknown' - match = re.search( - r'AMD clang version ([^ )]+)', + r'AOCC_(\d+)[._](\d+)[._](\d+)', output ) if match: - loc_ver = output.split('AOCC_')[1].split('-')[0] - return loc_ver + return '.'.join(match.groups()) @classmethod def fc_version(cls, fortran_compiler): diff --git a/lib/spack/spack/concretize.py b/lib/spack/spack/concretize.py index 1048709297f..2e6e067c9d1 100644 --- a/lib/spack/spack/concretize.py +++ b/lib/spack/spack/concretize.py @@ -33,6 +33,7 @@ import spack.abi import spack.architecture import spack.compilers +import spack.environment import spack.error import spack.repo import spack.spec @@ -66,7 +67,7 @@ def concretize_develop(self, spec): """ Add ``dev_path=*`` variant to packages built from local source. """ - env = spack.environment.get_env(None, None) + env = spack.environment.active_environment() dev_info = env.dev_specs.get(spec.name, {}) if env else {} if not dev_info: return False diff --git a/lib/spack/spack/config.py b/lib/spack/spack/config.py index 93399efb03c..8df9e514c3c 100644 --- a/lib/spack/spack/config.py +++ b/lib/spack/spack/config.py @@ -536,7 +536,7 @@ def update_config(self, section, update_data, scope=None, force=False): msg = ('The "{0}" section of the configuration needs to be written' ' to disk, but is currently using a deprecated format. ' 'Please update it using:\n\n' - '\tspack config [--scope=] update {0}\n\n' 'Note that previous versions of Spack will not be able to ' 'use the updated configuration.') msg = msg.format(section) @@ -1238,11 +1238,12 @@ def use_configuration(*scopes_or_paths): saved_config, config = config, configuration - yield configuration - - # Restore previous config files - spack.compilers._cache_config_file = saved_compiler_cache - config = saved_config + try: + yield configuration + finally: + # Restore previous config files + spack.compilers._cache_config_file = saved_compiler_cache + config = saved_config @llnl.util.lang.memoized diff --git a/lib/spack/spack/container/__init__.py b/lib/spack/spack/container/__init__.py index c57e0d0c519..f9212a574cd 100644 --- a/lib/spack/spack/container/__init__.py +++ b/lib/spack/spack/container/__init__.py @@ -7,7 +7,7 @@ """ import warnings -import spack.environment +import spack.environment as ev import spack.schema.env as env import spack.util.spack_yaml as syaml @@ -36,7 +36,7 @@ def validate(configuration_file): config = syaml.load(f) # Ensure we have a "container" attribute with sensible defaults set - env_dict = spack.environment.config_dict(config) + env_dict = ev.config_dict(config) env_dict.setdefault('container', { 'format': 'docker', 'images': {'os': 'ubuntu:18.04', 'spack': 'develop'} diff --git a/lib/spack/spack/container/writers/__init__.py b/lib/spack/spack/container/writers/__init__.py index 14bc5a77c4c..978e9996054 100644 --- a/lib/spack/spack/container/writers/__init__.py +++ b/lib/spack/spack/container/writers/__init__.py @@ -8,7 +8,7 @@ import collections import copy -import spack.environment +import spack.environment as ev import spack.schema.env import spack.tengine as tengine import spack.util.spack_yaml as syaml @@ -37,7 +37,7 @@ def create(configuration): Args: configuration: how to generate the current recipe """ - name = spack.environment.config_dict(configuration)['container']['format'] + name = ev.config_dict(configuration)['container']['format'] return _writer_factory[name](configuration) @@ -56,7 +56,7 @@ class PathContext(tengine.Context): directly via PATH. """ def __init__(self, config): - self.config = spack.environment.config_dict(config) + self.config = ev.config_dict(config) self.container_config = self.config['container'] @tengine.context_property diff --git a/lib/spack/spack/environment.py b/lib/spack/spack/environment.py index f2ed7f39b08..aa27e5361c9 100644 --- a/lib/spack/spack/environment.py +++ b/lib/spack/spack/environment.py @@ -3,6 +3,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) import collections +import contextlib import copy import os import re @@ -34,7 +35,12 @@ import spack.util.path import spack.util.spack_json as sjson import spack.util.spack_yaml as syaml -from spack.filesystem_view import YamlFilesystemView +from spack.filesystem_view import ( + YamlFilesystemView, + inverse_view_func_parser, + view_func_parser, +) +from spack.installer import PackageInstaller from spack.spec import Spec from spack.spec_list import InvalidSpecConstraintError, SpecList from spack.util.path import substitute_path_variables @@ -259,100 +265,9 @@ def deactivate(shell='sh'): return cmds -def find_environment(args): - """Find active environment from args, spack.yaml, or environment variable. - - This is called in ``spack.main`` to figure out which environment to - activate. - - Check for an environment in this order: - 1. via ``spack -e ENV`` or ``spack -D DIR`` (arguments) - 2. as a spack.yaml file in the current directory, or - 3. via a path in the SPACK_ENV environment variable. - - If an environment is found, read it in. If not, return None. - - Arguments: - args (argparse.Namespace): argparse namespace wtih command arguments - - Returns: - (Environment): a found environment, or ``None`` - """ - # try arguments - env = getattr(args, 'env', None) - - # treat env as a name - if env: - if exists(env): - return read(env) - - else: - # if env was specified, see if it is a dirctory otherwise, look - # at env_dir (env and env_dir are mutually exclusive) - env = getattr(args, 'env_dir', None) - - # if no argument, look for the environment variable - if not env: - env = os.environ.get(spack_env_var) - - # nothing was set; there's no active environment - if not env: - return None - - # if we get here, env isn't the name of a spack environment; it has - # to be a path to an environment, or there is something wrong. - if is_env_dir(env): - return Environment(env) - - raise SpackEnvironmentError('no environment in %s' % env) - - -def get_env(args, cmd_name, required=False): - """Used by commands to get the active environment. - - This first checks for an ``env`` argument, then looks at the - ``active`` environment. We check args first because Spack's - subcommand arguments are parsed *after* the ``-e`` and ``-D`` - arguments to ``spack``. So there may be an ``env`` argument that is - *not* the active environment, and we give it precedence. - - This is used by a number of commands for determining whether there is - an active environment. - - If an environment is not found *and* is required, print an error - message that says the calling command *needs* an active environment. - - Arguments: - args (argparse.Namespace): argparse namespace wtih command arguments - cmd_name (str): name of calling command - required (bool): if ``True``, raise an exception when no environment - is found; if ``False``, just return ``None`` - - Returns: - (Environment): if there is an arg or active environment - """ - # try argument first - env = getattr(args, 'env', None) - if env: - if exists(env): - return read(env) - elif is_env_dir(env): - return Environment(env) - else: - raise SpackEnvironmentError('no environment in %s' % env) - - # try the active environment. This is set by find_environment() (above) - if _active_environment: - return _active_environment - elif not required: - return None - else: - tty.die( - '`spack %s` requires an environment' % cmd_name, - 'activate an environment first:', - ' spack env activate ENV', - 'or use:', - ' spack -e ENV %s ...' % cmd_name) +def active_environment(): + """Returns the active environment when there is any""" + return _active_environment def _root(name): @@ -456,12 +371,13 @@ def _eval_conditional(string): class ViewDescriptor(object): def __init__(self, base_path, root, projections={}, select=[], exclude=[], - link=default_view_link): + link=default_view_link, link_type='symlink'): self.base = base_path self.root = spack.util.path.canonicalize_path(root) self.projections = projections self.select = select self.exclude = exclude + self.link_type = view_func_parser(link_type) self.link = link def select_fn(self, spec): @@ -475,7 +391,8 @@ def __eq__(self, other): self.projections == other.projections, self.select == other.select, self.exclude == other.exclude, - self.link == other.link]) + self.link == other.link, + self.link_type == other.link_type]) def to_dict(self): ret = syaml.syaml_dict([('root', self.root)]) @@ -490,6 +407,8 @@ def to_dict(self): ret['select'] = self.select if self.exclude: ret['exclude'] = self.exclude + if self.link_type: + ret['link_type'] = inverse_view_func_parser(self.link_type) if self.link != default_view_link: ret['link'] = self.link return ret @@ -501,7 +420,8 @@ def from_dict(base_path, d): d.get('projections', {}), d.get('select', []), d.get('exclude', []), - d.get('link', default_view_link)) + d.get('link', default_view_link), + d.get('link_type', 'symlink')) @property def _current_root(self): @@ -565,7 +485,8 @@ def view(self, new=None): raise SpackEnvironmentViewError(msg) return YamlFilesystemView(root, spack.store.layout, ignore_conflicts=True, - projections=self.projections) + projections=self.projections, + link=self.link_type) def __contains__(self, spec): """Is the spec described by the view descriptor @@ -1180,6 +1101,10 @@ def undevelop(self, spec): return True return False + def is_develop(self, spec): + """Returns true when the spec is built from local sources""" + return spec.name in self.dev_specs + def concretize(self, force=False, tests=False): """Concretize user_specs in this environment. @@ -1546,21 +1471,18 @@ def uninstalled_specs(self): uninstalled_specs.append(spec) return uninstalled_specs - def install_all(self, args=None, **install_args): + def install_all(self, **install_args): """Install all concretized specs in an environment. Note: this does not regenerate the views for the environment; that needs to be done separately with a call to write(). Args: - args (argparse.Namespace): argparse namespace with command arguments install_args (dict): keyword install arguments """ - self.install_specs(None, args=args, **install_args) - - def install_specs(self, specs=None, args=None, **install_args): - from spack.installer import PackageInstaller + self.install_specs(None, **install_args) + def install_specs(self, specs=None, **install_args): tty.debug('Assessing installation status of environment packages') # If "spack install" is invoked repeatedly for a large environment # where all specs are already installed, the operation can take @@ -1594,15 +1516,7 @@ def install_specs(self, specs=None, args=None, **install_args): installs = [] for spec in specs_to_install: - # Parse cli arguments and construct a dictionary - # that will be passed to the package installer - kwargs = dict() - if install_args: - kwargs.update(install_args) - if args: - spack.cmd.install.update_kwargs_from_args(args, kwargs) - - installs.append((spec.package, kwargs)) + installs.append((spec.package, install_args)) try: builder = PackageInstaller(installs) @@ -1689,7 +1603,22 @@ def matching_spec(self, spec): # Dependency-only specs will have value None matches = {} + if not isinstance(spec, spack.spec.Spec): + spec = spack.spec.Spec(spec) + for user_spec, concretized_user_spec in self.concretized_specs(): + # Deal with concrete specs differently + if spec.concrete: + # Matching a concrete spec is more restrictive + # than just matching the dag hash + is_match = ( + spec in concretized_user_spec and + concretized_user_spec[spec.name].build_hash() == spec.build_hash() + ) + if is_match: + matches[spec] = spec + continue + if concretized_user_spec.satisfies(spec): matches[concretized_user_spec] = user_spec for dep_spec in concretized_user_spec.traverse(root=False): @@ -2216,6 +2145,17 @@ def is_latest_format(manifest): return not changed +@contextlib.contextmanager +def deactivate_environment(): + """Deactivate an active environment for the duration of the context.""" + global _active_environment + current, _active_environment = _active_environment, None + try: + yield + finally: + _active_environment = current + + class SpackEnvironmentError(spack.error.SpackError): """Superclass for all errors to do with Spack environments.""" diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py index f5eecdcb5d5..136d786e3f9 100644 --- a/lib/spack/spack/fetch_strategy.py +++ b/lib/spack/spack/fetch_strategy.py @@ -338,7 +338,7 @@ def fetch(self): def _existing_url(self, url): tty.debug('Checking existence of {0}'.format(url)) - if spack.config.get('config:use_curl'): + if spack.config.get('config:url_fetch_method') == 'curl': curl = self.curl # Telling curl to fetch the first byte (-r 0-0) is supposed to be # portable. @@ -357,7 +357,7 @@ def _existing_url(self, url): return (response.getcode() is None or response.getcode() == 200) def _fetch_from_url(self, url): - if spack.config.get('config:use_curl'): + if spack.config.get('config:url_fetch_method') == 'curl': return self._fetch_curl(url) else: return self._fetch_urllib(url) diff --git a/lib/spack/spack/filesystem_view.py b/lib/spack/spack/filesystem_view.py index dd872d712f1..68cf7c156c8 100644 --- a/lib/spack/spack/filesystem_view.py +++ b/lib/spack/spack/filesystem_view.py @@ -98,6 +98,29 @@ def view_copy(src, dst, view, spec=None): ) +def view_func_parser(parsed_name): + # What method are we using for this view + if parsed_name in ("hardlink", "hard"): + return view_hardlink + elif parsed_name in ("copy", "relocate"): + return view_copy + elif parsed_name in ("add", "symlink", "soft"): + return view_symlink + else: + raise ValueError("invalid link type for view: '%s'" % parsed_name) + + +def inverse_view_func_parser(view_type): + # get string based on view type + if view_type is view_hardlink: + link_name = 'hardlink' + elif view_type is view_copy: + link_name = 'copy' + else: + link_name = 'symlink' + return link_name + + class FilesystemView(object): """ Governs a filesystem view that is located at certain root-directory. diff --git a/lib/spack/spack/graph.py b/lib/spack/spack/graph.py index 7ca7b11af75..84acfd37ef7 100644 --- a/lib/spack/spack/graph.py +++ b/lib/spack/spack/graph.py @@ -550,11 +550,21 @@ def dynamic_graph(spec, deptypes): out.write(' style="rounded,filled"') out.write(' ]\n') + # write nodes out.write('\n') for key, label in nodes: out.write(' "%s" [label="%s"]\n' % (key, label)) + # write edges out.write('\n') for src, dest in edges: out.write(' "%s" -> "%s"\n' % (src, dest)) + + # ensure that roots are all at the top of the plot + dests = set([d for _, d in edges]) + roots = ['"%s"' % k for k, _ in nodes if k not in dests] + out.write('\n') + out.write(' { rank=min; %s; }' % "; ".join(roots)) + + out.write('\n') out.write('}\n') diff --git a/lib/spack/spack/hooks/module_file_generation.py b/lib/spack/spack/hooks/module_file_generation.py index b95040aed27..fa04a5a3a5d 100644 --- a/lib/spack/spack/hooks/module_file_generation.py +++ b/lib/spack/spack/hooks/module_file_generation.py @@ -37,8 +37,8 @@ def _for_each_enabled(spec, method_name): def post_install(spec): - import spack.environment # break import cycle - if spack.environment.get_env({}, ''): + import spack.environment as ev # break import cycle + if ev.active_environment(): # If the installed through an environment, we skip post_install # module generation and generate the modules on env_write so Spack # can manage interactions between env views and modules diff --git a/lib/spack/spack/hooks/sbang.py b/lib/spack/spack/hooks/sbang.py index b6e088e921d..7eff565618d 100644 --- a/lib/spack/spack/hooks/sbang.py +++ b/lib/spack/spack/hooks/sbang.py @@ -12,7 +12,6 @@ import llnl.util.filesystem as fs import llnl.util.tty as tty -import spack.modules import spack.paths import spack.store diff --git a/lib/spack/spack/installer.py b/lib/spack/spack/installer.py index 1d0b2212577..eb409caffe9 100644 --- a/lib/spack/spack/installer.py +++ b/lib/spack/spack/installer.py @@ -54,6 +54,7 @@ import spack.package_prefs as prefs import spack.repo import spack.store +import spack.util.executable from spack.util.environment import dump_environment from spack.util.executable import which from spack.util.timer import Timer @@ -144,14 +145,8 @@ def _handle_external_and_upstream(pkg, explicit): def _do_fake_install(pkg): + """Make a fake install directory with fake executables, headers, and libraries. """ - Make a fake install directory containing fake executables, headers, - and libraries. - - Args: - pkg (spack.package.PackageBase): the package whose installation is to be faked - """ - command = pkg.name header = pkg.name library = pkg.name @@ -372,8 +367,13 @@ def _process_binary_cache_tarball(pkg, binary_spec, explicit, unsigned, pkg_id = package_id(pkg) tty.msg('Extracting {0} from binary cache'.format(pkg_id)) - binary_distribution.extract_tarball(binary_spec, tarball, allow_root=False, - unsigned=unsigned, force=False) + + # don't print long padded paths while extracting/relocating binaries + with spack.util.path.filter_padding(): + binary_distribution.extract_tarball( + binary_spec, tarball, allow_root=False, unsigned=unsigned, force=False + ) + pkg.installed_from_binary_cache = True spack.store.db.add(pkg.spec, spack.store.layout, explicit=explicit) return True @@ -1168,10 +1168,9 @@ def _install_task(self, task): except spack.build_environment.StopPhase as e: # A StopPhase exception means that do_install was asked to # stop early from clients, and is not an error at this point - pid = '{0}: '.format(pkg.pid) if tty.show_pid() else '' + pid = '{0}: '.format(self.pid) if tty.show_pid() else '' tty.debug('{0}{1}'.format(pid, str(e))) - tty.debug('Package stage directory: {0}' - .format(pkg.stage.source_path)) + tty.debug('Package stage directory: {0}' .format(pkg.stage.source_path)) def _next_is_pri0(self): """ @@ -1570,6 +1569,9 @@ def install(self): if os.path.exists(rec.path): with fs.replace_directory_transaction( rec.path): + # fs transaction will put the old prefix + # back on failure, so make sure to keep it. + keep_prefix = True self._install_task(task) else: tty.debug("Missing installation to overwrite") @@ -1678,152 +1680,222 @@ def install(self): 'reported errors for failing package(s).') -def build_process(pkg, kwargs): +class BuildProcessInstaller(object): + """This class implements the part installation that happens in the child process.""" + + def __init__(self, pkg, install_args): + """Create a new BuildProcessInstaller. + + It is assumed that the lifecycle of this object is the same as the child + process in the build. + + Arguments: + pkg (spack.package.PackageBase) the package being installed. + install_args (dict) arguments to do_install() from parent process. + + """ + self.pkg = pkg + + # whether to do a fake install + self.fake = install_args.get('fake', False) + + # whether to install source code with the packag + self.install_source = install_args.get('install_source', False) + + # whether to keep the build stage after installation + self.keep_stage = install_args.get('keep_stage', False) + + # whether to skip the patch phase + self.skip_patch = install_args.get('skip_patch', False) + + # whether to enable echoing of build output initially or not + self.verbose = install_args.get('verbose', False) + + # env before starting installation + self.unmodified_env = install_args.get('unmodified_env', {}) + + # timer for build phases + self.timer = Timer() + + # If we are using a padded path, filter the output to compress padded paths + # The real log still has full-length paths. + filter_padding = spack.config.get("config:install_tree:padded_length", None) + self.filter_fn = spack.util.path.padding_filter if filter_padding else None + + # info/debug information + pid = '{0}: '.format(os.getpid()) if tty.show_pid() else '' + self.pre = '{0}{1}:'.format(pid, pkg.name) + self.pkg_id = package_id(pkg) + + def run(self): + """Main entry point from ``build_process`` to kick off install in child.""" + + if not self.fake: + if not self.skip_patch: + self.pkg.do_patch() + else: + self.pkg.do_stage() + + tty.debug( + '{0} Building {1} [{2}]' .format( + self.pre, + self.pkg_id, + self.pkg.build_system_class + ) + ) + + # get verbosity from do_install() parameter or saved value + self.echo = self.verbose + if spack.package.PackageBase._verbose is not None: + self.echo = spack.package.PackageBase._verbose + + self.pkg.stage.keep = self.keep_stage + + with self.pkg.stage: + # Run the pre-install hook in the child process after + # the directory is created. + spack.hooks.pre_install(self.pkg.spec) + if self.fake: + _do_fake_install(self.pkg) + else: + if self.install_source: + self._install_source() + + self._real_install() + + # Stop the timer and save results + self.timer.stop() + with open(self.pkg.times_log_path, 'w') as timelog: + self.timer.write_json(timelog) + + # Run post install hooks before build stage is removed. + spack.hooks.post_install(self.pkg.spec) + + build_time = self.timer.total - self.pkg._fetch_time + tty.msg('{0} Successfully installed {1}'.format(self.pre, self.pkg_id), + 'Fetch: {0}. Build: {1}. Total: {2}.' + .format(_hms(self.pkg._fetch_time), _hms(build_time), + _hms(self.timer.total))) + _print_installed_pkg(self.pkg.prefix) + + # Send final status that install is successful + spack.hooks.on_install_success(self.pkg.spec) + + # preserve verbosity across runs + return self.echo + + def _install_source(self): + """Install source code from stage into share/pkg/src if necessary.""" + pkg = self.pkg + if not os.path.isdir(pkg.stage.source_path): + return + + src_target = os.path.join(pkg.spec.prefix, 'share', pkg.name, 'src') + tty.debug('{0} Copying source to {1}' .format(self.pre, src_target)) + + fs.install_tree(pkg.stage.source_path, src_target) + + def _real_install(self): + pkg = self.pkg + + # Do the real install in the source directory. + with fs.working_dir(pkg.stage.source_path): + # Save the build environment in a file before building. + dump_environment(pkg.env_path) + + for attr in ('configure_args', 'cmake_args'): + try: + configure_args = getattr(pkg, attr)() + configure_args = ' '.join(configure_args) + + with open(pkg.configure_args_path, 'w') as \ + args_file: + args_file.write(configure_args) + + break + except Exception: + pass + + # cache debug settings + debug_level = tty.debug_level() + + # Spawn a daemon that reads from a pipe and redirects + # everything to log_path, and provide the phase for logging + for i, (phase_name, phase_attr) in enumerate(zip( + pkg.phases, pkg._InstallPhase_phases)): + + # Keep a log file for each phase + log_dir = os.path.dirname(pkg.log_path) + log_file = "spack-build-%02d-%s-out.txt" % ( + i + 1, phase_name.lower() + ) + log_file = os.path.join(log_dir, log_file) + + try: + # DEBUGGING TIP - to debug this section, insert an IPython + # embed here, and run the sections below without log capture + log_contextmanager = log_output( + log_file, + self.echo, + True, + env=self.unmodified_env, + filter_fn=self.filter_fn + ) + + with log_contextmanager as logger: + with logger.force_echo(): + inner_debug_level = tty.debug_level() + tty.set_debug(debug_level) + tty.msg( + "{0} Executing phase: '{1}'" .format( + self.pre, + phase_name + ) + ) + tty.set_debug(inner_debug_level) + + # Redirect stdout and stderr to daemon pipe + phase = getattr(pkg, phase_attr) + self.timer.phase(phase_name) + + # Catch any errors to report to logging + phase(pkg.spec, pkg.prefix) + spack.hooks.on_phase_success(pkg, phase_name, log_file) + + except BaseException: + combine_phase_logs(pkg.phase_log_files, pkg.log_path) + spack.hooks.on_phase_error(pkg, phase_name, log_file) + raise + + # We assume loggers share echo True/False + self.echo = logger.echo + + # After log, we can get all output/error files from the package stage + combine_phase_logs(pkg.phase_log_files, pkg.log_path) + log(pkg) + + +def build_process(pkg, install_args): """Perform the installation/build of the package. This runs in a separate child process, and has its own process and python module space set up by build_environment.start_build_process(). + This essentially wraps an instance of ``BuildProcessInstaller`` so that we can + more easily create one in a subprocess. + This function's return value is returned to the parent process. + + Arguments: + pkg (spack.package.PackageBase): the package being installed. + install_args (dict): arguments to do_install() from parent process. + """ - fake = kwargs.get('fake', False) - install_source = kwargs.get('install_source', False) - keep_stage = kwargs.get('keep_stage', False) - skip_patch = kwargs.get('skip_patch', False) - unmodified_env = kwargs.get('unmodified_env', {}) - verbose = kwargs.get('verbose', False) + installer = BuildProcessInstaller(pkg, install_args) - timer = Timer() - - # If we are using a padded path, filter the output to compress padded paths - # The real log still has full-length paths. - filter_padding = spack.config.get("config:install_tree:padded_length", None) - filter_fn = spack.util.path.padding_filter if filter_padding else None - - if not fake: - if not skip_patch: - pkg.do_patch() - else: - pkg.do_stage() - - pid = '{0}: '.format(pkg.pid) if tty.show_pid() else '' - pre = '{0}{1}:'.format(pid, pkg.name) - pkg_id = package_id(pkg) - - tty.debug('{0} Building {1} [{2}]' - .format(pre, pkg_id, pkg.build_system_class)) - - # get verbosity from do_install() parameter or saved value - echo = verbose - if spack.package.PackageBase._verbose is not None: - echo = spack.package.PackageBase._verbose - - pkg.stage.keep = keep_stage - - with pkg.stage: - # Run the pre-install hook in the child process after - # the directory is created. - spack.hooks.pre_install(pkg.spec) - if fake: - _do_fake_install(pkg) - else: - source_path = pkg.stage.source_path - if install_source and os.path.isdir(source_path): - src_target = os.path.join(pkg.spec.prefix, 'share', - pkg.name, 'src') - tty.debug('{0} Copying source to {1}' - .format(pre, src_target)) - fs.install_tree(pkg.stage.source_path, src_target) - - # Do the real install in the source directory. - with fs.working_dir(pkg.stage.source_path): - - # Save the build environment in a file before building. - dump_environment(pkg.env_path) - - for attr in ('configure_args', 'cmake_args'): - try: - configure_args = getattr(pkg, attr)() - configure_args = ' '.join(configure_args) - - with open(pkg.configure_args_path, 'w') as \ - args_file: - args_file.write(configure_args) - - break - except Exception: - pass - - # cache debug settings - debug_level = tty.debug_level() - - # Spawn a daemon that reads from a pipe and redirects - # everything to log_path, and provide the phase for logging - for i, (phase_name, phase_attr) in enumerate(zip( - pkg.phases, pkg._InstallPhase_phases)): - - # Keep a log file for each phase - log_dir = os.path.dirname(pkg.log_path) - log_file = "spack-build-%02d-%s-out.txt" % ( - i + 1, phase_name.lower() - ) - log_file = os.path.join(log_dir, log_file) - - try: - # DEBUGGING TIP - to debug this section, insert an IPython - # embed here, and run the sections below without log capture - with log_output( - log_file, echo, True, env=unmodified_env, - filter_fn=filter_fn - ) as logger: - - with logger.force_echo(): - inner_debug_level = tty.debug_level() - tty.set_debug(debug_level) - tty.msg("{0} Executing phase: '{1}'" - .format(pre, phase_name)) - tty.set_debug(inner_debug_level) - - # Redirect stdout and stderr to daemon pipe - phase = getattr(pkg, phase_attr) - timer.phase(phase_name) - - # Catch any errors to report to logging - phase(pkg.spec, pkg.prefix) - spack.hooks.on_phase_success(pkg, phase_name, log_file) - - except BaseException: - combine_phase_logs(pkg.phase_log_files, pkg.log_path) - spack.hooks.on_phase_error(pkg, phase_name, log_file) - raise - - # We assume loggers share echo True/False - echo = logger.echo - - # After log, we can get all output/error files from the package stage - combine_phase_logs(pkg.phase_log_files, pkg.log_path) - log(pkg) - - # Stop the timer and save results - timer.stop() - with open(pkg.times_log_path, 'w') as timelog: - timer.write_json(timelog) - - # Run post install hooks before build stage is removed. - spack.hooks.post_install(pkg.spec) - - build_time = timer.total - pkg._fetch_time - tty.msg('{0} Successfully installed {1}'.format(pre, pkg_id), - 'Fetch: {0}. Build: {1}. Total: {2}.' - .format(_hms(pkg._fetch_time), _hms(build_time), - _hms(timer.total))) - _print_installed_pkg(pkg.prefix) - - # Send final status that install is successful - spack.hooks.on_install_success(pkg.spec) - - # preserve verbosity across runs - return echo + # don't print long padded paths in executable debug output. + with spack.util.path.filter_padding(): + return installer.run() class BuildTask(object): diff --git a/lib/spack/spack/main.py b/lib/spack/spack/main.py index d237db8904d..ee5b3d53435 100644 --- a/lib/spack/spack/main.py +++ b/lib/spack/spack/main.py @@ -27,6 +27,7 @@ import llnl.util.filesystem as fs import llnl.util.tty as tty +import llnl.util.tty.colify import llnl.util.tty.color as color from llnl.util.tty.log import log_output @@ -173,14 +174,16 @@ def _format_actions_usage(self, actions, groups): usage = super( SpackHelpFormatter, self)._format_actions_usage(actions, groups) + # Eliminate any occurrence of two or more consecutive spaces + usage = re.sub(r'[ ]{2,}', ' ', usage) + # compress single-character flags that are not mutually exclusive # at the beginning of the usage string chars = ''.join(re.findall(r'\[-(.)\]', usage)) usage = re.sub(r'\[-.\] ?', '', usage) if chars: - return '[-%s] %s' % (chars, usage) - else: - return usage + usage = '[-%s] %s' % (chars, usage) + return usage.strip() class SpackArgumentParser(argparse.ArgumentParser): @@ -293,7 +296,18 @@ def add_subcommand_group(title, commands): def add_subparsers(self, **kwargs): """Ensure that sensible defaults are propagated to subparsers""" kwargs.setdefault('metavar', 'SUBCOMMAND') + + # From Python 3.7 we can require a subparser, earlier versions + # of argparse will error because required=True is unknown + if sys.version_info[:2] > (3, 6): + kwargs.setdefault('required', True) + sp = super(SpackArgumentParser, self).add_subparsers(**kwargs) + # This monkey patching is needed for Python 3.5 and 3.6, which support + # having a required subparser but don't expose the API used above + if sys.version_info[:2] == (3, 5) or sys.version_info[:2] == (3, 6): + sp.required = True + old_add_parser = sp.add_parser def add_parser(name, **kwargs): @@ -336,6 +350,15 @@ def format_help(self, level='short'): # in subparsers, self.prog is, e.g., 'spack install' return super(SpackArgumentParser, self).format_help() + def _check_value(self, action, value): + # converted value must be one of the choices (if specified) + if action.choices is not None and value not in action.choices: + cols = llnl.util.tty.colify.colified( + sorted(action.choices), indent=4, tty=True + ) + msg = 'invalid choice: %r choose from:\n%s' % (value, cols) + raise argparse.ArgumentError(action, msg) + def make_argument_parser(**kwargs): """Create an basic argument parser without any subcommands added.""" @@ -720,7 +743,7 @@ def main(argv=None): # activate an environment if one was specified on the command line if not args.no_env: - env = ev.find_environment(args) + env = spack.cmd.find_environment(args) if env: ev.activate(env, args.use_env_repo, add_view=False) diff --git a/lib/spack/spack/modules/common.py b/lib/spack/spack/modules/common.py index 5d9ea366489..526d8a5cec3 100644 --- a/lib/spack/spack/modules/common.py +++ b/lib/spack/spack/modules/common.py @@ -698,7 +698,11 @@ def environment_modifications(self): if use_view is True: use_view = ev.default_view_name - env = ev.get_env({}, 'post_env_write_hook', required=True) + env = ev.active_environment() + if not env: + raise ev.SpackEnvironmentViewError("Module generation with views " + "requires active environment") + view = env.views[use_view] spec.prefix = view.get_projection_for_spec(spec) diff --git a/lib/spack/spack/monitor.py b/lib/spack/spack/monitor.py index b75836b3d2d..43a97a81726 100644 --- a/lib/spack/spack/monitor.py +++ b/lib/spack/spack/monitor.py @@ -87,7 +87,7 @@ def get_monitor_group(subparser): monitor_group = subparser.add_argument_group() monitor_group.add_argument( '--monitor', action='store_true', dest='use_monitor', default=False, - help="interact with a montor server during builds.") + help="interact with a monitor server during builds.") monitor_group.add_argument( '--monitor-save-local', action='store_true', dest='monitor_save_local', default=False, help="save monitor results to .spack instead of server.") diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py index 2f63af13773..690ce075cb6 100644 --- a/lib/spack/spack/package.py +++ b/lib/spack/spack/package.py @@ -41,6 +41,7 @@ import spack.dependency import spack.directives import spack.directory_layout +import spack.environment import spack.error import spack.fetch_strategy as fs import spack.hooks @@ -1251,18 +1252,14 @@ def installed(self): Returns: True if the package has been installed, False otherwise. """ - has_prefix = os.path.isdir(self.prefix) try: # If the spec is in the DB, check the installed # attribute of the record - rec = spack.store.db.get_record(self.spec) - db_says_installed = rec.installed + return spack.store.db.get_record(self.spec).installed except KeyError: # If the spec is not in the DB, the method # above raises a Key error - db_says_installed = False - - return has_prefix and db_says_installed + return False @property def prefix(self): @@ -1537,7 +1534,9 @@ def content_hash(self, content=None): # should this attempt to download the source and set one? This # probably only happens for source repositories which are # referenced by branch name rather than tag or commit ID. - if not self.spec.external: + env = spack.environment.active_environment() + from_local_sources = env and env.is_develop(self.spec) + if not self.spec.external and not from_local_sources: message = 'Missing a source id for {s.name}@{s.version}' tty.warn(message.format(s=self)) hash_content.append(''.encode('utf-8')) diff --git a/lib/spack/spack/relocate.py b/lib/spack/spack/relocate.py index c6af4d96e73..107b7cc87a1 100644 --- a/lib/spack/spack/relocate.py +++ b/lib/spack/spack/relocate.py @@ -16,7 +16,6 @@ import llnl.util.tty as tty import spack.architecture -import spack.cmd import spack.repo import spack.spec import spack.util.executable as executable @@ -88,7 +87,8 @@ def _patchelf(): return patchelf.path # Check if patchelf spec is installed - spec = spack.spec.Spec('patchelf').concretized() + spec = spack.spec.Spec('patchelf') + spec._old_concretize() exe_path = os.path.join(spec.prefix.bin, "patchelf") if spec.package.installed and os.path.exists(exe_path): return exe_path diff --git a/lib/spack/spack/repo.py b/lib/spack/spack/repo.py index ef1d684cadd..74c5cd2d877 100644 --- a/lib/spack/spack/repo.py +++ b/lib/spack/spack/repo.py @@ -1299,19 +1299,24 @@ def use_repositories(*paths_and_repos): """ global path + remove_from_meta = None + # Construct a temporary RepoPath object from temporary_repositories = RepoPath(*paths_and_repos) # Swap the current repository out saved = path - remove_from_meta = set_path(temporary_repositories) - yield temporary_repositories + try: + remove_from_meta = set_path(temporary_repositories) - # Restore _path and sys.meta_path - if remove_from_meta: - sys.meta_path.remove(temporary_repositories) - path = saved + yield temporary_repositories + + finally: + # Restore _path and sys.meta_path + if remove_from_meta: + sys.meta_path.remove(temporary_repositories) + path = saved class RepoError(spack.error.SpackError): diff --git a/lib/spack/spack/reporters/cdash.py b/lib/spack/spack/reporters/cdash.py index 24e4f2833a2..cb9539b2d73 100644 --- a/lib/spack/spack/reporters/cdash.py +++ b/lib/spack/spack/reporters/cdash.py @@ -425,18 +425,21 @@ def upload(self, filename): if self.authtoken: request.add_header('Authorization', 'Bearer {0}'.format(self.authtoken)) - # By default, urllib2 only support GET and POST. - # CDash needs expects this file to be uploaded via PUT. - request.get_method = lambda: 'PUT' - response = opener.open(request) - if self.current_package_name not in self.buildIds: - resp_value = response.read() - if isinstance(resp_value, bytes): - resp_value = resp_value.decode('utf-8') - match = self.buildid_regexp.search(resp_value) - if match: - buildid = match.group(1) - self.buildIds[self.current_package_name] = buildid + try: + # By default, urllib2 only support GET and POST. + # CDash needs expects this file to be uploaded via PUT. + request.get_method = lambda: 'PUT' + response = opener.open(request) + if self.current_package_name not in self.buildIds: + resp_value = response.read() + if isinstance(resp_value, bytes): + resp_value = resp_value.decode('utf-8') + match = self.buildid_regexp.search(resp_value) + if match: + buildid = match.group(1) + self.buildIds[self.current_package_name] = buildid + except Exception as e: + print("Upload to CDash failed: {0}".format(e)) def finalize_report(self): if self.buildIds: diff --git a/lib/spack/spack/schema/bootstrap.py b/lib/spack/spack/schema/bootstrap.py index 0505f090033..bd3c6630fb0 100644 --- a/lib/spack/spack/schema/bootstrap.py +++ b/lib/spack/spack/schema/bootstrap.py @@ -4,6 +4,19 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) """Schema for bootstrap.yaml configuration file.""" +#: Schema of a single source +_source_schema = { + 'type': 'object', + 'properties': { + 'name': {'type': 'string'}, + 'description': {'type': 'string'}, + 'type': {'type': 'string'}, + 'info': {'type': 'object'} + }, + 'additionalProperties': False, + 'required': ['name', 'description', 'type'] +} + properties = { 'bootstrap': { 'type': 'object', @@ -12,6 +25,14 @@ 'root': { 'type': 'string' }, + 'sources': { + 'type': 'array', + 'items': _source_schema + }, + 'trusted': { + 'type': 'object', + 'patternProperties': {r'\w[\w-]*': {'type': 'boolean'}} + } } } } diff --git a/lib/spack/spack/schema/config.py b/lib/spack/spack/schema/config.py index 1df922b1376..0cf533eb18c 100644 --- a/lib/spack/spack/schema/config.py +++ b/lib/spack/spack/schema/config.py @@ -99,6 +99,10 @@ }, 'allow_sgid': {'type': 'boolean'}, 'binary_index_root': {'type': 'string'}, + 'url_fetch_method': { + 'type': 'string', + 'enum': ['urllib', 'curl'] + }, }, }, } @@ -153,4 +157,10 @@ def update(data): update_data = spack.config.merge_yaml(update_data, projections_data) data['install_tree'] = update_data changed = True + + use_curl = data.pop('use_curl', None) + if use_curl is not None: + data['url_fetch_method'] = 'curl' if use_curl else 'urllib' + changed = True + return changed diff --git a/lib/spack/spack/schema/env.py b/lib/spack/spack/schema/env.py index 82971505e47..de6a5d9568e 100644 --- a/lib/spack/spack/schema/env.py +++ b/lib/spack/spack/schema/env.py @@ -126,6 +126,9 @@ 'type': 'string', 'pattern': '(roots|all)', }, + 'link_type': { + 'type': 'string' + }, 'select': { 'type': 'array', 'items': { diff --git a/lib/spack/spack/solver/asp.py b/lib/spack/spack/solver/asp.py index 2fb20d914ad..790e545878f 100644 --- a/lib/spack/spack/solver/asp.py +++ b/lib/spack/spack/solver/asp.py @@ -37,6 +37,7 @@ import spack.config import spack.dependency import spack.directives +import spack.environment as ev import spack.error import spack.package import spack.package_prefs @@ -52,6 +53,26 @@ from collections import Sequence +#: Enumeration like object to mark version provenance +version_provenance = collections.namedtuple( # type: ignore + 'VersionProvenance', ['external', 'packages_yaml', 'package_py', 'spec'] +)(spec=0, external=1, packages_yaml=2, package_py=3) + +#: String representation of version origins, to emit legible +# facts for the ASP solver +version_origin_str = { + 0: 'spec', + 1: 'external', + 2: 'packages_yaml', + 3: 'package_py' +} + +#: Named tuple to contain information on declared versions +DeclaredVersion = collections.namedtuple( + 'DeclaredVersion', ['version', 'idx', 'origin'] +) + + def issequence(obj): if isinstance(obj, string_types): return False @@ -93,10 +114,14 @@ def _id(thing): return '"%s"' % str(thing) +@llnl.util.lang.key_ordering class AspFunction(AspObject): def __init__(self, name, args=None): self.name = name - self.args = [] if args is None else args + self.args = () if args is None else args + + def _cmp_key(self): + return (self.name, self.args) def __call__(self, *args): return AspFunction(self.name, args) @@ -112,10 +137,6 @@ def argify(arg): return clingo.Function( self.name, [argify(arg) for arg in self.args], positive=positive) - def __getitem___(self, *args): - self.args[:] = args - return self - def __str__(self): return "%s(%s)" % ( self.name, ', '.join(str(_id(arg)) for arg in self.args)) @@ -267,14 +288,8 @@ def __init__(self, cores=True, asp=None): """ global clingo if not clingo: - # TODO: Find a way to vendor the concrete spec - # in a cross-platform way with spack.bootstrap.ensure_bootstrap_configuration(): - clingo_spec = spack.bootstrap.clingo_root_spec() - clingo_spec._old_concretize() - spack.bootstrap.make_module_available( - 'clingo', spec=clingo_spec, install=True - ) + spack.bootstrap.ensure_clingo_importable_or_raise() import clingo self.out = asp or llnl.util.lang.Devnull() self.cores = cores @@ -422,10 +437,11 @@ class SpackSolverSetup(object): def __init__(self): self.gen = None # set by setup() + + self.declared_versions = {} self.possible_versions = {} - self.versions_in_package_py = {} self.deprecated_versions = {} - self.versions_from_externals = {} + self.possible_virtuals = None self.possible_compilers = [] self.variant_values_from_specs = set() @@ -446,54 +462,23 @@ def pkg_version_rules(self, pkg): This uses self.possible_versions so that we include any versions that arise from a spec. """ + def key_fn(version): + # Origins are sorted by order of importance: + # 1. Spec from command line + # 2. Externals + # 3. Package preferences + # 4. Directives in package.py + return version.origin, version.idx + pkg = packagize(pkg) + declared_versions = self.declared_versions[pkg.name] + most_to_least_preferred = sorted(declared_versions, key=key_fn) - config = spack.config.get("packages") - version_prefs = config.get(pkg.name, {}).get("version", {}) - priority = dict((v, i) for i, v in enumerate(version_prefs)) - - # The keys below show the order of precedence of factors used - # to select a version when concretizing. The item with - # the "largest" key will be selected. - # - # NOTE: When COMPARING VERSIONS, the '@develop' version is always - # larger than other versions. BUT when CONCRETIZING, - # the largest NON-develop version is selected by default. - keyfn = lambda v: ( - # ------- Special direction from the user - # Respect order listed in packages.yaml - -priority.get(v, 0), - - # The preferred=True flag (packages or packages.yaml or both?) - pkg.versions.get(v, {}).get('preferred', False), - - # ------- Regular case: use latest non-develop version by default. - # Avoid @develop version, which would otherwise be the "largest" - # in straight version comparisons - not v.isdevelop(), - - # Compare the version itself - # This includes the logic: - # a) develop > everything (disabled by "not v.isdevelop() above) - # b) numeric > non-numeric - # c) Numeric or string comparison - v) - - # Compute which versions appear only in packages.yaml - from_externals = self.versions_from_externals[pkg.name] - from_package_py = self.versions_in_package_py[pkg.name] - only_from_externals = from_externals - from_package_py - - # These versions don't need a default weight, as they are - # already weighted in a more favorable way when accounting - # for externals. Assigning them a default weight would be - # equivalent to state that they are also declared in - # the package.py file - considered = self.possible_versions[pkg.name] - only_from_externals - most_to_least_preferred = sorted(considered, key=keyfn, reverse=True) - - for i, v in enumerate(most_to_least_preferred): - self.gen.fact(fn.version_declared(pkg.name, v, i)) + for weight, declared_version in enumerate(most_to_least_preferred): + self.gen.fact(fn.version_declared( + pkg.name, declared_version.version, weight, + version_origin_str[declared_version.origin] + )) # Declare deprecated versions for this package, if any deprecated = self.deprecated_versions[pkg.name] @@ -767,7 +752,7 @@ def virtual_preferences(self, pkg_name, func): for i, provider in enumerate(providers): provider_name = spack.spec.Spec(provider).name - func(vspec, provider_name, i + 10) + func(vspec, provider_name, i) def provider_defaults(self): self.gen.h2("Default virtual providers") @@ -806,20 +791,22 @@ def external_packages(self): externals = data.get('externals', []) external_specs = [spack.spec.Spec(x['spec']) for x in externals] - # Compute versions with appropriate weights. This accounts for the - # fact that we should prefer more recent versions, but specs in - # packages.yaml may not be ordered in that sense. + # Order the external versions to prefer more recent versions + # even if specs in packages.yaml are not ordered that way external_versions = [ - (x.version, local_idx) - for local_idx, x in enumerate(external_specs) + (x.version, external_id) + for external_id, x in enumerate(external_specs) ] external_versions = [ - (v, -(w + 1), local_idx) - for w, (v, local_idx) in enumerate(sorted(external_versions)) + (v, idx, external_id) + for idx, (v, external_id) in + enumerate(sorted(external_versions, reverse=True)) ] - for version, weight, id in external_versions: - self.gen.fact(fn.external_version_declared( - pkg_name, str(version), weight, id + for version, idx, external_id in external_versions: + self.declared_versions[pkg_name].append(DeclaredVersion( + version=version, + idx=idx, + origin=version_provenance.external )) # Declare external conditions with a local index into packages.yaml @@ -828,7 +815,6 @@ def external_packages(self): self.gen.fact( fn.possible_external(condition_id, pkg_name, local_idx) ) - self.versions_from_externals[spec.name].add(spec.version) self.possible_versions[spec.name].add(spec.version) self.gen.newline() @@ -877,17 +863,6 @@ def preferred_targets(self, pkg_name): str(preferred.architecture.target), pkg_name, -30 )) - def preferred_versions(self, pkg_name): - packages_yaml = spack.config.get('packages') - versions = packages_yaml.get(pkg_name, {}).get('version', []) - if not versions: - return - - for idx, version in enumerate(reversed(versions)): - self.gen.fact( - fn.preferred_version_declared(pkg_name, version, -(idx + 1)) - ) - def flag_defaults(self): self.gen.h2("Compiler flag defaults") @@ -1037,23 +1012,56 @@ class Body(object): def build_version_dict(self, possible_pkgs, specs): """Declare any versions in specs not declared in packages.""" + self.declared_versions = collections.defaultdict(list) self.possible_versions = collections.defaultdict(set) - self.versions_in_package_py = collections.defaultdict(set) - self.versions_from_externals = collections.defaultdict(set) self.deprecated_versions = collections.defaultdict(set) + packages_yaml = spack.config.get("packages") + packages_yaml = _normalize_packages_yaml(packages_yaml) for pkg_name in possible_pkgs: pkg = spack.repo.get(pkg_name) - for v, version_info in pkg.versions.items(): - self.versions_in_package_py[pkg_name].add(v) + + # All the versions from the corresponding package.py file. Since concepts + # like being a "develop" version or being preferred exist only at a + # package.py level, sort them in this partial list here + def key_fn(item): + version, info = item + # When COMPARING VERSIONS, the '@develop' version is always + # larger than other versions. BUT when CONCRETIZING, the largest + # NON-develop version is selected by default. + return info.get('preferred', False), not version.isdevelop(), version + + for idx, item in enumerate(sorted( + pkg.versions.items(), key=key_fn, reverse=True + )): + v, version_info = item self.possible_versions[pkg_name].add(v) + self.declared_versions[pkg_name].append(DeclaredVersion( + version=v, idx=idx, origin=version_provenance.package_py + )) deprecated = version_info.get('deprecated', False) if deprecated: self.deprecated_versions[pkg_name].add(v) + # All the preferred version from packages.yaml, versions in external + # specs will be computed later + version_preferences = packages_yaml.get(pkg_name, {}).get("version", []) + for idx, v in enumerate(version_preferences): + self.declared_versions[pkg_name].append(DeclaredVersion( + version=v, idx=idx, origin=version_provenance.packages_yaml + )) + for spec in specs: for dep in spec.traverse(): if dep.versions.concrete: + # Concrete versions used in abstract specs from cli. They + # all have idx equal to 0, which is the best possible. In + # any case they will be used due to being set from the cli. + self.declared_versions[dep.name].append(DeclaredVersion( + version=dep.version, + idx=0, + origin=version_provenance.spec + )) self.possible_versions[dep.name].add(dep.version) def _supported_targets(self, compiler_name, compiler_version, targets): @@ -1349,7 +1357,6 @@ def setup(self, driver, specs, tests=False): Arguments: specs (list): list of Specs to solve - """ self._condition_id_counter = itertools.count() @@ -1399,10 +1406,9 @@ def setup(self, driver, specs, tests=False): self.gen.h2('Package preferences: %s' % pkg) self.preferred_variants(pkg) self.preferred_targets(pkg) - self.preferred_versions(pkg) # Inject dev_path from environment - env = spack.environment.get_env(None, None) + env = ev.active_environment() if env: for spec in sorted(specs): for dep in spec.traverse(): @@ -1631,9 +1637,8 @@ def build_specs(self, function_tuples): for s in self._specs.values(): spack.spec.Spec.ensure_external_path_if_external(s) - env = spack.environment.get_env(None, None) for s in self._specs.values(): - _develop_specs_from_env(s, env) + _develop_specs_from_env(s, ev.active_environment()) for s in self._specs.values(): s._mark_concrete() diff --git a/lib/spack/spack/solver/concretize.lp b/lib/spack/spack/solver/concretize.lp index 9bc0d425169..8006e5f94f7 100644 --- a/lib/spack/spack/solver/concretize.lp +++ b/lib/spack/spack/solver/concretize.lp @@ -11,6 +11,15 @@ % Version semantics %----------------------------------------------------------------------------- +% Versions are declared with a weight and an origin, which indicates where the +% version was declared (e.g. "package_py" or "external"). +version_declared(Package, Version, Weight) :- version_declared(Package, Version, Weight, _). + +% We can't emit the same version **with the same weight** from two different sources +:- version_declared(Package, Version, Weight, Origin1), + version_declared(Package, Version, Weight, Origin2), + Origin1 != Origin2. + % versions are declared w/priority -- declared with priority implies declared version_declared(Package, Version) :- version_declared(Package, Version, _). @@ -23,11 +32,8 @@ version_declared(Package, Version) :- version_declared(Package, Version, _). deprecated(Package, Version) :- version(Package, Version), deprecated_version(Package, Version). possible_version_weight(Package, Weight) - :- version(Package, Version), version_declared(Package, Version, Weight), - not preferred_version_declared(Package, Version, _). - -possible_version_weight(Package, Weight) - :- version(Package, Version), preferred_version_declared(Package, Version, Weight). + :- version(Package, Version), + version_declared(Package, Version, Weight). 1 { version_weight(Package, Weight) : possible_version_weight(Package, Weight) } 1 :- node(Package). @@ -38,7 +44,6 @@ possible_version_weight(Package, Weight) version_satisfies(Package, Constraint) :- version(Package, Version), version_satisfies(Package, Constraint, Version). -#defined preferred_version_declared/3. #defined version_satisfies/3. #defined deprecated_version/2. @@ -193,45 +198,37 @@ provides_virtual(Provider, Virtual) :- %----------------------------------------------------------------------------- % Virtual dependency weights %----------------------------------------------------------------------------- -% give dependents the virtuals they want -provider_weight(Dependency, 0) - :- virtual(Virtual), depends_on(Package, Dependency), - provider(Dependency, Virtual), - external(Dependency). -provider_weight(Dependency, Weight) - :- virtual(Virtual), depends_on(Package, Dependency), - provider(Dependency, Virtual), - pkg_provider_preference(Package, Virtual, Dependency, Weight), - not external(Dependency). +% A provider may have different possible weights depending on whether it's an external +% or not, or on preferences expressed in packages.yaml etc. This rule ensures that +% we select the weight, among the possible ones, that minimizes the overall objective function. +1 { provider_weight(Dependency, Virtual, Weight, Reason) : + possible_provider_weight(Dependency, Virtual, Weight, Reason) } 1 + :- provider(Dependency, Virtual). -provider_weight(Dependency, Weight) - :- virtual(Virtual), depends_on(Package, Dependency), - provider(Dependency, Virtual), - not pkg_provider_preference(Package, Virtual, Dependency, _), - not external(Dependency), - default_provider_preference(Virtual, Dependency, Weight). +% Get rid or the reason for enabling the possible weight (useful for debugging) +provider_weight(Dependency, Virtual, Weight) :- provider_weight(Dependency, Virtual, Weight, _). -% if there's no preference for something, it costs 100 to discourage its -% use with minimization -provider_weight(Dependency, 100) - :- virtual(Virtual), - provider(Dependency, Virtual), - depends_on(Package, Dependency), - not external(Dependency), - not pkg_provider_preference(Package, Virtual, Dependency, _), - not default_provider_preference(Virtual, Dependency, _). +% A provider that is an external can use a weight of 0 +possible_provider_weight(Dependency, Virtual, 0, "external") + :- provider(Dependency, Virtual), + external(Dependency). -% Do the same for virtual roots -provider_weight(Package, Weight) - :- virtual_root(Virtual), - provider(Package, Virtual), - default_provider_preference(Virtual, Package, Weight). +% A provider mentioned in packages.yaml can use a weight +% according to its priority in the list of providers +possible_provider_weight(Dependency, Virtual, Weight, "packages_yaml") + :- provider(Dependency, Virtual), + depends_on(Package, Dependency), + pkg_provider_preference(Package, Virtual, Dependency, Weight). -provider_weight(Package, 100) - :- virtual_root(Virtual), - provider(Package, Virtual), - not default_provider_preference(Virtual, Package, _). +% A provider mentioned in the default configuration can use a weight +% according to its priority in the list of providers +possible_provider_weight(Dependency, Virtual, Weight, "default") + :- provider(Dependency, Virtual), + default_provider_preference(Virtual, Dependency, Weight). + +% Any provider can use 100 as a weight, which is very high and discourage its use +possible_provider_weight(Dependency, Virtual, 100, "fallback") :- provider(Dependency, Virtual). #defined possible_provider/2. #defined provider_condition/3. @@ -302,11 +299,13 @@ attr("node_compiler_version_satisfies", Package, Compiler, Version) % External semantics %----------------------------------------------------------------------------- -% if an external version is declared, it is also declared globally -version_declared(Package, Version, Weight) :- external_version_declared(Package, Version, Weight, _). - % if a package is external its version must be one of the external versions -1 { version(Package, Version): external_version_declared(Package, Version, _, _) } 1 :- external(Package). +1 { external_version(Package, Version, Weight): + version_declared(Package, Version, Weight, "external") } 1 + :- external(Package). + +version_weight(Package, Weight) :- external_version(Package, Version, Weight). +version(Package, Version) :- external_version(Package, Version, Weight). % if a package is not buildable (external_only), only externals are allowed external(Package) :- external_only(Package), node(Package). @@ -321,7 +320,7 @@ external(Package) :- external_spec_selected(Package, _). % corresponding external spec. :- version(Package, Version), version_weight(Package, Weight), - external_version_declared(Package, Version, Weight, ID), + version_declared(Package, Version, Weight, "external"), not external(Package). % determine if an external spec has been selected @@ -747,8 +746,8 @@ opt_criterion(13, "multi-valued variants"). opt_criterion(12, "preferred providers for roots"). #minimize{ 0@12 : #true }. #minimize{ - Weight@12,Provider - : provider_weight(Provider, Weight), root(Provider) + Weight@12,Provider,Virtual + : provider_weight(Provider, Virtual, Weight), root(Provider) }. % Try to use default variants or variants that have been set @@ -764,8 +763,8 @@ opt_criterion(11, "number of non-default variants (non-roots)"). opt_criterion(9, "preferred providers (non-roots)"). #minimize{ 0@9 : #true }. #minimize{ - Weight@9,Provider - : provider_weight(Provider, Weight), not root(Provider) + Weight@9,Provider,Virtual + : provider_weight(Provider, Virtual, Weight), not root(Provider) }. % Try to minimize the number of compiler mismatches in the DAG. diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py index af282e44254..af9efb3baa6 100644 --- a/lib/spack/spack/spec.py +++ b/lib/spack/spack/spec.py @@ -1019,7 +1019,9 @@ class SpecBuildInterface(lang.ObjectWrapper): def __init__(self, spec, name, query_parameters): super(SpecBuildInterface, self).__init__(spec) - + # Adding new attributes goes after super() call since the ObjectWrapper + # resets __dict__ to behave like the passed object + self.token = spec, name, query_parameters is_virtual = spack.repo.path.is_virtual(name) self.last_query = QueryState( name=name, @@ -1027,6 +1029,9 @@ def __init__(self, spec, name, query_parameters): isvirtual=is_virtual ) + def __reduce__(self): + return SpecBuildInterface, self.token + @lang.lazy_lexicographic_ordering(set_hash=False) class Spec(object): @@ -2088,28 +2093,7 @@ def from_dict(data): Parameters: data -- a nested dict/list data structure read from YAML or JSON. """ - nodes = data['spec'] - - # Read nodes out of list. Root spec is the first element; - # dependencies are the following elements. - dep_list = [Spec.from_node_dict(node) for node in nodes] - if not dep_list: - raise spack.error.SpecError("YAML spec contains no nodes.") - deps = dict((spec.name, spec) for spec in dep_list) - spec = dep_list[0] - - for node in nodes: - # get dependency dict from the node. - name = next(iter(node)) - - if 'dependencies' not in node[name]: - continue - - yaml_deps = node[name]['dependencies'] - for dname, dhash, dtypes in Spec.read_yaml_dep_specs(yaml_deps): - deps[name]._add_dependency(deps[dname], dtypes) - - return spec + return _spec_from_dict(data) @staticmethod def from_yaml(stream): @@ -4380,6 +4364,43 @@ def __hash__(self): # so we hope it only runs on abstract specs, which are small. return hash(lang.tuplify(self._cmp_iter)) + def __reduce__(self): + return _spec_from_dict, (self.to_dict(hash=ht.build_hash),) + + +# Note: This function has been refactored from being a static method +# of Spec to be a function at the module level. This was needed to +# support its use in __reduce__ to pickle a Spec object in Python 2. +# It can be moved back safely after we drop support for Python 2.7 +def _spec_from_dict(data): + """Construct a spec from YAML. + + Parameters: + data -- a nested dict/list data structure read from YAML or JSON. + """ + nodes = data['spec'] + + # Read nodes out of list. Root spec is the first element; + # dependencies are the following elements. + dep_list = [Spec.from_node_dict(node) for node in nodes] + if not dep_list: + raise spack.error.SpecError("YAML spec contains no nodes.") + deps = dict((spec.name, spec) for spec in dep_list) + spec = dep_list[0] + + for node in nodes: + # get dependency dict from the node. + name = next(iter(node)) + + if 'dependencies' not in node[name]: + continue + + yaml_deps = node[name]['dependencies'] + for dname, dhash, dtypes in Spec.read_yaml_dep_specs(yaml_deps): + deps[name]._add_dependency(deps[dname], dtypes) + + return spec + class LazySpecCache(collections.defaultdict): """Cache for Specs that uses a spec_like as key, and computes lazily diff --git a/lib/spack/spack/stage.py b/lib/spack/spack/stage.py index e4d34a20df3..14413669f1a 100644 --- a/lib/spack/spack/stage.py +++ b/lib/spack/spack/stage.py @@ -18,6 +18,7 @@ from six import iteritems, string_types +import llnl.util.lang import llnl.util.tty as tty from llnl.util.filesystem import ( can_access, @@ -29,7 +30,6 @@ ) import spack.caches -import spack.cmd import spack.config import spack.error import spack.fetch_strategy as fs @@ -857,7 +857,7 @@ def get_checksums_for_versions( tty.msg('Found {0} version{1} of {2}:'.format( num_ver, '' if num_ver == 1 else 's', name), '', - *spack.cmd.elide_list( + *llnl.util.lang.elide_list( ['{0:{1}} {2}'.format(str(v), max_len, url_dict[v]) for v in sorted_versions])) print() diff --git a/lib/spack/spack/store.py b/lib/spack/spack/store.py index a04ece20275..ed5539d7fb6 100644 --- a/lib/spack/spack/store.py +++ b/lib/spack/spack/store.py @@ -301,9 +301,10 @@ def use_store(store_or_path): db, layout = store.db, store.layout root, unpadded_root = store.root, store.unpadded_root - yield temporary_store - - # Restore the original store - store = original_store - db, layout = original_store.db, original_store.layout - root, unpadded_root = original_store.root, original_store.unpadded_root + try: + yield temporary_store + finally: + # Restore the original store + store = original_store + db, layout = original_store.db, original_store.layout + root, unpadded_root = original_store.root, original_store.unpadded_root diff --git a/lib/spack/spack/subprocess_context.py b/lib/spack/spack/subprocess_context.py index 803411cb950..bfba6b0acc7 100644 --- a/lib/spack/spack/subprocess_context.py +++ b/lib/spack/spack/subprocess_context.py @@ -139,16 +139,15 @@ def store_patches(): class_patches = list() if not patches: return TestPatches(list(), list()) - for patch in patches: - for target, name, _ in patches: - if isinstance(target, ModuleType): - new_val = getattr(target, name) - module_name = target.__name__ - module_patches.append((module_name, name, new_val)) - elif isinstance(target, type): - new_val = getattr(target, name) - class_fqn = '.'.join([target.__module__, target.__name__]) - class_patches.append((class_fqn, name, new_val)) + for target, name, _ in patches: + if isinstance(target, ModuleType): + new_val = getattr(target, name) + module_name = target.__name__ + module_patches.append((module_name, name, new_val)) + elif isinstance(target, type): + new_val = getattr(target, name) + class_fqn = '.'.join([target.__module__, target.__name__]) + class_patches.append((class_fqn, name, new_val)) return TestPatches(module_patches, class_patches) diff --git a/lib/spack/spack/test/bootstrap.py b/lib/spack/spack/test/bootstrap.py index fccf67e569c..fa5621e3730 100644 --- a/lib/spack/spack/test/bootstrap.py +++ b/lib/spack/spack/test/bootstrap.py @@ -5,10 +5,17 @@ import pytest import spack.bootstrap +import spack.environment import spack.store import spack.util.path +@pytest.fixture +def active_mock_environment(mutable_config, mutable_mock_env_path): + with spack.environment.create('bootstrap-test') as env: + yield env + + @pytest.mark.regression('22294') def test_store_is_restored_correctly_after_bootstrap(mutable_config, tmpdir): # Prepare a custom store path. This should be in a writeable location @@ -49,3 +56,11 @@ def test_raising_exception_if_bootstrap_disabled(mutable_config): # Check the correct exception is raised with pytest.raises(RuntimeError, match='bootstrapping is currently disabled'): spack.bootstrap.store_path() + + +@pytest.mark.regression('25603') +def test_bootstrap_deactivates_environments(active_mock_environment): + assert spack.environment.active_environment() == active_mock_environment + with spack.bootstrap.ensure_bootstrap_configuration(): + assert spack.environment.active_environment() is None + assert spack.environment.active_environment() == active_mock_environment diff --git a/lib/spack/spack/test/cache_fetch.py b/lib/spack/spack/test/cache_fetch.py index 0929bfd12c6..a3b9cafed89 100644 --- a/lib/spack/spack/test/cache_fetch.py +++ b/lib/spack/spack/test/cache_fetch.py @@ -14,25 +14,25 @@ from spack.stage import Stage -@pytest.mark.parametrize('use_curl', [True, False]) -def test_fetch_missing_cache(tmpdir, use_curl): +@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib']) +def test_fetch_missing_cache(tmpdir, _fetch_method): """Ensure raise a missing cache file.""" testpath = str(tmpdir) - with spack.config.override('config:use_curl', use_curl): + with spack.config.override('config:url_fetch_method', _fetch_method): fetcher = CacheURLFetchStrategy(url='file:///not-a-real-cache-file') with Stage(fetcher, path=testpath): with pytest.raises(NoCacheError, match=r'No cache'): fetcher.fetch() -@pytest.mark.parametrize('use_curl', [True, False]) -def test_fetch(tmpdir, use_curl): +@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib']) +def test_fetch(tmpdir, _fetch_method): """Ensure a fetch after expanding is effectively a no-op.""" testpath = str(tmpdir) cache = os.path.join(testpath, 'cache.tar.gz') touch(cache) url = 'file:///{0}'.format(cache) - with spack.config.override('config:use_curl', use_curl): + with spack.config.override('config:url_fetch_method', _fetch_method): fetcher = CacheURLFetchStrategy(url=url) with Stage(fetcher, path=testpath) as stage: source_path = stage.source_path diff --git a/lib/spack/spack/test/cmd/audit.py b/lib/spack/spack/test/cmd/audit.py index 84bbdbde5af..2c9dc6b1248 100644 --- a/lib/spack/spack/test/cmd/audit.py +++ b/lib/spack/spack/test/cmd/audit.py @@ -31,3 +31,23 @@ def test_audit_configs(mutable_config, mock_packages): audit('configs', fail_on_error=False) # The mock configuration has duplicate definitions of some compilers assert audit.returncode == 1 + + +def test_audit_packages_https(mutable_config, mock_packages): + + # Without providing --all should fail + audit('packages-https', fail_on_error=False) + # The mock configuration has duplicate definitions of some compilers + assert audit.returncode == 1 + + # This uses http and should fail + audit('packages-https', "preferred-test", fail_on_error=False) + assert audit.returncode == 1 + + # providing one or more package names with https should work + audit('packages-https', "cmake", fail_on_error=True) + assert audit.returncode == 0 + + # providing one or more package names with https should work + audit('packages-https', "cmake", "conflict", fail_on_error=True) + assert audit.returncode == 0 diff --git a/lib/spack/spack/test/cmd/bootstrap.py b/lib/spack/spack/test/cmd/bootstrap.py index 0537d85faa4..3904b1019a4 100644 --- a/lib/spack/spack/test/cmd/bootstrap.py +++ b/lib/spack/spack/test/cmd/bootstrap.py @@ -7,7 +7,7 @@ import pytest import spack.config -import spack.environment +import spack.environment as ev import spack.main _bootstrap = spack.main.SpackCommand('bootstrap') @@ -65,7 +65,7 @@ def test_reset_in_file_scopes(mutable_config, scopes): def test_reset_in_environment(mutable_mock_env_path, mutable_config): env = spack.main.SpackCommand('env') env('create', 'bootstrap-test') - current_environment = spack.environment.read('bootstrap-test') + current_environment = ev.read('bootstrap-test') with current_environment: _bootstrap('disable') @@ -99,3 +99,49 @@ def test_reset_in_file_scopes_overwrites_backup_files(mutable_config): _bootstrap('reset', '-y') assert not os.path.exists(bootstrap_yaml) assert os.path.exists(backup_file) + + +def test_list_sources(capsys): + # Get the merged list and ensure we get our defaults + with capsys.disabled(): + output = _bootstrap('list') + assert "github-actions" in output + + # Ask for a specific scope and check that the list of sources is empty + with capsys.disabled(): + output = _bootstrap('list', '--scope', 'user') + assert "No method available" in output + + +@pytest.mark.parametrize('command,value', [ + ('trust', True), + ('untrust', False) +]) +def test_trust_or_untrust_sources(mutable_config, command, value): + key = 'bootstrap:trusted:github-actions' + trusted = spack.config.get(key, default=None) + assert trusted is None + + _bootstrap(command, 'github-actions') + trusted = spack.config.get(key, default=None) + assert trusted is value + + +def test_trust_or_untrust_fails_with_no_method(mutable_config): + with pytest.raises(RuntimeError, match='no bootstrapping method'): + _bootstrap('trust', 'foo') + + +def test_trust_or_untrust_fails_with_more_than_one_method(mutable_config): + wrong_config = {'sources': [ + {'name': 'github-actions', + 'type': 'buildcache', + 'description': ''}, + {'name': 'github-actions', + 'type': 'buildcache', + 'description': 'Another entry'}], + 'trusted': {} + } + with spack.config.override('bootstrap', wrong_config): + with pytest.raises(RuntimeError, match='more than one'): + _bootstrap('trust', 'github-actions') diff --git a/lib/spack/spack/test/cmd/buildcache.py b/lib/spack/spack/test/cmd/buildcache.py index d67f709a6ba..bf615634e7a 100644 --- a/lib/spack/spack/test/cmd/buildcache.py +++ b/lib/spack/spack/test/cmd/buildcache.py @@ -6,6 +6,7 @@ import errno import os import platform +import shutil import pytest @@ -172,3 +173,79 @@ def test_update_key_index(tmpdir, mutable_mock_env_path, mirror('rm', 'test-mirror') assert 'index.json' in key_dir_list + + +def test_buildcache_sync(mutable_mock_env_path, install_mockery_mutable_config, + mock_packages, mock_fetch, mock_stage, tmpdir): + """ + Make sure buildcache sync works in an environment-aware manner, ignoring + any specs that may be in the mirror but not in the environment. + """ + working_dir = tmpdir.join('working_dir') + + src_mirror_dir = working_dir.join('src_mirror').strpath + src_mirror_url = 'file://{0}'.format(src_mirror_dir) + + dest_mirror_dir = working_dir.join('dest_mirror').strpath + dest_mirror_url = 'file://{0}'.format(dest_mirror_dir) + + in_env_pkg = 'trivial-install-test-package' + out_env_pkg = 'libdwarf' + + def verify_mirror_contents(): + dest_list = os.listdir( + os.path.join(dest_mirror_dir, 'build_cache')) + + found_pkg = False + + for p in dest_list: + assert(out_env_pkg not in p) + if in_env_pkg in p: + found_pkg = True + + if not found_pkg: + print('Expected to find {0} in {1}'.format( + in_env_pkg, dest_mirror_dir)) + assert(False) + + # Install a package and put it in the buildcache + s = Spec(out_env_pkg).concretized() + install(s.name) + buildcache( + 'create', '-u', '-f', '-a', '--mirror-url', src_mirror_url, s.name) + + env('create', 'test') + with ev.read('test'): + add(in_env_pkg) + install() + buildcache( + 'create', '-u', '-f', '-a', '--mirror-url', src_mirror_url, in_env_pkg) + + # Now run the spack buildcache sync command with all the various options + # for specifying mirrors + + # Use urls to specify mirrors + buildcache('sync', + '--src-mirror-url', src_mirror_url, + '--dest-mirror-url', dest_mirror_url) + + verify_mirror_contents() + shutil.rmtree(dest_mirror_dir) + + # Use local directory paths to specify fs locations + buildcache('sync', + '--src-directory', src_mirror_dir, + '--dest-directory', dest_mirror_dir) + + verify_mirror_contents() + shutil.rmtree(dest_mirror_dir) + + # Use mirror names to specify mirrors + mirror('add', 'src', src_mirror_url) + mirror('add', 'dest', dest_mirror_url) + + buildcache('sync', + '--src-mirror-name', 'src', + '--dest-mirror-name', 'dest') + + verify_mirror_contents() diff --git a/lib/spack/spack/test/cmd/ci.py b/lib/spack/spack/test/cmd/ci.py index ea7d063b74e..fad1cd5351d 100644 --- a/lib/spack/spack/test/cmd/ci.py +++ b/lib/spack/spack/test/cmd/ci.py @@ -23,6 +23,7 @@ import spack.repo as repo import spack.util.gpg import spack.util.spack_yaml as syaml +import spack.util.url as url_util from spack.schema.buildcache_spec import schema as spec_yaml_schema from spack.schema.database_index import schema as db_idx_schema from spack.schema.gitlab_ci import schema as gitlab_ci_schema @@ -55,7 +56,7 @@ def _set_project_dir(path): @pytest.fixture() def env_deactivate(): yield - spack.environment._active_environment = None + ev._active_environment = None os.environ.pop('SPACK_ENV', None) @@ -616,6 +617,8 @@ def test_ci_generate_for_pr_pipeline(tmpdir, mutable_mock_env_path, os.environ['SPACK_PR_BRANCH'] = 'fake-test-branch' monkeypatch.setattr( ci, 'SPACK_PR_MIRRORS_ROOT_URL', r"file:///fake/mirror") + monkeypatch.setattr( + ci, 'SPACK_SHARED_PR_MIRROR_URL', r"file:///fake/mirror_two") try: ci_cmd('generate', '--output-file', outputfile) finally: @@ -667,6 +670,8 @@ def test_ci_generate_with_external_pkg(tmpdir, mutable_mock_env_path, with ev.read('test'): monkeypatch.setattr( ci, 'SPACK_PR_MIRRORS_ROOT_URL', r"file:///fake/mirror") + monkeypatch.setattr( + ci, 'SPACK_SHARED_PR_MIRROR_URL', r"file:///fake/mirror_two") ci_cmd('generate', '--output-file', outputfile) with open(outputfile) as f: @@ -689,9 +694,13 @@ def test_ci_rebuild(tmpdir, mutable_mock_env_path, env_deactivate, mirror_dir = working_dir.join('mirror') mirror_url = 'file://{0}'.format(mirror_dir.strpath) - broken_specs_url = 's3://some-bucket/naughty-list' + broken_specs_path = os.path.join(working_dir.strpath, 'naughty-list') + broken_specs_url = url_util.join('file://', broken_specs_path) temp_storage_url = 'file:///path/to/per/pipeline/storage' + ci_job_url = 'https://some.domain/group/project/-/jobs/42' + ci_pipeline_url = 'https://some.domain/group/project/-/pipelines/7' + signing_key_dir = spack_paths.mock_gpg_keys_path signing_key_path = os.path.join(signing_key_dir, 'package-signing-key') with open(signing_key_path) as fd: @@ -743,14 +752,17 @@ def test_ci_rebuild(tmpdir, mutable_mock_env_path, env_deactivate, root_spec_build_hash = None job_spec_dag_hash = None + job_spec_full_hash = None for h, s in env.specs_by_hash.items(): if s.name == 'archive-files': root_spec_build_hash = h job_spec_dag_hash = s.dag_hash() + job_spec_full_hash = s.full_hash() assert root_spec_build_hash assert job_spec_dag_hash + assert job_spec_full_hash def fake_cdash_register(build_name, base_url, project, site, track): return ('fakebuildid', 'fakestamp') @@ -760,6 +772,7 @@ def fake_cdash_register(build_name, base_url, project, site, track): monkeypatch.setattr(spack.cmd.ci, 'CI_REBUILD_INSTALL_BASE_ARGS', [ 'notcommand' ]) + monkeypatch.setattr(spack.cmd.ci, 'INSTALL_FAIL_CODE', 127) with env_dir.as_cwd(): env_cmd('activate', '--without-view', '--sh', '-d', '.') @@ -780,6 +793,8 @@ def fake_cdash_register(build_name, base_url, project, site, track): set_env_var('SPACK_RELATED_BUILDS_CDASH', '') set_env_var('SPACK_REMOTE_MIRROR_URL', mirror_url) set_env_var('SPACK_PIPELINE_TYPE', 'spack_protected_branch') + set_env_var('CI_JOB_URL', ci_job_url) + set_env_var('CI_PIPELINE_URL', ci_pipeline_url) ci_cmd('rebuild', fail_on_error=False) @@ -815,6 +830,12 @@ def mystrip(s): flag_index = install_parts.index('-f') assert('archive-files.yaml' in install_parts[flag_index + 1]) + broken_spec_file = os.path.join(broken_specs_path, job_spec_full_hash) + with open(broken_spec_file) as fd: + broken_spec_content = fd.read() + assert(ci_job_url in broken_spec_content) + assert(ci_pipeline_url) in broken_spec_content + env_cmd('deactivate') @@ -1136,6 +1157,8 @@ def test_ci_generate_override_runner_attrs(tmpdir, mutable_mock_env_path, spack.main, 'get_version', lambda: '0.15.3-416-12ad69eb1') monkeypatch.setattr( ci, 'SPACK_PR_MIRRORS_ROOT_URL', r"file:///fake/mirror") + monkeypatch.setattr( + ci, 'SPACK_SHARED_PR_MIRROR_URL', r"file:///fake/mirror_two") ci_cmd('generate', '--output-file', outputfile) with open(outputfile) as f: @@ -1240,6 +1263,8 @@ def test_ci_generate_with_workarounds(tmpdir, mutable_mock_env_path, with ev.read('test'): monkeypatch.setattr( ci, 'SPACK_PR_MIRRORS_ROOT_URL', r"file:///fake/mirror") + monkeypatch.setattr( + ci, 'SPACK_SHARED_PR_MIRROR_URL', r"file:///fake/mirror_two") ci_cmd('generate', '--output-file', outputfile, '--dependencies') with open(outputfile) as f: @@ -1400,6 +1425,8 @@ def fake_get_mirrors_for_spec(spec=None, full_hash_match=False, with ev.read('test'): monkeypatch.setattr( ci, 'SPACK_PR_MIRRORS_ROOT_URL', r"file:///fake/mirror") + monkeypatch.setattr( + ci, 'SPACK_SHARED_PR_MIRROR_URL', r"file:///fake/mirror_two") ci_cmd('generate', '--output-file', outputfile) @@ -1551,6 +1578,8 @@ def test_ci_generate_temp_storage_url(tmpdir, mutable_mock_env_path, monkeypatch.setattr( ci, 'SPACK_PR_MIRRORS_ROOT_URL', r"file:///fake/mirror") + monkeypatch.setattr( + ci, 'SPACK_SHARED_PR_MIRROR_URL', r"file:///fake/mirror_two") with ev.read('test'): ci_cmd('generate', '--output-file', outputfile) diff --git a/lib/spack/spack/test/cmd/common/arguments.py b/lib/spack/spack/test/cmd/common/arguments.py index 8797626d605..d3279399785 100644 --- a/lib/spack/spack/test/cmd/common/arguments.py +++ b/lib/spack/spack/test/cmd/common/arguments.py @@ -90,9 +90,7 @@ def test_multiple_env_match_raises_error(mock_packages, mutable_mock_env_path): e.add('a foobar=fee') e.concretize() with e: - with pytest.raises( - spack.environment.SpackEnvironmentError) as exc_info: - + with pytest.raises(ev.SpackEnvironmentError) as exc_info: spack.cmd.matching_spec_from_env(spack.cmd.parse_specs(['a'])[0]) assert 'matches multiple specs' in exc_info.value.message diff --git a/lib/spack/spack/test/cmd/diff.py b/lib/spack/spack/test/cmd/diff.py new file mode 100644 index 00000000000..f795570a4dc --- /dev/null +++ b/lib/spack/spack/test/cmd/diff.py @@ -0,0 +1,79 @@ +# Copyright 2013-2021 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 pytest + +import spack.cmd.diff +import spack.config +import spack.main +import spack.store +import spack.util.spack_json as sjson + +install = spack.main.SpackCommand('install') +diff = spack.main.SpackCommand('diff') + + +def test_diff(install_mockery, mock_fetch, mock_archive, mock_packages): + """Test that we can install two packages and diff them""" + + specA = spack.spec.Spec('mpileaks').concretized() + specB = spack.spec.Spec('mpileaks+debug').concretized() + + # Specs should be the same as themselves + c = spack.cmd.diff.compare_specs(specA, specA, to_string=True) + assert len(c['a_not_b']) == 0 + assert len(c['b_not_a']) == 0 + + # Calculate the comparison (c) + c = spack.cmd.diff.compare_specs(specA, specB, to_string=True) + assert len(c['a_not_b']) == 1 + assert len(c['b_not_a']) == 1 + assert c['a_not_b'][0] == ['variant_value', 'mpileaks debug False'] + assert c['b_not_a'][0] == ['variant_value', 'mpileaks debug True'] + + +def test_load_first(install_mockery, mock_fetch, mock_archive, mock_packages): + """Test with and without the --first option""" + install('mpileaks') + + # Only one version of mpileaks will work + diff('mpileaks', 'mpileaks') + + # 2 specs are required for a diff + with pytest.raises(spack.main.SpackCommandError): + diff('mpileaks') + with pytest.raises(spack.main.SpackCommandError): + diff('mpileaks', 'mpileaks', 'mpileaks') + + # Ensure they are the same + assert "No differences" in diff('mpileaks', 'mpileaks') + output = diff('--json', 'mpileaks', 'mpileaks') + result = sjson.load(output) + + assert len(result['a_not_b']) == 0 + assert len(result['b_not_a']) == 0 + + assert 'mpileaks' in result['a_name'] + assert 'mpileaks' in result['b_name'] + assert "intersect" in result and len(result['intersect']) > 50 + + # After we install another version, it should ask us to disambiguate + install('mpileaks+debug') + + # There are two versions of mpileaks + with pytest.raises(spack.main.SpackCommandError): + diff('mpileaks', 'mpileaks+debug') + + # But if we tell it to use the first, it won't try to disambiguate + assert "variant" in diff('--first', 'mpileaks', 'mpileaks+debug') + + # This matches them exactly + output = diff("--json", "mpileaks@2.3/ysubb76", "mpileaks@2.3/ft5qff3") + result = sjson.load(output) + + assert len(result['a_not_b']) == 1 + assert len(result['b_not_a']) == 1 + assert result['a_not_b'][0] == ['variant_value', 'mpileaks debug False'] + assert result['b_not_a'][0] == ['variant_value', 'mpileaks debug True'] diff --git a/lib/spack/spack/test/cmd/env.py b/lib/spack/spack/test/cmd/env.py index 58094e1abb0..d9d6f5483ce 100644 --- a/lib/spack/spack/test/cmd/env.py +++ b/lib/spack/spack/test/cmd/env.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import glob import os +from argparse import Namespace import pytest from six import StringIO @@ -11,6 +12,7 @@ import llnl.util.filesystem as fs import llnl.util.link_tree +import spack.cmd.env import spack.environment as ev import spack.hash_types as ht import spack.modules @@ -53,7 +55,7 @@ def check_viewdir_removal(viewdir): @pytest.fixture() def env_deactivate(): yield - spack.environment._active_environment = None + ev._active_environment = None os.environ.pop('SPACK_ENV', None) @@ -228,7 +230,7 @@ def test_activate_adds_transitive_run_deps_to_path( with e: install('depends-on-run-env') - cmds = spack.environment.activate(e) + cmds = ev.activate(e) assert 'DEPENDENCY_ENV_VAR=1' in cmds @@ -1143,7 +1145,7 @@ def test_env_without_view_install( env('create', '--without-view', 'test') test_env = ev.read('test') - with pytest.raises(spack.environment.SpackEnvironmentError): + with pytest.raises(ev.SpackEnvironmentError): test_env.default_view view_dir = tmpdir.join('view') @@ -1948,6 +1950,35 @@ def test_view_link_roots(tmpdir, mock_fetch, mock_packages, mock_archive, (spec.version, spec.compiler.name))) +@pytest.mark.parametrize('link_type', ['hardlink', 'copy', 'symlink']) +def test_view_link_type(link_type, tmpdir, mock_fetch, mock_packages, mock_archive, + install_mockery): + filename = str(tmpdir.join('spack.yaml')) + viewdir = str(tmpdir.join('view')) + with open(filename, 'w') as f: + f.write("""\ +env: + specs: + - mpileaks + view: + default: + root: %s + link_type: %s""" % (viewdir, link_type)) + with tmpdir.as_cwd(): + env('create', 'test', './spack.yaml') + with ev.read('test'): + install() + + test = ev.read('test') + + for spec in test.roots(): + file_path = test.default_view.view()._root + file_to_test = os.path.join( + file_path, spec.name) + assert os.path.isfile(file_to_test) + assert os.path.islink(file_to_test) == (link_type == 'symlink') + + def test_view_link_all(tmpdir, mock_fetch, mock_packages, mock_archive, install_mockery): filename = str(tmpdir.join('spack.yaml')) @@ -2591,3 +2622,36 @@ def test_virtual_spec_concretize_together(tmpdir): e.concretize() assert any(s.package.provides('mpi') for _, s in e.concretized_specs()) + + +def test_query_develop_specs(): + """Test whether a spec is develop'ed or not""" + env('create', 'test') + with ev.read('test') as e: + e.add('mpich') + e.add('mpileaks') + e.develop(Spec('mpich@1'), 'here', clone=False) + + assert e.is_develop(Spec('mpich')) + assert not e.is_develop(Spec('mpileaks')) + + +@pytest.mark.parametrize('method', [ + spack.cmd.env.env_activate, + spack.cmd.env.env_deactivate +]) +@pytest.mark.parametrize( + 'env,no_env,env_dir', + [ + ('b', False, None), + (None, True, None), + (None, False, 'path/'), + ]) +def test_activation_and_deactiviation_ambiguities(method, env, no_env, env_dir, capsys): + """spack [-e x | -E | -D x/] env [activate | deactivate] y are ambiguous""" + args = Namespace(shell='sh', activate_env='a', + env=env, no_env=no_env, env_dir=env_dir) + with pytest.raises(SystemExit): + method(args) + _, err = capsys.readouterr() + assert 'is ambiguous' in err diff --git a/lib/spack/spack/test/cmd/install.py b/lib/spack/spack/test/cmd/install.py index 022db42ba2c..7735ebf506e 100644 --- a/lib/spack/spack/test/cmd/install.py +++ b/lib/spack/spack/test/cmd/install.py @@ -12,7 +12,6 @@ import pytest from six.moves import builtins -from six.moves.urllib.error import HTTPError, URLError import llnl.util.filesystem as fs @@ -312,7 +311,7 @@ def test_install_invalid_spec(invalid_spec): install(invalid_spec) -@pytest.mark.usefixtures('noop_install', 'config') +@pytest.mark.usefixtures('noop_install', 'mock_packages', 'config') @pytest.mark.parametrize('spec,concretize,error_code', [ (Spec('mpi'), False, 1), (Spec('mpi'), True, 0), @@ -416,7 +415,7 @@ def just_throw(*args, **kwargs): assert 'error message="{0}"'.format(msg) in content -@pytest.mark.usefixtures('noop_install', 'config') +@pytest.mark.usefixtures('noop_install', 'mock_packages', 'config') @pytest.mark.parametrize('clispecs,filespecs', [ [[], ['mpi']], [[], ['mpi', 'boost']], @@ -491,7 +490,7 @@ def test_cdash_upload_build_error(tmpdir, mock_fetch, install_mockery, # capfd interferes with Spack's capturing with capfd.disabled(): with tmpdir.as_cwd(): - with pytest.raises((HTTPError, URLError)): + with pytest.raises(SpackError): install( '--log-format=cdash', '--log-file=cdash_reports', diff --git a/lib/spack/spack/test/cmd/module.py b/lib/spack/spack/test/cmd/module.py index 7b281eeba31..3bced1d335f 100644 --- a/lib/spack/spack/test/cmd/module.py +++ b/lib/spack/spack/test/cmd/module.py @@ -65,17 +65,6 @@ def test_exit_with_failure(database, module_type, failure_args): module(module_type, *failure_args) -@pytest.mark.db -@pytest.mark.parametrize('deprecated_command', [ - ('refresh', '-m', 'tcl', 'mpileaks'), - ('rm', '-m', 'tcl', '-m', 'lmod', 'mpileaks'), - ('find', 'mpileaks'), -]) -def test_deprecated_command(database, deprecated_command): - with pytest.raises(spack.main.SpackCommandError): - module(*deprecated_command) - - @pytest.mark.db def test_remove_and_add(database, module_type): """Tests adding and removing a tcl module file.""" diff --git a/lib/spack/spack/test/cmd/style.py b/lib/spack/spack/test/cmd/style.py index 65a301bc273..af0fc47d242 100644 --- a/lib/spack/spack/test/cmd/style.py +++ b/lib/spack/spack/test/cmd/style.py @@ -129,14 +129,15 @@ def test_changed_files_all_files(flake8_package): @pytest.mark.skipif(sys.version_info >= (3, 6), reason="doesn't apply to newer python") def test_fail_on_old_python(): """Ensure that `spack style` runs but fails with older python.""" - style(fail_on_error=False) - assert style.returncode != 0 + output = style(fail_on_error=False) + assert "spack style requires Python 3.6" in output @skip_old_python def test_bad_root(tmpdir): """Ensure that `spack style` doesn't run on non-spack directories.""" - style("--root", str(tmpdir), fail_on_error=False) + output = style("--root", str(tmpdir), fail_on_error=False) + assert "This does not look like a valid spack root" in output assert style.returncode != 0 @@ -156,10 +157,12 @@ def test_style_is_package(tmpdir): def test_bad_bootstrap(monkeypatch): """Ensure we fail gracefully when we can't bootstrap spack style.""" monkeypatch.setattr(spack.cmd.style, "tool_order", [ - ("foobartool", "foobartool"), # bad package to force concretization failure + ("isort", "py-isort@4.3:4.0"), # bad spec to force concretization failure ]) - style(fail_on_error=False) - assert style.returncode != 0 + # zero out path to ensure we don't find isort + with pytest.raises(spack.error.SpackError) as e: + style(env={"PATH": ""}) + assert "Couldn't bootstrap isort" in str(e) @pytest.fixture diff --git a/lib/spack/spack/test/compilers/detection.py b/lib/spack/spack/test/compilers/detection.py index 58d03fbfe46..06095c4bf4a 100644 --- a/lib/spack/spack/test/compilers/detection.py +++ b/lib/spack/spack/test/compilers/detection.py @@ -345,6 +345,11 @@ def _module(cmd, *args): @pytest.mark.parametrize('version_str,expected_version', [ # This applies to C,C++ and FORTRAN compiler + ('AMD clang version 12.0.0 (CLANG: AOCC_3_1_0-Build#126 2021_06_07)' + '(based on LLVM Mirror.Version.12.0.0)\n' + 'Target: x86_64-unknown-linux-gnu\n' + 'Thread model: posix\n', '3.1.0' + ), ('AMD clang version 12.0.0 (CLANG: AOCC_3.0.0-Build#78 2020_12_10)' '(based on LLVM Mirror.Version.12.0.0)\n' 'Target: x86_64-unknown-linux-gnu\n' diff --git a/lib/spack/spack/test/concretize.py b/lib/spack/spack/test/concretize.py index 757fdc27069..0becb4d55be 100644 --- a/lib/spack/spack/test/concretize.py +++ b/lib/spack/spack/test/concretize.py @@ -1260,3 +1260,17 @@ def test_provider_must_meet_requirements(self): s = spack.spec.Spec('unsat-virtual-dependency') with pytest.raises((RuntimeError, spack.error.UnsatisfiableSpecError)): s.concretize() + + @pytest.mark.regression('23951') + def test_newer_dependency_adds_a_transitive_virtual(self): + # Ensure that a package doesn't concretize any of its transitive + # dependencies to an old version because newer versions pull in + # a new virtual dependency. The possible concretizations here are: + # + # root@1.0 <- middle@1.0 <- leaf@2.0 <- blas + # root@1.0 <- middle@1.0 <- leaf@1.0 + # + # and "blas" is pulled in only by newer versions of "leaf" + s = spack.spec.Spec('root-adds-virtual').concretized() + assert s['leaf-adds-virtual'].satisfies('@2.0') + assert 'blas' in s diff --git a/lib/spack/spack/test/concretize_preferences.py b/lib/spack/spack/test/concretize_preferences.py index b5b631d6af1..598e9d08fb8 100644 --- a/lib/spack/spack/test/concretize_preferences.py +++ b/lib/spack/spack/test/concretize_preferences.py @@ -384,3 +384,15 @@ def test_variant_not_flipped_to_pull_externals(self): assert '~external' in s['vdefault-or-external'] assert 'externaltool' not in s + + @pytest.mark.regression('25585') + def test_dependencies_cant_make_version_parent_score_better(self): + """Test that a package can't select a worse version for a + dependent because doing so it can pull-in a dependency + that makes the overall version score even or better and maybe + has a better score in some lower priority criteria. + """ + s = Spec('version-test-root').concretized() + + assert s.satisfies('^version-test-pkg@2.4.6') + assert 'version-test-dependency-preferred' not in s diff --git a/lib/spack/spack/test/config.py b/lib/spack/spack/test/config.py index 94966c9fac0..704e9994ed3 100644 --- a/lib/spack/spack/test/config.py +++ b/lib/spack/spack/test/config.py @@ -14,7 +14,7 @@ from llnl.util.filesystem import mkdirp, touch import spack.config -import spack.environment +import spack.environment as ev import spack.main import spack.paths import spack.schema.compilers @@ -360,8 +360,8 @@ def test_substitute_config_variables(mock_low_high_config, monkeypatch): # Fake an active environment and $env is replaced properly fake_env_path = '/quux/quuux' - monkeypatch.setattr(spack.environment, 'get_env', - lambda x, y: MockEnv(fake_env_path)) + monkeypatch.setattr(ev, 'active_environment', + lambda: MockEnv(fake_env_path)) assert spack_path.canonicalize_path( '$env/foo/bar/baz' ) == os.path.join(fake_env_path, 'foo/bar/baz') diff --git a/lib/spack/spack/test/config_values.py b/lib/spack/spack/test/config_values.py index 367138f098d..4933c5b95f5 100644 --- a/lib/spack/spack/test/config_values.py +++ b/lib/spack/spack/test/config_values.py @@ -9,7 +9,7 @@ @pytest.mark.parametrize('hash_length', [1, 2, 3, 4, 5, 9]) -@pytest.mark.use_fixtures('mock_packages') +@pytest.mark.usefixtures('mock_packages') def test_set_install_hash_length(hash_length, mutable_config, tmpdir): mutable_config.set('config:install_hash_length', hash_length) mutable_config.set('config:install_tree', {'root': str(tmpdir)}) @@ -24,7 +24,7 @@ def test_set_install_hash_length(hash_length, mutable_config, tmpdir): assert len(hash_str) == hash_length -@pytest.mark.use_fixtures('mock_packages') +@pytest.mark.usefixtures('mock_packages') def test_set_install_hash_length_upper_case(mutable_config, tmpdir): mutable_config.set('config:install_hash_length', 5) mutable_config.set( diff --git a/lib/spack/spack/test/conftest.py b/lib/spack/spack/test/conftest.py index d579fe616f8..3f7a9f3a477 100644 --- a/lib/spack/spack/test/conftest.py +++ b/lib/spack/spack/test/conftest.py @@ -1267,11 +1267,11 @@ def get_rev(): @pytest.fixture() def mutable_mock_env_path(tmpdir_factory): """Fixture for mocking the internal spack environments directory.""" - saved_path = spack.environment.env_path + saved_path = ev.env_path mock_path = tmpdir_factory.mktemp('mock-env-path') - spack.environment.env_path = str(mock_path) + ev.env_path = str(mock_path) yield mock_path - spack.environment.env_path = saved_path + ev.env_path = saved_path @pytest.fixture() diff --git a/lib/spack/spack/test/data/config/bootstrap.yaml b/lib/spack/spack/test/data/config/bootstrap.yaml new file mode 100644 index 00000000000..9e78aa79467 --- /dev/null +++ b/lib/spack/spack/test/data/config/bootstrap.yaml @@ -0,0 +1,12 @@ +bootstrap: + sources: + - name: 'github-actions' + type: buildcache + description: | + Buildcache generated from a public workflow using Github Actions. + The sha256 checksum of binaries is checked before installation. + info: + url: file:///home/culpo/production/spack/mirrors/clingo + homepage: https://github.com/alalazo/spack-bootstrap-mirrors + releases: https://github.com/alalazo/spack-bootstrap-mirrors/releases + trusted: {} diff --git a/lib/spack/spack/test/data/config/packages.yaml b/lib/spack/spack/test/data/config/packages.yaml index 496c3623ccb..84f470d2089 100644 --- a/lib/spack/spack/test/data/config/packages.yaml +++ b/lib/spack/spack/test/data/config/packages.yaml @@ -2,6 +2,7 @@ packages: all: providers: mpi: [openmpi, mpich] + blas: [openblas] externaltool: buildable: False externals: @@ -46,3 +47,5 @@ packages: externals: - spec: external-non-default-variant@3.8.7~foo~bar prefix: /usr + version-test-dependency-preferred: + version: ['5.2.5'] \ No newline at end of file diff --git a/lib/spack/spack/test/install.py b/lib/spack/spack/test/install.py index f71c77a35b9..67d50d22731 100644 --- a/lib/spack/spack/test/install.py +++ b/lib/spack/spack/test/install.py @@ -126,6 +126,31 @@ def test_partial_install_delete_prefix_and_stage(install_mockery, mock_fetch): pkg.remove_prefix = instance_rm_prefix +@pytest.mark.disable_clean_stage_check +def test_failing_overwrite_install_should_keep_previous_installation( + mock_fetch, install_mockery +): + """ + Make sure that whenever `spack install --overwrite` fails, spack restores + the original install prefix instead of cleaning it. + """ + # Do a successful install + spec = Spec('canfail').concretized() + pkg = spack.repo.get(spec) + pkg.succeed = True + + # Do a failing overwrite install + pkg.do_install() + pkg.succeed = False + kwargs = {'overwrite': [spec.dag_hash()]} + + with pytest.raises(Exception): + pkg.do_install(**kwargs) + + assert pkg.installed + assert os.path.exists(spec.prefix) + + def test_dont_add_patches_to_installed_package(install_mockery, mock_fetch): dependency = Spec('dependency-install') dependency.concretize() diff --git a/lib/spack/spack/test/llnl/util/lang.py b/lib/spack/spack/test/llnl/util/lang.py index 80e4ff92fa8..d9561bb2a53 100644 --- a/lib/spack/spack/test/llnl/util/lang.py +++ b/lib/spack/spack/test/llnl/util/lang.py @@ -155,3 +155,53 @@ def test_uniq(): assert [1, 2, 3] == llnl.util.lang.uniq([1, 1, 1, 1, 2, 2, 2, 3, 3]) assert [1, 2, 1] == llnl.util.lang.uniq([1, 1, 1, 1, 2, 2, 2, 1, 1]) assert [] == llnl.util.lang.uniq([]) + + +def test_key_ordering(): + """Ensure that key ordering works correctly.""" + + with pytest.raises(TypeError): + @llnl.util.lang.key_ordering + class ClassThatHasNoCmpKeyMethod(object): + # this will raise b/c it does not define _cmp_key + pass + + @llnl.util.lang.key_ordering + class KeyComparable(object): + def __init__(self, t): + self.t = t + + def _cmp_key(self): + return self.t + + a = KeyComparable((1, 2, 3)) + a2 = KeyComparable((1, 2, 3)) + b = KeyComparable((2, 3, 4)) + b2 = KeyComparable((2, 3, 4)) + + assert a == a + assert a == a2 + assert a2 == a + + assert b == b + assert b == b2 + assert b2 == b + + assert a != b + + assert a < b + assert b > a + + assert a <= b + assert b >= a + + assert a <= a + assert a <= a2 + assert b >= b + assert b >= b2 + + assert hash(a) != hash(b) + assert hash(a) == hash(a) + assert hash(a) == hash(a2) + assert hash(b) == hash(b) + assert hash(b) == hash(b2) diff --git a/lib/spack/spack/test/modules/lmod.py b/lib/spack/spack/test/modules/lmod.py index 5f839085fa3..861f78c7b86 100644 --- a/lib/spack/spack/test/modules/lmod.py +++ b/lib/spack/spack/test/modules/lmod.py @@ -339,7 +339,9 @@ def test_config_backwards_compat(self, mutable_config): assert old_format == settings['lmod'] def test_modules_relative_to_view( - self, tmpdir, modulefile_content, module_configuration, install_mockery): + self, tmpdir, modulefile_content, module_configuration, install_mockery, + mock_fetch + ): with ev.Environment(str(tmpdir), with_view=True) as e: module_configuration('with_view') install('cmake') diff --git a/lib/spack/spack/test/s3_fetch.py b/lib/spack/spack/test/s3_fetch.py index 2fc9e3de848..fbff60033da 100644 --- a/lib/spack/spack/test/s3_fetch.py +++ b/lib/spack/spack/test/s3_fetch.py @@ -12,20 +12,20 @@ import spack.stage as spack_stage -@pytest.mark.parametrize('use_curl', [True, False]) -def test_s3fetchstrategy_sans_url(use_curl): +@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib']) +def test_s3fetchstrategy_sans_url(_fetch_method): """Ensure constructor with no URL fails.""" - with spack_config.override('config:use_curl', use_curl): + with spack_config.override('config:url_fetch_method', _fetch_method): with pytest.raises(ValueError): spack_fs.S3FetchStrategy(None) -@pytest.mark.parametrize('use_curl', [True, False]) -def test_s3fetchstrategy_bad_url(tmpdir, use_curl): +@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib']) +def test_s3fetchstrategy_bad_url(tmpdir, _fetch_method): """Ensure fetch with bad URL fails as expected.""" testpath = str(tmpdir) - with spack_config.override('config:use_curl', use_curl): + with spack_config.override('config:url_fetch_method', _fetch_method): fetcher = spack_fs.S3FetchStrategy(url='file:///does-not-exist') assert fetcher is not None @@ -36,13 +36,13 @@ def test_s3fetchstrategy_bad_url(tmpdir, use_curl): fetcher.fetch() -@pytest.mark.parametrize('use_curl', [True, False]) -def test_s3fetchstrategy_downloaded(tmpdir, use_curl): +@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib']) +def test_s3fetchstrategy_downloaded(tmpdir, _fetch_method): """Ensure fetch with archive file already downloaded is a noop.""" testpath = str(tmpdir) archive = os.path.join(testpath, 's3.tar.gz') - with spack_config.override('config:use_curl', use_curl): + with spack_config.override('config:url_fetch_method', _fetch_method): class Archived_S3FS(spack_fs.S3FetchStrategy): @property def archive_file(self): diff --git a/lib/spack/spack/test/url_fetch.py b/lib/spack/spack/test/url_fetch.py index b466c40c060..b0bd53af724 100644 --- a/lib/spack/spack/test/url_fetch.py +++ b/lib/spack/spack/test/url_fetch.py @@ -49,20 +49,20 @@ def fn(v): return factory -@pytest.mark.parametrize('use_curl', [True, False]) -def test_urlfetchstrategy_sans_url(use_curl): +@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib']) +def test_urlfetchstrategy_sans_url(_fetch_method): """Ensure constructor with no URL fails.""" - with spack.config.override('config:use_curl', use_curl): + with spack.config.override('config:url_fetch_method', _fetch_method): with pytest.raises(ValueError): with fs.URLFetchStrategy(None): pass -@pytest.mark.parametrize('use_curl', [True, False]) -def test_urlfetchstrategy_bad_url(tmpdir, use_curl): +@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib']) +def test_urlfetchstrategy_bad_url(tmpdir, _fetch_method): """Ensure fetch with bad URL fails as expected.""" testpath = str(tmpdir) - with spack.config.override('config:use_curl', use_curl): + with spack.config.override('config:url_fetch_method', _fetch_method): with pytest.raises(fs.FailedDownloadError): fetcher = fs.URLFetchStrategy(url='file:///does-not-exist') assert fetcher is not None @@ -75,7 +75,7 @@ def test_urlfetchstrategy_bad_url(tmpdir, use_curl): def test_fetch_options(tmpdir, mock_archive): testpath = str(tmpdir) - with spack.config.override('config:use_curl', True): + with spack.config.override('config:url_fetch_method', 'curl'): fetcher = fs.URLFetchStrategy(url=mock_archive.url, fetch_options={'cookie': 'True', 'timeout': 10}) @@ -87,11 +87,11 @@ def test_fetch_options(tmpdir, mock_archive): fetcher.fetch() -@pytest.mark.parametrize('use_curl', [True, False]) -def test_archive_file_errors(tmpdir, mock_archive, use_curl): +@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib']) +def test_archive_file_errors(tmpdir, mock_archive, _fetch_method): """Ensure FetchStrategy commands may only be used as intended""" testpath = str(tmpdir) - with spack.config.override('config:use_curl', use_curl): + with spack.config.override('config:url_fetch_method', _fetch_method): fetcher = fs.URLFetchStrategy(url=mock_archive.url) assert fetcher is not None with pytest.raises(fs.FailedDownloadError): @@ -112,7 +112,7 @@ def test_archive_file_errors(tmpdir, mock_archive, use_curl): @pytest.mark.parametrize('secure', [True, False]) -@pytest.mark.parametrize('use_curl', [True, False]) +@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib']) @pytest.mark.parametrize('mock_archive', [('.tar.gz', 'z'), ('.tgz', 'z'), ('.tar.bz2', 'j'), ('.tbz2', 'j'), @@ -121,7 +121,7 @@ def test_archive_file_errors(tmpdir, mock_archive, use_curl): def test_fetch( mock_archive, secure, - use_curl, + _fetch_method, checksum_type, config, mutable_mock_repo @@ -147,7 +147,7 @@ def test_fetch( # Enter the stage directory and check some properties with pkg.stage: with spack.config.override('config:verify_ssl', secure): - with spack.config.override('config:use_curl', use_curl): + with spack.config.override('config:url_fetch_method', _fetch_method): pkg.do_stage() with working_dir(pkg.stage.source_path): assert os.path.exists('configure') @@ -168,13 +168,13 @@ def test_fetch( ('url-list-test @3.0a1', 'foo-3.0a1.tar.gz', 'abc30a1'), ('url-list-test @4.5-rc5', 'foo-4.5-rc5.tar.gz', 'abc45rc5'), ]) -@pytest.mark.parametrize('use_curl', [True, False]) -def test_from_list_url(mock_packages, config, spec, url, digest, use_curl): +@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib']) +def test_from_list_url(mock_packages, config, spec, url, digest, _fetch_method): """ Test URLs in the url-list-test package, which means they should have checksums in the package. """ - with spack.config.override('config:use_curl', use_curl): + with spack.config.override('config:url_fetch_method', _fetch_method): specification = Spec(spec).concretized() pkg = spack.repo.get(specification) fetch_strategy = fs.from_list_url(pkg) @@ -187,10 +187,10 @@ def test_from_list_url(mock_packages, config, spec, url, digest, use_curl): assert fetch_strategy.extra_options == {'timeout': 60} -@pytest.mark.parametrize('use_curl', [True, False]) -def test_from_list_url_unspecified(mock_packages, config, use_curl): +@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib']) +def test_from_list_url_unspecified(mock_packages, config, _fetch_method): """Test non-specific URLs from the url-list-test package.""" - with spack.config.override('config:use_curl', use_curl): + with spack.config.override('config:url_fetch_method', _fetch_method): pkg = spack.repo.get('url-list-test') spec = Spec('url-list-test @2.0.0').concretized() @@ -236,7 +236,7 @@ def is_true(): monkeypatch.setattr(sys.stdout, 'isatty', is_true) monkeypatch.setattr(tty, 'msg_enabled', is_true) - with spack.config.override('config:use_curl', True): + with spack.config.override('config:url_fetch_method', 'curl'): fetcher = fs.URLFetchStrategy(mock_archive.url) with Stage(fetcher, path=testpath) as stage: assert fetcher.archive_file is None @@ -246,10 +246,10 @@ def is_true(): assert '##### 100' in status -@pytest.mark.parametrize('use_curl', [True, False]) -def test_url_extra_fetch(tmpdir, mock_archive, use_curl): +@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib']) +def test_url_extra_fetch(tmpdir, mock_archive, _fetch_method): """Ensure a fetch after downloading is effectively a no-op.""" - with spack.config.override('config:use_curl', use_curl): + with spack.config.override('config:url_fetch_method', _fetch_method): testpath = str(tmpdir) fetcher = fs.URLFetchStrategy(mock_archive.url) with Stage(fetcher, path=testpath) as stage: @@ -267,12 +267,12 @@ def test_url_extra_fetch(tmpdir, mock_archive, use_curl): ['https://ftpmirror.gnu.org/autoconf/autoconf-2.62.tar.gz', 'https://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz']) ]) -@pytest.mark.parametrize('use_curl', [True, False]) -def test_candidate_urls(pkg_factory, url, urls, version, expected, use_curl): +@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib']) +def test_candidate_urls(pkg_factory, url, urls, version, expected, _fetch_method): """Tests that candidate urls include mirrors and that they go through pattern matching and substitution for versions. """ - with spack.config.override('config:use_curl', use_curl): + with spack.config.override('config:url_fetch_method', _fetch_method): pkg = pkg_factory(url, urls) f = fs._from_merged_attrs(fs.URLFetchStrategy, pkg, version) assert f.candidate_urls == expected @@ -298,7 +298,7 @@ def _which(*args, **kwargs): testpath = str(tmpdir) url = 'http://github.com/spack/spack' - with spack.config.override('config:use_curl', True): + with spack.config.override('config:url_fetch_method', 'curl'): fetcher = fs.URLFetchStrategy(url=url) assert fetcher is not None with pytest.raises(TypeError, match='object is not callable'): diff --git a/lib/spack/spack/test/util/path.py b/lib/spack/spack/test/util/path.py index 532bf031782..8795af33532 100644 --- a/lib/spack/spack/test/util/path.py +++ b/lib/spack/spack/test/util/path.py @@ -5,6 +5,9 @@ import pytest +import llnl.util.tty as tty + +import spack.config import spack.util.path as sup #: Some lines with lots of placeholders @@ -57,3 +60,40 @@ def test_longest_prefix_re(): assert "(?:s(?:t(?:r(?:i(?:ng?)?)?)?)?)" == sup.longest_prefix_re( "string", capture=False ) + + +def test_output_filtering(capfd, install_mockery, mutable_config): + """Test filtering padding out of tty messages.""" + long_path = "/" + "/".join([sup.SPACK_PATH_PADDING_CHARS] * 200) + padding_string = "[padded-to-%d-chars]" % len(long_path) + + # test filtering when padding is enabled + with spack.config.override('config:install_tree', {"padded_length": 256}): + # tty.msg with filtering on the first argument + with sup.filter_padding(): + tty.msg("here is a long path: %s/with/a/suffix" % long_path) + out, err = capfd.readouterr() + assert padding_string in out + + # tty.msg with filtering on a laterargument + with sup.filter_padding(): + tty.msg("here is a long path:", "%s/with/a/suffix" % long_path) + out, err = capfd.readouterr() + assert padding_string in out + + # tty.error with filtering on the first argument + with sup.filter_padding(): + tty.error("here is a long path: %s/with/a/suffix" % long_path) + out, err = capfd.readouterr() + assert padding_string in err + + # tty.error with filtering on a later argument + with sup.filter_padding(): + tty.error("here is a long path:", "%s/with/a/suffix" % long_path) + out, err = capfd.readouterr() + assert padding_string in err + + # test no filtering + tty.msg("here is a long path: %s/with/a/suffix" % long_path) + out, err = capfd.readouterr() + assert padding_string not in out diff --git a/lib/spack/spack/util/executable.py b/lib/spack/spack/util/executable.py index 1074a96cf7b..e615ccdcfd8 100644 --- a/lib/spack/spack/util/executable.py +++ b/lib/spack/spack/util/executable.py @@ -2,6 +2,7 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) + import os import re import shlex @@ -184,10 +185,9 @@ def streamify(arg, mode): cmd = self.exe + list(args) - cmd_line = "'%s'" % "' '".join( - map(lambda arg: arg.replace("'", "'\"'\"'"), cmd)) - - tty.debug(cmd_line) + escaped_cmd = ["'%s'" % arg.replace("'", "'\"'\"'") for arg in cmd] + cmd_line_string = " ".join(escaped_cmd) + tty.debug(cmd_line_string) try: proc = subprocess.Popen( @@ -214,7 +214,7 @@ def streamify(arg, mode): rc = self.returncode = proc.returncode if fail_on_error and rc != 0 and (rc not in ignore_errors): - long_msg = cmd_line + long_msg = cmd_line_string if result: # If the output is not captured in the result, it will have # been stored either in the specified files (e.g. if @@ -229,13 +229,13 @@ def streamify(arg, mode): except OSError as e: raise ProcessError( - '%s: %s' % (self.exe[0], e.strerror), 'Command: ' + cmd_line) + '%s: %s' % (self.exe[0], e.strerror), 'Command: ' + cmd_line_string) except subprocess.CalledProcessError as e: if fail_on_error: raise ProcessError( str(e), '\nExit status %d when invoking command: %s' % - (proc.returncode, cmd_line)) + (proc.returncode, cmd_line_string)) finally: if close_ostream: diff --git a/lib/spack/spack/util/gpg.py b/lib/spack/spack/util/gpg.py index 787f205a139..ddc69c95794 100644 --- a/lib/spack/spack/util/gpg.py +++ b/lib/spack/spack/util/gpg.py @@ -133,20 +133,33 @@ def _parse_secret_keys_output(output): def _parse_public_keys_output(output): + """ + Returns a list of public keys with their fingerprints + """ keys = [] found_pub = False + current_pub_key = '' for line in output.split('\n'): if found_pub: if line.startswith('fpr'): - keys.append(line.split(':')[9]) + keys.append((current_pub_key, line.split(':')[9])) found_pub = False elif line.startswith('ssb'): found_pub = False elif line.startswith('pub'): + current_pub_key = line.split(':')[4] found_pub = True return keys +def _get_unimported_public_keys(output): + keys = [] + for line in output.split('\n'): + if line.startswith('pub'): + keys.append(line.split(':')[4]) + return keys + + class SpackGPGError(spack.error.SpackError): """Class raised when GPG errors are detected.""" @@ -182,7 +195,7 @@ def signing_keys(*args): @_autoinit -def public_keys(*args): +def public_keys_to_fingerprint(*args): """Return the keys that can be used to verify binaries.""" output = GPG( '--list-public-keys', '--with-colons', '--fingerprint', @@ -191,6 +204,13 @@ def public_keys(*args): return _parse_public_keys_output(output) +@_autoinit +def public_keys(*args): + """Return a list of fingerprints""" + keys_and_fpr = public_keys_to_fingerprint(*args) + return [key_and_fpr[1] for key_and_fpr in keys_and_fpr] + + @_autoinit def export_keys(location, keys, secret=False): """Export public keys to a location passed as argument. @@ -208,13 +228,32 @@ def export_keys(location, keys, secret=False): @_autoinit def trust(keyfile): - """Import a public key from a file. + """Import a public key from a file and trust it. Args: keyfile (str): file with the public key """ + # Get the public keys we are about to import + output = GPG('--with-colons', keyfile, output=str, error=str) + keys = _get_unimported_public_keys(output) + + # Import them GPG('--import', keyfile) + # Set trust to ultimate + key_to_fpr = dict(public_keys_to_fingerprint()) + for key in keys: + # Skip over keys we cannot find a fingerprint for. + if key not in key_to_fpr: + continue + + fpr = key_to_fpr[key] + r, w = os.pipe() + with contextlib.closing(os.fdopen(r, 'r')) as r: + with contextlib.closing(os.fdopen(w, 'w')) as w: + w.write("{0}:6:\n".format(fpr)) + GPG('--import-ownertrust', input=r) + @_autoinit def untrust(signing, *keys): diff --git a/lib/spack/spack/util/path.py b/lib/spack/spack/util/path.py index 1848af1440a..49bb65f7d3e 100644 --- a/lib/spack/spack/util/path.py +++ b/lib/spack/spack/util/path.py @@ -7,6 +7,7 @@ TODO: this is really part of spack.config. Consolidate it. """ +import contextlib import getpass import os import re @@ -84,7 +85,7 @@ def substitute_config_variables(path): environment yaml files. """ import spack.environment as ev # break circular - env = ev.get_env({}, '') + env = ev.active_environment() if env: replacements.update({'env': env.path}) else: @@ -232,3 +233,19 @@ def replacer(match): len(match.group(0)) ) return _filter_re.sub(replacer, string) + + +@contextlib.contextmanager +def filter_padding(): + """Context manager to safely disable path padding in all Spack output. + + This is needed because Spack's debug output gets extremely long when we use a + long padded installation path. + """ + padding = spack.config.get("config:install_tree:padded_length", None) + if padding: + # filter out all padding from the intsall command output + with tty.output_filter(padding_filter): + yield + else: + yield # no-op: don't filter unless padding is actually enabled diff --git a/lib/spack/spack/util/web.py b/lib/spack/spack/util/web.py index 34140ed74a0..72f7abc2c4c 100644 --- a/lib/spack/spack/util/web.py +++ b/lib/spack/spack/util/web.py @@ -24,7 +24,6 @@ import llnl.util.tty as tty from llnl.util.filesystem import mkdirp -import spack.cmd import spack.config import spack.error import spack.url @@ -508,9 +507,9 @@ def _urlopen(req, *args, **kwargs): except AttributeError: pass - # We don't pass 'context' parameter because it was only introduced starting + # Note: 'context' parameter was only introduced starting # with versions 2.7.9 and 3.4.3 of Python. - if 'context' in kwargs: + if __UNABLE_TO_VERIFY_SSL: del kwargs['context'] opener = urlopen @@ -518,7 +517,13 @@ def _urlopen(req, *args, **kwargs): import spack.s3_handler opener = spack.s3_handler.open - return opener(req, *args, **kwargs) + try: + return opener(req, *args, **kwargs) + except TypeError as err: + # If the above fails because of 'context', call without 'context'. + if 'context' in kwargs and 'context' in str(err): + del kwargs['context'] + return opener(req, *args, **kwargs) def find_versions_of_archive( diff --git a/pytest.ini b/pytest.ini index 71f563954a0..c381e070618 100644 --- a/pytest.ini +++ b/pytest.ini @@ -7,3 +7,8 @@ markers = db: tests that require creating a DB maybeslow: tests that may be slow (e.g. access a lot the filesystem, etc.) regression: tests that fix a reported bug + requires_executables: tests that requires certain executables in PATH to run + nomockstage: use a stage area specifically created for this test, instead of relying on a common mock stage + enable_compiler_verification: enable compiler verification within unit tests + enable_compiler_link_paths: verifies compiler link paths within unit tests + disable_clean_stage_check: avoid failing tests if there are leftover files in the stage area diff --git a/share/spack/bootstrap/github-actions/clingo.json b/share/spack/bootstrap/github-actions/clingo.json new file mode 100644 index 00000000000..3068ad1f191 --- /dev/null +++ b/share/spack/bootstrap/github-actions/clingo.json @@ -0,0 +1,257 @@ +{ + "verified": [ + { + "binaries": [ + [ + "clingo-bootstrap", + "m4ertsh3ooxdisc5tigglublasu4udfe", + "094548672362306d75012398a6f9b1e8c0f796c833163ca77cf644d84822f25f" + ] + ], + "python": "python@3.5", + "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "iv4gr5vscx2io23ljgdueybwatxlk6wo", + "c8110c68ec339d05155392818b21ba87b27905ad798f5f3f194d6312385dbdc2" + ] + ], + "python": "python@3.6", + "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "rwxcxsohrkp5iai3yushsltkdprjmexb", + "fbee764cac890a29bc03c472d3ba0401e915d6924a7cedac9fd8d961159b70e7" + ] + ], + "python": "python@3.7", + "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "p5on7i4hejl775ezndzfdkhvwra3hatn", + "35e32f7c1f80e99da450b52643800fd2895ee2f895109f708b5cf0da6afbedff" + ] + ], + "python": "python@3.8", + "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "omsvlh5v6fi2saw5qyqvzsbvqpvrf5yw", + "cef0e554737dbf22655094d8ae072c67539cce2a37cba1577aeb5aea18b5747c" + ] + ], + "python": "python@3.9", + "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "qguh44xegb72y4q4lar3ufjddissoumv", + "68d2d0c06690d75a794aa2c50be9d6d501fec1b566784bf87b1fc5611f84f3c9" + ] + ], + "python": "python@3.5", + "spec": "clingo-bootstrap%gcc platform=linux target=aarch64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "tsypkz7hyylmh5pwpykaf7wcmdunrdiv", + "3b8e3e6e21e399a90c4128776cc591734f9d533f0a7e64ed8babd9cbcf616e3d" + ] + ], + "python": "python@3.6", + "spec": "clingo-bootstrap%gcc platform=linux target=aarch64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "2w6b4q5j2zgra6t3zfrjfbvsnoi5yqmk", + "4f335e02641f6ecc7ec7d9d2b8293d07d6e7a7234034531713b760aaa507fa7c" + ] + ], + "python": "python@3.7", + "spec": "clingo-bootstrap%gcc platform=linux target=aarch64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "ij7udwpgeghdfoswljwdtwwaylvudze7", + "b5eedf593f198e523aebf6ce127fd8ffcf3d1c980a920cdf1c5a0d2a335e4892" + ] + ], + "python": "python@3.8", + "spec": "clingo-bootstrap%gcc platform=linux target=aarch64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "a5ppijpzmk7ubjem4i3zttbxp545vjuz", + "8f9755c16c0c99b5c40c420f2c1c6aec2bdff99b25444e001506527af18dd94e" + ] + ], + "python": "python@3.9", + "spec": "clingo-bootstrap%gcc platform=linux target=aarch64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "tsnva2bxjguosntz3tk5mqbdgrjvhfcc", + "bcd093c08110309e705beebccd012260a61215eda12c1d47f3a89d4734ec7170" + ] + ], + "python": "python@3.5", + "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "rfu4la457mdbpoffk2g5hikj2hhoek4s", + "b6417b9b90f3f4e98caaa869393edee08fad3d3c7db37fad8b332c785d0e81e6" + ] + ], + "python": "python@3.6", + "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "qg3utj2csbgtdwc2slqbjmwn25rkor5r", + "a1760e064d41d364cdf53f89248f7824dad9bf97c6b999df18343b57d21c06ed" + ] + ], + "python": "python@3.7", + "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "uxkpc2euofdkgveonftklstnxyha5wsf", + "d6a04e7b15dae05eacce54806fa18356b392a5e2d212a55bf0960116b8e9dfef" + ] + ], + "python": "python@3.8", + "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "i2uoawqsmmkr2uwb42oxfsnt4djzejrj", + "6511837f87e50c40a7f4aab2ec7454e5200594821e4d1fc4a441d3be647b9acb" + ] + ], + "python": "python@3.9", + "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "p3bqplnwqo66lvvolmtaezck77jafrc4", + "436f9483e4028c12c32ba9f4e7e91e944bf9819ef487dfe4e42ddd1d487c93ee" + ] + ], + "python": "python@2.6", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "rpa6yyujr7ilnfcowq2pbmkmh7uzrijp", + "3be0f4ccd412d45506f9f305ef7f6621cd246fbde97aed081595d01dafe3c397" + ] + ], + "python": "python@2.7+ucs4", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "y32mbn7swer3yxvgf6tmkgekpo23uo5z", + "f6e0716bd97f2df123abcd96ec8884c525a9fd10b81e0062784e7b0d2df3f622" + ] + ], + "python": "python@2.7~ucs4", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "ohtmyp5c74xt75csx4llbjs5anobryp6", + "7d613ddbca1640d761311fb00403c0cb65e279534c44a2129b8d9610f6146e78" + ] + ], + "python": "python@3.5", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "vcipwnf57slgoo7busvvkzjkk7vydeb5", + "db5222760045f20ad1e5c194179d31273b8e4bfa6ade38e15cd3182d685cc05b" + ] + ], + "python": "python@3.6", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "ffoyoewfd6pdwbjniodfkqusyvkrbhyi", + "14cea5f6cfd86bcb8de38ad8c1a5e44cc22955de2e7c78b825b617dccd107dbe" + ] + ], + "python": "python@3.7", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "kt74l7kjzrlp3cgtj2576o33mhsrgyrw", + "e71de4beb68bb3e58bd2dcb98dc3be3a375c82781b6f7cb01bc5d552c2240bd2" + ] + ], + "python": "python@3.8", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + }, + { + "binaries": [ + [ + "clingo-bootstrap", + "hmnv6gk5wha64k6r3s7hid35mzvhkuot", + "b08ff59357fa184ce39b8cc0a17aaf7f0a925a449ab389e1afa4eab6ae026f2e" + ] + ], + "python": "python@3.9", + "spec": "clingo-bootstrap%gcc platform=linux target=x86_64" + } + ] +} \ No newline at end of file diff --git a/share/spack/docker/ubuntu-1804.dockerfile b/share/spack/docker/ubuntu-1804.dockerfile index 1ecef106528..9ba3bc61799 100644 --- a/share/spack/docker/ubuntu-1804.dockerfile +++ b/share/spack/docker/ubuntu-1804.dockerfile @@ -67,7 +67,7 @@ RUN [ -f ~/.profile ] \ # [WORKAROUND] # https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082 -RUN ln -s posix_c.so /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so +RUN ln -s posix_c.so /usr/lib/$(uname -m)-linux-gnu/lua/5.2/posix.so WORKDIR /root SHELL ["docker-shell"] diff --git a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml index bbcb5893214..1d7bba79e92 100644 --- a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml +++ b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml @@ -62,7 +62,7 @@ default: # TEMPLATE FOR ADDING ANOTHER PIPELINE ######################################## # -# First add a new spack.yml defining the pipline to run in +# First add a new spack.yml defining the pipeline to run in # share/spack/gitlab/cloud_pipelines/stacks/my-super-cool-stack/spack.yaml # # Then add the following entries at the bottom of this file: @@ -125,7 +125,6 @@ e4s-develop-build: job: e4s-develop-generate strategy: depend - ######################################## # E4S on Power ######################################## @@ -137,24 +136,88 @@ e4s-develop-build: variables: SPACK_CI_STACK_NAME: e4s-on-power -e4s-on-power-pr-generate: - extends: [ ".e4s-on-power", ".pr-generate", ".power-e4s-generate-tags-and-image"] +# e4s-on-power-pr-generate: +# extends: [ ".e4s-on-power", ".pr-generate", ".power-e4s-generate-tags-and-image"] -e4s-on-power-develop-generate: - extends: [ ".e4s-on-power", ".develop-generate", ".power-e4s-generate-tags-and-image"] +# e4s-on-power-develop-generate: +# extends: [ ".e4s-on-power", ".develop-generate", ".power-e4s-generate-tags-and-image"] -e4s-on-power-pr-build: - extends: [ ".e4s-on-power", ".pr-build" ] +# e4s-on-power-pr-build: +# extends: [ ".e4s-on-power", ".pr-build" ] +# trigger: +# include: +# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml +# job: e4s-on-power-pr-generate +# strategy: depend + +# e4s-on-power-develop-build: +# extends: [ ".e4s-on-power", ".develop-build" ] +# trigger: +# include: +# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml +# job: e4s-on-power-develop-generate +# strategy: depend + +######################################### +# Build tests for different build-systems +######################################### +.build_systems: + variables: + SPACK_CI_STACK_NAME: build_systems + +build_systems-pr-generate: + extends: [ ".build_systems", ".pr-generate"] + +build_systems-develop-generate: + extends: [ ".build_systems", ".develop-generate"] + +build_systems-pr-build: + extends: [ ".build_systems", ".pr-build" ] trigger: include: - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml - job: e4s-on-power-pr-generate + job: build_systems-pr-generate strategy: depend -e4s-on-power-develop-build: - extends: [ ".e4s-on-power", ".develop-build" ] +build_systems-develop-build: + extends: [ ".build_systems", ".develop-build" ] trigger: include: - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml - job: e4s-on-power-develop-generate + job: build_systems-develop-generate + strategy: depend + +######################################### +# RADIUSS +######################################### +.radiuss: + variables: + SPACK_CI_STACK_NAME: radiuss + +.radiuss-generate: + extends: [ ".radiuss"] + image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2021-05-15", "entrypoint": [""] } + +# --------- PRs --------- +radiuss-pr-generate: + extends: [ ".radiuss-generate", ".pr-generate" ] + +radiuss-pr-build: + extends: [ ".radiuss", ".pr-build" ] + trigger: + include: + - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml + job: radiuss-pr-generate + strategy: depend + +# --------- Develop --------- +radiuss-develop-generate: + extends: [ ".radiuss-generate", ".develop-generate" ] + +radiuss-develop-build: + extends: [ ".radiuss", ".develop-build" ] + trigger: + include: + - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml + job: radiuss-develop-generate strategy: depend diff --git a/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml new file mode 100644 index 00000000000..5bbf04051d3 --- /dev/null +++ b/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml @@ -0,0 +1,61 @@ +spack: + view: false + concretization: separately + + config: + install_tree: + root: /home/software/spack + padded_length: 512 + projections: + all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}' + + definitions: + - default_specs: + - lz4 # MakefilePackage + - mpich~fortran # AutotoolsPackage + - tut # WafPackage + - py-setuptools # PythonPackage + - openjpeg # CMakePackage + - r-rcpp # RPackage + - ruby-rake # RubyPackage + - arch: + - '%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64' + + specs: + - matrix: + - - $default_specs + - - $arch + + mirrors: { "mirror": "s3://spack-binaries-develop/build_systems" } + + gitlab-ci: + script: + - . "./share/spack/setup-env.sh" + - spack --version + - cd ${SPACK_CONCRETE_ENV_DIR} + - spack env activate --without-view . + - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'" + - spack -d ci rebuild + + mappings: + - match: [ 'os=ubuntu18.04' ] + runner-attributes: + image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2020-09-01", "entrypoint": [ "" ] } + tags: [ "spack", "public", "large", "x86_64" ] + + temporary-storage-url-prefix: "s3://spack-binaries-prs/pipeline-storage" + broken-specs-url: "s3://spack-binaries-develop/broken-specs" + service-job-attributes: + before_script: + - . "./share/spack/setup-env.sh" + - spack --version + - cd share/spack/gitlab/cloud_pipelines/stacks/build_systems + - spack env activate --without-view . + image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2020-09-01", "entrypoint": [""] } + tags: ["spack", "public", "medium", "x86_64"] + + cdash: + build-group: Build tests for different build systems + url: https://cdash.spack.io + project: Spack Testing + site: Cloud Gitlab Infrastructure diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml index a131d8402ec..6662bd4695b 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml @@ -251,30 +251,29 @@ spack: - omega-h - openmpi - openpmd-api ^hdf5@1.12.0 +fortran +shared +hl api=default - + - papi + - papyrus@1.0.1 + - parallel-netcdf + - pdt + - petsc + - plasma + - precice + - pumi + - py-jupyterhub + - py-libensemble + - py-petsc4py + - py-warpx ^warpx dims=2 ^hdf5@1.12.0 +fortran +shared +hl api=default + - py-warpx ^warpx dims=3 ^hdf5@1.12.0 +fortran +shared +hl api=default + - py-warpx ^warpx dims=rz ^hdf5@1.12.0 +fortran +shared +hl api=default + - qthreads scheduler=distrib + - raja + - rempi + - scr + - slate ~cuda + - slepc + - stc + - strumpack ~slate # holding off on the specs until infrastructure is ready - # - papi - # - papyrus@1.0.1 - # - parallel-netcdf - # - pdt - # - petsc - # - plasma - # - precice - # - pumi - # - py-jupyterhub - # - py-libensemble - # - py-petsc4py - # - py-warpx ^warpx dims=2 ^hdf5@1.12.0 +fortran +shared +hl api=default - # - py-warpx ^warpx dims=3 ^hdf5@1.12.0 +fortran +shared +hl api=default - # - py-warpx ^warpx dims=rz ^hdf5@1.12.0 +fortran +shared +hl api=default - # - qthreads scheduler=distrib - # - raja - # - rempi - # - scr - # - slate ~cuda - # - slepc - # - stc - # - strumpack ~slate # - sundials # - superlu # - superlu-dist diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml index 470f72259a2..19366ab4d7b 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml @@ -45,13 +45,16 @@ spack: - 1.21.0 cmake: version: - - 3.20.3 + - 3.20.5 curl: version: - 7.76.1 diffutils: version: - 3.7 + doxygen: + version: + - 1.8.20 elfutils: version: - 0.185 @@ -71,6 +74,9 @@ spack: git: version: - 2.31.1 + glib: + version: + - 2.68.2 hdf5: variants: +fortran +hl +shared version: @@ -133,8 +139,11 @@ spack: - 2.0.14 openblas: version: - - 0.3.15 + - 0.3.17 variants: threads=openmp + openssl: + version: + - 1.1.1k perl: version: - 5.34.0 @@ -156,6 +165,10 @@ spack: texinfo: version: - 6.5 + trilinos: + version: + - 13.0.1 + 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: version: - 5.2.5 @@ -173,7 +186,7 @@ spack: - amrex +cuda cuda_arch=70 # - axom +cuda cuda_arch=70 ^umpire@4.1.2 ~shared - caliper +cuda cuda_arch=70 - - chai +cuda ~benchmarks ~tests cuda_arch=70 ^umpire@4.1.2 ~shared + - chai +cuda ~benchmarks ~tests cuda_arch=70 ^umpire~shared+cuda - ginkgo +cuda cuda_arch=70 - hpx +cuda cuda_arch=70 - kokkos +cuda +wrapper cuda_arch=70 @@ -212,11 +225,11 @@ spack: - archer - argobots - ascent - - axom ^umpire@4.1.2 + - axom ^umpire@5.0.1 ^raja@0.13.0 - bolt - cabana - caliper - - chai ~benchmarks ~tests ^umpire@4.1.2 + - chai ~benchmarks ~tests - conduit - darshan-runtime - darshan-util @@ -225,7 +238,7 @@ spack: - faodel - flecsi@1.4.2 +external_cinch - flit - - fortrilinos ^trilinos +nox +superlu-dist +stratimikos + - fortrilinos - gasnet - ginkgo - globalarrays @@ -284,7 +297,7 @@ spack: - sz - tasmanian - tau - - trilinos@13.0.1 +amesos +amesos2 +anasazi +aztec +belos +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 +boost +superlu-dist gotype=long + - trilinos@13.0.1 +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 - unifyfs@0.9.1 @@ -327,7 +340,8 @@ spack: - cd ${SPACK_CONCRETE_ENV_DIR} - spack env activate --without-view . - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'" - - spack -d ci rebuild + - mkdir -p ${SPACK_ARTIFACTS_ROOT}/user_data + - spack -d ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) mappings: - match: diff --git a/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml new file mode 100644 index 00000000000..30182a82d92 --- /dev/null +++ b/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml @@ -0,0 +1,96 @@ +spack: + concretization: separately + view: false + + config: + concretizer: clingo + install_tree: + root: /home/software/radiuss + padded_length: 512 + projections: + all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}' + + packages: + all: + target: [x86_64] + + providers: + mpi: [mvapich2] + + definitions: + #- compilers: ['%gcc@8.3.1', '%clang@10.0.0'] + - compilers: ['%gcc@7.5.0'] + + # Note skipping spot since no spack package for it + - radiuss: + - ascent # ^conduit@0.6.0 + - axom ^umpire@5.0.1 ^raja@0.13.0 + - blt + - caliper + #- care ## ~benchmarks ~examples ~tests + #- chai ## ~benchmarks ~examples ~tests + - conduit # ^hdf5+shared + - flux-core + #- flux-sched + #- glvis # ^mesa-glu@9.0.0 ^mesa18~llvm # same issue w/chai + - hypre + - lbann + - lvarray ~tests # per Spack issue #23192 # ~examples + - mfem + - py-hatchet + - py-maestrowf + - py-merlin + - py-shroud + - raja # ~examples # ~tests + - samrai + - scr + - sundials + - umpire # ~openmp + #- visit # ^mesa-glu@9.0.0 + - xbraid + - zfp + + mirrors: + mirror: "s3://spack-binaries-develop/radiuss" + + specs: + - matrix: + - [$radiuss] + - [$compilers] + + gitlab-ci: + image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2021-05-15", "entrypoint": [""] } + script: + - . "./share/spack/setup-env.sh" + - spack --version + - cd ${SPACK_CONCRETE_ENV_DIR} + - spack env activate --without-view . + - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'" + - spack -d ci rebuild + mappings: + - match: [ascent, axom, sundials, umpire, vtk-h, vtk-m] + runner-attributes: + tags: ["spack", "public", "xlarge", "x86_64"] + - match: ['os=ubuntu18.04'] + runner-attributes: + tags: ["spack", "public", "large", "x86_64"] + temporary-storage-url-prefix: "s3://spack-binaries-prs/pipeline-storage" + service-job-attributes: + before_script: + - . "./share/spack/setup-env.sh" + - spack --version + - cd share/spack/gitlab/cloud_pipelines/stacks/radiuss + - spack env activate --without-view . + image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2021-05-15", "entrypoint": [""] } + #before_script: + # - . "./share/spack/setup-env.sh" + # - spack --version + # - cd share/spack/gitlab/cloud_pipelines/stacks/radiuss + # - spack env activate --without-view . + tags: ["spack", "public", "medium", "x86_64"] + + cdash: + build-group: RADIUSS + url: https://cdash.spack.io + project: Spack Testing + site: Cloud Gitlab Infrastructure diff --git a/share/spack/qa/bashcov b/share/spack/qa/bashcov index 58fa4fe0d05..4ca684f42bf 100755 --- a/share/spack/qa/bashcov +++ b/share/spack/qa/bashcov @@ -9,4 +9,7 @@ if [ -z "$SPACK_ROOT" ]; then exit 1 fi -kcov "$SPACK_ROOT/coverage" "$@" +# Using a -- to separate the script to be tested from kcov is not documented +# as of v38, but seems to work. The same is true for the "--debug-force-bash-stderr" +# option, see https://github.com/SimonKagstrom/kcov/issues/61 +kcov --debug-force-bash-stderr "$SPACK_ROOT/coverage" -- "$@" diff --git a/share/spack/qa/run-shell-tests b/share/spack/qa/run-shell-tests index 22bf4b8abab..ea67b4c8207 100755 --- a/share/spack/qa/run-shell-tests +++ b/share/spack/qa/run-shell-tests @@ -38,8 +38,8 @@ cd "$SPACK_ROOT" # Run bash tests with coverage enabled, but pipe output to /dev/null # because it seems that kcov seems to undo the script's redirection if [ "$COVERAGE" = true ]; then - "$QA_DIR/bashcov" "$QA_DIR/setup-env-test.sh" &> /dev/null - "$QA_DIR/bashcov" "$QA_DIR/completion-test.sh" &> /dev/null + kcov "$SPACK_ROOT/coverage" "$QA_DIR/setup-env-test.sh" &> /dev/null + kcov "$SPACK_ROOT/coverage" "$QA_DIR/completion-test.sh" &> /dev/null else bash "$QA_DIR/setup-env-test.sh" bash "$QA_DIR/completion-test.sh" diff --git a/share/spack/qa/setup-env-test.fish b/share/spack/qa/setup-env-test.fish index c0738515d15..585b45bb9ca 100755 --- a/share/spack/qa/setup-env-test.fish +++ b/share/spack/qa/setup-env-test.fish @@ -24,7 +24,7 @@ function allocate_testing_global -d "allocate global variables used for testing" end -function delete_testing_global -d "deallocate global varialbes used for testing" +function delete_testing_global -d "deallocate global variables used for testing" set -e __spt_red set -e __spt_cyan @@ -90,9 +90,12 @@ function spt_succeeds set -l output (eval $argv 2>&1) - if test $status -ne 0 + # Save the command result + set cmd_status $status + + if test $cmd_status -ne 0 fail - echo_red "Command failed with error $status" + echo_red "Command failed with error $cmd_status" if test -n "$output" echo_msg "Output:" echo "$output" @@ -116,7 +119,7 @@ function spt_fails if test $status -eq 0 fail - echo_red "Command failed with error $status" + echo_red "Command succeeded, but should fail" if test -n "$output" echo_msg "Output:" echo "$output" @@ -142,9 +145,14 @@ function spt_contains set -l output (eval $remaining_args 2>&1) + # Save the command result + set cmd_status $status + if not echo "$output" | string match -q -r ".*$target_string.*" fail - echo_red "Command exited with error $status" + if test $cmd_status -ne 0 + echo_red "Command exited with error $cmd_status" + end echo_red "'$target_string' was not in output." if test -n "$output" echo_msg "Output:" @@ -249,13 +257,7 @@ echo "Creating a mock environment" spack env create spack_test_env # ensure that we uninstall b on exit -function spt_cleanup - - set trapped_error false - if test $status -ne 0 - set trapped_error true - end - +function spt_cleanup -p %self echo "Removing test environment before exiting." spack env deactivate 2>&1 > /dev/null spack env rm -y spack_test_env @@ -268,30 +270,9 @@ function spt_cleanup echo "$__spt_success tests succeeded." echo "$__spt_errors tests failed." - if test "$trapped_error" = false - echo "Exited due to an error." - end - - if test "$__spt_errors" -eq 0 - if test "$trapped_error" = false - pass - exit 0 - else - fail - exit 1 - end - else - fail - exit 1 - end - delete_testing_global end -trap spt_cleanup EXIT - - - # ----------------------------------------------------------------------- # Test all spack commands with special env support # ----------------------------------------------------------------------- @@ -322,7 +303,6 @@ spt_contains "set -gx LD_LIBRARY_PATH $_b_ld" spack -m load --only package --fis spt_succeeds spack -m load b # test a variable MacOS clears and one it doesn't for recursive loads spt_contains "set -gx LD_LIBRARY_PATH $_a_ld:$_b_ld" spack -m load --fish a -spt_contains "set -gx LIBRARY_PATH $_a_ld:$_b_ld" spack -m load --fish a spt_succeeds spack -m load --only dependencies a spt_succeeds spack -m load --only package a spt_fails spack -m load d @@ -393,3 +373,5 @@ is_not_set SPACK_ENV # despacktivate # is_not_set SPACK_ENV # is_not_set SPACK_OLD_PS1 + +test "$__spt_errors" -eq 0 diff --git a/share/spack/qa/setup.sh b/share/spack/qa/setup.sh index b15d3a4021f..9559f9b7936 100755 --- a/share/spack/qa/setup.sh +++ b/share/spack/qa/setup.sh @@ -31,10 +31,10 @@ if [[ "$COVERAGE" == "true" ]]; then bashcov=$(realpath ${QA_DIR}/bashcov) # instrument scripts requiring shell coverage - sed -i~ "s@#\!/bin/bash@#\!${bashcov}@" "$SPACK_ROOT/lib/spack/env/cc" + sed -i "s@#\!/bin/bash@#\!${bashcov}@" "$SPACK_ROOT/lib/spack/env/cc" if [ "$(uname -o)" != "Darwin" ]; then # On darwin, #! interpreters must be binaries, so no sbang for bashcov - sed -i~ "s@#\!/bin/sh@#\!${bashcov}@" "$SPACK_ROOT/bin/sbang" + sed -i "s@#\!/bin/sh@#\!${bashcov}@" "$SPACK_ROOT/bin/sbang" fi fi diff --git a/share/spack/spack-completion.bash b/share/spack/spack-completion.bash index bf2a488a85d..436ff345e77 100755 --- a/share/spack/spack-completion.bash +++ b/share/spack/spack-completion.bash @@ -333,7 +333,7 @@ _spack() { then SPACK_COMPREPLY="-h --help -H --all-help --color -c --config -C --config-scope -d --debug --timestamp --pdb -e --env -D --env-dir -E --no-env --use-env-repo -k --insecure -l --enable-locks -L --disable-locks -m --mock -p --profile --sorted-profile --lines -v --verbose --stacktrace -V --version --print-shell-vars" else - SPACK_COMPREPLY="activate add analyze arch audit blame bootstrap build-env buildcache cd checksum ci clean clone commands compiler compilers concretize config containerize create deactivate debug dependencies dependents deprecate dev-build develop docs edit env extensions external fetch find flake8 gc gpg graph help info install license list load location log-parse maintainers mark mirror module monitor patch pkg providers pydoc python reindex remove rm repo resource restage solve spec stage style test test-env tutorial undevelop uninstall unit-test unload url verify versions view" + SPACK_COMPREPLY="activate add analyze arch audit blame bootstrap build-env buildcache cd checksum ci clean clone commands compiler compilers concretize config containerize create deactivate debug dependencies dependents deprecate dev-build develop diff docs edit env extensions external fetch find flake8 gc gpg graph help info install license list load location log-parse maintainers mark mirror module monitor patch pkg providers pydoc python reindex remove rm repo resource restage solve spec stage style test test-env tutorial undevelop uninstall unit-test unload url verify versions view" fi } @@ -386,7 +386,7 @@ _spack_audit() { then SPACK_COMPREPLY="-h --help" else - SPACK_COMPREPLY="configs packages list" + SPACK_COMPREPLY="configs packages-https packages list" fi } @@ -394,6 +394,15 @@ _spack_audit_configs() { SPACK_COMPREPLY="-h --help" } +_spack_audit_packages_https() { + if $list_options + then + SPACK_COMPREPLY="-h --help --all" + else + SPACK_COMPREPLY="" + fi +} + _spack_audit_packages() { if $list_options then @@ -421,7 +430,7 @@ _spack_bootstrap() { then SPACK_COMPREPLY="-h --help" else - SPACK_COMPREPLY="enable disable reset root" + SPACK_COMPREPLY="enable disable reset root list trust untrust" fi } @@ -446,6 +455,28 @@ _spack_bootstrap_root() { fi } +_spack_bootstrap_list() { + SPACK_COMPREPLY="-h --help --scope" +} + +_spack_bootstrap_trust() { + if $list_options + then + SPACK_COMPREPLY="-h --help --scope" + else + SPACK_COMPREPLY="" + fi +} + +_spack_bootstrap_untrust() { + if $list_options + then + SPACK_COMPREPLY="-h --help --scope" + else + SPACK_COMPREPLY="" + fi +} + _spack_build_env() { if $list_options then @@ -460,7 +491,7 @@ _spack_buildcache() { then SPACK_COMPREPLY="-h --help" else - SPACK_COMPREPLY="create install list keys preview check download get-buildcache-name save-yaml copy update-index" + SPACK_COMPREPLY="create install list keys preview check download get-buildcache-name save-yaml copy sync update-index" fi } @@ -476,7 +507,7 @@ _spack_buildcache_create() { _spack_buildcache_install() { if $list_options then - SPACK_COMPREPLY="-h --help -f --force -m --multiple -a --allow-root -u --unsigned -o --otherarch" + SPACK_COMPREPLY="-h --help -f --force -m --multiple -a --allow-root -u --unsigned -o --otherarch --sha256" else _all_packages fi @@ -524,6 +555,10 @@ _spack_buildcache_copy() { SPACK_COMPREPLY="-h --help --base-dir --spec-yaml --destination-url" } +_spack_buildcache_sync() { + SPACK_COMPREPLY="-h --help --src-directory --src-mirror-name --src-mirror-url --dest-directory --dest-mirror-name --dest-mirror-url" +} + _spack_buildcache_update_index() { SPACK_COMPREPLY="-h --help -d --mirror-url -k --keys" } @@ -842,6 +877,15 @@ _spack_develop() { fi } +_spack_diff() { + if $list_options + then + SPACK_COMPREPLY="-h --help --json --first -a --attribute" + else + _all_packages + fi +} + _spack_docs() { SPACK_COMPREPLY="-h --help" } diff --git a/share/spack/templates/container/Dockerfile b/share/spack/templates/container/Dockerfile index 875702979dc..c23ad641888 100644 --- a/share/spack/templates/container/Dockerfile +++ b/share/spack/templates/container/Dockerfile @@ -14,7 +14,10 @@ RUN mkdir {{ paths.environment }} \ {{ manifest }} > {{ paths.environment }}/spack.yaml # Install the software, remove unnecessary deps -RUN {% if monitor.enabled %}--mount=type=secret,id=su --mount=type=secret,id=st{% endif %} cd {{ paths.environment }} && spack env activate . {% if not monitor.disable_auth %}&& export SPACKMON_USER=$(cat /run/secrets/su) && export SPACKMON_TOKEN=$(cat /run/secrets/st) {% endif %}&& spack install {% if monitor.enabled %}--monitor {% if monitor.prefix %}--monitor-prefix {{ monitor.prefix }} {% endif %}{% if monitor.tags %}--monitor-tags {{ monitor.tags }} {% endif %}{% if monitor.keep_going %}--monitor-keep-going {% endif %}{% if monitor.host %}--monitor-host {{ monitor.host }} {% endif %}{% if monitor.disable_auth %}--monitor-disable-auth {% endif %}{% endif %}--fail-fast && spack gc -y +RUN {% if monitor.enabled %}--mount=type=secret,id=su --mount=type=secret,id=st {% endif %}cd {{ paths.environment }} && \ + spack env activate . {% if monitor.enabled %}{% if not monitor.disable_auth %}&& export SPACKMON_USER=$(cat /run/secrets/su) && export SPACKMON_TOKEN=$(cat /run/secrets/st) {% endif %}{% endif %}&& \ + spack install {% if monitor.enabled %}--monitor {% if monitor.prefix %}--monitor-prefix {{ monitor.prefix }} {% endif %}{% if monitor.tags %}--monitor-tags {{ monitor.tags }} {% endif %}{% if monitor.keep_going %}--monitor-keep-going {% endif %}{% if monitor.host %}--monitor-host {{ monitor.host }} {% endif %}{% if monitor.disable_auth %}--monitor-disable-auth {% endif %}{% endif %}--fail-fast && \ + spack gc -y {% if strip %} # Strip all the binaries diff --git a/var/spack/repos/builtin.mock/packages/corge/package.py b/var/spack/repos/builtin.mock/packages/corge/package.py index 6f6efb6b6ec..2fd2b23038c 100644 --- a/var/spack/repos/builtin.mock/packages/corge/package.py +++ b/var/spack/repos/builtin.mock/packages/corge/package.py @@ -14,10 +14,8 @@ class Corge(Package): """A toy package to test dependencies""" homepage = "https://www.example.com" - url = "https://github.com/gartung/corge/archive/v3.0.0.tar.gz" - - version('3.0.0', - sha256='5058861c3b887511387c725971984cec665a8307d660158915a04d7786fed6bc') + has_code = False + version('3.0.0') depends_on('quux') diff --git a/var/spack/repos/builtin.mock/packages/garply/package.py b/var/spack/repos/builtin.mock/packages/garply/package.py index 534dffb55cd..6f028eec317 100644 --- a/var/spack/repos/builtin.mock/packages/garply/package.py +++ b/var/spack/repos/builtin.mock/packages/garply/package.py @@ -14,10 +14,8 @@ class Garply(Package): """Toy package for testing dependencies""" homepage = "https://www.example.com" - url = "https://github.com/gartung/garply/archive/v3.0.0.tar.gz" - - version('3.0.0', - sha256='534ac8ba7a6fed7e8bbb543bd43ca04999e65337445a531bd296939f5ac2f33d') + has_code = False + version('3.0.0') def install(self, spec, prefix): garply_h = '''#ifndef GARPLY_H_ diff --git a/var/spack/repos/builtin.mock/packages/leaf-adds-virtual/package.py b/var/spack/repos/builtin.mock/packages/leaf-adds-virtual/package.py new file mode 100644 index 00000000000..be4cc177110 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/leaf-adds-virtual/package.py @@ -0,0 +1,9 @@ +# Copyright 2013-2021 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) +class LeafAddsVirtual(Package): + version('2.0', sha256='abcde') + version('1.0', sha256='abcde') + + depends_on('blas', when='@2.0') diff --git a/var/spack/repos/builtin.mock/packages/middle-adds-virtual/package.py b/var/spack/repos/builtin.mock/packages/middle-adds-virtual/package.py new file mode 100644 index 00000000000..884d8737c07 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/middle-adds-virtual/package.py @@ -0,0 +1,7 @@ +# Copyright 2013-2021 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) +class MiddleAddsVirtual(Package): + version('1.0', sha256='abcde') + depends_on('leaf-adds-virtual') diff --git a/var/spack/repos/builtin.mock/packages/quux/package.py b/var/spack/repos/builtin.mock/packages/quux/package.py index ec28f6f2efe..676b1c1f0ba 100644 --- a/var/spack/repos/builtin.mock/packages/quux/package.py +++ b/var/spack/repos/builtin.mock/packages/quux/package.py @@ -14,10 +14,8 @@ class Quux(Package): """Toy package for testing dependencies""" homepage = "https://www.example.com" - url = "https://github.com/gartung/quux/archive/v3.0.0.tar.gz" - - version('3.0.0', - sha256='b91bc96fb746495786bddac2c527039177499f2f76d3fa9dcf0b393859e68484') + has_code = False + version('3.0.0') depends_on('garply') @@ -90,6 +88,7 @@ class Quux const int quux_version_minor = %s; ''' mkdirp('%s/quux' % prefix.include) + mkdirp('%s/quux' % self.stage.source_path) with open('%s/quux_version.h' % self.stage.source_path, 'w') as f: f.write(quux_version_h % (self.version[0], self.version[1:])) with open('%s/quux/quux.cc' % self.stage.source_path, 'w') as f: diff --git a/var/spack/repos/builtin.mock/packages/root-adds-virtual/package.py b/var/spack/repos/builtin.mock/packages/root-adds-virtual/package.py new file mode 100644 index 00000000000..167a81ca674 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/root-adds-virtual/package.py @@ -0,0 +1,8 @@ +# Copyright 2013-2021 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) +class RootAddsVirtual(Package): + version('1.0', sha256='abcde') + + depends_on('middle-adds-virtual') diff --git a/var/spack/repos/builtin.mock/packages/version-test-dependency-preferred/package.py b/var/spack/repos/builtin.mock/packages/version-test-dependency-preferred/package.py new file mode 100644 index 00000000000..672e4e64c4c --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/version-test-dependency-preferred/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2021 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) +class VersionTestDependencyPreferred(AutotoolsPackage): + """Dependency of version-test-pkg, which has a multi-valued + variant with two default values (a very low priority optimization + criterion for clingo is to maximize their number) + """ + homepage = "http://www.spack.org" + url = "http://www.spack.org/downloads/xz-1.0.tar.gz" + + version('5.2.5', sha256='5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df') + + variant('libs', default='shared,static', values=('shared', 'static'), + multi=True, description='Build shared libs, static libs or both') diff --git a/var/spack/repos/builtin.mock/packages/version-test-pkg/package.py b/var/spack/repos/builtin.mock/packages/version-test-pkg/package.py new file mode 100644 index 00000000000..5d2cd4b5cfd --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/version-test-pkg/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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) +class VersionTestPkg(AutotoolsPackage): + """Mock AutotoolsPackage to check proper version + selection by clingo. + """ + homepage = "https://www.gnu.org/software/make/" + url = "http://www.example.com/libtool-version-1.0.tar.gz" + + version('develop', git='https://git.savannah.gnu.org/git/libtool.git', + branch='master', submodules=True) + version('2.4.6', sha256='e40b8f018c1da64edd1cc9a6fce5fa63b2e707e404e20cad91fbae337c98a5b7') + + depends_on( + 'version-test-dependency-preferred', + when='@develop' + ) diff --git a/var/spack/repos/builtin.mock/packages/version-test-root/package.py b/var/spack/repos/builtin.mock/packages/version-test-root/package.py new file mode 100644 index 00000000000..e91a8687402 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/version-test-root/package.py @@ -0,0 +1,11 @@ +# Copyright 2013-2021 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) +class VersionTestRoot(AutotoolsPackage): + """Uses version-test-pkg, as a build dependency""" + homepage = "http://www.spack.org" + url = "http://www.spack.org/downloads/aml-1.0.tar.gz" + + version('0.1.0', sha256='cc89a8768693f1f11539378b21cdca9f0ce3fc5cb564f9b3e4154a051dcea69b') + depends_on('version-test-pkg', type='build') diff --git a/var/spack/repos/builtin/packages/abinit/package.py b/var/spack/repos/builtin/packages/abinit/package.py index 939118efa24..db19c5af048 100644 --- a/var/spack/repos/builtin/packages/abinit/package.py +++ b/var/spack/repos/builtin/packages/abinit/package.py @@ -27,7 +27,7 @@ class Abinit(AutotoolsPackage): programs are provided. """ - homepage = 'http://www.abinit.org' + homepage = 'https://www.abinit.org/' url = 'https://www.abinit.org/sites/default/files/packages/abinit-8.6.3.tar.gz' version('9.4.2', sha256='d40886f5c8b138bb4aa1ca05da23388eb70a682790cfe5020ecce4db1b1a76bc') diff --git a/var/spack/repos/builtin/packages/abyss/package.py b/var/spack/repos/builtin/packages/abyss/package.py index 5bacb7395bb..2b4e231d3fb 100644 --- a/var/spack/repos/builtin/packages/abyss/package.py +++ b/var/spack/repos/builtin/packages/abyss/package.py @@ -22,7 +22,7 @@ class Abyss(AutotoolsPackage): that is designed for short reads. The single-processor version is useful for assembling genomes up to 100 Mbases in size.""" - homepage = "http://www.bcgsc.ca/platform/bioinfo/software/abyss" + homepage = "https://www.bcgsc.ca/platform/bioinfo/software/abyss" url = "https://github.com/bcgsc/abyss/releases/download/2.3.1/abyss-2.3.1.tar.gz" version('2.3.1', sha256='664045e7903e9732411effc38edb9ebb1a0c1b7636c64b3a14a681f465f43677') diff --git a/var/spack/repos/builtin/packages/acct/package.py b/var/spack/repos/builtin/packages/acct/package.py index 40157b3ccfa..8bb15a3dbc1 100644 --- a/var/spack/repos/builtin/packages/acct/package.py +++ b/var/spack/repos/builtin/packages/acct/package.py @@ -9,7 +9,7 @@ class Acct(AutotoolsPackage): """Utilities for monitoring process activities.""" - homepage = "http://www.gnu.org/software/acct" + homepage = "https://www.gnu.org/software/acct" url = "https://ftp.gnu.org/gnu/acct/acct-6.6.4.tar.gz" version('6.6.4', sha256='4c15bf2b58b16378bcc83f70e77d4d40ab0b194acf2ebeefdb507f151faa663f') diff --git a/var/spack/repos/builtin/packages/ace/package.py b/var/spack/repos/builtin/packages/ace/package.py index 872b29d6837..4443b6a4bb9 100644 --- a/var/spack/repos/builtin/packages/ace/package.py +++ b/var/spack/repos/builtin/packages/ace/package.py @@ -13,8 +13,8 @@ class Ace(MakefilePackage): for sockets, demultiplexing loops, threads, synchronization primitives.""" - homepage = "http://www.dre.vanderbilt.edu/~schmidt/ACE.html" - url = "http://download.dre.vanderbilt.edu/previous_versions/ACE-6.5.1.tar.gz" + homepage = "https://www.dre.vanderbilt.edu/~schmidt/ACE.html" + url = "https://download.dre.vanderbilt.edu/previous_versions/ACE-6.5.1.tar.gz" version('6.5.12', 'de96c68a6262d6b9ba76b5057c02c7e6964c070b1328a63bf70259e9530a7996') version('6.5.6', '7717cad84d4a9c3d6b2c47963eb555d96de0be657870bcab6fcef4c0423af0de') diff --git a/var/spack/repos/builtin/packages/ack/package.py b/var/spack/repos/builtin/packages/ack/package.py index 3fdb63c7674..e471fb56244 100644 --- a/var/spack/repos/builtin/packages/ack/package.py +++ b/var/spack/repos/builtin/packages/ack/package.py @@ -13,8 +13,8 @@ class Ack(Package): source code, ack is written purely in portable Perl 5 and takes advantage of the power of Perl's regular expressions.""" - homepage = "http://beyondgrep.com/" - url = "http://beyondgrep.com/ack-2.14-single-file" + homepage = "https://beyondgrep.com/" + url = "https://beyondgrep.com/ack-2.14-single-file" version('2.22', sha256='fd0617585b88517a3d41d3d206c1dc38058c57b90dfd88c278049a41aeb5be38', expand=False) version('2.18', sha256='6e41057c8f50f661d800099471f769209480efa53b8a886969d7ec6db60a2208', expand=False) diff --git a/var/spack/repos/builtin/packages/acl/package.py b/var/spack/repos/builtin/packages/acl/package.py index eda6ad84e8a..3c8c1726008 100644 --- a/var/spack/repos/builtin/packages/acl/package.py +++ b/var/spack/repos/builtin/packages/acl/package.py @@ -10,7 +10,7 @@ class Acl(AutotoolsPackage): """Commands for Manipulating POSIX Access Control Lists.""" homepage = "https://savannah.nongnu.org/projects/acl" - url = "http://git.savannah.nongnu.org/cgit/acl.git/snapshot/acl-2.2.53.tar.gz" + url = "https://git.savannah.nongnu.org/cgit/acl.git/snapshot/acl-2.2.53.tar.gz" version('2.2.53', sha256='9e905397ac10d06768c63edd0579c34b8431555f2ea8e8f2cee337b31f856805') version('2.2.52', sha256='f3f31d2229c903184ff877aa0ee658b87ec20fec8aebb51e65eaa68d7b24e629') diff --git a/var/spack/repos/builtin/packages/activeharmony/package.py b/var/spack/repos/builtin/packages/activeharmony/package.py index 37c08903ab3..92765ff9497 100644 --- a/var/spack/repos/builtin/packages/activeharmony/package.py +++ b/var/spack/repos/builtin/packages/activeharmony/package.py @@ -10,8 +10,8 @@ class Activeharmony(MakefilePackage): """Active Harmony: a framework for auto-tuning (the automated search for values to improve the performance of a target application).""" - homepage = "http://www.dyninst.org/harmony" - url = "http://www.dyninst.org/sites/default/files/downloads/harmony/ah-4.5.tar.gz" + homepage = "https://www.dyninst.org/harmony" + url = "https://www.dyninst.org/sites/default/files/downloads/harmony/ah-4.5.tar.gz" version('4.6.0', sha256='9ce5009cfd8e2f4cf5f3536e1fea9993414fc25920fc90d0a2cb56f044787dbb') version('4.5', sha256='31d9990c8dd36724d336707d260aa4d976e11eaa899c4c7cc11f80a56cdac684') diff --git a/var/spack/repos/builtin/packages/acts/package.py b/var/spack/repos/builtin/packages/acts/package.py index c7d6119c920..f2330ecae8f 100644 --- a/var/spack/repos/builtin/packages/acts/package.py +++ b/var/spack/repos/builtin/packages/acts/package.py @@ -29,7 +29,7 @@ class Acts(CMakePackage, CudaPackage): propagation and fitting, basic seed finding algorithms. """ - homepage = "http://acts.web.cern.ch/ACTS/" + homepage = "https://acts.web.cern.ch/ACTS/" git = "https://github.com/acts-project/acts.git" maintainers = ['HadrienG2'] @@ -38,6 +38,10 @@ class Acts(CMakePackage, CudaPackage): # Supported Acts versions version('main', branch='main') version('master', branch='main', deprecated=True) # For compatibility + 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') diff --git a/var/spack/repos/builtin/packages/adios/package.py b/var/spack/repos/builtin/packages/adios/package.py index 7c2a19f6570..26fe5527e1e 100644 --- a/var/spack/repos/builtin/packages/adios/package.py +++ b/var/spack/repos/builtin/packages/adios/package.py @@ -13,7 +13,7 @@ class Adios(AutotoolsPackage): read, or processed outside of the running simulation. """ - homepage = "http://www.olcf.ornl.gov/center-projects/adios/" + homepage = "https://www.olcf.ornl.gov/center-projects/adios/" url = "https://github.com/ornladios/ADIOS/archive/v1.12.0.tar.gz" git = "https://github.com/ornladios/ADIOS.git" diff --git a/var/spack/repos/builtin/packages/adlbx/package.py b/var/spack/repos/builtin/packages/adlbx/package.py index a2197e15b86..a930619aa57 100644 --- a/var/spack/repos/builtin/packages/adlbx/package.py +++ b/var/spack/repos/builtin/packages/adlbx/package.py @@ -11,7 +11,7 @@ class Adlbx(AutotoolsPackage): """ADLB/X: Master-worker library + work stealing and data dependencies""" homepage = 'http://swift-lang.org/Swift-T' - url = 'http://swift-lang.github.io/swift-t-downloads/spack/adlbx-1.0.0.tar.gz' + url = 'https://swift-lang.github.io/swift-t-downloads/spack/adlbx-1.0.0.tar.gz' git = "https://github.com/swift-lang/swift-t.git" version('master', branch='master') diff --git a/var/spack/repos/builtin/packages/advancecomp/package.py b/var/spack/repos/builtin/packages/advancecomp/package.py index 60eaec438b2..29c0b623f60 100644 --- a/var/spack/repos/builtin/packages/advancecomp/package.py +++ b/var/spack/repos/builtin/packages/advancecomp/package.py @@ -10,7 +10,7 @@ class Advancecomp(AutotoolsPackage): """AdvanceCOMP contains recompression utilities for your .zip archives, .png images, .mng video clips and .gz files.""" - homepage = "http://www.advancemame.it" + homepage = "https://www.advancemame.it" url = "https://github.com/amadvance/advancecomp/archive/v2.1.tar.gz" version('2.1', sha256='6113c2b6272334af710ba486e8312faa3cee5bd6dc8ca422d00437725e2b602a') diff --git a/var/spack/repos/builtin/packages/aegean/package.py b/var/spack/repos/builtin/packages/aegean/package.py index 10107663c99..407e7d965a6 100644 --- a/var/spack/repos/builtin/packages/aegean/package.py +++ b/var/spack/repos/builtin/packages/aegean/package.py @@ -12,7 +12,7 @@ class Aegean(MakefilePackage): as well as a C library whose API provides access to AEGeAn's core functions and data structures.""" - homepage = "http://brendelgroup.github.io/AEGeAn/" + homepage = "https://brendelgroup.github.io/AEGeAn/" url = "https://github.com/BrendelGroup/AEGeAn/archive/v0.15.2.tar.gz" version('0.15.2', sha256='734c9dd23ab3415c3966083bfde5fb72c81e6ace84e08ee3fe0d4c338331d975') diff --git a/var/spack/repos/builtin/packages/agrep/package.py b/var/spack/repos/builtin/packages/agrep/package.py index 95275764f40..59fa8272fde 100644 --- a/var/spack/repos/builtin/packages/agrep/package.py +++ b/var/spack/repos/builtin/packages/agrep/package.py @@ -13,7 +13,7 @@ class Agrep(MakefilePackage): Developed 1989-1991 by Udi Manber, Sun Wu et al. at the University of Arizona.""" - homepage = "http://www.tgries.de/agrep" + homepage = "https://www.tgries.de/agrep" url = "https://www.tgries.de/agrep/agrep-3.41.tgz" version('3.41', sha256='0508eafaf9725fc67cc955eb6d32ba4f50138443a4fea4275508d2c3f67a234e') diff --git a/var/spack/repos/builtin/packages/aida/package.py b/var/spack/repos/builtin/packages/aida/package.py index 7a1c1cd2944..1af20311a7a 100644 --- a/var/spack/repos/builtin/packages/aida/package.py +++ b/var/spack/repos/builtin/packages/aida/package.py @@ -9,7 +9,7 @@ class Aida(Package): """Abstract Interfaces for Data Analysis""" - homepage = "http://aida.freehep.org/" + homepage = "https://aida.freehep.org/" url = "ftp://ftp.slac.stanford.edu/software/freehep/AIDA/v3.2.1/aida-3.2.1.tar.gz" tags = ['hep'] diff --git a/var/spack/repos/builtin/packages/albany/package.py b/var/spack/repos/builtin/packages/albany/package.py index 3f2f9094efb..32acd3c832a 100644 --- a/var/spack/repos/builtin/packages/albany/package.py +++ b/var/spack/repos/builtin/packages/albany/package.py @@ -54,7 +54,7 @@ class Albany(CMakePackage): # Add dependencies depends_on('mpi') - depends_on('trilinos~superlu-dist+isorropia+tempus+rythmos+teko+intrepid+intrepid2+minitensor+phalanx+pnetcdf+nox+piro+rol+shards+stk+superlu@master,develop') + depends_on('trilinos~superlu-dist+isorropia+tempus+rythmos+teko+intrepid+intrepid2+minitensor+phalanx+nox+piro+rol+shards+stk+superlu@master') def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/alglib/package.py b/var/spack/repos/builtin/packages/alglib/package.py index 6fe40c6b2fb..0b94f914bf3 100644 --- a/var/spack/repos/builtin/packages/alglib/package.py +++ b/var/spack/repos/builtin/packages/alglib/package.py @@ -11,8 +11,8 @@ class Alglib(MakefilePackage): """ALGLIB is a cross-platform numerical analysis and data processing library.""" - homepage = "http://www.alglib.net" - url = "http://www.alglib.net/translator/re/alglib-3.11.0.cpp.gpl.tgz" + homepage = "https://www.alglib.net/" + url = "https://www.alglib.net/translator/re/alglib-3.11.0.cpp.gpl.tgz" version('3.11.0', sha256='34e391594aac89fb354bdaf58c42849489cd1199197398ba98bb69961f42bdb0') diff --git a/var/spack/repos/builtin/packages/allpaths-lg/package.py b/var/spack/repos/builtin/packages/allpaths-lg/package.py index 9409a69e897..954fc148a1c 100644 --- a/var/spack/repos/builtin/packages/allpaths-lg/package.py +++ b/var/spack/repos/builtin/packages/allpaths-lg/package.py @@ -10,7 +10,7 @@ class AllpathsLg(AutotoolsPackage): """ALLPATHS-LG is our original short read assembler and it works on both small and large (mammalian size) genomes.""" - homepage = "http://www.broadinstitute.org/software/allpaths-lg/blog/" + homepage = "https://www.broadinstitute.org/software/allpaths-lg/blog/" url = "ftp://ftp.broadinstitute.org/pub/crd/ALLPATHS/Release-LG/latest_source_code/allpathslg-52488.tar.gz" version('52488', sha256='035b49cb21b871a6b111976757d7aee9c2513dd51af04678f33375e620998542') diff --git a/var/spack/repos/builtin/packages/alquimia/package.py b/var/spack/repos/builtin/packages/alquimia/package.py index eaa94afd09b..5462da1255a 100644 --- a/var/spack/repos/builtin/packages/alquimia/package.py +++ b/var/spack/repos/builtin/packages/alquimia/package.py @@ -20,7 +20,6 @@ class Alquimia(CMakePackage): version('xsdk-0.5.0', commit='8397c3b00a09534c5473ff3ab21f0e32bb159380') version('xsdk-0.4.0', commit='2edad6733106142d014bb6e6a73c2b21d5e3cf2d') version('xsdk-0.3.0', tag='xsdk-0.3.0') - version('xsdk-0.2.0', tag='xsdk-0.2.0') variant('shared', default=True, description='Enables the build of shared libraries') @@ -35,7 +34,6 @@ class Alquimia(CMakePackage): depends_on('pflotran@develop', when='@develop') depends_on('petsc@3.10.0:3.10.99', when='@xsdk-0.4.0') depends_on('petsc@3.8.0:3.8.99', when='@xsdk-0.3.0') - depends_on('petsc@xsdk-0.2.0', when='@xsdk-0.2.0') depends_on('petsc@3.10:', when='@develop') def cmake_args(self): diff --git a/var/spack/repos/builtin/packages/aluminum/package.py b/var/spack/repos/builtin/packages/aluminum/package.py index ea8d9e83172..4bf96ebc801 100644 --- a/var/spack/repos/builtin/packages/aluminum/package.py +++ b/var/spack/repos/builtin/packages/aluminum/package.py @@ -60,13 +60,16 @@ class Aluminum(CMakePackage, CudaPackage, ROCmPackage): def cmake_args(self): spec = self.spec args = [ - '-DCMAKE_CXX_STANDARD=14', + '-DCMAKE_CXX_STANDARD:STRING=17', '-DALUMINUM_ENABLE_CUDA:BOOL=%s' % ('+cuda' in spec), '-DALUMINUM_ENABLE_NCCL:BOOL=%s' % ('+nccl' in spec or '+rccl' in spec), '-DALUMINUM_ENABLE_ROCM:BOOL=%s' % ('+rocm' in spec)] if '+cuda' in spec: - args.append('-DCMAKE_CUDA_STANDARD=14') + if spec.satisfies('^cuda@11.0:'): + args.append('-DCMAKE_CUDA_STANDARD=17') + else: + args.append('-DCMAKE_CUDA_STANDARD=14') archs = spec.variants['cuda_arch'].value if archs != 'none': arch_str = ";".join(archs) @@ -98,13 +101,14 @@ def cmake_args(self): if '+rocm' in spec: args.extend([ '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix), - '-DHIP_CXX_COMPILER={0}'.format(self.spec['hip'].hipcc)]) + '-DHIP_CXX_COMPILER={0}'.format(self.spec['hip'].hipcc), + '-DCMAKE_CXX_FLAGS=-std=c++17']) archs = self.spec.variants['amdgpu_target'].value if archs != 'none': arch_str = ",".join(archs) args.append( '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}' - ' -g -fsized-deallocation -fPIC'.format(arch_str) + ' -g -fsized-deallocation -fPIC -std=c++17'.format(arch_str) ) return args diff --git a/var/spack/repos/builtin/packages/amber/package.py b/var/spack/repos/builtin/packages/amber/package.py index 1f4d4c95d07..6bfc4fb6cbf 100644 --- a/var/spack/repos/builtin/packages/amber/package.py +++ b/var/spack/repos/builtin/packages/amber/package.py @@ -22,7 +22,7 @@ class Amber(Package, CudaPackage): Only the latter version of ambertools for each amber version is supported. """ - homepage = "http://ambermd.org/" + homepage = "https://ambermd.org/" url = "file://{0}/Amber18.tar.bz2".format(os.getcwd()) manual_download = True diff --git a/var/spack/repos/builtin/packages/amdlibflame/package.py b/var/spack/repos/builtin/packages/amdlibflame/package.py index a29a21f6b41..ccdcb6b4a9c 100644 --- a/var/spack/repos/builtin/packages/amdlibflame/package.py +++ b/var/spack/repos/builtin/packages/amdlibflame/package.py @@ -30,7 +30,7 @@ class Amdlibflame(LibflameBase): """ _name = 'amdlibflame' - homepage = "http://developer.amd.com/amd-cpu-libraries/blas-library/#libflame" + homepage = "https://developer.amd.com/amd-cpu-libraries/blas-library/#libflame" url = "https://github.com/amd/libflame/archive/3.0.tar.gz" git = "https://github.com/amd/libflame.git" diff --git a/var/spack/repos/builtin/packages/aml/package.py b/var/spack/repos/builtin/packages/aml/package.py index f282067300b..f6f73d4f71f 100644 --- a/var/spack/repos/builtin/packages/aml/package.py +++ b/var/spack/repos/builtin/packages/aml/package.py @@ -11,22 +11,23 @@ class Aml(AutotoolsPackage): """AML: Building Blocks for Memory Management.""" - homepage = "https://xgitlab.cels.anl.gov/argo/aml" + homepage = "https://argo-aml.readthedocs.io/" url = "https://www.mcs.anl.gov/research/projects/argo/downloads/aml-0.1.0.tar.gz" - git = "https://xgitlab.cels.anl.gov/argo/aml.git" + git = "https://github.com/anlsys/aml.git" + maintainers = ['perarnau'] test_requires_compiler = True version('0.1.0', sha256='cc89a8768693f1f11539378b21cdca9f0ce3fc5cb564f9b3e4154a051dcea69b') - version('develop', branch='staging', submodules=True) version('master', branch='master', submodules=True) depends_on('numactl') - depends_on('m4', type='build') - depends_on('autoconf', type='build') - depends_on('automake', type='build') - depends_on('libtool', type='build') + with when('@master'): + depends_on('m4', type='build') + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') @run_after('install') def cache_test_sources(self): diff --git a/var/spack/repos/builtin/packages/ampl/package.py b/var/spack/repos/builtin/packages/ampl/package.py index 6672dc04c11..be3b55405b0 100644 --- a/var/spack/repos/builtin/packages/ampl/package.py +++ b/var/spack/repos/builtin/packages/ampl/package.py @@ -17,6 +17,8 @@ class Ampl(Package): homepage = "https://ampl.com/" manual_download = True + maintainers = ['robgics'] + # Use the version as you would expect the user to know it, not necessarily the # version as it appears in the file name. To get the checksum, use sha256sum. version('20210226', sha256='d9ffaed591c0491e311a44c2b246d9d81785f6c0b2747a7e32a783e522e18450') @@ -28,22 +30,27 @@ class Ampl(Package): license_files = ['ampl.lic'] license_url = 'https://ampl.com/resources/floating-licenses/installation/' - resourceList = [ - # [version, name, destination, placement, url ,sha256sum] - ('20210226', 'amplapi', '', 'amplapi', 'file://{0}/amplapi-linux64.2.0.0.zip'.format(os.getcwd()), 'a4abe111f142b862f11fcd8700f964b688d5d2291e9e055f6e7adbd92b0e243a'), - ('20210226', 'amplide', '', 'amplide', 'file://{0}/amplide-linux64.3.5.tgz'.format(os.getcwd()), 'c2163896df672b71901d2e46cd5cf1c1c4f0451e478ef32d0971705aaf86d6ac'), - ('20190529', 'amplapi', '', 'amplapi', 'file://{0}/amplapi-linux64.2.0.0.zip'.format(os.getcwd()), 'a4abe111f142b862f11fcd8700f964b688d5d2291e9e055f6e7adbd92b0e243a'), - ('20190529', 'amplide', '', 'amplide', 'file://{0}/amplide-linux64.3.5.tgz'.format(os.getcwd()), 'c2163896df672b71901d2e46cd5cf1c1c4f0451e478ef32d0971705aaf86d6ac'), - ] - - for rsver, rsname, rsdest, rsplace, rsurl, rschecksum in resourceList: - resource(when='@{0}'.format(rsver), - name=rsname, - url=rsurl, - sha256=rschecksum, - destination=rsdest, - placement=rsplace - ) + resource( + name='amplapi', + url='file://{0}/amplapi-linux64.2.0.0.zip'.format(os.getcwd()), + sha256='a4abe111f142b862f11fcd8700f964b688d5d2291e9e055f6e7adbd92b0e243a', + destination='', + placement='amplapi' + ) + resource( + name='amplide', + url='file://{0}/amplide-linux64.3.5.tgz'.format(os.getcwd()), + sha256='c2163896df672b71901d2e46cd5cf1c1c4f0451e478ef32d0971705aaf86d6ac', + destination='', + placement='amplide' + ) + resource( + name='ampl_lic', + url='file://{0}/ampl_lic.linux-intel64.20210618.tgz'.format(os.getcwd()), + sha256='f5c38638d6cc99c85e0d6de001722b64a03e2adeaf5aed9ed622401654d9ff33', + destination='', + placement='' + ) def url_for_version(self, version): return "file://{0}/ampl.linux-intel64.{1}.tgz".format(os.getcwd(), version) @@ -54,5 +61,9 @@ def setup_run_environment(self, env): def install(self, spec, prefix): install_tree('.', prefix) - install_tree('amplapi', prefix) - install_tree('amplide', prefix) + + for key in self.resources: + for res in self.resources[key]: + if res.name == 'ampl_lic': + res_path = join_path(res.fetcher.stage.source_path, res.name) + install(res_path, prefix) diff --git a/var/spack/repos/builtin/packages/ampliconnoise/package.py b/var/spack/repos/builtin/packages/ampliconnoise/package.py index 0ac85a33e92..42b04067b4e 100644 --- a/var/spack/repos/builtin/packages/ampliconnoise/package.py +++ b/var/spack/repos/builtin/packages/ampliconnoise/package.py @@ -10,7 +10,7 @@ class Ampliconnoise(MakefilePackage): """AmpliconNoise is a collection of programs for the removal of noise from 454 sequenced PCR amplicons.""" - homepage = "https://code.google.com/archive/p/ampliconnoise/" + homepage = "https://directory.fsf.org/wiki/AmpliconNoise" url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/ampliconnoise/AmpliconNoiseV1.29.tar.gz" version('1.29', sha256='0bf946806d77ecaf0994ad8ebf9a5e98ad33c809f6def5c9340a16c367918167') diff --git a/var/spack/repos/builtin/packages/amr-wind/package.py b/var/spack/repos/builtin/packages/amr-wind/package.py index b173957499f..aeef130570a 100644 --- a/var/spack/repos/builtin/packages/amr-wind/package.py +++ b/var/spack/repos/builtin/packages/amr-wind/package.py @@ -26,9 +26,9 @@ class AmrWind(CMakePackage, CudaPackage): incompressible flow sover for wind turbine and wind farm simulations. """ homepage = "https://github.com/Exawind/amr-wind" - git = "https://github.com/exawind/amr-wind.git" + git = "https://github.com/Exawind/amr-wind.git" - maintainers = ['sayerhs', 'jrood-nrel', 'michaeljbrazell'] + maintainers = ['jrood-nrel', 'michaeljbrazell'] tags = ['ecp', 'ecp-apps'] @@ -54,8 +54,6 @@ class AmrWind(CMakePackage, CudaPackage): description='Enable OpenFAST integration') variant('internal-amrex', default=True, description='Use AMRex submodule to build') - variant('fortran', default=False, - description='Build fortran interfaces') conflicts('+openmp', when='+cuda') @@ -63,16 +61,14 @@ class AmrWind(CMakePackage, CudaPackage): for opt in process_amrex_constraints(): dopt = '+particles' + opt - if '+hypre' in dopt: - dopt = "+fortran" + dopt depends_on('amrex@develop' + dopt, when='~internal-amrex' + opt) - depends_on('hypre+mpi+int64~cuda@2.20.0:', when='+mpi~cuda+hypre') - depends_on('hypre~mpi+int64~cuda@2.20.0:', when='~mpi~cuda+hypre') + depends_on('hypre+shared+mpi~int64~cuda@2.20.0:', when='+mpi~cuda+hypre') + depends_on('hypre+shared~mpi~int64~cuda@2.20.0:', when='~mpi~cuda+hypre') for arch in CudaPackage.cuda_arch_values: - depends_on('hypre+mpi~int64+cuda cuda_arch=%s @2.20.0:' % arch, + depends_on('hypre+shared+mpi~int64+cuda cuda_arch=%s @2.20.0:' % arch, when='+mpi+cuda+hypre cuda_arch=%s' % arch) - depends_on('hypre~mpi~int64+cuda cuda_arch=%s @2.20.0:' % arch, + depends_on('hypre+shared~mpi~int64+cuda cuda_arch=%s @2.20.0:' % arch, when='~mpi+cuda+hypre cuda_arch=%s' % arch) depends_on('netcdf-c', when='+netcdf') depends_on('masa', when='+masa') @@ -82,7 +78,7 @@ def cmake_args(self): define = CMakePackage.define vs = ["mpi", "cuda", "openmp", "netcdf", "hypre", "masa", - "openfast", "tests", "fortran"] + "openfast", "tests"] args = [ self.define_from_variant("AMR_WIND_ENABLE_%s" % v.upper(), v) for v in vs diff --git a/var/spack/repos/builtin/packages/amrex/package.py b/var/spack/repos/builtin/packages/amrex/package.py index c0f5419f7d9..df98aa113a4 100644 --- a/var/spack/repos/builtin/packages/amrex/package.py +++ b/var/spack/repos/builtin/packages/amrex/package.py @@ -18,6 +18,7 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage): maintainers = ['WeiqunZhang', 'asalmgren'] version('develop', branch='development') + version('21.08', sha256='34fb6c72735c74820b27db1138e5bc9fe698ffbd8344aae10a5fbdace479b57f') version('21.07', sha256='9630b8c0c7ffbf3f5ea4d973a3fdb40b9b10fec0f8df33b9e24d76d2c1d15771') version('21.06', sha256='6982c22837d7c0bc4583065d9da55e0aebcf07b54386e4b90a779391fe73fd53') version('21.05', sha256='eb6d21e48279ad67278413c77b29a1754c18ffe741aa6b3a9f3f01eeac13177f') diff --git a/var/spack/repos/builtin/packages/anaconda3/package.py b/var/spack/repos/builtin/packages/anaconda3/package.py index 3a94f0e0c18..7474e1e3f92 100644 --- a/var/spack/repos/builtin/packages/anaconda3/package.py +++ b/var/spack/repos/builtin/packages/anaconda3/package.py @@ -20,6 +20,7 @@ class Anaconda3(Package): maintainers = ['ajkotobi'] + version('2021.05', sha256='2751ab3d678ff0277ae80f9e8a74f218cfc70fe9a9cdc7bb1c137d7e47e33d53', expand=False) version('2020.11', sha256='cf2ff493f11eaad5d09ce2b4feaa5ea90db5174303d5b3fe030e16d29aeef7de', expand=False) version('2020.07', sha256='38ce717758b95b3bd0b1797cc6ccfb76f29a90c25bdfa50ee45f11e583edfdbf', expand=False) version('2020.02', sha256='2b9f088b2022edb474915d9f69a803d6449d5fdb4c303041f60ac4aefcc208bb', expand=False) diff --git a/var/spack/repos/builtin/packages/ant/package.py b/var/spack/repos/builtin/packages/ant/package.py index 542f42082c1..fd3423dcbbd 100644 --- a/var/spack/repos/builtin/packages/ant/package.py +++ b/var/spack/repos/builtin/packages/ant/package.py @@ -12,7 +12,7 @@ class Ant(Package): dependent upon each other """ - homepage = "http://ant.apache.org/" + homepage = "https://ant.apache.org/" url = "https://archive.apache.org/dist/ant/source/apache-ant-1.9.7-src.tar.gz" version('1.10.7', sha256='2f9c4ef094581663b41a7412324f65b854f17622e5b2da9fcb9541ca8737bd52') diff --git a/var/spack/repos/builtin/packages/antlr/package.py b/var/spack/repos/builtin/packages/antlr/package.py index d0b75d83ac0..e295c41f4af 100644 --- a/var/spack/repos/builtin/packages/antlr/package.py +++ b/var/spack/repos/builtin/packages/antlr/package.py @@ -13,7 +13,7 @@ class Antlr(AutotoolsPackage): frameworks. From a grammar, ANTLR generates a parser that can build and walk parse trees.""" - homepage = "http://www.antlr2.org/" + homepage = "https://www.antlr2.org/" url = "http://www.antlr2.org/download/antlr-2.7.7.tar.gz" version('2.7.7', sha256='853aeb021aef7586bda29e74a6b03006bcb565a755c86b66032d8ec31b67dbb9') diff --git a/var/spack/repos/builtin/packages/aocc/package.py b/var/spack/repos/builtin/packages/aocc/package.py index 00aaa7a9a10..0566288884c 100755 --- a/var/spack/repos/builtin/packages/aocc/package.py +++ b/var/spack/repos/builtin/packages/aocc/package.py @@ -32,6 +32,8 @@ class Aocc(Package): maintainers = ['amd-toolchain-support'] + version(ver="3.1.0", sha256='1948104a430506fe5e445c0c796d6956109e7cc9fc0a1e32c9f1285cfd566d0c', + url='http://developer.amd.com/wordpress/media/files/aocc-compiler-3.1.0.tar') version(ver="3.0.0", sha256='4ff269b1693856b9920f57e3c85ce488c8b81123ddc88682a3ff283979362227', url='http://developer.amd.com/wordpress/media/files/aocc-compiler-3.0.0.tar') version(ver="2.3.0", sha256='9f8a1544a5268a7fb8cd21ac4bdb3f8d1571949d1de5ca48e2d3309928fc3d15', diff --git a/var/spack/repos/builtin/packages/ape/package.py b/var/spack/repos/builtin/packages/ape/package.py index 32f8fb437b9..f2a08a18e49 100644 --- a/var/spack/repos/builtin/packages/ape/package.py +++ b/var/spack/repos/builtin/packages/ape/package.py @@ -10,7 +10,7 @@ class Ape(Package): """A tool for generating atomic pseudopotentials within a Density-Functional Theory framework""" - homepage = "http://www.tddft.org/programs/APE/" + homepage = "https://www.tddft.org/programs/APE/" url = "http://www.tddft.org/programs/APE/sites/default/files/ape-2.2.1.tar.gz" version('2.2.1', sha256='1bdb7f987fde81f8a5f335da6b59fa884e6d185d4a0995c90fde7c04376ce9e3') diff --git a/var/spack/repos/builtin/packages/apex/package.py b/var/spack/repos/builtin/packages/apex/package.py index 79e7b0e7421..19c06dce0e2 100644 --- a/var/spack/repos/builtin/packages/apex/package.py +++ b/var/spack/repos/builtin/packages/apex/package.py @@ -12,12 +12,13 @@ class Apex(CMakePackage): """Autonomic Performance Environment for eXascale (APEX).""" maintainers = ['khuck'] - homepage = "https://github.com/khuck/xpress-apex" - url = "https://github.com/khuck/xpress-apex/archive/v2.3.1.tar.gz" - git = "https://github.com/khuck/xpress-apex" + homepage = "https://uo-oaciss.github.io/apex" + url = "https://github.com/UO-OACISS/apex/archive/v2.3.1.tar.gz" + git = "https://github.com/UO-OACISS/apex" version('develop', branch='develop') version('master', branch='master') + version('2.4.1', sha256='055d09dd36c529ebd3bab4defbec4ad1d227c004a291faf26e77e4ab79ce470c') version('2.4.0', sha256='15d8957da7b37d2c684a6f0f32aef65b0b26be6558da17963cf71f3fd3cfdf2f') version('2.3.2', sha256='acf37c024a2283cafbf206f508929208b62c8f800af22ad7c74c570863a31bb4') version('2.3.1', sha256='86bf6933f2c53531fcb24cda9fc7dc9919909bed54740d1e0bc3e7ce6ed78091') diff --git a/var/spack/repos/builtin/packages/applewmproto/package.py b/var/spack/repos/builtin/packages/applewmproto/package.py index 43025255759..cb831f48993 100644 --- a/var/spack/repos/builtin/packages/applewmproto/package.py +++ b/var/spack/repos/builtin/packages/applewmproto/package.py @@ -13,7 +13,7 @@ class Applewmproto(AutotoolsPackage, XorgPackage): to better interact with the Mac OS X Aqua user interface when running X11 in a rootless mode.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/applewmproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/applewmproto" xorg_mirror_path = "proto/applewmproto-1.4.2.tar.gz" version('1.4.2', sha256='ff8ac07d263a23357af2d6ff0cca3c1d56b043ddf7797a5a92ec624f4704df2e') diff --git a/var/spack/repos/builtin/packages/appres/package.py b/var/spack/repos/builtin/packages/appres/package.py index 5a3456bb5c0..1fae7603113 100644 --- a/var/spack/repos/builtin/packages/appres/package.py +++ b/var/spack/repos/builtin/packages/appres/package.py @@ -12,7 +12,7 @@ class Appres(AutotoolsPackage, XorgPackage): names. It can be used to determine which resources a particular program will load.""" - homepage = "http://cgit.freedesktop.org/xorg/app/appres" + homepage = "https://cgit.freedesktop.org/xorg/app/appres" xorg_mirror_path = "app/appres-1.0.4.tar.gz" version('1.0.4', sha256='22cb6f639c891ffdbb5371bc50a88278185789eae6907d05e9e0bd1086a80803') diff --git a/var/spack/repos/builtin/packages/arbor/package.py b/var/spack/repos/builtin/packages/arbor/package.py index 9adacf477f8..94b9e78cfab 100644 --- a/var/spack/repos/builtin/packages/arbor/package.py +++ b/var/spack/repos/builtin/packages/arbor/package.py @@ -10,13 +10,14 @@ class Arbor(CMakePackage, CudaPackage): """Arbor is a high-performance library for computational neuroscience simulations.""" - homepage = "https://github.com/arbor-sim/arbor/" - git = "https://github.com/arbor-sim/arbor.git" - url = "https://github.com/arbor-sim/arbor/releases/download/v0.5/arbor-v0.5-full.tar.gz" - maintainers = ['bcumming', 'halfflat'] + homepage = 'https://arbor-sim.org' + git = 'https://github.com/arbor-sim/arbor.git' + url = 'https://github.com/arbor-sim/arbor/releases/download/v0.5.2/arbor-v0.5.2-full.tar.gz' + maintainers = ['bcumming', 'brenthuisman', 'haampie', 'halfflat'] version('master', branch='master', submodules=True) - version('0.5', 'd0c8a4c7f97565d7c30493c66249be794d1dc424de266fc79cecbbf0e313df59') + version('0.5.2', sha256='290e2ad8ca8050db1791cabb6b431e7c0409c305af31b559e397e26b300a115d', url='https://github.com/arbor-sim/arbor/releases/download/v0.5.2/arbor-v0.5.2-full.tar.gz') + version('0.5', sha256='d0c8a4c7f97565d7c30493c66249be794d1dc424de266fc79cecbbf0e313df59', url='https://github.com/arbor-sim/arbor/releases/download/v0.5/arbor-v0.5-full.tar.gz') variant('assertions', default=False, description='Enable arb_assert() assertions in code.') variant('doc', default=False, description='Build documentation.') @@ -25,9 +26,9 @@ class Arbor(CMakePackage, CudaPackage): variant('python', default=True, description='Enable Python frontend support') variant('vectorize', default=False, description='Enable vectorization of computational kernels') - # https://arbor.readthedocs.io/en/latest/install/build_install.html?highlight=requirements#compilers + # https://docs.arbor-sim.org/en/latest/install/build_install.html?highlight=requirements#compilers conflicts('%gcc@:8.3') - conflicts('%clang@:8.0') + conflicts('%clang@:7') # Cray compiler v9.2 and later is Clang-based. conflicts('%cce@:9.1') conflicts('%intel') @@ -47,7 +48,7 @@ class Arbor(CMakePackage, CudaPackage): extends('python', when='+python') depends_on('python@3.6:', when="+python", type=('build', 'run')) depends_on('py-numpy', when='+python', type=('build', 'run')) - depends_on('py-pybind11', when='+python', type=('build', 'run')) + depends_on('py-pybind11@2.6:', when='+python', type=('build', 'run')) # sphinx based documentation depends_on('python@3.6:', when="+doc", type='build') @@ -70,7 +71,11 @@ def cmake_args(self): if '+cuda' in self.spec: args.append('-DARB_GPU=cuda') - # rely on spack's compiler wrapper to set architecture - args.append('-DARB_ARCH=') + # query spack for the architecture-specific compiler flags set by its wrapper + args.append('-DARB_ARCH=none') + opt_flags = self.spec.target.optimization_flags( + self.spec.compiler.name, + self.spec.compiler.version) + args.append('-DARB_CXX_FLAGS_TARGET=' + opt_flags) return args diff --git a/var/spack/repos/builtin/packages/argobots/package.py b/var/spack/repos/builtin/packages/argobots/package.py index 5d0af27b3f5..3683431eec2 100644 --- a/var/spack/repos/builtin/packages/argobots/package.py +++ b/var/spack/repos/builtin/packages/argobots/package.py @@ -15,7 +15,7 @@ class Argobots(AutotoolsPackage): mapping, and data placement strategies. It consists of an execution model and a memory model.""" - homepage = "http://www.argobots.org/" + homepage = "https://www.argobots.org/" url = "https://github.com/pmodels/argobots/releases/download/v1.0b1/argobots-1.0b1.tar.gz" git = "https://github.com/pmodels/argobots.git" maintainers = ['shintaro-iwasaki'] diff --git a/var/spack/repos/builtin/packages/arpack-ng/package.py b/var/spack/repos/builtin/packages/arpack-ng/package.py index ee3e3c218c7..971e9ca31f2 100644 --- a/var/spack/repos/builtin/packages/arpack-ng/package.py +++ b/var/spack/repos/builtin/packages/arpack-ng/package.py @@ -128,6 +128,9 @@ def install(self, spec, prefix): if '+shared' in spec: options.append('-DBUILD_SHARED_LIBS=ON') + else: + options.append('-DBUILD_SHARED_LIBS=OFF') + options.append('-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true') cmake('.', *options) make() diff --git a/var/spack/repos/builtin/packages/arrayfire/package.py b/var/spack/repos/builtin/packages/arrayfire/package.py index 0315dffadc8..01729eff2d4 100644 --- a/var/spack/repos/builtin/packages/arrayfire/package.py +++ b/var/spack/repos/builtin/packages/arrayfire/package.py @@ -11,7 +11,7 @@ class Arrayfire(CMakePackage, CudaPackage): with an easy-to-use API. Its array based function set makes parallel programming more accessible.""" - homepage = "http://arrayfire.org/docs/index.htm" + homepage = "https://arrayfire.org/docs/index.htm" git = "https://github.com/arrayfire/arrayfire.git" version('master', submodules=True) diff --git a/var/spack/repos/builtin/packages/arrow/package.py b/var/spack/repos/builtin/packages/arrow/package.py index 9f3a2bc99b8..f4f007b5398 100644 --- a/var/spack/repos/builtin/packages/arrow/package.py +++ b/var/spack/repos/builtin/packages/arrow/package.py @@ -11,9 +11,11 @@ class Arrow(CMakePackage, CudaPackage): This package contains the C++ bindings. """ - homepage = "http://arrow.apache.org" + homepage = "https://arrow.apache.org" url = "https://github.com/apache/arrow/archive/apache-arrow-0.9.0.tar.gz" + version('4.0.1', sha256='79d3e807df4a179cfab1e7a1ab5f79d95f7b72ac2c33aba030febd125d77eb3b') + version('3.0.0', sha256='fc461c4f0a60e7470a7c58b28e9344aa8fb0be5cc982e9658970217e084c3a82') version('0.17.1', sha256='ecb6da20f9288c0ca31f9b457ffdd460198765a8af27c1cac4b1382a8d130f86') version('0.15.1', sha256='ab1c0d371a10b615eccfcead71bb79832245d788f4834cc6b278c03c3872d593') version('0.15.0', sha256='d1072d8c4bf9166949f4b722a89350a88b7c8912f51642a5d52283448acdfd58') diff --git a/var/spack/repos/builtin/packages/ascent/package.py b/var/spack/repos/builtin/packages/ascent/package.py index 16226a36208..e3853bb42e3 100644 --- a/var/spack/repos/builtin/packages/ascent/package.py +++ b/var/spack/repos/builtin/packages/ascent/package.py @@ -93,27 +93,25 @@ class Ascent(Package, CudaPackage): # Certain CMake versions have been found to break for our use cases depends_on("cmake@3.14.1:3.14.99,3.18.2:", type='build') depends_on("conduit~python", when="~python") - depends_on("conduit+python", when="+python+shared") - depends_on("conduit~shared~python", when="~shared") - depends_on("conduit~python~mpi", when="~python~mpi") - depends_on("conduit+python~mpi", when="+python+shared~mpi") - depends_on("conduit~shared~python~mpi", when="~shared~mpi") + depends_on("conduit+python", when="+python") + depends_on("conduit+mpi", when="+mpi") + depends_on("conduit~mpi", when="~mpi") ####################### # Python ####################### # we need a shared version of python b/c linking with static python lib # causes duplicate state issues when running compiled python modules. - depends_on("python+shared", when="+python+shared") - extends("python", when="+python+shared") - depends_on("py-numpy", when="+python+shared", type=('build', 'run')) - depends_on("py-pip", when="+python+shared", type=('build', 'run')) + depends_on("python+shared", when="+python") + extends("python", when="+python") + depends_on("py-numpy", when="+python", type=('build', 'run')) + depends_on("py-pip", when="+python", type=('build', 'run')) ####################### # MPI ####################### depends_on("mpi", when="+mpi") - depends_on("py-mpi4py", when="+mpi+python+shared") + depends_on("py-mpi4py", when="+mpi+python") ####################### # BabelFlow @@ -185,7 +183,11 @@ def install(self, spec, prefix): with working_dir('spack-build', create=True): py_site_pkgs_dir = None if "+python" in spec: - py_site_pkgs_dir = site_packages_dir + try: + py_site_pkgs_dir = site_packages_dir + except NameError: + # spack's site_packages_dir won't exist in a subclass + pass host_cfg_fname = self.create_host_config(spec, prefix, diff --git a/var/spack/repos/builtin/packages/asciidoc-py3/package.py b/var/spack/repos/builtin/packages/asciidoc-py3/package.py index f8695f9cd0f..81e5e052f37 100644 --- a/var/spack/repos/builtin/packages/asciidoc-py3/package.py +++ b/var/spack/repos/builtin/packages/asciidoc-py3/package.py @@ -17,6 +17,9 @@ class AsciidocPy3(AutotoolsPackage): homepage = "https://github.com/asciidoc/asciidoc-py3" url = "https://github.com/asciidoc/asciidoc-py3/releases/download/9.0.2/asciidoc-9.0.2.tar.gz" + version('9.1.0', sha256='fd499fcf51317b1aaf27336fb5e919c44c1f867f1ae6681ee197365d3065238b') + version('9.0.5', sha256='1a20647eb62ca37bc8107affab968caa0f674f0e962b497d1674391f636c7038') + version('9.0.4', sha256='400368a43f3eee656d7f197382cd3554b50fb370ef2aea6534f431692a356c66') version('9.0.3', sha256='d99c8be8e8a9232742253c2d87c547b2efd4bbd3f0c1e23ef14898ad0fff77c4') version('9.0.2', sha256='185fd68e47034c4dd892e1d4ae64c81152bc049e9bdc7d1ad63f927d35810a3b') diff --git a/var/spack/repos/builtin/packages/asciidoc/package.py b/var/spack/repos/builtin/packages/asciidoc/package.py index 4c5ddd2ba0f..c0bf35aad39 100644 --- a/var/spack/repos/builtin/packages/asciidoc/package.py +++ b/var/spack/repos/builtin/packages/asciidoc/package.py @@ -10,7 +10,7 @@ class Asciidoc(AutotoolsPackage): """A presentable text document format for writing articles, UNIX man pages and other small to medium sized documents.""" - homepage = "http://asciidoc.org" + homepage = "https://asciidoc.org/" # Always working URL but strangely with another checksum url = "https://github.com/asciidoc-py/asciidoc-py/archive/8.6.10.tar.gz" git = "https://github.com/asciidoc-py/asciidoc-py.git" diff --git a/var/spack/repos/builtin/packages/asio/package.py b/var/spack/repos/builtin/packages/asio/package.py index 66482441f41..2e08b78eefc 100644 --- a/var/spack/repos/builtin/packages/asio/package.py +++ b/var/spack/repos/builtin/packages/asio/package.py @@ -11,7 +11,7 @@ class Asio(AutotoolsPackage): """C++ library for network and low-level I/O programming.""" - homepage = "http://think-async.com/Asio/" + homepage = "https://think-async.com/Asio/" url = "https://github.com/chriskohlhoff/asio/archive/1.18.2.tar.gz" git = "https://github.com/chriskohlhoff/asio.git" maintainers = ["msimberg"] diff --git a/var/spack/repos/builtin/packages/astra/package.py b/var/spack/repos/builtin/packages/astra/package.py index 6285edd7c25..60cd1335663 100644 --- a/var/spack/repos/builtin/packages/astra/package.py +++ b/var/spack/repos/builtin/packages/astra/package.py @@ -9,7 +9,7 @@ class Astra(Package): """A Space Charge Tracking Algorithm.""" - homepage = "http://www.desy.de/~mpyflo/" + homepage = "https://www.desy.de/~mpyflo/" version('2020-02-03', sha256='ca9ee7d3d369f9040fbd595f57f3153f712d789b66385fd2d2de88a69a774b83', diff --git a/var/spack/repos/builtin/packages/at-spi2-atk/package.py b/var/spack/repos/builtin/packages/at-spi2-atk/package.py index baa6fb5b107..fdc834bc51a 100644 --- a/var/spack/repos/builtin/packages/at-spi2-atk/package.py +++ b/var/spack/repos/builtin/packages/at-spi2-atk/package.py @@ -10,7 +10,7 @@ class AtSpi2Atk(MesonPackage): """The At-Spi2 Atk package contains a library that bridges ATK to At-Spi2 D-Bus service.""" - homepage = "http://www.linuxfromscratch.org/blfs/view/cvs/x/at-spi2-atk.html" + homepage = "https://www.linuxfromscratch.org/blfs/view/cvs/x/at-spi2-atk.html" url = "http://ftp.gnome.org/pub/gnome/sources/at-spi2-atk/2.26/at-spi2-atk-2.26.1.tar.xz" list_url = "http://ftp.gnome.org/pub/gnome/sources/at-spi2-atk" list_depth = 1 diff --git a/var/spack/repos/builtin/packages/at-spi2-core/package.py b/var/spack/repos/builtin/packages/at-spi2-core/package.py index 96cb9b9197b..4d6494b54e2 100644 --- a/var/spack/repos/builtin/packages/at-spi2-core/package.py +++ b/var/spack/repos/builtin/packages/at-spi2-core/package.py @@ -11,7 +11,7 @@ class AtSpi2Core(MesonPackage): Assistive Technologies available on the GNOME platform and a library against which applications can be linked.""" - homepage = "http://www.linuxfromscratch.org/blfs/view/cvs/x/at-spi2-core.html" + homepage = "https://www.linuxfromscratch.org/blfs/view/cvs/x/at-spi2-core.html" url = "http://ftp.gnome.org/pub/gnome/sources/at-spi2-core/2.28/at-spi2-core-2.38.0.tar.xz" list_url = "http://ftp.gnome.org/pub/gnome/sources/at-spi2-core" list_depth = 1 diff --git a/var/spack/repos/builtin/packages/atmi/package.py b/var/spack/repos/builtin/packages/atmi/package.py index 2bea4d852c2..42fc3f62ee3 100644 --- a/var/spack/repos/builtin/packages/atmi/package.py +++ b/var/spack/repos/builtin/packages/atmi/package.py @@ -15,10 +15,11 @@ class Atmi(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/atmi" git = "https://github.com/RadeonOpenCompute/atmi.git" - url = "https://github.com/RadeonOpenCompute/atmi/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/atmi/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='1cbe0e9258ce7cce7b7ccc288335dffbac821ceb745c4f3fd48e2a258abada89') version('4.2.0', sha256='c1c89c00d2dc3e764c63b2e51ff7fd5c06d5881ed56aed0adf639582d3389585') version('4.1.0', sha256='b31849f86c79f90466a9d67f0a28a93c1675181e38e2a5f571ffc963e4b06f5f') version('4.0.0', sha256='8a2e5789ee7165aff0f0669eecd23ac0a5c8a5bfbc1acd9380fe9a8ed5bffe3a') @@ -32,7 +33,7 @@ class Atmi(CMakePackage): depends_on('cmake@3:', type='build') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('comgr@' + ver, type='link', when='@' + ver) depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver) depends_on('libelf@0.8:', type='link', when='@' + ver) diff --git a/var/spack/repos/builtin/packages/atompaw/package.py b/var/spack/repos/builtin/packages/atompaw/package.py index f7b27516343..5590587392e 100644 --- a/var/spack/repos/builtin/packages/atompaw/package.py +++ b/var/spack/repos/builtin/packages/atompaw/package.py @@ -15,7 +15,7 @@ class Atompaw(Package): User's guide: ~/doc/atompaw-usersguide.pdf """ - homepage = "http://users.wfu.edu/natalie/papers/pwpaw/man.html" + homepage = "https://users.wfu.edu/natalie/papers/pwpaw/man.html" url = "http://users.wfu.edu/natalie/papers/pwpaw/atompaw-4.0.0.13.tar.gz" version('4.1.1.0', sha256='b1ee2b53720066655d98523ef337e54850cb1e68b3a2da04ff5a1576d3893891') diff --git a/var/spack/repos/builtin/packages/atop/package.py b/var/spack/repos/builtin/packages/atop/package.py index 75108faf0ad..fb22f272c65 100644 --- a/var/spack/repos/builtin/packages/atop/package.py +++ b/var/spack/repos/builtin/packages/atop/package.py @@ -8,7 +8,7 @@ class Atop(Package): """Atop is an ASCII full-screen performance monitor for Linux""" - homepage = "http://www.atoptool.nl/index.php" + homepage = "https://www.atoptool.nl/index.php" url = "http://www.atoptool.nl/download/atop-2.2-3.tar.gz" version('2.5.0', sha256='4b911057ce50463b6e8b3016c5963d48535c0cddeebc6eda817e292b22f93f33') diff --git a/var/spack/repos/builtin/packages/augustus/package.py b/var/spack/repos/builtin/packages/augustus/package.py index ea74ff7f2bf..2a166027731 100644 --- a/var/spack/repos/builtin/packages/augustus/package.py +++ b/var/spack/repos/builtin/packages/augustus/package.py @@ -12,7 +12,7 @@ class Augustus(MakefilePackage): """AUGUSTUS is a program that predicts genes in eukaryotic genomic sequences""" - homepage = "http://bioinf.uni-greifswald.de/augustus/" + homepage = "https://bioinf.uni-greifswald.de/augustus/" url = "https://github.com/Gaius-Augustus/Augustus/archive/v3.3.4.tar.gz" # Releases have moved to github diff --git a/var/spack/repos/builtin/packages/autofact/package.py b/var/spack/repos/builtin/packages/autofact/package.py index 88b079f3895..099506a988f 100644 --- a/var/spack/repos/builtin/packages/autofact/package.py +++ b/var/spack/repos/builtin/packages/autofact/package.py @@ -11,7 +11,7 @@ class Autofact(Package): """An Automatic Functional Annotation and Classification Tool""" - homepage = "http://megasun.bch.umontreal.ca/Software/AutoFACT.htm" + homepage = "https://megasun.bch.umontreal.ca/Software/AutoFACT.htm" url = "http://megasun.bch.umontreal.ca/Software/AutoFACT_v3_4.tar" version('3_4', sha256='1465d263b19adb42f01f6e636ac40ef1c2e3dbd63461f977b89da9493fe9c6f4') diff --git a/var/spack/repos/builtin/packages/automake/package.py b/var/spack/repos/builtin/packages/automake/package.py index e364fe07cb0..4a40aef8db3 100644 --- a/var/spack/repos/builtin/packages/automake/package.py +++ b/var/spack/repos/builtin/packages/automake/package.py @@ -8,7 +8,7 @@ class Automake(AutotoolsPackage, GNUMirrorPackage): """Automake -- make file builder part of autotools""" - homepage = 'http://www.gnu.org/software/automake/' + homepage = 'https://www.gnu.org/software/automake/' gnu_mirror_path = 'automake/automake-1.15.tar.gz' version('1.16.3', sha256='ce010788b51f64511a1e9bb2a1ec626037c6d0e7ede32c1c103611b9d3cba65f') diff --git a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py index 6c8cf3697b6..ac81dbb87ea 100644 --- a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py +++ b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py @@ -13,12 +13,13 @@ class AwsParallelcluster(PythonPackage): tool to deploy and manage HPC clusters in the AWS cloud.""" homepage = "https://github.com/aws/aws-parallelcluster" - pypi = "aws-parallelcluster/aws-parallelcluster-2.11.1.tar.gz" + pypi = "aws-parallelcluster/aws-parallelcluster-2.11.2.tar.gz" maintainers = [ 'demartinofra', 'enrico-usai', 'lukeseawalker', 'tilne' ] + version('2.11.2', sha256='60d96a5ea4dca4816ceffc4546549743abd1f6207c62f016c9c348adc64b2ec0') version('2.11.1', sha256='dc102eeb0db30fb183c1ee076e340223095fde7d9079004fde401b7ad658242d') version('2.11.0', sha256='ec2f54f752a355649ca065a41fa4ac19697f570a136e10e0a6548f5abad3ea8a') version('2.10.4', sha256='487dbf3e79f3e9b6750b1075cef4eb24956f7b310e5bd8de662b98d87491736c') diff --git a/var/spack/repos/builtin/packages/babeltrace/package.py b/var/spack/repos/builtin/packages/babeltrace/package.py index f3c0177e1cf..e83b6cc39a5 100644 --- a/var/spack/repos/builtin/packages/babeltrace/package.py +++ b/var/spack/repos/builtin/packages/babeltrace/package.py @@ -11,7 +11,7 @@ class Babeltrace(AutotoolsPackage): Common Trace Format (CTF). Its main use is to pretty-print CTF traces into a human-readable text output ordered by time.""" - homepage = "http://www.efficios.com/babeltrace" + homepage = "https://www.efficios.com/babeltrace" url = "https://www.efficios.com/files/babeltrace/babeltrace-1.2.4.tar.bz2" version('1.2.4', sha256='666e3a1ad2dc7d5703059963056e7800f0eab59c8eeb6be2efe4f3acc5209eb1') diff --git a/var/spack/repos/builtin/packages/bacio/package.py b/var/spack/repos/builtin/packages/bacio/package.py new file mode 100644 index 00000000000..ebee5d6017b --- /dev/null +++ b/var/spack/repos/builtin/packages/bacio/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 import * + + +class Bacio(CMakePackage): + """The bacio ibrary performs binary I/O for the NCEP models, processing + unformatted byte-addressable data records, and transforming the little + endian files and big endian files.""" + + homepage = "https://noaa-emc.github.io/NCEPLIBS-bacio" + url = "https://github.com/NOAA-EMC/NCEPLIBS-bacio/archive/refs/tags/v2.4.1.tar.gz" + + maintainers = ['t-brown'] + + version('2.4.1', sha256='7b9b6ba0a288f438bfba6a08b6e47f8133f7dba472a74ac56a5454e2260a7200') diff --git a/var/spack/repos/builtin/packages/bamutil/package.py b/var/spack/repos/builtin/packages/bamutil/package.py index 7d2b765eb06..625c44184b5 100644 --- a/var/spack/repos/builtin/packages/bamutil/package.py +++ b/var/spack/repos/builtin/packages/bamutil/package.py @@ -12,7 +12,7 @@ class Bamutil(MakefilePackage): are built into a single executable, bam. """ - homepage = "http://genome.sph.umich.edu/wiki/BamUtil" + homepage = "https://genome.sph.umich.edu/wiki/BamUtil" url = "http://genome.sph.umich.edu/w/images/7/70/BamUtilLibStatGen.1.0.13.tgz" version('1.0.13', sha256='16c1d01c37d1f98b98c144f3dd0fda6068c1902f06bd0989f36ce425eb0c592b') diff --git a/var/spack/repos/builtin/packages/barvinok/package.py b/var/spack/repos/builtin/packages/barvinok/package.py index 783a02ff79c..9428e06d7f5 100644 --- a/var/spack/repos/builtin/packages/barvinok/package.py +++ b/var/spack/repos/builtin/packages/barvinok/package.py @@ -10,7 +10,7 @@ class Barvinok(AutotoolsPackage): """barvinok is a library for counting the number of integer points in parametric and non-parametric polytopes.""" - homepage = "http://barvinok.gforge.inria.fr" + homepage = "https://barvinok.gforge.inria.fr" url = "http://barvinok.gforge.inria.fr/barvinok-0.41.5.tar.bz2" version('0.41.5', sha256='e70493318fe76c0c202f98d7861bdf5dda8c4d79c21024af2e04b009ffa79734') diff --git a/var/spack/repos/builtin/packages/bbmap/package.py b/var/spack/repos/builtin/packages/bbmap/package.py index 1e420bf75c2..a16ed8feb9b 100644 --- a/var/spack/repos/builtin/packages/bbmap/package.py +++ b/var/spack/repos/builtin/packages/bbmap/package.py @@ -9,7 +9,7 @@ class Bbmap(Package, SourceforgePackage): """Short read aligner for DNA and RNA-seq data.""" - homepage = "http://sourceforge.net/projects/bbmap/" + homepage = "https://sourceforge.net/projects/bbmap/" sourceforge_mirror_path = "bbmap/BBMap_38.63.tar.gz" version('38.63', sha256='089064104526c8d696164aefa067f935b888bc71ef95527c72a98c17ee90a01f') diff --git a/var/spack/repos/builtin/packages/bcache/package.py b/var/spack/repos/builtin/packages/bcache/package.py index c25f333eabd..a8d4bceb3a6 100644 --- a/var/spack/repos/builtin/packages/bcache/package.py +++ b/var/spack/repos/builtin/packages/bcache/package.py @@ -10,7 +10,7 @@ class Bcache(MakefilePackage): """Bcache is a patch for the Linux kernel to use SSDs to cache other block devices.""" - homepage = "http://bcache.evilpiepirate.org" + homepage = "https://bcache.evilpiepirate.org/" url = "https://github.com/g2p/bcache-tools/archive/v1.0.8.tar.gz" version('1.0.8', sha256='d56923936f37287efc57a46315679102ef2c86cd0be5874590320acd48c1201c') diff --git a/var/spack/repos/builtin/packages/bcftools/package.py b/var/spack/repos/builtin/packages/bcftools/package.py index 61da8e9d1a5..8f4f5bdad8e 100644 --- a/var/spack/repos/builtin/packages/bcftools/package.py +++ b/var/spack/repos/builtin/packages/bcftools/package.py @@ -10,7 +10,7 @@ class Bcftools(AutotoolsPackage): commands work transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.""" - homepage = "http://samtools.github.io/bcftools/" + homepage = "https://samtools.github.io/bcftools/" url = "https://github.com/samtools/bcftools/releases/download/1.3.1/bcftools-1.3.1.tar.bz2" version('1.12', sha256='7a0e6532b1495b9254e38c6698d955e5176c1ee08b760dfea2235ee161a024f5') diff --git a/var/spack/repos/builtin/packages/bdftopcf/package.py b/var/spack/repos/builtin/packages/bdftopcf/package.py index edfc810c000..552f8123754 100644 --- a/var/spack/repos/builtin/packages/bdftopcf/package.py +++ b/var/spack/repos/builtin/packages/bdftopcf/package.py @@ -14,7 +14,7 @@ class Bdftopcf(AutotoolsPackage, XorgPackage): appropriate machine, but the files are still portable (but read more slowly) on other machines.""" - homepage = "http://cgit.freedesktop.org/xorg/app/bdftopcf" + homepage = "https://cgit.freedesktop.org/xorg/app/bdftopcf" xorg_mirror_path = "app/bdftopcf-1.0.5.tar.gz" version('1.0.5', sha256='78a5ec945de1d33e6812167b1383554fda36e38576849e74a9039dc7364ff2c3') diff --git a/var/spack/repos/builtin/packages/beagle/package.py b/var/spack/repos/builtin/packages/beagle/package.py index 941ff1e43bd..ad72d8a06d9 100644 --- a/var/spack/repos/builtin/packages/beagle/package.py +++ b/var/spack/repos/builtin/packages/beagle/package.py @@ -12,7 +12,7 @@ class Beagle(Package): """Beagle is a software package for phasing genotypes and for imputing ungenotyped markers.""" - homepage = "http://faculty.washington.edu/browning/beagle/beagle.html" + homepage = "https://faculty.washington.edu/browning/beagle/beagle.html" version('5.1', sha256='994f926a4ec0eac665631f37c4a961d3f75c966c71841079275364013c90996c', expand=False, url='http://faculty.washington.edu/browning/beagle/beagle.25Nov19.28d.jar') diff --git a/var/spack/repos/builtin/packages/beast-tracer/package.py b/var/spack/repos/builtin/packages/beast-tracer/package.py index 5314625ff06..ecd5774f5e7 100644 --- a/var/spack/repos/builtin/packages/beast-tracer/package.py +++ b/var/spack/repos/builtin/packages/beast-tracer/package.py @@ -12,7 +12,7 @@ class BeastTracer(Package): """Tracer is a graphical tool for visualization and diagnostics of MCMC output.""" - homepage = "http://beast.community/tracer" + homepage = "https://beast.community/tracer" url = "https://github.com/beast-dev/tracer/archive/v1.7.1.tar.gz" version('1.7.1', sha256='947d51c5afa52354099b9b182ba6036e352356bd62df94031f33cdcb7e8effd3') diff --git a/var/spack/repos/builtin/packages/beast1/package.py b/var/spack/repos/builtin/packages/beast1/package.py index 6836a958af9..b4f560ebb83 100644 --- a/var/spack/repos/builtin/packages/beast1/package.py +++ b/var/spack/repos/builtin/packages/beast1/package.py @@ -10,7 +10,7 @@ class Beast1(Package): """BEAST is a cross-platform program for Bayesian analysis of molecular sequences using MCMC.""" - homepage = "http://beast.community/" + homepage = "https://beast.community/" version('1.10.4', sha256='be652c4d55953f7c6c7a9d3eb3de203c77dc380e81ad81cfe0492408990c36a8') version('1.8.4', sha256='c14e93976008463108aefa34ecc23287ab70703caccf4962e36e295207120d78') diff --git a/var/spack/repos/builtin/packages/beforelight/package.py b/var/spack/repos/builtin/packages/beforelight/package.py index 764959934cb..a1101d347a6 100644 --- a/var/spack/repos/builtin/packages/beforelight/package.py +++ b/var/spack/repos/builtin/packages/beforelight/package.py @@ -12,7 +12,7 @@ class Beforelight(AutotoolsPackage, XorgPackage): recommended for use as a code sample, as it does not include features such as screen locking or configurability.""" - homepage = "http://cgit.freedesktop.org/xorg/app/beforelight" + homepage = "https://cgit.freedesktop.org/xorg/app/beforelight" xorg_mirror_path = "app/beforelight-1.0.5.tar.gz" version('1.0.5', sha256='93bb3c457d6d5e8def3180fdee07bc84d1b7f0e5378a95812e2193cd51455cdc') diff --git a/var/spack/repos/builtin/packages/bib2xhtml/package.py b/var/spack/repos/builtin/packages/bib2xhtml/package.py index 3be5aadecf2..7ce02354aa9 100644 --- a/var/spack/repos/builtin/packages/bib2xhtml/package.py +++ b/var/spack/repos/builtin/packages/bib2xhtml/package.py @@ -6,7 +6,7 @@ class Bib2xhtml(Package): """bib2xhtml is a program that converts BibTeX files into HTML.""" - homepage = "http://www.spinellis.gr/sw/textproc/bib2xhtml/" + homepage = "https://www.spinellis.gr/sw/textproc/bib2xhtml/" url = 'https://www.spinellis.gr/sw/textproc/bib2xhtml/bib2xhtml-v3.0-79-ge935.tar.gz' version('3.0-79-ge935', sha256='4a2d2d89dd2f3fed1c735055b806809b5cc1cde32dee1aa5987097ec5bf2181f') diff --git a/var/spack/repos/builtin/packages/bigreqsproto/package.py b/var/spack/repos/builtin/packages/bigreqsproto/package.py index 340b463c1d0..894686f038e 100644 --- a/var/spack/repos/builtin/packages/bigreqsproto/package.py +++ b/var/spack/repos/builtin/packages/bigreqsproto/package.py @@ -12,7 +12,7 @@ class Bigreqsproto(AutotoolsPackage, XorgPackage): This extension defines a protocol to enable the use of requests that exceed 262140 bytes in length.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/bigreqsproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/bigreqsproto" xorg_mirror_path = "proto/bigreqsproto-1.1.2.tar.gz" version('1.1.2', sha256='de68a1a9dd1a1219ad73531bff9f662bc62fcd777387549c43cd282399f4a6ea') diff --git a/var/spack/repos/builtin/packages/binutils/package.py b/var/spack/repos/builtin/packages/binutils/package.py index bd3b64394c2..445d32b2c3b 100644 --- a/var/spack/repos/builtin/packages/binutils/package.py +++ b/var/spack/repos/builtin/packages/binutils/package.py @@ -7,9 +7,12 @@ class Binutils(AutotoolsPackage, GNUMirrorPackage): """GNU binutils, which contain the linker, assembler, objdump and others""" - homepage = "http://www.gnu.org/software/binutils/" + homepage = "https://www.gnu.org/software/binutils/" gnu_mirror_path = "binutils/binutils-2.28.tar.bz2" + maintainers = ['alalazo'] + + version('2.37', sha256='67fc1a4030d08ee877a4867d3dcab35828148f87e1fd05da6db585ed5a166bd4') version('2.36.1', sha256='5b4bd2e79e30ce8db0abd76dd2c2eae14a94ce212cfc59d3c37d23e24bc6d7a3') version('2.35.2', sha256='cfa7644dbecf4591e136eb407c1c1da16578bd2b03f0c2e8acdceba194bb9d61') version('2.35.1', sha256='320e7a1d0f46fcd9f413f1046e216cbe23bb2bce6deb6c6a63304425e48b1942') diff --git a/var/spack/repos/builtin/packages/biopieces/package.py b/var/spack/repos/builtin/packages/biopieces/package.py index b1e44aaea9f..167eb2e451a 100644 --- a/var/spack/repos/builtin/packages/biopieces/package.py +++ b/var/spack/repos/builtin/packages/biopieces/package.py @@ -11,7 +11,7 @@ class Biopieces(Package): pieced together in a very easy and flexible manner to perform both simple and complex tasks.""" - homepage = "http://maasha.github.io/biopieces/" + homepage = "https://maasha.github.io/biopieces/" git = "https://github.com/maasha/biopieces.git" version('2016-04-12', commit='982f80f7c55e2cae67737d80fe35a4e784762856', diff --git a/var/spack/repos/builtin/packages/bird/package.py b/var/spack/repos/builtin/packages/bird/package.py index 7b48ed0e417..4e092e77fd1 100644 --- a/var/spack/repos/builtin/packages/bird/package.py +++ b/var/spack/repos/builtin/packages/bird/package.py @@ -13,7 +13,7 @@ class Bird(AutotoolsPackage): primarily targeted on (but not limited to) Linux and other UNIX-like systems and distributed under the GNU General Public License.""" - homepage = "http://bird.network.cz/" + homepage = "https://bird.network.cz/" url = "https://github.com/BIRD/bird/archive/v2.0.2.tar.gz" version('2.0.2', sha256='bd42d48fbcc2c0046d544f1183cd98193ff15b792d332ff45f386b0180b09335') diff --git a/var/spack/repos/builtin/packages/bitmap/package.py b/var/spack/repos/builtin/packages/bitmap/package.py index 5dbf830bc24..446cf1b26a1 100644 --- a/var/spack/repos/builtin/packages/bitmap/package.py +++ b/var/spack/repos/builtin/packages/bitmap/package.py @@ -9,7 +9,7 @@ class Bitmap(AutotoolsPackage, XorgPackage): """bitmap, bmtoa, atobm - X bitmap (XBM) editor and converter utilities.""" - homepage = "http://cgit.freedesktop.org/xorg/app/bitmap" + homepage = "https://cgit.freedesktop.org/xorg/app/bitmap" xorg_mirror_path = "app/bitmap-1.0.8.tar.gz" version('1.0.8', sha256='1a2fbd10a2ca5cd93f7b77bbb0555b86d8b35e0fc18d036b1607c761755006fc') diff --git a/var/spack/repos/builtin/packages/blast-plus/package.py b/var/spack/repos/builtin/packages/blast-plus/package.py index 2bc4e1e7831..767bb2e3702 100644 --- a/var/spack/repos/builtin/packages/blast-plus/package.py +++ b/var/spack/repos/builtin/packages/blast-plus/package.py @@ -20,7 +20,7 @@ class BlastPlus(AutotoolsPackage): """Basic Local Alignment Search Tool.""" - homepage = "http://blast.ncbi.nlm.nih.gov/" + homepage = "https://blast.ncbi.nlm.nih.gov/" url = "https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.12.0/ncbi-blast-2.12.0+-src.tar.gz" maintainers = ['weijianwen'] diff --git a/var/spack/repos/builtin/packages/blitz/package.py b/var/spack/repos/builtin/packages/blitz/package.py index d44df205fe8..3003cc0e0c7 100644 --- a/var/spack/repos/builtin/packages/blitz/package.py +++ b/var/spack/repos/builtin/packages/blitz/package.py @@ -8,7 +8,7 @@ class Blitz(AutotoolsPackage): """N-dimensional arrays for C++""" - homepage = "http://github.com/blitzpp/blitz" + homepage = "https://github.com/blitzpp/blitz" url = "https://github.com/blitzpp/blitz/archive/1.0.2.tar.gz" version('1.0.2', sha256='500db9c3b2617e1f03d0e548977aec10d36811ba1c43bb5ef250c0e3853ae1c2') diff --git a/var/spack/repos/builtin/packages/bmake/package.py b/var/spack/repos/builtin/packages/bmake/package.py index 08c05e1bcb8..566516207b0 100644 --- a/var/spack/repos/builtin/packages/bmake/package.py +++ b/var/spack/repos/builtin/packages/bmake/package.py @@ -9,7 +9,7 @@ class Bmake(Package): """Portable version of NetBSD make(1).""" - homepage = "http://www.crufty.net/help/sjg/bmake.htm" + homepage = "https://www.crufty.net/help/sjg/bmake.htm" url = "http://www.crufty.net/ftp/pub/sjg/bmake-20180512.tar.gz" version('20200710', sha256='6538fc4319ef79d178dca76d3b869f7aa93a9bb7b510df08a7d872c01a56b76c') diff --git a/var/spack/repos/builtin/packages/bml/package.py b/var/spack/repos/builtin/packages/bml/package.py index b3c021315b4..d7ec3678f9a 100644 --- a/var/spack/repos/builtin/packages/bml/package.py +++ b/var/spack/repos/builtin/packages/bml/package.py @@ -11,7 +11,7 @@ class Bml(CMakePackage): formats (in dense and sparse) and their associated algorithms for basic matrix operations.""" - homepage = "http://lanl.github.io/bml/" + homepage = "https://lanl.github.io/bml/" url = "https://github.com/lanl/bml/tarball/v1.2.2" git = "https://github.com/lanl/bml.git" diff --git a/var/spack/repos/builtin/packages/bohrium/package.py b/var/spack/repos/builtin/packages/bohrium/package.py index 62ed433d22a..c2defe0b8a4 100644 --- a/var/spack/repos/builtin/packages/bohrium/package.py +++ b/var/spack/repos/builtin/packages/bohrium/package.py @@ -15,7 +15,7 @@ class Bohrium(CMakePackage, CudaPackage): """Library for automatic acceleration of array operations""" - homepage = "http://bh107.org" + homepage = "https://github.com/bh107/bohrium" url = "https://github.com/bh107/bohrium/archive/v0.9.0.tar.gz" git = "https://github.com/bh107/bohrium.git" diff --git a/var/spack/repos/builtin/packages/bolt/package.py b/var/spack/repos/builtin/packages/bolt/package.py index 3b7b775ca31..554c183f206 100644 --- a/var/spack/repos/builtin/packages/bolt/package.py +++ b/var/spack/repos/builtin/packages/bolt/package.py @@ -19,7 +19,7 @@ class Bolt(CMakePackage): runtime in LLVM, and thus it can be used with LLVM/Clang, Intel OpenMP compiler, and GCC.""" - homepage = "http://www.bolt-omp.org/" + homepage = "https://www.bolt-omp.org/" url = "https://github.com/pmodels/bolt/releases/download/v1.0b1/bolt-1.0b1.tar.gz" git = "https://github.com/pmodels/bolt.git" maintainers = ['shintaro-iwasaki'] diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py index ff5f1b71947..1bf06b4f28a 100644 --- a/var/spack/repos/builtin/packages/boost/package.py +++ b/var/spack/repos/builtin/packages/boost/package.py @@ -18,7 +18,7 @@ class Boost(Package): across a broad spectrum of applications. The Boost license encourages both commercial and non-commercial use. """ - homepage = "http://www.boost.org" + homepage = "https://www.boost.org" url = "http://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.bz2" git = "https://github.com/boostorg/boost.git" list_url = "http://sourceforge.net/projects/boost/files/boost/" @@ -26,6 +26,7 @@ class Boost(Package): maintainers = ['hainest'] version('develop', branch='develop', submodules=True) + version('1.77.0', sha256='fc9f85fc030e233142908241af7a846e60630aa7388de9a5fafb1f3a26840854') version('1.76.0', sha256='f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41') version('1.75.0', sha256='953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb') version('1.74.0', sha256='83bfc1507731a0906e387fc28b7ef5417d591429e51e788417fe9ff025e116b1') @@ -290,6 +291,13 @@ def libs(self): # and https://github.com/boostorg/context/issues/177 patch("context-macho-gcc.patch", when="@1.65:1.76 +context platform=darwin %gcc") + # Fix float128 support when building with CUDA and Cray compiler + # See https://github.com/boostorg/config/pull/378 + patch("https://github.com/boostorg/config/commit/fee1ad07968386b6d547f089311b7a2c1bf7fa55.patch", + sha256="3b159d65a0d3d2df2a21c6bf56ffaba943fce92d2d41d628b2c4d2e924e0f421", + when="@:1.76%cce", + level=2) + def patch(self): # Disable SSSE3 and AVX2 when using the NVIDIA compiler if self.spec.satisfies('%nvhpc'): diff --git a/var/spack/repos/builtin/packages/breakdancer/package.py b/var/spack/repos/builtin/packages/breakdancer/package.py index 606b153e270..61d2d12c549 100644 --- a/var/spack/repos/builtin/packages/breakdancer/package.py +++ b/var/spack/repos/builtin/packages/breakdancer/package.py @@ -17,7 +17,7 @@ class Breakdancer(CMakePackage): BreakDancerMini focuses on detecting small indels (usually between 10bp and 100bp) using normally mapped read pairs..""" - homepage = "http://gmt.genome.wustl.edu/packages/breakdancer" + homepage = "https://gmt.genome.wustl.edu/packages/breakdancer" url = "https://github.com/genome/breakdancer/archive/v1.4.5.tar.gz" version('1.4.5', sha256='5d74f3a90f5c69026ebb4cf4cb9ccc51ec8dd49ac7a88595a1efabd5a73e92b6') diff --git a/var/spack/repos/builtin/packages/bref3/package.py b/var/spack/repos/builtin/packages/bref3/package.py index 5065854f139..59ad599636c 100644 --- a/var/spack/repos/builtin/packages/bref3/package.py +++ b/var/spack/repos/builtin/packages/bref3/package.py @@ -11,7 +11,7 @@ class Bref3(Package): """Bref3: Converts from VCF format to bref3 format.""" - homepage = "http://faculty.washington.edu/browning/beagle/beagle.html" + homepage = "https://faculty.washington.edu/browning/beagle/beagle.html" version('2019-11-25', sha256='969c0881050c4a48d19be9ea64bf49fa68c1403b69f9f739bbfd865dda639b2d', expand=False, url='http://faculty.washington.edu/browning/beagle/bref3.25Nov19.28d.jar') diff --git a/var/spack/repos/builtin/packages/breseq/package.py b/var/spack/repos/builtin/packages/breseq/package.py index 363f6b49878..9805922714e 100644 --- a/var/spack/repos/builtin/packages/breseq/package.py +++ b/var/spack/repos/builtin/packages/breseq/package.py @@ -11,7 +11,7 @@ class Breseq(AutotoolsPackage): a reference sequence in short-read DNA re-sequencing data for haploid microbial-sized genomes.""" - homepage = "http://barricklab.org/breseq" + homepage = "https://barricklab.org/breseq" url = "https://github.com/barricklab/breseq/archive/v0.31.1.tar.gz" version('0.33.2', sha256='c698d2d25cc7ed251ff916343a8c04f79b5540281288cb7c955f458255ac21de') diff --git a/var/spack/repos/builtin/packages/brltty/package.py b/var/spack/repos/builtin/packages/brltty/package.py index 764627e27a3..68aa8582564 100644 --- a/var/spack/repos/builtin/packages/brltty/package.py +++ b/var/spack/repos/builtin/packages/brltty/package.py @@ -11,7 +11,7 @@ class Brltty(AutotoolsPackage): Linux/Unix console (when in text mode) for a blind person using a refreshable braille display.""" - homepage = "http://brltty.app/" + homepage = "https://brltty.app/" url = "https://github.com/brltty/brltty/archive/BRLTTY-6.0.tar.gz" version('6.0', sha256='acfea5274bdc9230b0ea1a87f8796e241615d4d2c1ba08d87601b9d116c7804c') diff --git a/var/spack/repos/builtin/packages/bucky/package.py b/var/spack/repos/builtin/packages/bucky/package.py index 03c691a0b4c..b6792e741ce 100644 --- a/var/spack/repos/builtin/packages/bucky/package.py +++ b/var/spack/repos/builtin/packages/bucky/package.py @@ -12,7 +12,7 @@ class Bucky(MakefilePackage): much of the genome supports each relationship, using Bayesian concordance analysis.""" - homepage = "http://www.stat.wisc.edu/~ane/bucky/index.html" + homepage = "https://www.stat.wisc.edu/~ane/bucky/index.html" url = "http://dstats.net/download/http://www.stat.wisc.edu/~ane/bucky/v1.4/bucky-1.4.4.tgz" version('1.4.4', sha256='1621fee0d42314d9aa45d0082b358d4531e7d1d1a0089c807c1b21fbdc4e4592') diff --git a/var/spack/repos/builtin/packages/bufr/package.py b/var/spack/repos/builtin/packages/bufr/package.py new file mode 100644 index 00000000000..abea0861310 --- /dev/null +++ b/var/spack/repos/builtin/packages/bufr/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 import * + + +class Bufr(CMakePackage): + """The NOAA bufr library contains subroutines, functions and other utilities + that can be used to read (decode) and write (encode) data in BUFR, which + is a WMO standard format for the exchange of meteorological data.""" + + homepage = "https://noaa-emc.github.io/NCEPLIBS-bufr" + url = "https://github.com/NOAA-EMC/NCEPLIBS-bufr/archive/refs/tags/bufr_v11.5.0.tar.gz" + + maintainers = ['t-brown'] + + version('11.5.0', sha256='d154839e29ef1fe82e58cf20232e9f8a4f0610f0e8b6a394b7ca052e58f97f43') diff --git a/var/spack/repos/builtin/packages/busco/package.py b/var/spack/repos/builtin/packages/busco/package.py index 67c50411fa9..e4124072d3d 100644 --- a/var/spack/repos/builtin/packages/busco/package.py +++ b/var/spack/repos/builtin/packages/busco/package.py @@ -10,7 +10,7 @@ class Busco(PythonPackage): """Assesses genome assembly and annotation completeness with Benchmarking Universal Single-Copy Orthologs""" - homepage = "http://busco.ezlab.org/" + homepage = "https://busco.ezlab.org/" url = "https://gitlab.com/api/v4/projects/ezlab%2Fbusco/repository/archive.tar.gz?sha=2.0.1" git = "https://gitlab.com/ezlab/busco.git" diff --git a/var/spack/repos/builtin/packages/bwa/package.py b/var/spack/repos/builtin/packages/bwa/package.py index 03bd1a6302e..3ba4befded9 100644 --- a/var/spack/repos/builtin/packages/bwa/package.py +++ b/var/spack/repos/builtin/packages/bwa/package.py @@ -11,7 +11,7 @@ class Bwa(Package): """Burrow-Wheeler Aligner for pairwise alignment between DNA sequences.""" - homepage = "http://github.com/lh3/bwa" + homepage = "https://github.com/lh3/bwa" url = "https://github.com/lh3/bwa/releases/download/v0.7.15/bwa-0.7.15.tar.bz2" version('0.7.17', sha256='de1b4d4e745c0b7fc3e107b5155a51ac063011d33a5d82696331ecf4bed8d0fd') diff --git a/var/spack/repos/builtin/packages/byobu/package.py b/var/spack/repos/builtin/packages/byobu/package.py index d301845f497..5595c376150 100644 --- a/var/spack/repos/builtin/packages/byobu/package.py +++ b/var/spack/repos/builtin/packages/byobu/package.py @@ -10,7 +10,7 @@ class Byobu(AutotoolsPackage): """Byobu: Text-based window manager and terminal multiplexer.""" - homepage = "http://www.byobu.co" + homepage = "https://www.byobu.co/" url = "https://launchpad.net/byobu/trunk/5.123/+download/byobu_5.123.orig.tar.gz" maintainers = ['matthiasdiener'] diff --git a/var/spack/repos/builtin/packages/byte-unixbench/package.py b/var/spack/repos/builtin/packages/byte-unixbench/package.py index 84aabb8d7f5..b7fa65dfa41 100644 --- a/var/spack/repos/builtin/packages/byte-unixbench/package.py +++ b/var/spack/repos/builtin/packages/byte-unixbench/package.py @@ -9,7 +9,7 @@ class ByteUnixbench(MakefilePackage): """UnixBench is the original BYTE UNIX benchmark suite.""" - homepage = "https://code.google.com/archive/p/byte-unixbench" + homepage = "https://github.com/kdlucas/byte-unixbench" url = "https://github.com/kdlucas/byte-unixbench/archive/v5.1.3.tar.gz" version('5.1.3', sha256='3a6bb00f270a5329682dff20fd2c1ab5332ef046eb54a96a0d7bd371005d31a3') diff --git a/var/spack/repos/builtin/packages/byteman/package.py b/var/spack/repos/builtin/packages/byteman/package.py index 2c28195f47b..b3c09d556a1 100644 --- a/var/spack/repos/builtin/packages/byteman/package.py +++ b/var/spack/repos/builtin/packages/byteman/package.py @@ -10,7 +10,7 @@ class Byteman(MavenPackage): """Byteman is a tool which makes it easy to trace, monitor and test the behaviour of Java application and JDK runtime code.""" - homepage = "http://www.jboss.org/byteman" + homepage = "https://www.jboss.org/byteman" url = "https://github.com/bytemanproject/byteman/archive/4.0.12.tar.gz" version('4.0.12', sha256='72fdc904d7b8df9e743fbb5ae84e51ffc81d32b6e0b0b80fc7ac165dd8c9c7c2') diff --git a/var/spack/repos/builtin/packages/c-blosc/package.py b/var/spack/repos/builtin/packages/c-blosc/package.py index 2fb292a19d9..f112ee16d08 100644 --- a/var/spack/repos/builtin/packages/c-blosc/package.py +++ b/var/spack/repos/builtin/packages/c-blosc/package.py @@ -11,7 +11,7 @@ class CBlosc(CMakePackage): """Blosc, an extremely fast, multi-threaded, meta-compressor library""" - homepage = "http://www.blosc.org" + homepage = "https://www.blosc.org" url = "https://github.com/Blosc/c-blosc/archive/v1.11.1.tar.gz" version('1.21.0', sha256='b0ef4fda82a1d9cbd11e0f4b9685abf14372db51703c595ecd4d76001a8b342d') diff --git a/var/spack/repos/builtin/packages/c-blosc2/package.py b/var/spack/repos/builtin/packages/c-blosc2/package.py index ee3c7021cce..d7b91125e1d 100644 --- a/var/spack/repos/builtin/packages/c-blosc2/package.py +++ b/var/spack/repos/builtin/packages/c-blosc2/package.py @@ -10,7 +10,7 @@ class CBlosc2(CMakePackage): """Next generation c-blosc with a new API, a new container and other bells and whistles""" - homepage = "http://www.blosc.org" + homepage = "https://www.blosc.org/" url = "https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.0.1.tar.gz" git = "https://github.com/Blosc/c-blosc2.git" diff --git a/var/spack/repos/builtin/packages/ca-certificates-mozilla/package.py b/var/spack/repos/builtin/packages/ca-certificates-mozilla/package.py index e81cb568aa7..b49ef03cf75 100644 --- a/var/spack/repos/builtin/packages/ca-certificates-mozilla/package.py +++ b/var/spack/repos/builtin/packages/ca-certificates-mozilla/package.py @@ -14,6 +14,8 @@ class CaCertificatesMozilla(Package): maintainers = ['haampie'] + version('2021-07-05', sha256='a3b534269c6974631db35f952e8d7c7dbf3d81ab329a232df575c2661de1214a', expand=False) + version('2021-05-25', sha256='3a32ad57e7f5556e36ede625b854057ac51f996d59e0952c207040077cbe48a9', expand=False) version('2021-04-13', sha256='533610ad2b004c1622a40622f86ced5e89762e1c0e4b3ae08b31b240d863e91f', expand=False) version('2021-01-19', sha256='e010c0c071a2c79a76aa3c289dc7e4ac4ed38492bfda06d766a80b707ebd2f29', expand=False) version('2020-12-08', sha256='313d562594ebd07846ad6b840dd18993f22e0f8b3f275d9aacfae118f4f00fb7', expand=False) diff --git a/var/spack/repos/builtin/packages/cachefilesd/package.py b/var/spack/repos/builtin/packages/cachefilesd/package.py index e8911872d70..19323324c0c 100644 --- a/var/spack/repos/builtin/packages/cachefilesd/package.py +++ b/var/spack/repos/builtin/packages/cachefilesd/package.py @@ -11,7 +11,7 @@ class Cachefilesd(MakefilePackage): are that are used by network file systems such a AFS and NFS to do persistent caching to the local disk.""" - homepage = "http://people.redhat.com/~dhowells/fscache" + homepage = "https://people.redhat.com/~dhowells/fscache" url = "http://people.redhat.com/~dhowells/fscache/cachefilesd-0.10.tar.bz2" version('0.10.10', sha256='0d0309851efabd02b7c849f73535b8ad3f831570e83e4f65e42354da18e11a02') diff --git a/var/spack/repos/builtin/packages/caffe/package.py b/var/spack/repos/builtin/packages/caffe/package.py index b2f54a3d2d9..4ae48b41969 100644 --- a/var/spack/repos/builtin/packages/caffe/package.py +++ b/var/spack/repos/builtin/packages/caffe/package.py @@ -11,7 +11,7 @@ class Caffe(CMakePackage, CudaPackage): modularity in mind. It is developed by the Berkeley Vision and Learning Center (BVLC) and by community contributors.""" - homepage = "http://caffe.berkeleyvision.org" + homepage = "https://caffe.berkeleyvision.org" url = "https://github.com/BVLC/caffe/archive/1.0.tar.gz" version('1.0', sha256='71d3c9eb8a183150f965a465824d01fe82826c22505f7aa314f700ace03fa77f') diff --git a/var/spack/repos/builtin/packages/caliper/package.py b/var/spack/repos/builtin/packages/caliper/package.py index ec47b873c83..b424c0e693e 100644 --- a/var/spack/repos/builtin/packages/caliper/package.py +++ b/var/spack/repos/builtin/packages/caliper/package.py @@ -3,6 +3,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os import sys from spack import * @@ -21,6 +22,8 @@ class Caliper(CMakePackage, CudaPackage): maintainers = ["daboehme"] + test_requires_compiler = True + version('master', branch='master') version('2.6.0', sha256='6efcd3e4845cc9a6169e0d934840766b12182c6d09aa3ceca4ae776e23b6360f') version('2.5.0', sha256='d553e60697d61c53de369b9ca464eb30710bda90fba9671201543b64eeac943c') @@ -137,3 +140,35 @@ def cmake_args(self): args.append('-DWITH_CUPTI=Off') return args + + @run_after('install') + def cache_test_sources(self): + """Copy the example source files after the package is installed to an + install test subdirectory for use during `spack test run`.""" + self.cache_extra_test_sources([join_path('examples', 'apps')]) + + def run_cxx_example_test(self): + """Run stand alone test: cxx_example""" + + test_dir = join_path(self.test_suite.current_test_cache_dir, 'examples', 'apps') + + if not os.path.exists(test_dir): + print('Skipping caliper test') + return + + exe = 'cxx-example' + + self.run_test(exe='gcc', + options=['{0}'.format(join_path(test_dir, 'cxx-example.cpp')), + '-L{0}'.format(join_path(self.prefix, 'lib64')), + '-I{0}'.format(join_path(self.prefix, 'include')), + '-std=c++11', '-lcaliper', '-lstdc++', '-o', exe], + purpose='test: compile {0} example'.format(exe), + work_dir=test_dir) + + self.run_test(exe, + purpose='test: run {0} example'.format(exe), + work_dir=test_dir) + + def test(self): + self.run_cxx_example_test() diff --git a/var/spack/repos/builtin/packages/camellia/package.py b/var/spack/repos/builtin/packages/camellia/package.py index 654c3a8dfba..241c0add79b 100644 --- a/var/spack/repos/builtin/packages/camellia/package.py +++ b/var/spack/repos/builtin/packages/camellia/package.py @@ -20,7 +20,7 @@ class Camellia(CMakePackage): variant('moab', default=True, description='Compile with MOAB to include support for reading standard mesh formats') - depends_on('trilinos+amesos+amesos2+belos+epetra+epetraext+exodus+ifpack+ifpack2+intrepid+intrepid2+kokkos+ml+muelu+sacado+shards+tpetra+zoltan+mumps+superlu-dist+hdf5+zlib+mpi+netcdf+pnetcdf@master,12.12.1:') + depends_on('trilinos+amesos+amesos2+belos+epetra+epetraext+exodus+ifpack+ifpack2+intrepid+intrepid2+kokkos+ml+muelu+sacado+shards+tpetra+zoltan+mumps+superlu-dist+hdf5+zlib+mpi@master,12.12.1:') depends_on('moab@:4', when='+moab') # Cameilla needs hdf5 but the description "hdf5@:1.8" is diff --git a/var/spack/repos/builtin/packages/camp/package.py b/var/spack/repos/builtin/packages/camp/package.py index 66e1f245f26..fc20ccfd46a 100644 --- a/var/spack/repos/builtin/packages/camp/package.py +++ b/var/spack/repos/builtin/packages/camp/package.py @@ -16,7 +16,10 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/LLNL/camp.git" url = "https://github.com/LLNL/camp/archive/v0.1.0.tar.gz" + maintainers = ['trws'] + version('master', branch='master', submodules='True') + version('0.2.2', sha256='194d38b57e50e3494482a7f94940b27f37a2bee8291f2574d64db342b981d819') version('0.1.0', sha256='fd4f0f2a60b82a12a1d9f943f8893dc6fe770db493f8fae5ef6f7d0c439bebcc') # TODO: figure out gtest dependency and then set this default True. diff --git a/var/spack/repos/builtin/packages/camx/package.py b/var/spack/repos/builtin/packages/camx/package.py index 54c34a95c20..c2eed5b3b23 100644 --- a/var/spack/repos/builtin/packages/camx/package.py +++ b/var/spack/repos/builtin/packages/camx/package.py @@ -12,7 +12,7 @@ class Camx(MakefilePackage): '''Comprehensive Air Quality Model with Extensions.''' - homepage = 'http://www.camx.com' + homepage = 'https://www.camx.com' # Upstream obfuscates their download URL to get you to fill out their # registration form and accept their license agreement. diff --git a/var/spack/repos/builtin/packages/cantera/package.py b/var/spack/repos/builtin/packages/cantera/package.py index c782edf5481..e954037cefe 100644 --- a/var/spack/repos/builtin/packages/cantera/package.py +++ b/var/spack/repos/builtin/packages/cantera/package.py @@ -12,7 +12,7 @@ class Cantera(SConsPackage): """Cantera is a suite of object-oriented software tools for problems involving chemical kinetics, thermodynamics, and/or transport processes.""" - homepage = "http://www.cantera.org/docs/sphinx/html/index.html" + 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') diff --git a/var/spack/repos/builtin/packages/canu/package.py b/var/spack/repos/builtin/packages/canu/package.py index 9ce5f7db1fd..574d8fd8317 100644 --- a/var/spack/repos/builtin/packages/canu/package.py +++ b/var/spack/repos/builtin/packages/canu/package.py @@ -10,7 +10,7 @@ class Canu(MakefilePackage): """A single molecule sequence assembler for genomes large and small.""" - homepage = "http://canu.readthedocs.io/" + homepage = "https://canu.readthedocs.io/" url = "https://github.com/marbl/canu/archive/v1.5.tar.gz" version('2.0', sha256='e2e6e8b5ec4dd4cfba5e372f4a64b2c01fbd544d4b5867746021f10771a6f4ef') diff --git a/var/spack/repos/builtin/packages/capstone/package.py b/var/spack/repos/builtin/packages/capstone/package.py index 9574fc8e5d0..4251e37841b 100644 --- a/var/spack/repos/builtin/packages/capstone/package.py +++ b/var/spack/repos/builtin/packages/capstone/package.py @@ -10,7 +10,7 @@ class Capstone(CMakePackage): """Capstone is a lightweight multi-platform, multi-architecture disassembly framework.""" - homepage = "http://www.capstone-engine.org/" + homepage = "https://www.capstone-engine.org/" url = "https://github.com/aquynh/capstone/archive/4.0.1.tar.gz" git = "https://github.com/aquynh/capstone.git" diff --git a/var/spack/repos/builtin/packages/casacore/package.py b/var/spack/repos/builtin/packages/casacore/package.py index 7ce957d3d9e..7b113638f6c 100644 --- a/var/spack/repos/builtin/packages/casacore/package.py +++ b/var/spack/repos/builtin/packages/casacore/package.py @@ -32,6 +32,7 @@ class Casacore(CMakePackage): variant('readline', default=True, description='Build readline support') # see note below about the reason for disabling the "sofa" variant # variant('sofa', default=False, description='Build SOFA support') + variant('adios2', default=False, description='Build ADIOS2 support') variant('fftpack', default=False, description='Build FFTPack') variant('hdf5', default=False, description='Build HDF5 support') variant('python', default=False, description='Build python support') @@ -55,6 +56,8 @@ class Casacore(CMakePackage): # force a dependency when building unit tests depends_on('sofa-c', type='test') depends_on('hdf5', when='+hdf5') + depends_on('adios2+mpi', when='+adios2') + depends_on('mpi', when='+adios2') depends_on('python@2.6:', when='+python') depends_on('boost+python', when='+python') depends_on('py-numpy', when='+python') @@ -67,6 +70,10 @@ def cmake_args(self): args.append(self.define_from_variant('USE_OPENMP', 'openmp')) args.append(self.define_from_variant('USE_READLINE', 'readline')) args.append(self.define_from_variant('USE_HDF5', 'hdf5')) + args.append(self.define_from_variant('USE_ADIOS2', 'adios2')) + args.append(self.define_from_variant('USE_MPI', 'adios2')) + if spec.satisfies('+adios2'): + args.append(self.define('ENABLE_TABLELOCKING', False)) # fftw3 is required by casacore starting with v3.4.0, but the # old fftpack is still available. For v3.4.0 and later, we diff --git a/var/spack/repos/builtin/packages/cask/package.py b/var/spack/repos/builtin/packages/cask/package.py index e3c985791cd..7abf89af6fc 100644 --- a/var/spack/repos/builtin/packages/cask/package.py +++ b/var/spack/repos/builtin/packages/cask/package.py @@ -16,7 +16,7 @@ class Cask(Package): """Cask is a project management tool for Emacs Lisp to automate the package development cycle; development, dependencies, testing, building, packaging and more.""" - homepage = "http://cask.readthedocs.io/en/latest/" + homepage = "https://cask.readthedocs.io/en/latest/" url = "https://github.com/cask/cask/archive/v0.7.4.tar.gz" version('0.8.1', sha256='8739ba608f23c79b3426faa8b068d5d1bc096c7305ce30b1163babd354be821c') diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py index 39c9db13c66..9c87ef4e60e 100644 --- a/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py +++ b/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py @@ -12,7 +12,7 @@ class CbtfArgonavisGui(QMakePackage): """CBTF Argo Navis GUI project contains the GUI that views OpenSpeedShop performance information by loading in the Sqlite database files. """ - homepage = "http://sourceforge.net/p/cbtf/wiki/Home/" + homepage = "https://sourceforge.net/p/cbtf/wiki/Home/" git = "https://github.com/OpenSpeedShop/cbtf-argonavis-gui.git" version('develop', branch='master') diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py index 8c5ea4d3b12..887322330ad 100644 --- a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py +++ b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py @@ -10,7 +10,7 @@ class CbtfArgonavis(CMakePackage): """CBTF Argo Navis project contains the CUDA collector and supporting libraries that was done as a result of a DOE SBIR grant. """ - homepage = "http://sourceforge.net/p/cbtf/wiki/Home/" + homepage = "https://sourceforge.net/p/cbtf/wiki/Home/" git = "https://github.com/OpenSpeedShop/cbtf-argonavis.git" version('develop', branch='master') diff --git a/var/spack/repos/builtin/packages/cbtf-krell/package.py b/var/spack/repos/builtin/packages/cbtf-krell/package.py index cce495d8e71..3f464d8953e 100644 --- a/var/spack/repos/builtin/packages/cbtf-krell/package.py +++ b/var/spack/repos/builtin/packages/cbtf-krell/package.py @@ -14,7 +14,7 @@ class CbtfKrell(CMakePackage): data collectors and support libraries as well as some example tools that drive the data collection at HPC levels of scale. """ - homepage = "http://sourceforge.net/p/cbtf/wiki/Home/" + homepage = "https://sourceforge.net/p/cbtf/wiki/Home/" git = "https://github.com/OpenSpeedShop/cbtf-krell.git" version('develop', branch='master') diff --git a/var/spack/repos/builtin/packages/cbtf-lanl/package.py b/var/spack/repos/builtin/packages/cbtf-lanl/package.py index bb42d4a307b..67ae6fe7c64 100644 --- a/var/spack/repos/builtin/packages/cbtf-lanl/package.py +++ b/var/spack/repos/builtin/packages/cbtf-lanl/package.py @@ -10,7 +10,7 @@ class CbtfLanl(CMakePackage): """CBTF LANL project contains a memory tool and data center type system command monitoring tool.""" - homepage = "http://sourceforge.net/p/cbtf/wiki/Home/" + homepage = "https://sourceforge.net/p/cbtf/wiki/Home/" git = "https://github.com/OpenSpeedShop/cbtf-lanl.git" version('develop', branch='master') diff --git a/var/spack/repos/builtin/packages/cbtf/package.py b/var/spack/repos/builtin/packages/cbtf/package.py index 64ec74dbd2e..dea5d055d37 100644 --- a/var/spack/repos/builtin/packages/cbtf/package.py +++ b/var/spack/repos/builtin/packages/cbtf/package.py @@ -13,7 +13,7 @@ class Cbtf(CMakePackage): network tools. """ - homepage = "http://sourceforge.net/p/cbtf/wiki/Home" + homepage = "https://sourceforge.net/p/cbtf/wiki/Home" git = "https://github.com/OpenSpeedShop/cbtf.git" version('develop', branch='master') diff --git a/var/spack/repos/builtin/packages/ccache/package.py b/var/spack/repos/builtin/packages/ccache/package.py index 2d35df476fb..0dbc96b7426 100644 --- a/var/spack/repos/builtin/packages/ccache/package.py +++ b/var/spack/repos/builtin/packages/ccache/package.py @@ -18,6 +18,7 @@ class Ccache(CMakePackage): executables = ['^ccache$'] + version('4.4', sha256='61a993d62216aff35722a8d0e8ffef9b677fc3f6accd8944ffc2a6db98fb3142') version('4.3', sha256='b9789c42e52c73e99428f311a34def9ffec3462736439afd12dbacc7987c1533') version('4.2.1', sha256='320d2b17d2f76393e5d4bb28c8dee5ca783248e9cd23dff0654694d60f8a4b62') version('4.2', sha256='dbf139ff32031b54cb47f2d7983269f328df14b5a427882f89f7721e5c411b7e') @@ -36,6 +37,7 @@ class Ccache(CMakePackage): depends_on('zstd', when='@4.0:') depends_on('gperf', when='@:3.99') + depends_on('hiredis@0.13.3:', when='@4.4:') depends_on('libxslt', when='@:3.99') depends_on('zlib', when='@:3.99') diff --git a/var/spack/repos/builtin/packages/cereal/package.py b/var/spack/repos/builtin/packages/cereal/package.py index 9fa2652d4ce..b10b90e7a39 100644 --- a/var/spack/repos/builtin/packages/cereal/package.py +++ b/var/spack/repos/builtin/packages/cereal/package.py @@ -15,7 +15,7 @@ class Cereal(CMakePackage): with other code or used standalone. """ - homepage = "http://uscilab.github.io/cereal/" + homepage = "https://uscilab.github.io/cereal/" url = "https://github.com/USCiLab/cereal/archive/v1.1.2.tar.gz" version('1.3.0', sha256='329ea3e3130b026c03a4acc50e168e7daff4e6e661bc6a7dfec0d77b570851d5') diff --git a/var/spack/repos/builtin/packages/cfitsio/package.py b/var/spack/repos/builtin/packages/cfitsio/package.py index 535446eb383..d1061ec1730 100644 --- a/var/spack/repos/builtin/packages/cfitsio/package.py +++ b/var/spack/repos/builtin/packages/cfitsio/package.py @@ -11,8 +11,8 @@ class Cfitsio(AutotoolsPackage): data files in FITS (Flexible Image Transport System) data format. """ - homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/' - url = 'http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio-3.49.tar.gz' + homepage = 'https://heasarc.gsfc.nasa.gov/fitsio/' + url = 'https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio-3.49.tar.gz' version('3.49', sha256='5b65a20d5c53494ec8f638267fca4a629836b7ac8dd0ef0266834eab270ed4b3') version('3.48', sha256='91b48ffef544eb8ea3908543052331072c99bf09ceb139cb3c6977fc3e47aac1') diff --git a/var/spack/repos/builtin/packages/cgal/package.py b/var/spack/repos/builtin/packages/cgal/package.py index 061b5d30e7e..4d579221b02 100644 --- a/var/spack/repos/builtin/packages/cgal/package.py +++ b/var/spack/repos/builtin/packages/cgal/package.py @@ -13,7 +13,7 @@ class Cgal(CMakePackage): computation, such as geographic information systems, computer aided design, molecular biology, medical imaging, computer graphics, and robotics. """ - homepage = 'http://www.cgal.org/' + homepage = 'https://www.cgal.org/' url = "https://github.com/CGAL/cgal/releases/download/releases/CGAL-5.0.3/CGAL-5.0.3.tar.xz" version('5.0.3', sha256='e5a3672e35e5e92e3c1b4452cd3c1d554f3177dc512bd98b29edf21866a4288c') diff --git a/var/spack/repos/builtin/packages/cgm/package.py b/var/spack/repos/builtin/packages/cgm/package.py index 9d109b44baa..c5e4b735d79 100644 --- a/var/spack/repos/builtin/packages/cgm/package.py +++ b/var/spack/repos/builtin/packages/cgm/package.py @@ -10,8 +10,8 @@ class Cgm(AutotoolsPackage): """The Common Geometry Module, Argonne (CGMA) is a code library which provides geometry functionality used for mesh generation and other applications.""" - homepage = "http://sigma.mcs.anl.gov/cgm-library" - url = "http://ftp.mcs.anl.gov/pub/fathom/cgm-16.0.tar.gz" + homepage = "https://sigma.mcs.anl.gov/cgm-library" + url = "https://ftp.mcs.anl.gov/pub/fathom/cgm-16.0.tar.gz" version('16.0', sha256='b98afe70c64efa19decc5ff01602e8c7afc6b22ce646cad30dc92ecfdce6e23d') version('13.1.1', sha256='ffde54f0c86055b06cad911bbd4297b88c3fb124c873b03ebee626f807b8ab87') diff --git a/var/spack/repos/builtin/packages/cgns/package.py b/var/spack/repos/builtin/packages/cgns/package.py index afef1fd609e..eab936b1e49 100644 --- a/var/spack/repos/builtin/packages/cgns/package.py +++ b/var/spack/repos/builtin/packages/cgns/package.py @@ -13,7 +13,7 @@ class Cgns(CMakePackage): and extensible standard for the storage and retrieval of computational fluid dynamics (CFD) analysis data.""" - homepage = "http://cgns.github.io/" + homepage = "https://cgns.github.io/" url = "https://github.com/CGNS/CGNS/archive/v3.3.0.tar.gz" git = "https://github.com/CGNS/CGNS" diff --git a/var/spack/repos/builtin/packages/chai/package.py b/var/spack/repos/builtin/packages/chai/package.py index 7b80cd5eb1f..0c755a79e97 100644 --- a/var/spack/repos/builtin/packages/chai/package.py +++ b/var/spack/repos/builtin/packages/chai/package.py @@ -14,8 +14,11 @@ class Chai(CMakePackage, CudaPackage, ROCmPackage): homepage = "https://github.com/LLNL/CHAI" git = "https://github.com/LLNL/CHAI.git" + maintainers = ['davidbeckingsale'] + version('develop', branch='develop', submodules=True) - version('master', branch='main', submodules=True) + version('main', branch='main', submodules=True) + version('2.4.0', tag='v2.4.0', submodules=True) version('2.3.0', tag='v2.3.0', submodules=True) version('2.2.2', tag='v2.2.2', submodules=True) version('2.2.1', tag='v2.2.1', submodules=True) @@ -32,6 +35,7 @@ class Chai(CMakePackage, CudaPackage, ROCmPackage): variant('raja', default=False, description='Build plugin for RAJA') variant('benchmarks', default=False, description='Build benchmarks.') variant('examples', default=True, description='Build examples.') + variant('openmp', default=False, description='Build using OpenMP') # TODO: figure out gtest dependency and then set this default True # and remove the +tests conflict below. variant('tests', default=False, description='Build tests') @@ -39,22 +43,45 @@ class Chai(CMakePackage, CudaPackage, ROCmPackage): depends_on('cmake@3.8:', type='build') depends_on('cmake@3.9:', type='build', when="+cuda") - depends_on('blt@0.4.0:', type='build', when='@2.3.1:') - depends_on('blt@:0.3.6', type='build', when='@:2.3.0') + depends_on('blt@0.4.1:', type='build', when='@2.4.0:') + depends_on('blt@0.4.0:', type='build', when='@2.3.0') + depends_on('blt@0.3.6:', type='build', when='@:2.2.2') depends_on('umpire') - depends_on('raja', when="+raja") + depends_on('umpire@6.0.0', when="@2.4.0") + depends_on('umpire@4.1.2', when="@2.2.0:2.3.0") + depends_on('umpire@main', when='@main') - depends_on('umpire+cuda', when="+cuda") - depends_on('raja+cuda', when="+raja+cuda") + with when('+cuda'): + depends_on('umpire+cuda') + for sm_ in CudaPackage.cuda_arch_values: + depends_on('umpire+cuda cuda_arch={0}'.format(sm_), + when='cuda_arch={0}'.format(sm_)) - # variants +rocm and amdgpu_targets are not automatically passed to - # dependencies, so do it manually. - depends_on('umpire+rocm', when='+rocm') - depends_on('raja+rocm', when="+raja+rocm") - for val in ROCmPackage.amdgpu_targets: - depends_on('umpire amdgpu_target=%s' % val, when='amdgpu_target=%s' % val) - depends_on('raja amdgpu_target=%s' % val, when='+raja amdgpu_target=%s' % val) + with when('+rocm'): + depends_on('umpire+rocm') + for arch in ROCmPackage.amdgpu_targets: + depends_on('umpire+rocm amdgpu_target={0}'.format(arch), + when='amdgpu_target={0}'.format(arch)) + + with when('+raja'): + depends_on('raja~openmp', when='~openmp') + depends_on('raja+openmp', when='+openmp') + depends_on('raja@0.14.0', when="@2.4.0") + depends_on('raja@0.13.0', when="@2.3.0") + depends_on('raja@0.12.0', when="@2.2.0:2.2.2") + depends_on('raja@main', when='@main') + + with when('+cuda'): + depends_on('raja+cuda') + for sm_ in CudaPackage.cuda_arch_values: + depends_on('raja+cuda cuda_arch={0}'.format(sm_), + when='cuda_arch={0}'.format(sm_)) + with when('+rocm'): + depends_on('raja+rocm') + for arch in ROCmPackage.amdgpu_targets: + depends_on('raja+rocm amdgpu_target={0}'.format(arch), + when='amdgpu_target={0}'.format(arch)) conflicts('+benchmarks', when='~tests') @@ -64,9 +91,13 @@ def cmake_args(self): options = [] options.append('-DBLT_SOURCE_DIR={0}'.format(spec['blt'].prefix)) + options.append(self.define_from_variant('ENABLE_OPENMP', 'openmp')) + if '+cuda' in spec: options.extend([ '-DENABLE_CUDA=ON', + '-DCMAKE_CUDA_SEPARABLE_COMPILATION=On', + '-DCUDA_SEPARABLE_COMPILATION=On', '-DCUDA_TOOLKIT_ROOT_DIR=' + spec['cuda'].prefix]) if not spec.satisfies('cuda_arch=none'): diff --git a/var/spack/repos/builtin/packages/changa/package.py b/var/spack/repos/builtin/packages/changa/package.py index 4c6bfb7c366..e7d8059e3a8 100644 --- a/var/spack/repos/builtin/packages/changa/package.py +++ b/var/spack/repos/builtin/packages/changa/package.py @@ -16,7 +16,7 @@ class Changa(AutotoolsPackage): Ewald summation for periodic forces. Timestepping is done with a leapfrog integrator with individual timesteps for each particle.""" - homepage = "http://faculty.washington.edu/trq/hpcc/tools/changa.html" + homepage = "https://faculty.washington.edu/trq/hpcc/tools/changa.html" url = "https://github.com/N-BodyShop/changa/archive/v3.4.tar.gz" git = "https://github.com/N-BodyShop/changa.git" diff --git a/var/spack/repos/builtin/packages/chill/package.py b/var/spack/repos/builtin/packages/chill/package.py index 0d7c1165974..576ea36fc20 100644 --- a/var/spack/repos/builtin/packages/chill/package.py +++ b/var/spack/repos/builtin/packages/chill/package.py @@ -9,7 +9,7 @@ class Chill(AutotoolsPackage): """A polyheadral compiler for autotuning""" - homepage = "http://github.com/CtopCsUtahEdu/chill" + homepage = "https://github.com/CtopCsUtahEdu/chill" url = "https://github.com/CtopCsUtahEdu/chill/archive/v0.3.tar.gz" git = "https://github.com/CtopCsUtahEdu/chill.git" diff --git a/var/spack/repos/builtin/packages/chlorop/package.py b/var/spack/repos/builtin/packages/chlorop/package.py index e760acb240c..38cab557794 100644 --- a/var/spack/repos/builtin/packages/chlorop/package.py +++ b/var/spack/repos/builtin/packages/chlorop/package.py @@ -18,7 +18,7 @@ class Chlorop(Package): to the full path of the directory you want chlorop to use as a temporary directory.""" - homepage = "http://www.cbs.dtu.dk/services/ChloroP/" + homepage = "https://www.cbs.dtu.dk/services/ChloroP/" url = "file://{0}/chlorop-1.1.Linux.tar.gz".format(os.getcwd()) manual_download = True diff --git a/var/spack/repos/builtin/packages/clapack/package.py b/var/spack/repos/builtin/packages/clapack/package.py index 7a96752f579..d6a3948902b 100644 --- a/var/spack/repos/builtin/packages/clapack/package.py +++ b/var/spack/repos/builtin/packages/clapack/package.py @@ -15,7 +15,7 @@ class Clapack(MakefilePackage): is to provide LAPACK for someone who does not have access to a Fortran compiler.""" - homepage = "http://www.netlib.org/clapack/" + homepage = "https://www.netlib.org/clapack/" url = "http://www.netlib.org/clapack/clapack.tgz" version('3.2.1', sha256='6dc4c382164beec8aaed8fd2acc36ad24232c406eda6db462bd4c41d5e455fac') diff --git a/var/spack/repos/builtin/packages/claw/package.py b/var/spack/repos/builtin/packages/claw/package.py index 753cadb4396..0876f1ffe83 100644 --- a/var/spack/repos/builtin/packages/claw/package.py +++ b/var/spack/repos/builtin/packages/claw/package.py @@ -13,17 +13,17 @@ class Claw(CMakePackage): homepage = 'https://claw-project.github.io/' git = 'https://github.com/claw-project/claw-compiler.git' - maintainers = ['clementval'] + maintainers = ['clementval', 'skosukhin'] - version('master', branch='master', submodules=True) - version('2.0.2', commit='8c012d58484d8caf79a4fe45597dc74b4367421c', submodules=True) - version('2.0.1', commit='f5acc929df74ce66a328aa4eda9cc9664f699b91', submodules=True) - version('2.0', commit='53e705b8bfce40a5c5636e8194a7622e337cf4f5', submodules=True) - version('1.2.3', commit='eaf5e5fb39150090e51bec1763170ce5c5355198', submodules=True) - version('1.2.2', commit='fc27a267eef9f412dd6353dc0b358a05b3fb3e16', submodules=True) - version('1.2.1', commit='939989ab52edb5c292476e729608725654d0a59a', submodules=True) - version('1.2.0', commit='fc9c50fe02be97b910ff9c7015064f89be88a3a2', submodules=True) - version('1.1.0', commit='16b165a443b11b025a77cad830b1280b8c9bcf01', submodules=True) + version('2.0.3', tag='v2.0.3', submodules=True) + version('2.0.2', tag='v2.0.2', submodules=True) + version('2.0.1', tag='v2.0.1', submodules=True) + version('2.0', tag='v2.0', submodules=True) + version('1.2.3', tag='v1.2.3', submodules=True) + version('1.2.2', tag='v1.2.2', submodules=True) + version('1.2.1', tag='v1.2.1', submodules=True) + version('1.2.0', tag='v1.2.0', submodules=True) + version('1.1.0', tag='v1.1.0', submodules=True) depends_on('cmake@3.0:', type='build') depends_on('ant@1.9:', type='build') @@ -37,7 +37,7 @@ class Claw(CMakePackage): # Enable parsing of source files with calls to TRACEBACKQQ from the Intel # Fortran run-time library: patch('https://github.com/claw-project/claw-compiler/commit/e9fe6dbd291454ce34dd58f21d102f7f1bdff874.patch', - sha256='44a3e17bf6e972db9760fc50bc0948309ee441dab1cdb11816ba675de0138549', + sha256='82033a576966143f3b1fd66f4d5b5604704b615b3e08afa4901fc1c29caefbe2', when='@:2.0.2%intel') # Fix the dependency preprocessing for compilers that cannot use diff --git a/var/spack/repos/builtin/packages/cleverleaf/package.py b/var/spack/repos/builtin/packages/cleverleaf/package.py index a177bcc69e2..fcd557dd820 100644 --- a/var/spack/repos/builtin/packages/cleverleaf/package.py +++ b/var/spack/repos/builtin/packages/cleverleaf/package.py @@ -14,7 +14,7 @@ class Cleverleaf(CMakePackage): hydrodynamics scheme used by CloverLeaf. """ - homepage = "http://uk-mac.github.io/CleverLeaf/" + homepage = "https://uk-mac.github.io/CleverLeaf/" git = "https://github.com/UK-MAC/CleverLeaf_ref.git" version('develop', branch='develop') diff --git a/var/spack/repos/builtin/packages/clhep/package.py b/var/spack/repos/builtin/packages/clhep/package.py index 6ff3a38000f..bdf7dc66576 100644 --- a/var/spack/repos/builtin/packages/clhep/package.py +++ b/var/spack/repos/builtin/packages/clhep/package.py @@ -9,7 +9,7 @@ class Clhep(CMakePackage): """CLHEP is a C++ Class Library for High Energy Physics. """ - homepage = "http://proj-clhep.web.cern.ch/proj-clhep/" + homepage = "https://proj-clhep.web.cern.ch/proj-clhep/" url = "http://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 diff --git a/var/spack/repos/builtin/packages/clingo/package.py b/var/spack/repos/builtin/packages/clingo/package.py index 6c716fce73f..aa9772109b0 100644 --- a/var/spack/repos/builtin/packages/clingo/package.py +++ b/var/spack/repos/builtin/packages/clingo/package.py @@ -66,7 +66,8 @@ def cmake_python_hints(self): current spec is the one found by CMake find_package(Python, ...) """ python_spec = self.spec['python'] - include_dir = python_spec.package.get_python_inc() + include_dir = join_path( + python_spec.prefix, python_spec.package.config_vars['python_inc']['false']) return [ self.define('Python_EXECUTABLE', str(python_spec.command)), self.define('Python_INCLUDE_DIR', include_dir) diff --git a/var/spack/repos/builtin/packages/cloverleaf/package.py b/var/spack/repos/builtin/packages/cloverleaf/package.py index a4a0c43d3a3..a39df60783d 100644 --- a/var/spack/repos/builtin/packages/cloverleaf/package.py +++ b/var/spack/repos/builtin/packages/cloverleaf/package.py @@ -10,16 +10,20 @@ class Cloverleaf(MakefilePackage): using an explicit, second-order accurate method. """ - homepage = "http://uk-mac.github.io/CloverLeaf" + homepage = "https://uk-mac.github.io/CloverLeaf" url = "http://downloads.mantevo.org/releaseTarballs/miniapps/CloverLeaf/CloverLeaf-1.1.tar.gz" + git = "https://github.com/UK-MAC/CloverLeaf.git" tags = ['proxy-app'] + version('master', tag='master', submodules=True) version('1.1', sha256='de87f7ee6b917e6b3d243ccbbe620370c62df890e3ef7bdbab46569b57be132f') variant('build', default='ref', description='Type of Parallelism Build', values=('cuda', 'mpi_only', 'openacc_cray', 'openmp_only', 'ref', 'serial')) + variant('ieee', default=False, description='Build with IEEE standards') + variant('debug', default=False, description='Build with DEBUG flags') depends_on('mpi', when='build=cuda') depends_on('mpi', when='build=mpi_only') @@ -27,6 +31,11 @@ class Cloverleaf(MakefilePackage): depends_on('mpi', when='build=ref') depends_on('cuda', when='build=cuda') + conflicts('build=cuda', when='%aocc', msg="Currently AOCC supports only ref variant") + conflicts('build=openacc_cray', when='%aocc', msg="Currently AOCC supports only ref variant") + conflicts('build=serial', when='%aocc', msg="Currently AOCC supports only ref variant") + conflicts('@1.1', when='%aocc', msg="AOCC support is provided from version v.1.3 and above") + @property def type_of_build(self): build = 'ref' @@ -67,6 +76,8 @@ def build_targets(self): targets.append('COMPILER=INTEL') targets.append('FLAGS_INTEL=') targets.append('CFLAGS_INTEL=') + elif '%aocc' in self.spec: + targets.append('COMPILER=AOCC') elif '%pgi' in self.spec: targets.append('COMPILER=PGI') targets.append('FLAGS_PGI=') @@ -76,6 +87,14 @@ def build_targets(self): targets.append('FLAGS_XLF=') targets.append('CFLAGS_XLF=') + # Explicit mention of else clause is not working as expected + # So, not mentioning them + if '+debug' in self.spec: + targets.append('DEBUG=1') + + if '+ieee' in self.spec: + targets.append('IEEE=1') + return targets def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/cloverleaf3d/package.py b/var/spack/repos/builtin/packages/cloverleaf3d/package.py index 56de6ac5ee6..27b5fa9c472 100644 --- a/var/spack/repos/builtin/packages/cloverleaf3d/package.py +++ b/var/spack/repos/builtin/packages/cloverleaf3d/package.py @@ -6,59 +6,78 @@ class Cloverleaf3d(MakefilePackage): """Proxy Application. CloverLeaf3D is 3D version of the - CloverLeaf mini-app. CloverLeaf is a mini-app that solves - the compressible Euler equations on a Cartesian grid, - using an explicit, second-order accurate method. + CloverLeaf mini-app. CloverLeaf is a mini-app that solves + the compressible Euler equations on a Cartesian grid, + using an explicit, second-order accurate method. """ - homepage = "http://uk-mac.github.io/CloverLeaf3D/" - url = "http://downloads.mantevo.org/releaseTarballs/miniapps/CloverLeaf3D/CloverLeaf3D-1.0.tar.gz" + homepage = "https://uk-mac.github.io/CloverLeaf3D/" + url = "http://downloads.mantevo.org/releaseTarballs/miniapps/CloverLeaf3D/CloverLeaf3D-1.0.tar.gz" - tags = ['proxy-app'] + tags = ["proxy-app"] - version('1.0', sha256='78d591728c61bdfd6175b3930df7652e09ed04fbcd01b3fc86fb2aa0f237a8ef') + maintainers = ["s1913388"] - variant('openacc', default=False, description='Enable OpenACC Support') + version( + "1.0", sha256="78d591728c61bdfd6175b3930df7652e09ed04fbcd01b3fc86fb2aa0f237a8ef" + ) - depends_on('mpi') + variant("opencl", default=False, description="Enable OpenCL Support") + + variant("openacc", default=False, description="Enable OpenACC Support") + + depends_on("mpi") @property def type_of_build(self): - build = 'ref' + build = "ref" - if '+openacc' in self.spec: - build = 'OpenACC' + if "+opencl" in self.spec: + build = "OpenCL" + elif "+openacc" in self.spec: + build = "OpenACC" return build @property def build_targets(self): targets = [ - 'MPI_COMPILER={0}'.format(self.spec['mpi'].mpifc), - 'C_MPI_COMPILER={0}'.format(self.spec['mpi'].mpicc), - '--directory=CloverLeaf3D_{0}'.format(self.type_of_build) + "MPI_COMPILER={0}".format(self.spec["mpi"].mpifc), + "C_MPI_COMPILER={0}".format(self.spec["mpi"].mpicc), + "--directory=CloverLeaf3D_{0}".format(self.type_of_build), ] - if '%gcc' in self.spec: - targets.append('COMPILER=GNU') - targets.append('FLAGS_GNU=') - targets.append('CFLAGS_GNU=') - elif '%cce' in self.spec: - targets.append('COMPILER=CRAY') - targets.append('FLAGS_CRAY=') - targets.append('CFLAGS_CRAY=') - elif '%intel' in self.spec: - targets.append('COMPILER=INTEL') - targets.append('FLAGS_INTEL=') - targets.append('CFLAGS_INTEL=') - elif '%pgi' in self.spec: - targets.append('COMPILER=PGI') - targets.append('FLAGS_PGI=') - targets.append('CFLAGS_PGI=') - elif '%xl' in self.spec: - targets.append('COMPILER=XLF') - targets.append('FLAGS_XLF=') - targets.append('CFLAGS_XLF=') + if "%gcc" in self.spec: + targets.append("COMPILER=GNU") + targets.append("FLAGS_GNU=-O3 -funroll-loops") + targets.append("CFLAGS_GNU=-O3 -funroll-loops") + targets.append("OMP_GNU=-fopenmp") + elif "%cce" in self.spec: + targets.append("COMPILER=CRAY") + targets.append("FLAGS_CRAY=") + targets.append("CFLAGS_CRAY=") + elif "%intel" in self.spec: + targets.append("COMPILER=INTEL") + targets.append("FLAGS_INTEL=") + targets.append("CFLAGS_INTEL=") + elif "%pgi" in self.spec: + targets.append("COMPILER=PGI") + targets.append("FLAGS_PGI=") + targets.append("CFLAGS_PGI=") + elif "%xl" in self.spec: + targets.append("COMPILER=XLF") + targets.append("FLAGS_XLF=") + targets.append("CFLAGS_XLF=") + elif "%arm" in self.spec: + targets.append("COMPILER=ARM") + targets.append("FLAGS_ARM=-O3 -funroll-loops") + targets.append("CFLAGS_ARM=-O3 -funroll-loops") + targets.append("OMP_ARM=-fopenmp") + elif "%nvhpc" in self.spec: + targets.append("COMPILER=NVHPC") + targets.append("FLAGS_NVHPC=-O3 -fast") + targets.append("CFLAGS_NVHPC=-O3 -fast") + targets.append("OMP_NVHPC=-mp=multicore") return targets @@ -67,11 +86,8 @@ def install(self, spec, prefix): mkdirp(prefix.bin) mkdirp(prefix.doc.samples) - install('README.md', prefix.doc) + install("README.md", prefix.doc) - install('CloverLeaf3D_{0}/clover_leaf'.format(self.type_of_build), - prefix.bin) - install('CloverLeaf3D_{0}/clover.in'.format(self.type_of_build), - prefix.bin) - install('CloverLeaf3D_{0}/*.in'.format(self.type_of_build), - prefix.doc.samples) + install("CloverLeaf3D_{0}/clover_leaf".format(self.type_of_build), prefix.bin) + install("CloverLeaf3D_{0}/clover.in".format(self.type_of_build), prefix.bin) + install("CloverLeaf3D_{0}/*.in".format(self.type_of_build), prefix.doc.samples) diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py index 79c6d5c5a04..ba6fc8a5cdc 100644 --- a/var/spack/repos/builtin/packages/cmake/package.py +++ b/var/spack/repos/builtin/packages/cmake/package.py @@ -12,12 +12,17 @@ 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' maintainers = ['chuckatkins'] tags = ['build-tools'] executables = ['^cmake$'] + version('master', branch='master') + version('3.21.2', sha256='94275e0b61c84bb42710f5320a23c6dcb2c6ee032ae7d2a616f53f68b3d21659') + version('3.21.1', sha256='fac3915171d4dff25913975d712f76e69aef44bf738ba7b976793a458b4cfed4') + version('3.21.0', sha256='4a42d56449a51f4d3809ab4d3b61fd4a96a469e56266e896ce1009b5768bd2ab') version('3.20.5', sha256='12c8040ef5c6f1bc5b8868cede16bb7926c18980f59779e299ab52cbc6f15bb0') version('3.20.4', sha256='87a4060298f2c6bb09d479de1400bc78195a5b55a65622a7dceeb3d1090a1b16') version('3.20.3', sha256='4d008ac3461e271fcfac26a05936f77fc7ab64402156fb371d41284851a651b8') diff --git a/var/spack/repos/builtin/packages/cmaq/package.py b/var/spack/repos/builtin/packages/cmaq/package.py index 19c67899284..3ca83ffa437 100644 --- a/var/spack/repos/builtin/packages/cmaq/package.py +++ b/var/spack/repos/builtin/packages/cmaq/package.py @@ -9,7 +9,7 @@ class Cmaq(Package): """Code base for the U.S. EPA's Community Multiscale Air Quality Model (CMAQ).""" - homepage = "http://www.epa.gov/CMAQ" + homepage = "https://www.epa.gov/CMAQ" url = "https://github.com/USEPA/CMAQ/archive/CMAQv5.3.1_19Dec2019.tar.gz" version('5.3.1', sha256='659156bba27f33010e0fdc157a8d33f3b5b779b95511e2ade870284b6bcb4bc8', diff --git a/var/spack/repos/builtin/packages/cmark/package.py b/var/spack/repos/builtin/packages/cmark/package.py index 392087fcb81..4d9e71d6b40 100644 --- a/var/spack/repos/builtin/packages/cmark/package.py +++ b/var/spack/repos/builtin/packages/cmark/package.py @@ -10,7 +10,7 @@ class Cmark(CMakePackage): """cmark is the C reference implementation of CommonMark, a rationalized version of Markdown syntax with a spec.""" - homepage = "http://commonmark.org/" + homepage = "https://commonmark.org/" url = "https://github.com/commonmark/cmark/archive/0.29.0.tar.gz" version('0.29.0', sha256='2558ace3cbeff85610de3bda32858f722b359acdadf0c4691851865bb84924a6') diff --git a/var/spack/repos/builtin/packages/cmor/package.py b/var/spack/repos/builtin/packages/cmor/package.py index 2d30d7c7215..9a468a64602 100644 --- a/var/spack/repos/builtin/packages/cmor/package.py +++ b/var/spack/repos/builtin/packages/cmor/package.py @@ -12,7 +12,7 @@ class Cmor(AutotoolsPackage): they contain fulfill the requirements of many of the climate community's standard model experiments.""" - homepage = "http://cmor.llnl.gov" + homepage = "https://cmor.llnl.gov" url = "https://github.com/PCMDI/cmor/archive/3.4.0.tar.gz" version('3.4.0', sha256='e700a6d50f435e6ffdedf23bf6832b7d37fe21dc78815e1372f218d1d52bd2cb') diff --git a/var/spack/repos/builtin/packages/codec2/package.py b/var/spack/repos/builtin/packages/codec2/package.py index e90ecd00bde..17c2289247f 100644 --- a/var/spack/repos/builtin/packages/codec2/package.py +++ b/var/spack/repos/builtin/packages/codec2/package.py @@ -11,7 +11,7 @@ class Codec2(CMakePackage): between 450 and 3200 bit/s. The main application is low bandwidth HF/VHF digital radio.""" - homepage = "http://www.rowetel.com/codec2.html" + homepage = "https://www.rowetel.com/?page_id=452" url = "https://github.com/drowe67/codec2/archive/v0.9.2.tar.gz" version('0.9.2', sha256='19181a446f4df3e6d616b50cabdac4485abb9cd3242cf312a0785f892ed4c76c') diff --git a/var/spack/repos/builtin/packages/codes/package.py b/var/spack/repos/builtin/packages/codes/package.py index eacd82b82d0..ee11919e180 100644 --- a/var/spack/repos/builtin/packages/codes/package.py +++ b/var/spack/repos/builtin/packages/codes/package.py @@ -10,7 +10,7 @@ class Codes(AutotoolsPackage): """ CO-Design of multi-layer Exascale Storage (CODES) simulation framework """ - homepage = "http://www.mcs.anl.gov/projects/codes" + homepage = "https://www.mcs.anl.gov/projects/codes" git = "https://xgitlab.cels.anl.gov/codes/codes.git" version('develop', branch='master') diff --git a/var/spack/repos/builtin/packages/coinhsl/package.py b/var/spack/repos/builtin/packages/coinhsl/package.py index d8ac39fe8cd..4c2a7ee9422 100644 --- a/var/spack/repos/builtin/packages/coinhsl/package.py +++ b/var/spack/repos/builtin/packages/coinhsl/package.py @@ -23,7 +23,7 @@ class Coinhsl(AutotoolsPackage): # NOTE(oxberry1@llnl.gov): an HTTPS version of the URL below does not # exist - homepage = "http://www.hsl.rl.ac.uk/ipopt/" + homepage = "https://www.hsl.rl.ac.uk/ipopt/" url = "file://{0}/coinhsl-archive-2014.01.17.tar.gz".format(os.getcwd()) manual_download = True diff --git a/var/spack/repos/builtin/packages/collectd/package.py b/var/spack/repos/builtin/packages/collectd/package.py index 07239552007..deea44289ce 100644 --- a/var/spack/repos/builtin/packages/collectd/package.py +++ b/var/spack/repos/builtin/packages/collectd/package.py @@ -9,7 +9,7 @@ class Collectd(AutotoolsPackage): """The system statistics collection daemon.""" - homepage = "http://collectd.org/" + homepage = "https://collectd.org/" url = "https://github.com/collectd/collectd/releases/download/collectd-5.11.0/collectd-5.11.0.tar.bz2" version('5.12.0', sha256='5bae043042c19c31f77eb8464e56a01a5454e0b39fa07cf7ad0f1bfc9c3a09d6') diff --git a/var/spack/repos/builtin/packages/collier/package.py b/var/spack/repos/builtin/packages/collier/package.py index 5c3b3dd2b6b..089ed9f4ca1 100644 --- a/var/spack/repos/builtin/packages/collier/package.py +++ b/var/spack/repos/builtin/packages/collier/package.py @@ -7,13 +7,17 @@ class Collier(CMakePackage): - """COLLIER: A Complex One-Loop LIbrary with Extended Regularizations """ + """COLLIER: A Complex One-Loop LIbrary with Extended Regularizations + for the numerical evaluation of one-loop scalar and tensor integrals + appearing in perturbative relativistic quantum field theory. """ homepage = "https://collier.hepforge.org" url = "https://collier.hepforge.org/downloads/?f=collier-1.2.5.tar.gz" tags = ['hep'] + maintainers = ['vvolkl'] + version('1.2.5', sha256='3ec58a975ff0c3b1ca870bc38973476c923ff78fd3dd5850e296037852b94a8b') version('1.2.4', sha256='92ae8f61461b232fbd47a6d8e832e1a726d504f9390b7edc49a68fceedff8857') version('1.2.3', sha256='e6f72df223654df59113b0067a4bebe9f8c20227bb81371d3193e1557bdf56fb') diff --git a/var/spack/repos/builtin/packages/colm/package.py b/var/spack/repos/builtin/packages/colm/package.py index 74292af208e..536b88720af 100644 --- a/var/spack/repos/builtin/packages/colm/package.py +++ b/var/spack/repos/builtin/packages/colm/package.py @@ -13,7 +13,7 @@ class Colm(AutotoolsPackage): by TXL. It is in the family of program transformation languages. """ - homepage = "http://www.colm.net/open-source/colm" + homepage = "https://www.colm.net/open-source/colm" url = "http://www.colm.net/files/colm/colm-0.12.0.tar.gz" version('0.12.0', sha256='7b545d74bd139f5c622975d243c575310af1e4985059a1427b6fdbb1fb8d6e4d') diff --git a/var/spack/repos/builtin/packages/comgr/package.py b/var/spack/repos/builtin/packages/comgr/package.py index ed1963655da..aaa45d19a5e 100644 --- a/var/spack/repos/builtin/packages/comgr/package.py +++ b/var/spack/repos/builtin/packages/comgr/package.py @@ -19,6 +19,7 @@ class Comgr(CMakePackage): version('master', branch='amd-stg-open') + version('4.3.0', sha256='f77b505abb474078374701dfc49e651ad3eeec5349ce6edda54549943a3775ee') version('4.2.0', sha256='40a1ea50d2aea0cf75c4d17cdd6a7fe44ae999bf0147d24a756ca4675ce24e36') version('4.1.0', sha256='ffb625978555c63582aa46857672431793261166aa31761eff4fe5c2cab661ae') version('4.0.0', sha256='f389601fb70b2d9a60d0e2798919af9ddf7b8376a2e460141507fe50073dfb31') @@ -32,7 +33,7 @@ class Comgr(CMakePackage): # Disable the hip compile tests. Spack should not be using # /opt/rocm, and this breaks the build when /opt/rocm exists. - patch('hip-tests.patch') + patch('hip-tests.patch', when='@:4.2.0') depends_on('cmake@3.2.0:', type='build', when='@:3.8.99') depends_on('cmake@3.13.4:', type='build', when='@3.9.0:') @@ -42,7 +43,7 @@ class Comgr(CMakePackage): depends_on('ncurses', type='link') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0', 'master']: + '4.2.0', '4.3.0', 'master']: # llvm libs are linked statically, so this *could* be a build dep depends_on('llvm-amdgpu@' + ver, when='@' + ver) diff --git a/var/spack/repos/builtin/packages/commons-lang/package.py b/var/spack/repos/builtin/packages/commons-lang/package.py index aed68d50265..9ddba9053cc 100644 --- a/var/spack/repos/builtin/packages/commons-lang/package.py +++ b/var/spack/repos/builtin/packages/commons-lang/package.py @@ -18,7 +18,7 @@ class CommonsLang(Package): dedicated to help with building methods, such as hashCode, toString and equals.""" - homepage = "http://commons.apache.org/proper/commons-lang/" + homepage = "https://commons.apache.org/proper/commons-lang/" url = "https://archive.apache.org/dist/commons/lang/binaries/commons-lang-2.6-bin.tar.gz" version('2.6', sha256='ff6a244bb71a9a1c859e81cb744d0ce698c20e04f13a7ef7dbffb99c8122752c') diff --git a/var/spack/repos/builtin/packages/commons-lang3/package.py b/var/spack/repos/builtin/packages/commons-lang3/package.py index 6d1a9b7b1f3..7d16e85e5a6 100644 --- a/var/spack/repos/builtin/packages/commons-lang3/package.py +++ b/var/spack/repos/builtin/packages/commons-lang3/package.py @@ -18,7 +18,7 @@ class CommonsLang3(Package): dedicated to help with building methods, such as hashCode, toString and equals.""" - homepage = "http://commons.apache.org/proper/commons-lang/" + homepage = "https://commons.apache.org/proper/commons-lang/" url = "https://archive.apache.org/dist/commons/lang/binaries/commons-lang3-3.7-bin.tar.gz" version('3.7', sha256='94dc8289ce90b77b507d9257784d9a43b402786de40c164f6e3990e221a2a4d2') diff --git a/var/spack/repos/builtin/packages/commons-logging/package.py b/var/spack/repos/builtin/packages/commons-logging/package.py index b42fc3797e5..4416e4fea1f 100644 --- a/var/spack/repos/builtin/packages/commons-logging/package.py +++ b/var/spack/repos/builtin/packages/commons-logging/package.py @@ -18,7 +18,7 @@ class CommonsLogging(Package): support for a number of popular logging implementations, and writing adapters for others is a reasonably simple task.""" - homepage = "http://commons.apache.org/proper/commons-logging/" + homepage = "https://commons.apache.org/proper/commons-logging/" url = "http://archive.apache.org/dist/commons/logging/binaries/commons-logging-1.2-bin.tar.gz" version('1.2', sha256='3f758805c7290d9c6d22d1451587c9f7232744aef4c984e88aa683cdea0587bd') diff --git a/var/spack/repos/builtin/packages/compositeproto/package.py b/var/spack/repos/builtin/packages/compositeproto/package.py index 18c4300f60c..d48917a324d 100644 --- a/var/spack/repos/builtin/packages/compositeproto/package.py +++ b/var/spack/repos/builtin/packages/compositeproto/package.py @@ -12,7 +12,7 @@ class Compositeproto(AutotoolsPackage, XorgPackage): This package contains header files and documentation for the composite extension. Library and server implementations are separate.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/compositeproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/compositeproto" xorg_mirror_path = "proto/compositeproto-0.4.2.tar.gz" version('0.4.2', sha256='22195b7e50036440b1c6b3b2d63eb03dfa6e71c8a1263ed1f07b0f31ae7dad50') diff --git a/var/spack/repos/builtin/packages/conduit/package.py b/var/spack/repos/builtin/packages/conduit/package.py index 2480841aba4..d8fa4fa2596 100644 --- a/var/spack/repos/builtin/packages/conduit/package.py +++ b/var/spack/repos/builtin/packages/conduit/package.py @@ -33,7 +33,7 @@ class Conduit(CMakePackage): scientific data in C++, C, Fortran, and Python. It is used for data coupling between packages in-core, serialization, and I/O tasks.""" - homepage = "http://software.llnl.gov/conduit" + homepage = "https://software.llnl.gov/conduit" url = "https://github.com/LLNL/conduit/releases/download/v0.3.0/conduit-v0.3.0-src-with-blt.tar.gz" git = "https://github.com/LLNL/conduit.git" @@ -75,6 +75,7 @@ class Conduit(CMakePackage): description="Build Conduit with HDF5 1.8.x (compatibility mode)") variant("silo", default=False, description="Build Conduit Silo support") variant("adios", default=False, description="Build Conduit ADIOS support") + variant("parmetis", default=False, description="Build Conduit Parmetis support") # zfp compression variant("zfp", default=False, description="Build Conduit ZFP support") @@ -144,6 +145,12 @@ class Conduit(CMakePackage): # hdf5 zfp plugin when both hdf5 and zfp are on depends_on("h5z-zfp~fortran", when="+hdf5+zfp") + ####################### + # Parmetis + ####################### + depends_on("parmetis", when="+parmetis") + depends_on("metis", when="+parmetis") + ####################### # MPI ####################### @@ -543,6 +550,21 @@ def hostconfig(self, spec, prefix): else: cfg.write("# adios not built by spack \n") + ####################### + # Parmetis + ####################### + + cfg.write("# parmetis from spack \n") + + if "+parmetis" in spec: + 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") diff --git a/var/spack/repos/builtin/packages/connect-proxy/package.py b/var/spack/repos/builtin/packages/connect-proxy/package.py index 390663989e4..49ef895e5f1 100644 --- a/var/spack/repos/builtin/packages/connect-proxy/package.py +++ b/var/spack/repos/builtin/packages/connect-proxy/package.py @@ -8,9 +8,11 @@ class ConnectProxy(MakefilePackage): """`connect.c` is a simple relaying command to make network connection - via SOCKS and https proxy""" + via SOCKS and https proxy. The original docs are https://bitbucket.org/gotoh/connect + are now 404, so the manpage is provided instead. + """ - homepage = "https://bitbucket.org/gotoh/connect" + homepage = "https://manpages.debian.org/testing/connect-proxy/connect-proxy.1.en.html" url = "https://bitbucket.org/gotoh/connect/get/1.105.tar.bz2" version('1.105', sha256='07366026b1f81044ecd8da9b5b5b51321327ecdf6ba23576271a311bbd69d403') diff --git a/var/spack/repos/builtin/packages/constype/package.py b/var/spack/repos/builtin/packages/constype/package.py index f018727d1c0..a58e3dfdf82 100644 --- a/var/spack/repos/builtin/packages/constype/package.py +++ b/var/spack/repos/builtin/packages/constype/package.py @@ -13,7 +13,7 @@ class Constype(AutotoolsPackage, XorgPackage): It was originally written for SunOS, but has been ported to other SPARC OS'es and to Solaris on both SPARC & x86.""" - homepage = "http://cgit.freedesktop.org/xorg/app/constype" + homepage = "https://cgit.freedesktop.org/xorg/app/constype" xorg_mirror_path = "app/constype-1.0.4.tar.gz" version('1.0.4', sha256='ec09aff369cf1d527fd5b8075fb4dd0ecf89d905190cf1a0a0145d5e523f913d') diff --git a/var/spack/repos/builtin/packages/coreutils/package.py b/var/spack/repos/builtin/packages/coreutils/package.py index e73a8e47e3d..fb1aed063a8 100644 --- a/var/spack/repos/builtin/packages/coreutils/package.py +++ b/var/spack/repos/builtin/packages/coreutils/package.py @@ -13,7 +13,7 @@ class Coreutils(AutotoolsPackage, GNUMirrorPackage): operating system. """ - homepage = 'http://www.gnu.org/software/coreutils/' + homepage = 'https://www.gnu.org/software/coreutils/' gnu_mirror_path = 'coreutils/coreutils-8.26.tar.xz' version('8.32', sha256='4458d8de7849df44ccab15e16b1548b285224dbba5f08fac070c1c0e0bcc4cfa') @@ -25,6 +25,10 @@ class Coreutils(AutotoolsPackage, GNUMirrorPackage): variant("gprefix", default=False, description="prefix commands with 'g', to avoid conflicts with OS utilities") + patch('https://src.fedoraproject.org/rpms/coreutils/raw/6b50cb9f/f/coreutils-8.32-ls-removed-dir.patch', + when='@8.32 target=aarch64:', + sha256='5878894375a8fda98150783430b30c0b7104899dc5522034ebcaf8c961183b7e') + build_directory = 'spack-build' def configure_args(self): diff --git a/var/spack/repos/builtin/packages/cosmomc/package.py b/var/spack/repos/builtin/packages/cosmomc/package.py index edfdbdb180d..ea4ddf5f4be 100644 --- a/var/spack/repos/builtin/packages/cosmomc/package.py +++ b/var/spack/repos/builtin/packages/cosmomc/package.py @@ -17,7 +17,7 @@ class Cosmomc(Package): importance sampling (plus a suite of scripts for building grids of runs, plotting and presenting results).""" - homepage = "http://cosmologist.info/cosmomc/" + homepage = "https://cosmologist.info/cosmomc/" url = "https://github.com/cmbant/CosmoMC/archive/Nov2016.tar.gz" version('2016.11', sha256='b83edbf043ff83a4dde9bc14c56a09737dbc41ffe247a8e9c9a26892ed8745ba') diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py index ee18aa026d8..2d086d22a38 100644 --- a/var/spack/repos/builtin/packages/cp2k/package.py +++ b/var/spack/repos/builtin/packages/cp2k/package.py @@ -120,7 +120,8 @@ class Cp2k(MakefilePackage, CudaPackage): depends_on('elpa~openmp', when='~openmp') depends_on('elpa@2011.12:2016.13', when='@:5.999') depends_on('elpa@2011.12:2017.11', when='@6.0:6.999') - depends_on('elpa@2018.05:', when='@7.0:') + depends_on('elpa@2018.05:2020.11.001', when='@7.0:8.2') + depends_on('elpa@2021.05:', when='@8.3:') with when('+plumed'): depends_on('plumed+shared') @@ -138,11 +139,12 @@ class Cp2k(MakefilePackage, CudaPackage): # 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+vdwxc+shared') + depends_on('sirius+fortran+shared') depends_on('sirius+openmp', when='+openmp') depends_on('sirius~openmp', when='~openmp') depends_on('sirius@:6.999', when='@:7.999') - depends_on('sirius@7:', when='@8:') + depends_on('sirius@7:7.0.999', when='@8:8.2') + depends_on('sirius@7.2:', when='@8.3:') conflicts('~mpi') # sirius support was introduced in 7+ conflicts('@:6.999') @@ -299,6 +301,9 @@ def edit(self, spec, prefix): fcflags += ['-qpreprocess', '-qstrict', '-q64'] ldflags += ['-Wl,--allow-multiple-definition'] + if '%gcc@10: +mpi' in spec and spec['mpi'].name in ['mpich', 'cray-mpich']: + fcflags += ['-fallow-argument-mismatch'] # https://github.com/pmodels/mpich/issues/4300 + if '+openmp' in spec: cflags.append(self.compiler.openmp_flag) cxxflags.append(self.compiler.openmp_flag) diff --git a/var/spack/repos/builtin/packages/cpp-termcolor/package.py b/var/spack/repos/builtin/packages/cpp-termcolor/package.py new file mode 100644 index 00000000000..3fb447f3757 --- /dev/null +++ b/var/spack/repos/builtin/packages/cpp-termcolor/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2021 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 import * + + +class CppTermcolor(CMakePackage): + """ + Termcolor is a header-only C++ library for printing colored messages to the + terminal. + """ + + homepage = "https://github.com/ikalnytskyi/termcolor" + url = "https://github.com/ikalnytskyi/termcolor/archive/refs/tags/v2.0.0.tar.gz" + + maintainers = ['haampie'] + + version('2.0.0', sha256='4a73a77053822ca1ed6d4a2af416d31028ec992fb0ffa794af95bd6216bb6a20') + + depends_on('cmake@3.0:', type='build') + + def cmake_args(self): + return [ + self.define('TERMCOLOR_TESTS', 'OFF') + ] diff --git a/var/spack/repos/builtin/packages/cppzmq/package.py b/var/spack/repos/builtin/packages/cppzmq/package.py index 5babf89a0ef..77367f6ef2f 100644 --- a/var/spack/repos/builtin/packages/cppzmq/package.py +++ b/var/spack/repos/builtin/packages/cppzmq/package.py @@ -9,7 +9,7 @@ class Cppzmq(CMakePackage): """C++ binding for 0MQ""" - homepage = "http://www.zeromq.org" + homepage = "https://www.zeromq.org" url = "https://github.com/zeromq/cppzmq/archive/v4.2.2.tar.gz" git = "https://github.com/zeromq/cppzmq.git" diff --git a/var/spack/repos/builtin/packages/cray-libsci/package.py b/var/spack/repos/builtin/packages/cray-libsci/package.py index 85bfb9fa32b..bb21ecdfefc 100755 --- a/var/spack/repos/builtin/packages/cray-libsci/package.py +++ b/var/spack/repos/builtin/packages/cray-libsci/package.py @@ -84,6 +84,10 @@ def lapack_libs(self): def scalapack_libs(self): return self.blas_libs + @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 ' diff --git a/var/spack/repos/builtin/packages/cray-mpich/package.py b/var/spack/repos/builtin/packages/cray-mpich/package.py index 98f9962cea5..fd7f253562d 100644 --- a/var/spack/repos/builtin/packages/cray-mpich/package.py +++ b/var/spack/repos/builtin/packages/cray-mpich/package.py @@ -18,6 +18,7 @@ class CrayMpich(Package): maintainers = ['haampie'] + version('8.1.7') version('8.1.0') version('8.0.16') version('8.0.14') @@ -58,14 +59,20 @@ def external_prefix(self): return os.path.dirname(os.path.normpath(libdir)) def setup_run_environment(self, env): - env.set('MPICC', spack_cc) - env.set('MPICXX', spack_cxx) - env.set('MPIF77', spack_fc) - env.set('MPIF90', spack_fc) + if(self.spec.satisfies('@:8.1.6')): + env.set('MPICC', spack_cc) + env.set('MPICXX', spack_cxx) + env.set('MPIF77', spack_fc) + env.set('MPIF90', spack_fc) + else: + # cray-mpich 8.1.7: features MPI compiler wrappers + env.set('MPICC', join_path(self.prefix.bin, 'mpicc')) + env.set('MPICXX', join_path(self.prefix.bin, 'mpicxx')) + env.set('MPIF77', join_path(self.prefix.bin, 'mpif77')) + env.set('MPIF90', join_path(self.prefix.bin, 'mpif90')) def setup_dependent_build_environment(self, env, dependent_spec): self.setup_run_environment(env) - env.set('MPICH_CC', spack_cc) env.set('MPICH_CXX', spack_cxx) env.set('MPICH_F77', spack_f77) @@ -74,10 +81,17 @@ def setup_dependent_build_environment(self, env, dependent_spec): def setup_dependent_package(self, module, dependent_spec): spec = self.spec - spec.mpicc = spack_cc - spec.mpicxx = spack_cxx - spec.mpifc = spack_fc - spec.mpif77 = spack_f77 + if(spec.satisfies('@:8.1.6')): + spec.mpicc = spack_cc + spec.mpicxx = spack_cxx + spec.mpifc = spack_fc + spec.mpif77 = spack_f77 + else: + # cray-mpich 8.1.7: features MPI compiler wrappers + spec.mpicc = join_path(self.prefix.bin, 'mpicc') + spec.mpicxx = join_path(self.prefix.bin, 'mpicxx') + spec.mpifc = join_path(self.prefix.bin, 'mpif90') + spec.mpif77 = join_path(self.prefix.bin, 'mpif77') def install(self, spec, prefix): raise InstallError( diff --git a/var/spack/repos/builtin/packages/creduce/package.py b/var/spack/repos/builtin/packages/creduce/package.py new file mode 100644 index 00000000000..09752169554 --- /dev/null +++ b/var/spack/repos/builtin/packages/creduce/package.py @@ -0,0 +1,32 @@ +# Copyright 2013-2021 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 import * + + +class Creduce(CMakePackage): + """C-Reduce is a tool that takes a large C, C++, or OpenCL file that has a + property of interest (such as triggering a compiler bug) and automatically + produces a much smaller C/C++ file that has the same property. It is + intended for use by people who discover and report bugs in compilers and + other tools that process source code.""" + + homepage = "https://embed.cs.utah.edu/creduce/" + url = "https://github.com/csmith-project/creduce" + git = "https://github.com/csmith-project/creduce" + maintainers = ['olupton'] + + version('develop', branch='master') + version('2.10.0', tag='creduce-2.10.0') + + depends_on('flex') + depends_on('libxml2') + depends_on('llvm@8.0.0', when='@:2.10.999') + depends_on('perl') + depends_on('perl-exporter-lite') + depends_on('perl-file-which') + depends_on('perl-getopt-tabular') + depends_on('perl-regexp-common') + depends_on('perl-termreadkey') + depends_on('zlib') diff --git a/var/spack/repos/builtin/packages/cromwell/package.py b/var/spack/repos/builtin/packages/cromwell/package.py index 838ea39fe53..2c6ccc67d3a 100644 --- a/var/spack/repos/builtin/packages/cromwell/package.py +++ b/var/spack/repos/builtin/packages/cromwell/package.py @@ -13,7 +13,7 @@ class Cromwell(Package): workflows. """ - homepage = "http://cromwell.readthedocs.io/" + homepage = "https://cromwell.readthedocs.io/" url = "https://github.com/broadinstitute/cromwell/releases/download/44/cromwell-44.jar" version('44', sha256='8b411673f6b3c835c6031db3094a7404b9a371133794046fd295719d61e56db0', expand=False) diff --git a/var/spack/repos/builtin/packages/crtm/package.py b/var/spack/repos/builtin/packages/crtm/package.py new file mode 100644 index 00000000000..1bcf15f7212 --- /dev/null +++ b/var/spack/repos/builtin/packages/crtm/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 import * + + +class Crtm(CMakePackage): + """The Community Radiative Transfer Model (CRTM) package. + The CRTM is composed of four important modules for gaseous transmittance, + surface emission and reflection, cloud and aerosol absorption and + scattering, and a solver for a radiative transfer.""" + + homepage = "https://www.jcsda.org/jcsda-project-community-radiative-transfer-model" + url = "https://github.com/NOAA-EMC/EMC_crtm/archive/refs/tags/v2.3.0.tar.gz" + + maintainers = ['t-brown'] + + version('2.3.0', sha256='3e2c87ae5498c33dd98f9ede5c39e33ee7f298c7317b12adeb552e3a572700ce') diff --git a/var/spack/repos/builtin/packages/cryptopp/package.py b/var/spack/repos/builtin/packages/cryptopp/package.py index aecfcb24835..769593e9428 100644 --- a/var/spack/repos/builtin/packages/cryptopp/package.py +++ b/var/spack/repos/builtin/packages/cryptopp/package.py @@ -13,7 +13,7 @@ class Cryptopp(MakefilePackage): public-key encryption (RSA, DSA), and a few obsolete/historical encryption algorithms (MD5, Panama).""" - homepage = "http://www.cryptopp.com" + homepage = "https://www.cryptopp.com" url = "http://www.cryptopp.com/cryptopp700.zip" version('7.0.0', sha256='a4bc939910edd3d29fb819a6fc0dfdc293f686fa62326f61c56d72d0a366ceb0') diff --git a/var/spack/repos/builtin/packages/cube/package.py b/var/spack/repos/builtin/packages/cube/package.py index e0f639cc9d0..1d1107d055b 100644 --- a/var/spack/repos/builtin/packages/cube/package.py +++ b/var/spack/repos/builtin/packages/cube/package.py @@ -14,7 +14,7 @@ class Cube(AutotoolsPackage): - system resource """ - homepage = "http://www.scalasca.org/software/cube-4.x/download.html" + homepage = "https://www.scalasca.org/software/cube-4.x/download.html" url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.4/dist/cubegui-4.4.2.tar.gz" version('4.6', sha256='1871c6736121d94a22314cb5daa8f3cbb978b58bfe54f677c4c9c9693757d0c5') diff --git a/var/spack/repos/builtin/packages/cubelib/package.py b/var/spack/repos/builtin/packages/cubelib/package.py index 84b45529c10..c124e82b40a 100644 --- a/var/spack/repos/builtin/packages/cubelib/package.py +++ b/var/spack/repos/builtin/packages/cubelib/package.py @@ -9,7 +9,7 @@ class Cubelib(AutotoolsPackage): """Component of CubeBundle: General purpose C++ library and tools """ - homepage = "http://www.scalasca.org/software/cube-4.x/download.html" + homepage = "https://www.scalasca.org/software/cube-4.x/download.html" url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.4/dist/cubelib-4.4.tar.gz" version('4.6', sha256='36eaffa7688db8b9304c9e48ca5dc4edc2cb66538aaf48657b9b5ccd7979385b') diff --git a/var/spack/repos/builtin/packages/cubew/package.py b/var/spack/repos/builtin/packages/cubew/package.py index 412af61d0d3..32972886a80 100644 --- a/var/spack/repos/builtin/packages/cubew/package.py +++ b/var/spack/repos/builtin/packages/cubew/package.py @@ -9,7 +9,7 @@ class Cubew(AutotoolsPackage): """Component of CubeBundle: High performance C Writer library """ - homepage = "http://www.scalasca.org/software/cube-4.x/download.html" + homepage = "https://www.scalasca.org/software/cube-4.x/download.html" url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.4/dist/cubew-4.4.tar.gz" version('4.6', sha256='99fe58ce7ab13061ebfbc360aedaecc28099a30636c5269a42c0cbaf57149aa8') diff --git a/var/spack/repos/builtin/packages/cuda/package.py b/var/spack/repos/builtin/packages/cuda/package.py index b4d966c4845..27271154ad1 100644 --- a/var/spack/repos/builtin/packages/cuda/package.py +++ b/var/spack/repos/builtin/packages/cuda/package.py @@ -122,6 +122,8 @@ class Cuda(Package): conflicts('arch=darwin-mojave-x86_64') variant('dev', default=False, description='Enable development dependencies, i.e to use cuda-gdb') + variant('allow-unsupported-compilers', default=False, + description='Allow unsupported host compiler and CUDA version combinations') depends_on('libxml2', when='@10.1.243:') # cuda-gdb needs libncurses.so.5 diff --git a/var/spack/repos/builtin/packages/cufflinks/package.py b/var/spack/repos/builtin/packages/cufflinks/package.py index 1b9566e22f0..514ecb54654 100644 --- a/var/spack/repos/builtin/packages/cufflinks/package.py +++ b/var/spack/repos/builtin/packages/cufflinks/package.py @@ -10,7 +10,7 @@ class Cufflinks(Package): """Cufflinks assembles transcripts, estimates their abundances, and tests for differential expression and regulation in RNA-Seq samples.""" - homepage = "http://cole-trapnell-lab.github.io/cufflinks" + homepage = "https://cole-trapnell-lab.github.io/cufflinks" url = "http://cole-trapnell-lab.github.io/cufflinks/assets/downloads/cufflinks-2.2.1.Linux_x86_64.tar.gz" version('2.2.1', sha256='39f812452cae26462e5d2671d38104d9e8ef30aaf9ab6dea8ca57f50f46448e4') diff --git a/var/spack/repos/builtin/packages/cupla/package.py b/var/spack/repos/builtin/packages/cupla/package.py new file mode 100644 index 00000000000..99fb188e067 --- /dev/null +++ b/var/spack/repos/builtin/packages/cupla/package.py @@ -0,0 +1,42 @@ +# Copyright 2013-2021 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 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('alpaka@0.6.0:') + + 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): + 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, dependent_spec): + env.set("CUPLA_ROOT", self.prefix) + env.prepend_path("CMAKE_PREFIX_PATH", self.prefix) + env.set("CUPLA", self.prefix.share.cupla) diff --git a/var/spack/repos/builtin/packages/curl/package.py b/var/spack/repos/builtin/packages/curl/package.py index a5ef685b8cd..6c14f344e8c 100644 --- a/var/spack/repos/builtin/packages/curl/package.py +++ b/var/spack/repos/builtin/packages/curl/package.py @@ -14,8 +14,10 @@ class Curl(AutotoolsPackage): homepage = "https://curl.se/" # URL must remain http:// so Spack can bootstrap curl - url = "http://curl.haxx.se/download/curl-7.74.0.tar.bz2" + url = "http://curl.haxx.se/download/curl-7.78.0.tar.bz2" + version('7.78.0', sha256='98530b317dc95ccb324bbe4f834f07bb642fbc393b794ddf3434f246a71ea44a') + version('7.77.0', sha256='6c0c28868cb82593859fc43b9c8fdb769314c855c05cf1b56b023acf855df8ea') version('7.76.1', sha256='7a8e184d7d31312c4ebf6a8cb59cd757e61b2b2833a9ed4f9bf708066e7695e9') version('7.76.0', sha256='e29bfe3633701590d75b0071bbb649ee5ca4ca73f00649268bd389639531c49a') version('7.75.0', sha256='50552d4501c178e4cc68baaecc487f466a3d6d19bbf4e50a01869effb316d026') @@ -43,11 +45,33 @@ class Curl(AutotoolsPackage): version('7.43.0', sha256='baa654a1122530483ccc1c58cc112fec3724a82c11c6a389f1e6a37dc8858df9') version('7.42.1', sha256='e2905973391ec2dfd7743a8034ad10eeb58dab8b3a297e7892a41a7999cac887') + default_tls = 'openssl' + if sys.platform == 'darwin': + default_tls = 'secure_transport' + + # TODO: add dependencies for other possible TLS backends + values_tls = [ + # 'amissl', + # 'bearssl', + 'gnutls', + 'mbedtls', + # 'mesalink', + 'nss', + 'openssl', + # 'rustls', + # 'schannel', + 'secure_transport', + # 'wolfssl', + ] + + variant('tls', default=default_tls, description='TLS backend', values=values_tls, multi=True) variant('nghttp2', default=False, 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('darwinssl', default=sys.platform == 'darwin', description="use Apple's SSL/TLS implementation") 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') conflicts('+libssh', when='@:7.57.99') # on OSX and --with-ssh the configure steps fails with @@ -57,10 +81,15 @@ class Curl(AutotoolsPackage): # C.f. https://github.com/spack/spack/issues/7777 conflicts('platform=darwin', when='+libssh2') conflicts('platform=darwin', when='+libssh') - conflicts('platform=linux', when='+darwinssl') + conflicts('platform=cray', when='tls=secure_transport', msg='Only supported on macOS') + conflicts('platform=linux', when='tls=secure_transport', msg='Only supported on macOS') + conflicts('tls=mbedtls', when='@:7.45') - depends_on('openssl', when='~darwinssl') - depends_on('libidn2') + depends_on('gnutls', when='tls=gnutls') + depends_on('mbedtls', when='tls=mbedtls') + depends_on('nss', when='tls=nss') + depends_on('openssl', when='tls=openssl') + depends_on('libidn2', when='+libidn2') depends_on('zlib') depends_on('nghttp2', when='+nghttp2') depends_on('libssh2', when='+libssh2') @@ -72,27 +101,73 @@ def configure_args(self): args = [ '--with-zlib=' + spec['zlib'].prefix, - '--with-libidn2=' + spec['libidn2'].prefix, # Prevent unintentional linking against system libraries: we could # add variants for these in the future - '--without-libbrotli', + '--without-brotli', '--without-libgsasl', - '--without-libmetalink', '--without-libpsl', '--without-zstd', ] - if spec.satisfies('+darwinssl'): - args.append('--with-darwinssl') - else: - args.append('--with-ssl=' + spec['openssl'].prefix) + # 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: args.append('--without-gssapi') + args += self.with_or_without('tls') + args += self.with_or_without('libidn2', 'prefix') + args += self.with_or_without('librtmp') args += self.with_or_without('nghttp2') args += self.with_or_without('libssh2') args += self.with_or_without('libssh') + args += self.enable_or_disable('ldap') return args + + def with_or_without_gnutls(self, activated): + if activated: + return '--with-gnutls=' + self.spec['gnutls'].prefix + else: + 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 + else: + return '--without-nss' + + 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' + else: + if activated: + return '--with-ssl=' + self.spec['openssl'].prefix + else: + return '--without-ssl' + + 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' + else: + if activated: + return '--with-darwinssl' + else: + return '--without-darwinssl' diff --git a/var/spack/repos/builtin/packages/cvs/package.py b/var/spack/repos/builtin/packages/cvs/package.py index a6fef2ef0ac..377da2c85f0 100644 --- a/var/spack/repos/builtin/packages/cvs/package.py +++ b/var/spack/repos/builtin/packages/cvs/package.py @@ -9,7 +9,7 @@ class Cvs(AutotoolsPackage, GNUMirrorPackage): """CVS a very traditional source control system""" - homepage = "http://www.nongnu.org/cvs/" + homepage = "https://www.nongnu.org/cvs/" gnu_mirror_path = "non-gnu/cvs/source/feature/1.12.13/cvs-1.12.13.tar.bz2" version('1.12.13', sha256='78853613b9a6873a30e1cc2417f738c330e75f887afdaf7b3d0800cb19ca515e') diff --git a/var/spack/repos/builtin/packages/cxxopts/package.py b/var/spack/repos/builtin/packages/cxxopts/package.py index ad0927727e2..7a2f64e61e3 100644 --- a/var/spack/repos/builtin/packages/cxxopts/package.py +++ b/var/spack/repos/builtin/packages/cxxopts/package.py @@ -11,7 +11,9 @@ class Cxxopts(CMakePackage): homepage = "https://github.com/jarro2783/cxxopts" url = "https://github.com/jarro2783/cxxopts/archive/v2.2.0.tar.gz" + maintainers = ['haampie'] + version('2.2.1', sha256='984aa3c8917d649b14d7f6277104ce38dd142ce378a9198ec926f03302399681') version('2.2.0', sha256='447dbfc2361fce9742c5d1c9cfb25731c977b405f9085a738fbd608626da8a4d') version('2.1.2', sha256='95f524c6615a2067e935e02ef74b013b17efa339df0a3c9db3e91fc0afbaf269') version('2.1.1', sha256='e19216251427d04f0273e6487c0246ae2dbb4154bf178f43896af8fa1ef89f3f') @@ -30,13 +32,9 @@ class Cxxopts(CMakePackage): depends_on('icu4c', when='+unicode') def cmake_args(self): - args = ['-DCXXOPTS_ENABLE_INSTALL=ON', - '-DCXXOPTS_BUILD_EXAMPLES=OFF', - '-DCXXOPTS_BUILD_TESTS=OFF'] - - if '+unicode' in self.spec: - args.append('-DCXXOPTS_USE_UNICODE_HELP=ON') - else: - args.append('-DCXXOPTS_USE_UNICODE_HELP=OFF') - - return args + return [ + self.define('CXXOPTS_ENABLE_INSTALL', 'ON'), + self.define('CXXOPTS_BUILD_EXAMPLES', 'OFF'), + self.define('CXXOPTS_BUILD_TESTS', 'OFF'), + self.define_from_variant('CXXOPTS_USE_UNICODE_HELP', 'unicode') + ] diff --git a/var/spack/repos/builtin/packages/darshan-runtime/package.py b/var/spack/repos/builtin/packages/darshan-runtime/package.py index 5f4a84d0d29..423ba1888ed 100644 --- a/var/spack/repos/builtin/packages/darshan-runtime/package.py +++ b/var/spack/repos/builtin/packages/darshan-runtime/package.py @@ -15,7 +15,7 @@ class DarshanRuntime(AutotoolsPackage): minimum overhead. DarshanRuntime package should be installed on systems where you intend to instrument MPI applications.""" - homepage = "http://www.mcs.anl.gov/research/projects/darshan/" + homepage = "https://www.mcs.anl.gov/research/projects/darshan/" url = "http://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz" git = "https://github.com/darshan-hpc/darshan.git" diff --git a/var/spack/repos/builtin/packages/darshan-util/package.py b/var/spack/repos/builtin/packages/darshan-util/package.py index 8ca7915e31a..6a4348bb756 100644 --- a/var/spack/repos/builtin/packages/darshan-util/package.py +++ b/var/spack/repos/builtin/packages/darshan-util/package.py @@ -12,7 +12,7 @@ class DarshanUtil(AutotoolsPackage): typically installed on systems (front-end) where you intend to analyze log files produced by Darshan (runtime).""" - homepage = "http://www.mcs.anl.gov/research/projects/darshan/" + homepage = "https://www.mcs.anl.gov/research/projects/darshan/" url = "http://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz" git = "https://github.com/darshan-hpc/darshan.git" diff --git a/var/spack/repos/builtin/packages/date/package.py b/var/spack/repos/builtin/packages/date/package.py index 390498fe71d..b8df610a4c2 100644 --- a/var/spack/repos/builtin/packages/date/package.py +++ b/var/spack/repos/builtin/packages/date/package.py @@ -12,6 +12,7 @@ class Date(CMakePackage): homepage = "https://github.com/HowardHinnant/date" url = "https://github.com/HowardHinnant/date/archive/v3.0.0.zip" + version('3.0.1', sha256='f4300b96f7a304d4ef9bf6e0fa3ded72159f7f2d0f605bdde3e030a0dba7cf9f') version('3.0.0', sha256='ddbec664607bb6ec7dd4c7be1f9eefc3d8ce88293ffc9391486ce6ce887ec9b2') variant('cxxstd', diff --git a/var/spack/repos/builtin/packages/dateutils/package.py b/var/spack/repos/builtin/packages/dateutils/package.py index 58b5e02fce3..b81eedb6c8c 100644 --- a/var/spack/repos/builtin/packages/dateutils/package.py +++ b/var/spack/repos/builtin/packages/dateutils/package.py @@ -10,7 +10,7 @@ class Dateutils(AutotoolsPackage): and times in the command line with a strong focus on use cases that arise when dealing with large amounts of financial data.""" - homepage = "http://www.fresse.org/dateutils/" + homepage = "https://www.fresse.org/dateutils/" url = "https://github.com/hroptatyr/dateutils/releases/download/v0.4.6/dateutils-0.4.6.tar.xz" version('0.4.7', sha256='49725457f5bef45ea424baade8999a6e54496e357f64280474ff7134a54f599a') diff --git a/var/spack/repos/builtin/packages/dbus/package.py b/var/spack/repos/builtin/packages/dbus/package.py index be91ce0b9ef..4efbc8ddd50 100644 --- a/var/spack/repos/builtin/packages/dbus/package.py +++ b/var/spack/repos/builtin/packages/dbus/package.py @@ -16,8 +16,8 @@ class Dbus(Package): by any two applications to communicate directly (without going through the message bus daemon).""" - homepage = "http://dbus.freedesktop.org/" - url = "http://dbus.freedesktop.org/releases/dbus/dbus-1.8.8.tar.gz" + homepage = "https://dbus.freedesktop.org/" + url = "https://dbus.freedesktop.org/releases/dbus/dbus-1.8.8.tar.gz" version('1.12.8', sha256='e2dc99e7338303393b6663a98320aba6a63421bcdaaf571c8022f815e5896eb3') version('1.11.2', sha256='5abc4c57686fa82669ad0039830788f9b03fdc4fff487f0ccf6c9d56ba2645c9') diff --git a/var/spack/repos/builtin/packages/dcm2niix/package.py b/var/spack/repos/builtin/packages/dcm2niix/package.py new file mode 100644 index 00000000000..3074f8a5f58 --- /dev/null +++ b/var/spack/repos/builtin/packages/dcm2niix/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2021 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 import * + + +class Dcm2niix(CMakePackage): + """DICOM to NIfTI converter""" + + homepage = "https://github.com/rordenlab/dcm2niix" + url = "https://github.com/rordenlab/dcm2niix/archive/refs/tags/v1.0.20210317.tar.gz" + + version('1.0.20210317', sha256='42fb22458ebfe44036c3d6145dacc6c1dc577ebbb067bedc190ed06f546ee05a') diff --git a/var/spack/repos/builtin/packages/dd4hep/package.py b/var/spack/repos/builtin/packages/dd4hep/package.py index 2748bba8032..51a615aba81 100644 --- a/var/spack/repos/builtin/packages/dd4hep/package.py +++ b/var/spack/repos/builtin/packages/dd4hep/package.py @@ -71,6 +71,7 @@ class Dd4hep(CMakePackage): depends_on('hepmc3', when="+hepmc3") depends_on('lcio', when="+lcio") depends_on('edm4hep', when="+edm4hep") + depends_on('py-pytest', type="test") # See https://github.com/AIDASoft/DD4hep/pull/771 conflicts('^cmake@3.16:3.17.0', when='@1.15', @@ -130,3 +131,15 @@ def url_for_version(self, version): version_str = 'v%02d-%02d-%02d.tar.gz' % (major, minor, patch) return base_url + '/' + version_str + + # dd4hep tests need to run after install step: + # disable the usual check + def check(self): + pass + + # instead add custom check step that runs after installation + @run_after('install') + def install_check(self): + with working_dir(self.build_directory): + if self.run_tests: + ninja('test') diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py index 7c34fc1d1a9..f0b8b51a664 100644 --- a/var/spack/repos/builtin/packages/dealii/package.py +++ b/var/spack/repos/builtin/packages/dealii/package.py @@ -197,7 +197,7 @@ class Dealii(CMakePackage, CudaPackage): # depends_on('taskflow', when='@9.3:+taskflow') depends_on('trilinos gotype=int', when='+trilinos@12.18.1:') # TODO: next line fixes concretization with trilinos and adol-c - depends_on('trilinos~exodus~netcdf', when='@9.0:+adol-c+trilinos') + depends_on('trilinos~exodus', when='@9.0:+adol-c+trilinos') # Both Trilinos and SymEngine bundle the Teuchos RCP library. # This leads to conflicts between macros defined in the included # headers when they are not compiled in the same mode. @@ -296,12 +296,9 @@ class Dealii(CMakePackage, CudaPackage): conflicts('+adol-c', when='^trilinos+chaco', msg='Symbol clash between the ADOL-C library and ' 'Trilinos SEACAS Chaco.') - conflicts('+adol-c', when='^trilinos+netcdf', + conflicts('+adol-c', when='^trilinos+exodus', msg='Symbol clash between the ADOL-C library and ' 'Trilinos Netcdf.') - conflicts('+adol-c', when='^trilinos+pnetcdf', - msg='Symbol clash between the ADOL-C library and ' - 'Trilinos parallel Netcdf.') conflicts('+slepc', when='~petsc', msg='It is not possible to enable slepc interfaces ' diff --git a/var/spack/repos/builtin/packages/debugedit/package.py b/var/spack/repos/builtin/packages/debugedit/package.py index 2de86c648fa..f74eb9f683d 100644 --- a/var/spack/repos/builtin/packages/debugedit/package.py +++ b/var/spack/repos/builtin/packages/debugedit/package.py @@ -14,7 +14,7 @@ class Debugedit(AutotoolsPackage): as its own separate project and is maintained by RedHat. """ - homepage = "http://www.sourceware.org/debugedit/" + homepage = "https://www.sourceware.org/debugedit/" git = "git://sourceware.org/git/debugedit.git" url = "https://sourceware.org/ftp/debugedit/0.2/debugedit-0.2.tar.xz" diff --git a/var/spack/repos/builtin/packages/delta/package.py b/var/spack/repos/builtin/packages/delta/package.py index 588b26b2d83..9106af69427 100644 --- a/var/spack/repos/builtin/packages/delta/package.py +++ b/var/spack/repos/builtin/packages/delta/package.py @@ -10,7 +10,7 @@ class Delta(Package): """Delta Lake is a storage layer that brings scalable, ACID transactions to Apache Spark and other big-data engines.""" - homepage = "http://delta.io/" + homepage = "https://delta.io/" url = "https://github.com/delta-io/delta/archive/v0.7.0.tar.gz" version('0.7.0', sha256='1fb01e36c1cf670f201c615e5fd7df88f72c27157b7d2780d146e21b266bdb64') diff --git a/var/spack/repos/builtin/packages/dftd4/package.py b/var/spack/repos/builtin/packages/dftd4/package.py index 7723e404b49..ef1e6fff90f 100644 --- a/var/spack/repos/builtin/packages/dftd4/package.py +++ b/var/spack/repos/builtin/packages/dftd4/package.py @@ -10,11 +10,13 @@ class Dftd4(MesonPackage): """Generally Applicable Atomic-Charge Dependent London Dispersion Correction""" homepage = "https://www.chemie.uni-bonn.de/pctc/mulliken-center/software/dftd4" + url = "https://github.com/dftd4/dftd4/releases/download/v3.2.0/dftd4-3.2.0-source.tar.xz" git = "https://github.com/dftd4/dftd4.git" version("main", branch="main") - version("3.1.0", tag="v3.1.0") - version("3.0.0", tag="v3.0.0") + version("3.2.0", "cef505e091469aa9b8f008ee1756545bb87b02760bb2c7ca54854e20ba8c590a") + version("3.1.0", "b652aa7cbf8d087c91bcf80f2d5801459ecf89c5d4176ebb39e963ee740ed54b") + version("3.0.0", "a7539d68d48d851bf37b79e37ea907c9da5eee908d0aa58a0a7dc15f04f8bc35") variant("openmp", default=True, description="Use OpenMP parallelisation") variant("python", default=False, description="Build Python extension module") diff --git a/var/spack/repos/builtin/packages/dialign-tx/package.py b/var/spack/repos/builtin/packages/dialign-tx/package.py index 173532cf375..00b316c04bf 100644 --- a/var/spack/repos/builtin/packages/dialign-tx/package.py +++ b/var/spack/repos/builtin/packages/dialign-tx/package.py @@ -10,7 +10,7 @@ class DialignTx(MakefilePackage): """DIALIGN-TX: greedy and progressive approaches for segment-based multiple sequence alignment""" - homepage = "http://dialign-tx.gobics.de/" + homepage = "https://dialign-tx.gobics.de/" url = "http://dialign-tx.gobics.de/DIALIGN-TX_1.0.2.tar.gz" version('1.0.2', sha256='fb3940a48a12875332752a298f619f0da62593189cd257d28932463c7cebcb8f') diff --git a/var/spack/repos/builtin/packages/diamond/package.py b/var/spack/repos/builtin/packages/diamond/package.py index 71c3646bae0..af7fec7a2ee 100644 --- a/var/spack/repos/builtin/packages/diamond/package.py +++ b/var/spack/repos/builtin/packages/diamond/package.py @@ -13,6 +13,7 @@ class Diamond(CMakePackage): homepage = "https://ab.inf.uni-tuebingen.de/software/diamond" url = "https://github.com/bbuchfink/diamond/archive/v2.0.9.tar.gz" + version('2.0.11', sha256='41f3197aaafff9c42763fb7658b67f730ebc6dd3c0533c9c3d54bd3166e93f24') version('2.0.9', sha256='3019f1adb6411c6669a3a17351d0338ae02f6b3cab3c8a3bac91cf334dcda620') version('2.0.8', sha256='04eed7c83828f50c7d9a1d48fe7c50a4c753e008501dc639c6521cf8a756c43b') version('2.0.4', sha256='94e8fe72bdc28b83fd0f2d90c439b58b63b38263aa1a3905582ef68f614ae95d') diff --git a/var/spack/repos/builtin/packages/dihydrogen/package.py b/var/spack/repos/builtin/packages/dihydrogen/package.py index 4a133c0a059..82844e8c4ec 100644 --- a/var/spack/repos/builtin/packages/dihydrogen/package.py +++ b/var/spack/repos/builtin/packages/dihydrogen/package.py @@ -53,8 +53,8 @@ class Dihydrogen(CMakePackage, CudaPackage, ROCmPackage): description='Use OpenMP for threading in the BLAS library') variant('int64_blas', default=False, description='Use 64bit integers for BLAS.') - variant('blas', default='openblas', values=('openblas', 'mkl', 'accelerate', 'essl'), - description='Enable the use of OpenBlas/MKL/Accelerate/ESSL') + variant('blas', default='openblas', values=('openblas', 'mkl', 'accelerate', 'essl', 'libsci'), + description='Enable the use of OpenBlas/MKL/Accelerate/ESSL/LibSci') conflicts('~cuda', when='+nvshmem') @@ -68,8 +68,8 @@ class Dihydrogen(CMakePackage, CudaPackage, ROCmPackage): depends_on('aluminum@0.7.0:', when='@:0.0,0.2.1: +al') # Add Aluminum variants - depends_on('aluminum +cuda +nccl +ht +cuda_rma', when='+al +cuda') - depends_on('aluminum +rocm +rccl +ht', when='+al +rocm') + depends_on('aluminum +cuda +nccl +cuda_rma', when='+al +cuda') + depends_on('aluminum +rocm +rccl', when='+al +rocm') for arch in CudaPackage.cuda_arch_values: depends_on('aluminum cuda_arch=%s' % arch, when='+al +cuda cuda_arch=%s' % arch) @@ -101,6 +101,9 @@ class Dihydrogen(CMakePackage, CudaPackage, ROCmPackage): depends_on('essl threads=openmp', when='blas=essl +openmp_blas') depends_on('netlib-lapack +external-blas', when='blas=essl') + depends_on('cray-libsci', when='blas=libsci') + depends_on('cray-libsci +openmp', when='blas=libsci +openmp_blas') + # Distconv builds require cuda conflicts('~cuda', when='+distconv') @@ -184,6 +187,7 @@ def cmake_args(self): if '+rocm' in spec: args.extend([ + '-DCMAKE_CXX_FLAGS=-std=c++17', '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix), '-DHIP_CXX_COMPILER={0}'.format(self.spec['hip'].hipcc)]) archs = self.spec.variants['amdgpu_target'].value @@ -191,7 +195,7 @@ def cmake_args(self): arch_str = ",".join(archs) args.append( '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}' - ' -g -fsized-deallocation -fPIC'.format(arch_str) + ' -g -fsized-deallocation -fPIC -std=c++17'.format(arch_str) ) return args diff --git a/var/spack/repos/builtin/packages/dire/package.py b/var/spack/repos/builtin/packages/dire/package.py index deb7be82264..8b88fc53638 100644 --- a/var/spack/repos/builtin/packages/dire/package.py +++ b/var/spack/repos/builtin/packages/dire/package.py @@ -11,7 +11,7 @@ class Dire(Package): radiative corrections to scattering processes in high-energy particle collisions.""" - homepage = "http://dire.gitlab.io/" + homepage = "https://dire.gitlab.io/" url = "http://dire.gitlab.io/Downloads/DIRE-2.004.tar.gz" git = "http://gitlab.com/dire/direforpythia" list_url = "http://dire.gitlab.io/Downloads.html" diff --git a/var/spack/repos/builtin/packages/dislin/package.py b/var/spack/repos/builtin/packages/dislin/package.py index 528dbeda8d2..a62211869c9 100644 --- a/var/spack/repos/builtin/packages/dislin/package.py +++ b/var/spack/repos/builtin/packages/dislin/package.py @@ -11,7 +11,7 @@ class Dislin(Package): data as curves, bar graphs, pie charts, 3D-colour plots, surfaces, contours and maps.""" - homepage = "http://www.mps.mpg.de/dislin" + homepage = "https://www.mps.mpg.de/dislin" url = "ftp://ftp.gwdg.de/pub/grafik/dislin/linux/i586_64/dislin-11.0.linux.i586_64.tar.gz" version('11.0', sha256='13d28188924e0b0b803d72aa4b48be4067e98e890701b0aa6f54a11c7d34dd10') diff --git a/var/spack/repos/builtin/packages/dnsmasq/package.py b/var/spack/repos/builtin/packages/dnsmasq/package.py index 7b1dc85122b..73ada9e0272 100644 --- a/var/spack/repos/builtin/packages/dnsmasq/package.py +++ b/var/spack/repos/builtin/packages/dnsmasq/package.py @@ -9,7 +9,7 @@ class Dnsmasq(MakefilePackage): """A lightweight, caching DNS proxy with integrated DHCP server.""" - homepage = "http://www.thekelleys.org.uk/dnsmasq/doc.html" + homepage = "https://www.thekelleys.org.uk/dnsmasq/doc.html" url = "http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.70.tar.gz" version('2.81', sha256='3c28c68c6c2967c3a96e9b432c0c046a5df17a426d3a43cffe9e693cf05804d0') diff --git a/var/spack/repos/builtin/packages/dramsim3/package.py b/var/spack/repos/builtin/packages/dramsim3/package.py new file mode 100644 index 00000000000..ee784871d05 --- /dev/null +++ b/var/spack/repos/builtin/packages/dramsim3/package.py @@ -0,0 +1,41 @@ +# Copyright 2013-2021 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 import * + + +# Uses Cmake but does not follow a sane convention +class Dramsim3(Package): + """DRAMsim3 models the timing paramaters and memory controller behavior + for several DRAM protocols such as DDR3, DDR4, LPDDR3, LPDDR4, GDDR5, + GDDR6, HBM, HMC, STT-MRAM. It is implemented in C++ as an objected + oriented model that includes a parameterized DRAM bank model, DRAM + controllers, command queues and system-level interfaces to interact with + a CPU simulator (GEM5, ZSim) or trace workloads. It is designed to be + accurate, portable and parallel.""" + + homepage = "https://github.com/umd-memsys/DRAMsim3" + url = "https://github.com/umd-memsys/DRAMsim3/archive/refs/tags/1.0.0.tar.gz" + git = "https://github.com/umd-memsys/DRAMsim3.git" + + version('master', branch='master') + + version('1.0.0', sha256='064b732256f3bec9b553e00bcbc9a1d82172ec194f2b69c8797f585200b12566') + + depends_on('cmake', type='build') + + def install(self, spec, prefix): + cmake = which('cmake') + cmake('.') + + make() + + include_path = prefix + '/include' + mkdir(prefix.bin) + mkdir(prefix.lib) + mkdir(include_path) + + install('dramsim3main', prefix.bin) + install('libdramsim3.so', prefix.lib) + install('src/*.h', include_path) diff --git a/var/spack/repos/builtin/packages/drill/package.py b/var/spack/repos/builtin/packages/drill/package.py index d2ecb83ebcb..aa3df5fb0e4 100644 --- a/var/spack/repos/builtin/packages/drill/package.py +++ b/var/spack/repos/builtin/packages/drill/package.py @@ -13,7 +13,7 @@ class Drill(Package): systems. """ - homepage = "http://drill.apache.org/" + homepage = "https://drill.apache.org/" url = "https://www-eu.apache.org/dist/drill/drill-1.17.0/apache-drill-1.17.0.tar.gz" version('1.17.0', sha256='a3d2d544bcc32b915fb53fced0f982670bd6fe2abd764423e566a5f6b54debf1') diff --git a/var/spack/repos/builtin/packages/ds/package.py b/var/spack/repos/builtin/packages/ds/package.py index de3d613fdae..242c6460b71 100644 --- a/var/spack/repos/builtin/packages/ds/package.py +++ b/var/spack/repos/builtin/packages/ds/package.py @@ -12,7 +12,7 @@ class Ds(AutotoolsPackage): """SAOImage DS9 is an astronomical imaging and data visualization application.""" - homepage = "http://ds9.si.edu/" + homepage = "https://ds9.si.edu/" url = "http://ds9.si.edu/download/source/ds9.8.0.tar.gz" version('9.8.0', sha256='f3bdb46c1653997202f98c6f76632a4eb444707f4b64c14f8b96863d9c890304') diff --git a/var/spack/repos/builtin/packages/dsdp/package.py b/var/spack/repos/builtin/packages/dsdp/package.py index 0d146166025..c13f2f5f20b 100644 --- a/var/spack/repos/builtin/packages/dsdp/package.py +++ b/var/spack/repos/builtin/packages/dsdp/package.py @@ -16,7 +16,7 @@ class Dsdp(MakefilePackage): allows feasible and infeasible starting points and provides approximate certificates of infeasibility when no feasible solution exists.""" - homepage = "http://www.mcs.anl.gov/hs/software/DSDP/" + homepage = "https://www.mcs.anl.gov/hs/software/DSDP/" url = "http://www.mcs.anl.gov/hs/software/DSDP/DSDP5.8.tar.gz" version('5.8', sha256='26aa624525a636de272c0b329e2dfd01a0d5b7827f1c1c76f393d71e37dead70') diff --git a/var/spack/repos/builtin/packages/dtc/package.py b/var/spack/repos/builtin/packages/dtc/package.py new file mode 100644 index 00000000000..96e00fcc524 --- /dev/null +++ b/var/spack/repos/builtin/packages/dtc/package.py @@ -0,0 +1,32 @@ +# Copyright 2013-2021 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 import * + + +class Dtc(MakefilePackage): + """Device Tree Compiler (dtc) toolchain for working with device tree + source and binary files and also libfdt, a utility library for reading + and manipulating the binary format.""" + + homepage = "https://github.com/dgibson/dtc" + url = "https://github.com/dgibson/dtc/archive/refs/tags/v1.6.1.tar.gz" + + version('1.6.1', sha256='6401c9a0f577a270df4632bf0f3e5454ccc7a5ca3caefa67a3e1c29c9c6b8c60') + + depends_on('bison', type='build') + # Build error with flex 2.6.3 + # (convert-dtsv0-lexer.lex.c:398: error: "yywrap" redefined) + depends_on('flex@2.6.4:', type='build') + depends_on('libyaml', type='build') + depends_on('pkg-config', type='build') + depends_on('python', type='build') + + def edit(self, spec, prefix): + makefile = FileFilter('Makefile') + makefile.filter( + 'PREFIX =.*', + 'PREFIX = %s' % prefix + ) diff --git a/var/spack/repos/builtin/packages/ea-utils/package.py b/var/spack/repos/builtin/packages/ea-utils/package.py index bdd1c09ee82..25bc936b195 100644 --- a/var/spack/repos/builtin/packages/ea-utils/package.py +++ b/var/spack/repos/builtin/packages/ea-utils/package.py @@ -11,7 +11,7 @@ class EaUtils(MakefilePackage): demultiplexing, adapter trimming, etc. Primarily written to support an Illumina based pipeline - but should work with any FASTQs.""" - homepage = "http://expressionanalysis.github.io/ea-utils/" + homepage = "https://expressionanalysis.github.io/ea-utils/" url = "https://github.com/ExpressionAnalysis/ea-utils/archive/1.04.807.tar.gz" version('1.04.807', sha256='aa09d25e6aa7ae71d2ce4198a98e58d563f151f8ff248e4602fa437f12b8d05f') diff --git a/var/spack/repos/builtin/packages/editline/package.py b/var/spack/repos/builtin/packages/editline/package.py index 39e76683d12..dad81a4b08d 100644 --- a/var/spack/repos/builtin/packages/editline/package.py +++ b/var/spack/repos/builtin/packages/editline/package.py @@ -9,7 +9,7 @@ class Editline(AutotoolsPackage): """A readline() replacement for UNIX without termcap (ncurses)""" - homepage = "http://troglobit.com/editline.html" + homepage = "https://troglobit.com/editline.html" url = "https://github.com/troglobit/editline/archive/1.16.0.tar.gz" version('1.16.0', sha256='33421a1569d025f332a87054bfea28e2c757bdb573f1437bc22c34b798b6383c') diff --git a/var/spack/repos/builtin/packages/editres/package.py b/var/spack/repos/builtin/packages/editres/package.py index 1e442a2734e..00575e451f5 100644 --- a/var/spack/repos/builtin/packages/editres/package.py +++ b/var/spack/repos/builtin/packages/editres/package.py @@ -9,7 +9,7 @@ class Editres(AutotoolsPackage, XorgPackage): """Dynamic resource editor for X Toolkit applications.""" - homepage = "http://cgit.freedesktop.org/xorg/app/editres" + homepage = "https://cgit.freedesktop.org/xorg/app/editres" xorg_mirror_path = "app/editres-1.0.6.tar.gz" version('1.0.6', sha256='85f4664ca582effb01ee972d006124569b757b9a08ae6608c3f45fc36b3b7b1a') diff --git a/var/spack/repos/builtin/packages/eigen/package.py b/var/spack/repos/builtin/packages/eigen/package.py index 77ef08f2e81..94cc406154f 100644 --- a/var/spack/repos/builtin/packages/eigen/package.py +++ b/var/spack/repos/builtin/packages/eigen/package.py @@ -9,7 +9,7 @@ class Eigen(CMakePackage): vectors, numerical solvers, and related algorithms. """ - homepage = 'http://eigen.tuxfamily.org/' + homepage = 'https://eigen.tuxfamily.org/' url = 'https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz' maintainers = ['HaoZeke'] diff --git a/var/spack/repos/builtin/packages/elemental/package.py b/var/spack/repos/builtin/packages/elemental/package.py index 4a3cee1df37..be006f93c1d 100644 --- a/var/spack/repos/builtin/packages/elemental/package.py +++ b/var/spack/repos/builtin/packages/elemental/package.py @@ -13,7 +13,7 @@ class Elemental(CMakePackage): """Elemental: Distributed-memory dense and sparse-direct linear algebra and optimization library.""" - homepage = "http://libelemental.org" + homepage = "https://libelemental.org" url = "https://github.com/elemental/Elemental/archive/v0.87.7.tar.gz" git = "https://github.com/elemental/Elemental.git" diff --git a/var/spack/repos/builtin/packages/elfio/package.py b/var/spack/repos/builtin/packages/elfio/package.py new file mode 100644 index 00000000000..72a937552ab --- /dev/null +++ b/var/spack/repos/builtin/packages/elfio/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2021 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 import * + + +class Elfio(CMakePackage): + """ + ELFIO is a header-only C++ library intended for reading and generating + files in the ELF binary format. + """ + + homepage = "https://github.com/serge1/ELFIO" + url = "https://github.com/serge1/ELFIO/releases/download/Release_3.9/elfio-3.9.tar.gz" + + maintainers = ['haampie'] + + version('3.9', sha256='767b269063fc35aba6d361139f830aa91c45dc6b77942f082666876c1aa0be0f') + version('3.8', sha256='9553ce2b8d8aa2fb43f0e9be9bcbd10cd52f40b385110ea54173889c982f9ac4') + version('3.7', sha256='0af2452214c32639f8dbe520b31e03802be184581ab5ad65e99ed745274dbd5d') + + depends_on('cmake@3.10:', type='build') + + def cmake_args(self): + return [ + self.define('ELFIO_BUILD_EXAMPLES', 'OFF'), + self.define('ELFIO_BUILD_TESTS', 'OFF'), + ] diff --git a/var/spack/repos/builtin/packages/elk/package.py b/var/spack/repos/builtin/packages/elk/package.py index 3d2aa767fdb..8bcfbb53165 100644 --- a/var/spack/repos/builtin/packages/elk/package.py +++ b/var/spack/repos/builtin/packages/elk/package.py @@ -10,44 +10,96 @@ class Elk(MakefilePackage): """An all-electron full-potential linearised augmented-plane wave (FP-LAPW) code with many advanced features.""" - homepage = 'http://elk.sourceforge.net/' + homepage = 'https://elk.sourceforge.io/' url = 'https://sourceforge.net/projects/elk/files/elk-3.3.17.tgz' - version('3.3.17', sha256='c9b87ae4ef367ed43afc2d43eb961745668e40670995e8e24c13db41b7e85d73') + 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) - # Elk provides these libraries, but allows you to specify your own - variant('blas', default=True, - description='Build with custom BLAS library') - variant('lapack', default=True, - description='Build with custom LAPACK library') - variant('fft', default=True, - description='Build with custom FFT library') + # what linear algebra packages to use? the choices are + # internal - use internal libraries + # generic - use spack-provided blas and lapack + # openblas - use openblas specifically, with special support for multithreading. + # mkl - use mkl specifically, with special support for multithreading + # should be used with fft=mkl + # blis - use internal lapack and blas implementation from blis + variant('linalg', default='internal', multi=False, + description='Build with custom BLAS library', + values=('internal', 'generic', 'openblas', 'mkl', 'blis')) + # what FFT package to use? The choices are + # internal - use internal library + # fftw - fftw3 with special code + # mkl - use mklr with fft code + # should be used with linalg=mkls + variant('fft', default='internal', multi=False, + description='Build with custom FFT library', + values=('internal', 'fftw', 'mkl')) + # check that if fft=mkl then linalg=mkl and vice versa. - # Elk does not provide these libraries, but allows you to use them - variant('mpi', default=True, + 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') + conflicts('fft=mkl', when='linalg=blis') + + variant('mpi', default=True, description='Enable MPI parallelism') variant('openmp', default=True, description='Enable OpenMP support') variant('libxc', default=True, description='Link to Libxc functional library') + variant('w90', default=False, + description='wannier90 support, requires wannier90 library') + + depends_on('blas', when='linalg=generic') + depends_on('lapack', when='linalg=generic') + + depends_on('mkl', when='linalg=mkl') + depends_on('mkl threads=openmp', when='linalg=mkl +openmp') + + depends_on('openblas', when='linalg=openblas') + depends_on('openblas threads=openmp', when='linalg=openblas +openmp') + + depends_on('blis', when='linalg=blis') + depends_on('blis threads=openmp', when='linalg=blis +openmp') + + depends_on('fftw', when='fft=fftw') + depends_on('fftw +openmp', when='fft=fftw +openmp') + depends_on('mkl', when='fft=mkl') - depends_on('blas', when='+blas') - depends_on('lapack', when='+lapack') - depends_on('fftw', when='+fft') depends_on('mpi@2:', when='+mpi') - depends_on('libxc', when='+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 parallel = False def edit(self, spec, prefix): - # Dictionary of configuration options + # Dictionary of configuration options with default values assigned config = { - 'MAKE': 'make', - 'AR': 'ar' - } + 'MAKE': 'make', + 'AR': 'ar', + 'LIB_LPK': 'lapack.a blas.a', + 'LIB_FFT': 'fftlib.a', + 'SRC_MPI': 'mpi_stub.f90', + 'SRC_MKL': 'mkl_stub.f90', + 'SRC_OBLAS': 'oblas_stub.f90', + 'SRC_OMP': 'omp_stub.f90', + 'SRC_BLIS': 'blis_stub.f90', + 'SRC_libxc': 'libxcifc_stub.f90', + 'SRC_FFT': 'zfftifc.f90', + 'SRC_W90S': 'w90_stub.f90', + 'F90': spack_fc, + 'F77': spack_f77 + } # Compiler-specific flags + flags = '' if self.compiler.name == 'intel': flags = '-O3 -ip -unroll -no-prec-div' @@ -64,26 +116,40 @@ def edit(self, spec, prefix): config['F90_OPTS'] = flags config['F77_OPTS'] = flags - # BLAS/LAPACK support - # Note: BLAS/LAPACK must be compiled with OpenMP support - # if the +openmp variant is chosen - blas = 'blas.a' - lapack = 'lapack.a' - if '+blas' in spec: - blas = spec['blas'].libs.joined() - if '+lapack' in spec: - lapack = spec['lapack'].libs.joined() - # lapack must come before blas - config['LIB_LPK'] = ' '.join([lapack, blas]) + if '+mpi' in spec: + config['F90'] = spec['mpi'].mpifc + config['F77'] = spec['mpi'].mpif77 + config['SRC_MPI'] = ' ' - # FFT support - if '+fft' in spec: - config['LIB_FFT'] = join_path(spec['fftw'].prefix.lib, - 'libfftw3.so') + # OpenMP support + if '+openmp' in spec: + config['F90_OPTS'] += ' ' + self.compiler.openmp_flag + config['F77_OPTS'] += ' ' + self.compiler.openmp_flag + config['SRC_OMP'] = ' ' + + # BLAS/LAPACK support + # Note: openblas must be compiled with OpenMP support + # if the +openmp variant is chosen + if 'linalg=generic' in spec: + blas = spec['blas'].libs.joined() + lapack = spec['lapack'].libs.joined() + config['LIB_LPK'] = ' '.join([lapack, blas]) + if 'linalg=openblas' in spec: + config['LIB_LPK'] = spec['openblas'].libs.ld_flags + config['SRC_OBLAS'] = ' ' + if 'linalg=mkl' in spec: + config['LIB_LPK'] = spec['mkl'].libs.ld_flags + config['SRC_MKL'] = ' ' + if 'linalg=blis' in spec: + config['LIB_LPK'] = ' '.join(['lapack.a ', spec['blis'].libs.ld_flags]) + config['SRC_BLIS'] = ' ' + # FFT + if 'fft=fftw' in spec: + config['LIB_FFT'] = spec['fftw'].libs.ld_flags config['SRC_FFT'] = 'zfftifc_fftw.f90' - else: - config['LIB_FFT'] = 'fftlib.a' - config['SRC_FFT'] = 'zfftifc.f90' + if 'fftw=mkl' in spec: + config['LIB_FFT'] = spec['mkl'].libs.ld_flags + config['SRC_FFT'] = ' ' # MPI support if '+mpi' in spec: @@ -93,13 +159,11 @@ def edit(self, spec, prefix): config['F90'] = spack_fc config['F77'] = spack_f77 config['SRC_MPI'] = 'mpi_stub.f90' - # OpenMP support if '+openmp' in spec: config['F90_OPTS'] += ' ' + self.compiler.openmp_flag config['F77_OPTS'] += ' ' + self.compiler.openmp_flag - else: - config['SRC_OMP'] = 'omp_stub.f90' + config['SRC_OMP'] = ' ' # Libxc support if '+libxc' in spec: @@ -107,13 +171,10 @@ def edit(self, spec, prefix): join_path(spec['libxc'].prefix.lib, 'libxcf90.so'), join_path(spec['libxc'].prefix.lib, 'libxc.so') ]) - config['SRC_libxc'] = ' '.join([ - 'libxc_funcs.f90', - 'libxc.f90', - 'libxcifc.f90' - ]) - else: - config['SRC_libxc'] = 'libxcifc_stub.f90' + if self.spec.satisfies('@7:'): + config['SRC_libxc'] = 'libxcf90.f90 libxcifc.f90' + else: + config['SRC_libxc'] = 'libxc_funcs.f90 libxc.f90 libxcifc.f90' # Write configuration options to include file with open('make.inc', 'w') as inc: diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py index 6ab1dab6fa6..6ab9ba299aa 100644 --- a/var/spack/repos/builtin/packages/elpa/package.py +++ b/var/spack/repos/builtin/packages/elpa/package.py @@ -8,12 +8,13 @@ from spack import * -class Elpa(AutotoolsPackage, CudaPackage): +class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage): """Eigenvalue solvers for Petaflop-Applications (ELPA)""" homepage = 'https://elpa.mpcdf.mpg.de/' - url = 'https://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz' + url = 'https://elpa.mpcdf.mpg.de/software/tarball-archive/Releases/2015.11.001/elpa-2015.11.001.tar.gz' + version('2021.05.001', sha256='a4f1a4e3964f2473a5f8177f2091a9da5c6b5ef9280b8272dfefcbc3aad44d41') version('2020.05.001', sha256='66ff1cf332ce1c82075dc7b5587ae72511d2bcb3a45322c94af6b01996439ce5') version('2019.11.001', sha256='10374a8f042e23c7e1094230f7e2993b6f3580908a213dbdf089792d05aff357') version('2019.05.002', sha256='d2eab5e5d74f53601220b00d18185670da8c00c13e1c1559ecfb0cd7cb2c4e8d') @@ -28,23 +29,31 @@ class Elpa(AutotoolsPackage, CudaPackage): version('2016.05.003', sha256='c8da50c987351514e61491e14390cdea4bdbf5b09045261991876ed5b433fca4') version('2015.11.001', sha256='c0761a92a31c08a4009c9688c85fc3fc8fde9b6ce05e514c3e1587cf045e9eba') - variant('openmp', default=False, description='Activates OpenMP support') + variant('openmp', default=True, description='Activates OpenMP support') + variant('mpi', default=True, description='Activates MPI support') - depends_on('mpi') depends_on('blas') depends_on('lapack') - depends_on('scalapack') + depends_on('mpi', when='+mpi') + depends_on('scalapack', when='+mpi') + depends_on('rocblas', when='+rocm') depends_on('libtool', type='build') depends_on('python@:2', type='build', when='@:2020.05.001') depends_on('python@3:', type='build', when='@2020.11.001:') patch('python_shebang.patch', when='@:2020.05.001') + # fails to build due to broken type-bound procedures in OMP parallel regions + conflicts('+openmp', when='@2021.05.001: %gcc@:7.999', + msg='ELPA-2021.05.001+ requires GCC-8+ for OpenMP support') + conflicts('+rocm', when='@:2020.99', + msg='ROCm support was introduced in ELPA 2021.05.001') + conflicts('+mpi', when='+rocm', + msg='ROCm support and MPI are not yet compatible') + def url_for_version(self, version): - t = 'https://elpa.mpcdf.mpg.de/html/Releases/{0}/elpa-{0}.tar.gz' - if version < Version('2016.05.003'): - t = 'https://elpa.mpcdf.mpg.de/elpa-{0}.tar.gz' - return t.format(str(version)) + return ('https://elpa.mpcdf.mpg.de/software/tarball-archive/Releases/{0}/elpa-{0}.tar.gz' + .format(str(version))) # override default implementation which returns static lib @property @@ -73,8 +82,11 @@ def configure_args(self): spec = self.spec options = [] + options += self.with_or_without('mpi') + # TODO: --disable-sse-assembly, --enable-sparc64, --enable-neon-arch64 - simd_features = ['vsx', 'sse', 'avx', 'avx2', 'avx512'] + simd_features = ['vsx', 'sse', 'avx', 'avx2', 'avx512', + 'sve128', 'sve256', 'sve512'] for feature in simd_features: msg = '--enable-{0}' if feature in spec.target else '--disable-{0}' @@ -111,34 +123,41 @@ def configure_args(self): 'CFLAGS=-O3' ]) + cuda_flag = 'nvidia-gpu' if '@2021.05.001:' in self.spec else 'gpu' if '+cuda' in spec: prefix = spec['cuda'].prefix - options.append('--enable-gpu') + options.append('--enable-{0}'.format(cuda_flag)) options.append('--with-cuda-path={0}'.format(prefix)) options.append('--with-cuda-sdk-path={0}'.format(prefix)) cuda_arch = spec.variants['cuda_arch'].value[0] if cuda_arch != 'none': - options.append('--with-GPU-compute-capability=sm_{0}'. - format(cuda_arch)) + options.append('--with-{0}-compute-capability=sm_{1}'. + format(cuda_flag.upper(), cuda_arch)) else: - options.append('--disable-gpu') + options.append('--disable-{0}'.format(cuda_flag)) - if '+openmp' in spec: - options.append('--enable-openmp') - else: - options.append('--disable-openmp') + if '+rocm' in spec: + options.append('--enable-amd-gpu') + options.append('CXX={0}'.format(self.spec['hip'].hipcc)) + elif '@2021.05.001:' in self.spec: + options.append('--disable-amd-gpu') - options.extend([ - 'CC={0}'.format(spec['mpi'].mpicc), - 'FC={0}'.format(spec['mpi'].mpifc), - 'CXX={0}'.format(spec['mpi'].mpicxx), + options += self.enable_or_disable('openmp') + + options += [ 'LDFLAGS={0}'.format(spec['lapack'].libs.search_flags), 'LIBS={0} {1}'.format( - spec['lapack'].libs.link_flags, spec['blas'].libs.link_flags), - 'SCALAPACK_LDFLAGS={0}'.format(spec['scalapack'].libs.joined()) - ]) + spec['lapack'].libs.link_flags, spec['blas'].libs.link_flags)] + + if '+mpi' in self.spec: + options += [ + 'CC={0}'.format(spec['mpi'].mpicc), + 'CXX={0}'.format(spec['mpi'].mpicxx), + 'FC={0}'.format(spec['mpi'].mpifc), + 'SCALAPACK_LDFLAGS={0}'.format(spec['scalapack'].libs.joined()) + ] options.append('--disable-silent-rules') diff --git a/var/spack/repos/builtin/packages/ember/package.py b/var/spack/repos/builtin/packages/ember/package.py index 1952b18191f..4d6b010706f 100644 --- a/var/spack/repos/builtin/packages/ember/package.py +++ b/var/spack/repos/builtin/packages/ember/package.py @@ -16,7 +16,7 @@ class Ember(MakefilePackage): tags = ['proxy-app', 'ecp-proxy-app'] - homepage = "http://sst-simulator.org/SSTPages/SSTElementEmber/" + homepage = "https://sst-simulator.org/SSTPages/SSTElementEmber/" git = "https://github.com/sstsimulator/ember.git" url = "https://github.com/sstsimulator/ember/archive/v1.0.0.tar.gz" diff --git a/var/spack/repos/builtin/packages/eospac/package.py b/var/spack/repos/builtin/packages/eospac/package.py index 04e2b6ee12d..19434c1b789 100644 --- a/var/spack/repos/builtin/packages/eospac/package.py +++ b/var/spack/repos/builtin/packages/eospac/package.py @@ -12,17 +12,22 @@ class Eospac(Package): library. """ - homepage = "http://laws.lanl.gov/projects/data/eos.html" + homepage = "https://laws.lanl.gov/projects/data/eos.html" list_url = "http://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. - version('6.4.2', sha256='13627a5c94d3a456659d1bba0f3cec157380933fbd401e13e25906166150a252', + 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") + version('6.4.2', preferred=True, + 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', preferred=True, + 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") 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") diff --git a/var/spack/repos/builtin/packages/es-shell/package.py b/var/spack/repos/builtin/packages/es-shell/package.py index c3093d30cd0..23bec563f5a 100644 --- a/var/spack/repos/builtin/packages/es-shell/package.py +++ b/var/spack/repos/builtin/packages/es-shell/package.py @@ -13,7 +13,7 @@ class EsShell(AutotoolsPackage): implementation is derived from Byron Rakitzis's public domain implementation of rc.""" - homepage = "http://wryun.github.io/es-shell/" + homepage = "https://wryun.github.io/es-shell/" url = "https://github.com/wryun/es-shell/releases/download/v0.9.1/es-0.9.1.tar.gz" version('0.9.1', sha256='b0b41fce99b122a173a06b899a4d92e5bd3cc48b227b2736159f596a58fff4ba') diff --git a/var/spack/repos/builtin/packages/esmf/package.py b/var/spack/repos/builtin/packages/esmf/package.py index c2c05c24232..a00e49ee904 100644 --- a/var/spack/repos/builtin/packages/esmf/package.py +++ b/var/spack/repos/builtin/packages/esmf/package.py @@ -18,12 +18,13 @@ class Esmf(MakefilePackage): homepage = "https://www.earthsystemcog.org/projects/esmf/" url = 'https://github.com/esmf-org/esmf/archive/ESMF_8_0_1.tar.gz' + version('8.1.1', sha256='58c2e739356f21a1b32673aa17a713d3c4af9d45d572f4ba9168c357d586dc75') version('8.0.1', sha256='9172fb73f3fe95c8188d889ee72fdadb4f978b1d969e1d8e401e8d106def1d84') version('8.0.0', sha256='051dca45f9803d7e415c0ea146df15ce487fb55f0fce18ca61d96d4dba0c8774') version('7.1.0r', sha256='ae9a5edb8d40ae97a35cbd4bd00b77061f995c77c43d36334dbb95c18b00a889') variant('mpi', default=True, description='Build with MPI support') - variant('lapack', default=True, description='Build with LAPACK support') + variant('external-lapack', default=False, description='Build with external LAPACK support') variant('netcdf', default=True, description='Build with NetCDF support') variant('pnetcdf', default=True, description='Build with pNetCDF support') variant('xerces', default=True, description='Build with Xerces support') @@ -36,7 +37,7 @@ class Esmf(MakefilePackage): # Optional dependencies depends_on('mpi', when='+mpi') - depends_on('lapack@3:', when='+lapack') + depends_on('lapack@3:', when='+external-lapack') depends_on('netcdf-c@3.6:', when='+netcdf') depends_on('netcdf-fortran@3.6:', when='+netcdf') depends_on('parallel-netcdf@1.2.0:', when='+pnetcdf') @@ -185,7 +186,7 @@ def edit(self, spec, prefix): # LAPACK # ########## - if '+lapack' in spec: + if '+external-lapack' in spec: # A system-dependent external LAPACK/BLAS installation is used # to satisfy the external dependencies of the LAPACK-dependent # ESMF code. @@ -199,8 +200,7 @@ def edit(self, spec, prefix): # to the application. os.environ['ESMF_LAPACK_LIBS'] = spec['lapack'].libs.link_flags # noqa else: - # Disables LAPACK-dependent code. - os.environ['ESMF_LAPACK'] = 'OFF' + os.environ['ESMF_LAPACK'] = 'internal' ########## # NetCDF # diff --git a/var/spack/repos/builtin/packages/etsf-io/package.py b/var/spack/repos/builtin/packages/etsf-io/package.py index e180397ce82..b82c3451841 100644 --- a/var/spack/repos/builtin/packages/etsf-io/package.py +++ b/var/spack/repos/builtin/packages/etsf-io/package.py @@ -15,7 +15,7 @@ class EtsfIo(Package): quantum-chemical applications relying upon Density Functional Theory (DFT). """ - homepage = "http://www.etsf.eu/resources/software/libraries_and_tools" + homepage = "https://github.com/ElectronicStructureLibrary/libetsf_io" url = "https://launchpad.net/etsf-io/1.0/1.0.4/+download/etsf_io-1.0.4.tar.gz" version('1.0.4', sha256='3140c2cde17f578a0e6b63acb27a5f6e9352257a1371a17b9c15c3d0ef078fa4') diff --git a/var/spack/repos/builtin/packages/evieext/package.py b/var/spack/repos/builtin/packages/evieext/package.py index 2725549ad28..72151340368 100644 --- a/var/spack/repos/builtin/packages/evieext/package.py +++ b/var/spack/repos/builtin/packages/evieext/package.py @@ -12,7 +12,7 @@ class Evieext(AutotoolsPackage, XorgPackage): This extension defines a protocol for a client to determine information about core X visuals beyond what the core protocol provides.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/evieproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/evieproto" xorg_mirror_path = "proto/evieext-1.1.1.tar.gz" version('1.1.1', sha256='e58080443c279dfb5a23c37076922df535e42bf209d21a1f3e88442cc01b4a0e') diff --git a/var/spack/repos/builtin/packages/exawind/package.py b/var/spack/repos/builtin/packages/exawind/package.py new file mode 100644 index 00000000000..c61876f5686 --- /dev/null +++ b/var/spack/repos/builtin/packages/exawind/package.py @@ -0,0 +1,40 @@ +# Copyright 2013-2021 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 import * + + +class Exawind(CMakePackage): + """Multi-application driver for Exawind project.""" + + homepage = "https://github.com/Exawind/exawind-driver" + git = "https://github.com/Exawind/exawind-driver.git" + + maintainers = ['jrood-nrel'] + + tags = ['ecp', 'ecp-apps'] + + version('master', branch='main') + + depends_on('trilinos+stk') + depends_on('tioga+shared~nodegid') + depends_on('nalu-wind+hypre+openfast+tioga+wind-utils') + depends_on('amr-wind+hypre+mpi+netcdf+openfast') + depends_on('openfast+cxx+shared@2.6.0') + depends_on('yaml-cpp@0.6:') + + def cmake_args(self): + spec = self.spec + + args = [ + self.define('Trilinos_DIR', spec['trilinos'].prefix), + self.define('TIOGA_DIR', spec['tioga'].prefix), + self.define('Nalu-Wind_DIR', spec['nalu-wind'].prefix), + self.define('AMR-Wind_DIR', spec['amr-wind'].prefix), + self.define('OpenFAST_DIR', spec['openfast'].prefix), + self.define('YAML-CPP_DIR', spec['yaml-cpp'].prefix) + ] + + return args diff --git a/var/spack/repos/builtin/packages/exciting/package.py b/var/spack/repos/builtin/packages/exciting/package.py index c44f9aa93d6..bda6d874710 100644 --- a/var/spack/repos/builtin/packages/exciting/package.py +++ b/var/spack/repos/builtin/packages/exciting/package.py @@ -15,8 +15,8 @@ class Exciting(MakefilePackage): particular focus are excited states within many-body perturbation theory. """ - homepage = "http://exciting-code.org/" - url = "http://exciting.wdfiles.com/local--files/nitrogen-14/exciting.nitrogen-14.tar.gz" + homepage = "https://exciting-code.org/" + url = "https://exciting.wdfiles.com/local--files/nitrogen-14/exciting.nitrogen-14.tar.gz" version('14', sha256='a7feaffdc23881d6c0737d2f79f94d9bf073e85ea358a57196d7f7618a0a3eff') diff --git a/var/spack/repos/builtin/packages/exempi/package.py b/var/spack/repos/builtin/packages/exempi/package.py index 4f1ddff54a1..e9b5ecfa1bb 100644 --- a/var/spack/repos/builtin/packages/exempi/package.py +++ b/var/spack/repos/builtin/packages/exempi/package.py @@ -14,7 +14,7 @@ class Exempi(AutotoolsPackage): a command line tool. """ - homepage = "http://libopenraw.freedesktop.org/wiki/Exempi" + homepage = "https://libopenraw.freedesktop.org/wiki/Exempi" url = "https://libopenraw.freedesktop.org/download/exempi-2.5.2.tar.bz2" version('2.5.2', sha256='52f54314aefd45945d47a6ecf4bd21f362e6467fa5d0538b0d45a06bc6eaaed5') diff --git a/var/spack/repos/builtin/packages/exonerate/package.py b/var/spack/repos/builtin/packages/exonerate/package.py index edb6936c912..53dc7e6bdcb 100644 --- a/var/spack/repos/builtin/packages/exonerate/package.py +++ b/var/spack/repos/builtin/packages/exonerate/package.py @@ -9,7 +9,7 @@ class Exonerate(AutotoolsPackage): """Pairwise sequence alignment of DNA and proteins""" - homepage = "http://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate" + homepage = "https://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate" url = "http://ftp.ebi.ac.uk/pub/software/vertebrategenomics/exonerate/exonerate-2.4.0.tar.gz" version('2.4.0', sha256='f849261dc7c97ef1f15f222e955b0d3daf994ec13c9db7766f1ac7e77baa4042') diff --git a/var/spack/repos/builtin/packages/eztrace/package.py b/var/spack/repos/builtin/packages/eztrace/package.py index 7c17cf51ac2..0acd95483df 100644 --- a/var/spack/repos/builtin/packages/eztrace/package.py +++ b/var/spack/repos/builtin/packages/eztrace/package.py @@ -10,7 +10,7 @@ class Eztrace(AutotoolsPackage): """EZTrace is a tool to automatically generate execution traces of HPC applications.""" - homepage = "http://eztrace.gforge.inria.fr" + homepage = "https://eztrace.gforge.inria.fr" url = "https://gitlab.com/eztrace/eztrace/-/archive/eztrace-1.1-10/eztrace-eztrace-1.1-10.tar.gz" maintainers = ['trahay'] diff --git a/var/spack/repos/builtin/packages/f2c/package.py b/var/spack/repos/builtin/packages/f2c/package.py index 3764529a83d..3fe7f68216b 100644 --- a/var/spack/repos/builtin/packages/f2c/package.py +++ b/var/spack/repos/builtin/packages/f2c/package.py @@ -9,8 +9,8 @@ class F2c(MakefilePackage): """F2c converts Fortran 77 source code to C or C++ source files.""" - homepage = "http://www.netlib.org/f2c/" - url = "http://www.netlib.org/f2c/src.tgz" + homepage = "https://www.netlib.org/f2c/" + url = "https://www.netlib.org/f2c/src.tgz" version('master', sha256='d4847456aa91c74e5e61e2097780ca6ac3b20869fae8864bfa8dcc66f6721d35') diff --git a/var/spack/repos/builtin/packages/f77-zmq/package.py b/var/spack/repos/builtin/packages/f77-zmq/package.py index 655a1e0f04c..0a2bd0965ea 100644 --- a/var/spack/repos/builtin/packages/f77-zmq/package.py +++ b/var/spack/repos/builtin/packages/f77-zmq/package.py @@ -11,7 +11,7 @@ class F77Zmq(MakefilePackage): """Fortran binding for the ZeroMQ communication library""" - homepage = "http://zguide.zeromq.org/" + homepage = "https://zguide.zeromq.org/" url = "https://github.com/zeromq/f77_zmq/archive/4.3.1.tar.gz" maintainers = ['scemama'] diff --git a/var/spack/repos/builtin/packages/fabtests/package.py b/var/spack/repos/builtin/packages/fabtests/package.py index 84953203c23..4793be72632 100644 --- a/var/spack/repos/builtin/packages/fabtests/package.py +++ b/var/spack/repos/builtin/packages/fabtests/package.py @@ -10,7 +10,7 @@ class Fabtests(AutotoolsPackage): """Fabtests provides a set of runtime analysis tools and examples that use libfabric.""" - homepage = "http://libfabric.org" + homepage = "https://libfabric.org" url = "https://github.com/ofiwg/libfabric/releases/download/v1.9.1/fabtests-1.9.1.tar.bz2" version('1.9.1', sha256='6f8ced2c6b3514759a0e177c8b2a19125e4ef0714d4cc0fe0386b33bd6cd5585') diff --git a/var/spack/repos/builtin/packages/fann/package.py b/var/spack/repos/builtin/packages/fann/package.py index ded2446a706..113370543cf 100644 --- a/var/spack/repos/builtin/packages/fann/package.py +++ b/var/spack/repos/builtin/packages/fann/package.py @@ -20,7 +20,7 @@ class Fann(CMakePackage): interfaces are also available for the library. """ - homepage = "http://leenissen.dk/fann/wp/" + homepage = "https://leenissen.dk/fann/wp/" url = "https://github.com/libfann/fann/archive/2.2.0.tar.gz" version('2.2.0', sha256='f31c92c1589996f97d855939b37293478ac03d24b4e1c08ff21e0bd093449c3c') diff --git a/var/spack/repos/builtin/packages/fastjar/package.py b/var/spack/repos/builtin/packages/fastjar/package.py index acb4ea86154..5e941e3769c 100644 --- a/var/spack/repos/builtin/packages/fastjar/package.py +++ b/var/spack/repos/builtin/packages/fastjar/package.py @@ -9,7 +9,7 @@ class Fastjar(AutotoolsPackage): """Fastjar is a version of Sun's 'jar' utility, written entirely in C.""" - homepage = "http://savannah.nongnu.org/projects/fastjar/" + homepage = "https://savannah.nongnu.org/projects/fastjar/" url = "http://download.savannah.gnu.org/releases/fastjar/fastjar-0.98.tar.gz" version('0.98', sha256='f156abc5de8658f22ee8f08d7a72c88f9409ebd8c7933e9466b0842afeb2f145') diff --git a/var/spack/repos/builtin/packages/fastphase/package.py b/var/spack/repos/builtin/packages/fastphase/package.py index ebeccfc31a7..fea15bed371 100644 --- a/var/spack/repos/builtin/packages/fastphase/package.py +++ b/var/spack/repos/builtin/packages/fastphase/package.py @@ -10,7 +10,7 @@ class Fastphase(Package): """Software for haplotype reconstruction, and estimating missing genotypes from population data.""" - homepage = "http://stephenslab.uchicago.edu/software.html" + homepage = "https://stephenslab.uchicago.edu/software.html" url = "http://scheet.org/code/Linuxfp.tar.gz" version('2016-03-30', sha256='f0762eaae38b276bccb567d1519fa19bf35fd4078e57cbf13c7d7054150c4f36') diff --git a/var/spack/repos/builtin/packages/fastqc/package.py b/var/spack/repos/builtin/packages/fastqc/package.py index 3463f5c1d1d..47e7b9370b2 100644 --- a/var/spack/repos/builtin/packages/fastqc/package.py +++ b/var/spack/repos/builtin/packages/fastqc/package.py @@ -9,8 +9,8 @@ class Fastqc(Package): """A quality control tool for high throughput sequence data.""" - homepage = "http://www.bioinformatics.babraham.ac.uk/projects/fastqc/" - url = "http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip" + homepage = "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/" + url = "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip" version('0.11.9', sha256='15510a176ef798e40325b717cac556509fb218268cfdb9a35ea6776498321369') version('0.11.7', sha256='59cf50876bbe5f363442eb989e43ae3eaab8d932c49e8cff2c1a1898dd721112') diff --git a/var/spack/repos/builtin/packages/fastqvalidator/package.py b/var/spack/repos/builtin/packages/fastqvalidator/package.py index 250795c5550..ce5ce2a542b 100644 --- a/var/spack/repos/builtin/packages/fastqvalidator/package.py +++ b/var/spack/repos/builtin/packages/fastqvalidator/package.py @@ -9,7 +9,7 @@ class Fastqvalidator(MakefilePackage): """The fastQValidator validates the format of fastq files.""" - homepage = "http://genome.sph.umich.edu/wiki/FastQValidator" + homepage = "https://genome.sph.umich.edu/wiki/FastQValidator" git = "https://github.com/statgen/fastQValidator.git" version('2017-01-10', commit='6d619a34749e9d33c34ef0d3e0e87324ca77f320') diff --git a/var/spack/repos/builtin/packages/faust/package.py b/var/spack/repos/builtin/packages/faust/package.py index 859d06ff0e2..0d568bc2fc2 100644 --- a/var/spack/repos/builtin/packages/faust/package.py +++ b/var/spack/repos/builtin/packages/faust/package.py @@ -11,7 +11,7 @@ class Faust(MakefilePackage): specifically designed for real-time signal processing and synthesis. A distinctive characteristic of Faust is to be fully compiled.""" - homepage = "http://faust.grame.fr/" + homepage = "https://faust.grame.fr/" url = "https://github.com/grame-cncm/faust/archive/2.27.2.tar.gz" version('2.27.2', sha256='3367a868a93b63582bae29ab8783f1df7a10f4084a2bc1d2258ebf3d6a8c31d7') diff --git a/var/spack/repos/builtin/packages/fenics-basix/package.py b/var/spack/repos/builtin/packages/fenics-basix/package.py index 47fced6e742..e86d653a59d 100644 --- a/var/spack/repos/builtin/packages/fenics-basix/package.py +++ b/var/spack/repos/builtin/packages/fenics-basix/package.py @@ -10,13 +10,16 @@ class FenicsBasix(CMakePackage): """FEniCS element and quadrature runtime""" homepage = "https://github.com/FEniCS/basix" - url = "https://github.com/FEniCS/basix/archive/0.1.0.tar.gz" + url = "https://github.com/FEniCS/basix/archive/v0.1.0.tar.gz" git = "https://github.com/FEniCS/basix.git" maintainers = ["mscroggs", "chrisrichardson", "garth-wells"] version("main", branch="main") + version("0.3.0", sha256="9b148fd2a5485c94011fc6ca977ebdef0e51782a62b3654fc044f35b60e2bd07") + version("0.2.0", sha256="e1ec537737adb283717060221635092474e3f2b5b5ba79dfac74aa496bec2fcb") version("0.1.0", sha256="2ab41fe6ad4f6c42f01b17a6e7c39debb4e0ae61c334d1caebee78b741bca4e7") - depends_on("cmake@3.16:", type="build") - depends_on("xtensor@0.23.4:", type="build") + depends_on("cmake@3.18:", type="build") + depends_on("xtl@0.7.2:") + depends_on("xtensor@0.23.10:") depends_on("blas", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py index a8c0acec74c..1266b7e1667 100644 --- a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py +++ b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py @@ -11,24 +11,27 @@ class FenicsDolfinx(CMakePackage): homepage = "https://github.com/FEniCS/dolfinx" git = "https://github.com/FEniCS/dolfinx.git" - url = "https://github.com/FEniCS/dolfinx/archive/0.1.0.tar.gz" + url = "https://github.com/FEniCS/dolfinx/archive/v0.1.0.tar.gz" maintainers = ["js947", "chrisrichardson", "garth-wells"] version("main", branch="main") + version("0.3.0", sha256="4857d0fcb44a4e9bf9eb298ba5377abdee17a7ad0327448bdd06cce73d109bed") + version("0.2.0", sha256="4c9b5a5c7ef33882c99299c9b4d98469fb7aa470a37a91bc5be3bb2fc5b863a4") version("0.1.0", sha256="0269379769b5b6d4d1864ded64402ecaea08054c2a5793c8685ea15a59af5e33") variant("kahip", default=False, description="kahip support") variant("parmetis", default=False, description="parmetis support") variant("slepc", default=False, description="slepc support") - depends_on("cmake@3.12:") + depends_on("cmake@3.18:", type="build") depends_on("pkgconfig", type="build") depends_on("mpi") - depends_on("hdf5") + depends_on("hdf5+mpi") depends_on("boost@1.7.0:+filesystem+program_options+timer") depends_on("petsc+mpi+shared") depends_on("petsc+mpi+shared@3.15.0:", when="@0.1.0") depends_on("scotch+mpi") + depends_on("xtensor@0.23.10:", type=("build", "link")) depends_on("kahip", when="+kahip") depends_on("parmetis", when="+parmetis") @@ -36,15 +39,15 @@ class FenicsDolfinx(CMakePackage): depends_on("py-fenics-ffcx", type=("build", "run")) depends_on("py-fenics-ffcx@main", type=("build", "run"), when="@main") + depends_on("py-fenics-ffcx@0.3.0", type=("build", "run"), when="@0.3.0") + depends_on("py-fenics-ffcx@0.2.0", type=("build", "run"), when="@0.2.0") depends_on("py-fenics-ffcx@0.1.0", type=("build", "run"), when="@0.1.0") - depends_on("fenics-basix", type=("build", "run")) - depends_on("fenics-basix@main", type=("build", "run"), when="@main") - depends_on("fenics-basix@0.1.0", type=("build", "run"), when="@0.1.0") - - depends_on("py-fenics-basix", type=("build", "run")) - depends_on("py-fenics-basix@main", type=("build", "run"), when="@main") - depends_on("py-fenics-basix@0.1.0", type=("build", "run"), when="@0.1.0") + depends_on("fenics-basix", type=("build", "link")) + depends_on("fenics-basix@main", type=("build", "link"), when="@main") + depends_on("fenics-basix@0.3.0", type=("build", "link"), when="@0.3.0") + depends_on("fenics-basix@0.2.0", type=("build", "link"), when="@0.2.0") + depends_on("fenics-basix@0.1.0", type=("build", "link"), when="@0.1.0") conflicts('%gcc@:8', msg='Improved C++17 support required') diff --git a/var/spack/repos/builtin/packages/fenics/package.py b/var/spack/repos/builtin/packages/fenics/package.py index 36eeaef4702..164148149a3 100644 --- a/var/spack/repos/builtin/packages/fenics/package.py +++ b/var/spack/repos/builtin/packages/fenics/package.py @@ -14,7 +14,7 @@ class Fenics(CMakePackage): the code generation interface UFC, the form language UFL and a range of additional components.""" - homepage = "http://fenicsproject.org/" + homepage = "https://fenicsproject.org/" git = "https://bitbucket.org/fenics-project/dolfin.git" url = "https://bitbucket.org/fenics-project/dolfin/downloads/dolfin-2019.1.0.post0.tar.gz" @@ -72,6 +72,11 @@ class Fenics(CMakePackage): patch('hdf5~cxx-detection.patch', when='@:1.6.0') patch('header_fix.patch', when='@2019.1.0.post0') + # endian.hpp for byte order detection was removed with Boost 1.73, + # use __BYTE_ORDER__ instead + patch('https://bitbucket.org/fenics-project/dolfin/issues/attachments/1116/fenics-project/dolfin/1602778118.04/1116/0001-Use-__BYTE_ORDER__-instead-of-removed-Boost-endian.h.patch', + sha256='1cc69e612df18feb5ebdc78cd902cfefda5ffc077735f0b67a1dcb1bf82e63c9', + when='@2019.1.0.post0') patch('petsc_3_11.patch', when='@2018.1.0.post1') # enable extension support for fenics package @@ -96,11 +101,8 @@ class Fenics(CMakePackage): depends_on('pkgconfig', type='build') depends_on('zlib', when='+zlib') - for ver in dolfin_versions: - if Version(ver) == Version('2019.1.0'): - depends_on('boost+filesystem+program_options+system+iostreams+timer+regex+chrono') - else: - depends_on('boost+filesystem+program_options+system+iostreams+timer+regex+chrono@1.68.0') + depends_on('boost+filesystem+program_options+system+iostreams+timer+regex+chrono') + depends_on('boost+filesystem+program_options+system+iostreams+timer+regex+chrono@1.68.0', when='@:2018.99') depends_on('mpi', when='+mpi') depends_on('hdf5+hl+fortran', when='+hdf5+petsc') diff --git a/var/spack/repos/builtin/packages/ferret/package.py b/var/spack/repos/builtin/packages/ferret/package.py index c7a92339b03..7131b78332e 100644 --- a/var/spack/repos/builtin/packages/ferret/package.py +++ b/var/spack/repos/builtin/packages/ferret/package.py @@ -13,7 +13,7 @@ class Ferret(Package): """Ferret is an interactive computer visualization and analysis environment designed to meet the needs of oceanographers and meteorologists analyzing large and complex gridded data sets.""" - homepage = "http://ferret.pmel.noaa.gov/Ferret/home" + homepage = "https://ferret.pmel.noaa.gov/Ferret/home" url = "https://github.com/NOAA-PMEL/Ferret/archive/v7.6.0.tar.gz" maintainers = ['RemiLacroix-IDRIS'] diff --git a/var/spack/repos/builtin/packages/ffmpeg/package.py b/var/spack/repos/builtin/packages/ffmpeg/package.py index 9589712cab0..0e7e66f562f 100644 --- a/var/spack/repos/builtin/packages/ffmpeg/package.py +++ b/var/spack/repos/builtin/packages/ffmpeg/package.py @@ -15,7 +15,7 @@ class Ffmpeg(AutotoolsPackage): maintainers = ['xjrc'] - version('4.3.2', sha256='ab3a6d6a70358ba0a5f67f37f91f6656b7302b02e98e5b8c846c16763c99913a') + version('4.3.2', sha256='ab3a6d6a70358ba0a5f67f37f91f6656b7302b02e98e5b8c846c16763c99913a') version('4.2.2', sha256='b620d187c26f76ca19e74210a0336c3b8380b97730df5cdf45f3e69e89000e5c') version('4.1.1', sha256='0cb40e3b8acaccd0ecb38aa863f66f0c6e02406246556c2992f67bf650fab058') version('4.1', sha256='b684fb43244a5c4caae652af9022ed5d85ce15210835bce054a33fb26033a1a5') @@ -52,6 +52,7 @@ class Ffmpeg(AutotoolsPackage): variant('libspeex', default=False, description='Speex de/encoding') variant('libssh', default=False, description='SFTP protocol') variant('libvorbis', default=False, description='Vorbis en/decoding') + variant('libvpx', default=False, description='VP9 en/decoding') variant('libwebp', default=False, description='WebP encoding via libwebp') # TODO: There is an issue with the spack headers property in the libxml2 # package recipe. Comment out the libxml2 variant until that is resolved. @@ -77,6 +78,7 @@ class Ffmpeg(AutotoolsPackage): depends_on('lame', when='+libmp3lame') depends_on('libssh', when='+libssh') depends_on('libvorbis', when='+libvorbis') + depends_on('libvpx', when='+libvpx') depends_on('libwebp', when='+libwebp') # TODO: enable libxml2 when libxml2 header issue is resolved # depends_on('libxml2', when='+libxml2') @@ -164,6 +166,7 @@ def configure_args(self): 'libopus', 'libspeex', 'libvorbis', + 'libvpx', 'avresample', 'openssl', 'shared', diff --git a/var/spack/repos/builtin/packages/fftw/package.py b/var/spack/repos/builtin/packages/fftw/package.py index 2fdf1624ba3..b791f9eec1b 100644 --- a/var/spack/repos/builtin/packages/fftw/package.py +++ b/var/spack/repos/builtin/packages/fftw/package.py @@ -207,7 +207,7 @@ class Fftw(FftwBase): believe that FFTW, which is free software, should become the FFT library of choice for most applications.""" - homepage = "http://www.fftw.org" + homepage = "https://www.fftw.org" url = "http://www.fftw.org/fftw-3.3.4.tar.gz" list_url = "http://www.fftw.org/download.html" diff --git a/var/spack/repos/builtin/packages/fides/package.py b/var/spack/repos/builtin/packages/fides/package.py new file mode 100644 index 00000000000..edf27369ee8 --- /dev/null +++ b/var/spack/repos/builtin/packages/fides/package.py @@ -0,0 +1,40 @@ +# Copyright 2013-2021 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 import * + + +class Fides(CMakePackage): + """A library that provides a schema for ADIOS2 streams.""" + homepage = "https://gitlab.kitware.com/vtk/fides" + url = "https://gitlab.kitware.com/vtk/fides/-/archive/v1.0.0/fides-v1.0.0.tar.gz" + git = "https://gitlab.kitware.com/vtk/fides.git" + + maintainers = ['caitlinross', 'dpugmire'] + + version('master', branch='master') + version('1.1.0', sha256='40d2e08b8d5cfdfc809eae6ed2ae0731108ce3b1383485f4934a5ec8aaa9425e') + version('1.0.0', sha256='c355fdb4ca3790c1fa9a4491a0d294b8f883b6946c540ad9e5633c9fd8c8c3aa') + + variant("mpi", default=True, description="build mpi support") + variant("adios2", default=True, description="build ADIOS2 support") + variant('vtk-m', default=True, description="build VTK-m support") + + # Certain CMake versions have been found to break for our use cases + depends_on("cmake@3.14.1:3.14.99,3.18.2:", type='build') + + depends_on("mpi", when="+mpi") + depends_on('adios2~zfp', when='+adios2') + depends_on("vtk-m", when="+vtk-m") + + 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") + ] + return options diff --git a/var/spack/repos/builtin/packages/figlet/package.py b/var/spack/repos/builtin/packages/figlet/package.py index 31c1f61cea3..cc6b1d883e1 100644 --- a/var/spack/repos/builtin/packages/figlet/package.py +++ b/var/spack/repos/builtin/packages/figlet/package.py @@ -29,3 +29,7 @@ def install(self, spec, prefix): install(f, prefix.man6) install_tree('./fonts', prefix.share.figlet) + + @property + def build_targets(self): + return ['DEFAULTFONTDIR=' + self.prefix.share.figlet] diff --git a/var/spack/repos/builtin/packages/file/package.py b/var/spack/repos/builtin/packages/file/package.py index 582c15cf62c..7a19fd1d261 100644 --- a/var/spack/repos/builtin/packages/file/package.py +++ b/var/spack/repos/builtin/packages/file/package.py @@ -2,6 +2,9 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import re + from spack import * @@ -9,10 +12,18 @@ class File(AutotoolsPackage): """The file command is "a file type guesser", that is, a command-line tool that tells you in words what kind of data a file contains""" - homepage = "http://www.darwinsys.com/file/" + homepage = "https://www.darwinsys.com/file/" url = "https://astron.com/pub/file/file-5.37.tar.gz" version('5.40', sha256='167321f43c148a553f68a0ea7f579821ef3b11c27b8cbe158e4df897e4a5dd57') version('5.39', sha256='f05d286a76d9556243d0cb05814929c2ecf3a5ba07963f8f70bfaaa70517fad1') version('5.38', sha256='593c2ffc2ab349c5aea0f55fedfe4d681737b6b62376a9b3ad1e77b2cc19fa34') version('5.37', sha256='e9c13967f7dd339a3c241b7710ba093560b9a33013491318e88e6b8b57bae07f') + + executables = ['^file$'] + + @classmethod + def determine_version(cls, exe): + output = Executable(exe)('--version', output=str, error=str) + match = re.search(r'file-(\S+)', output) + return match.group(1) if match else None diff --git a/var/spack/repos/builtin/packages/fixesproto/package.py b/var/spack/repos/builtin/packages/fixesproto/package.py index 1837d90fd29..4c381346767 100644 --- a/var/spack/repos/builtin/packages/fixesproto/package.py +++ b/var/spack/repos/builtin/packages/fixesproto/package.py @@ -13,7 +13,7 @@ class Fixesproto(AutotoolsPackage, XorgPackage): issues raised by application interaction with core protocol mechanisms that cannot be adequately worked around on the client side of the wire.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/fixesproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/fixesproto" xorg_mirror_path = "proto/fixesproto-5.0.tar.gz" version('5.0', sha256='67865a0e3cdc7dec1fd676f0927f7011ad4036c18eb320a2b41dbd56282f33b8') diff --git a/var/spack/repos/builtin/packages/flann/package.py b/var/spack/repos/builtin/packages/flann/package.py index c50e6f22c10..d186f2f8c4b 100644 --- a/var/spack/repos/builtin/packages/flann/package.py +++ b/var/spack/repos/builtin/packages/flann/package.py @@ -18,7 +18,7 @@ class Flann(CMakePackage): C, MATLAB and Python. """ - homepage = "http://www.cs.ubc.ca/research/flann/" + homepage = "https://github.com/mariusmuja/flann" url = "https://github.com/mariusmuja/flann/archive/1.9.1.tar.gz" version('1.9.1', sha256='b23b5f4e71139faa3bcb39e6bbcc76967fbaf308c4ee9d4f5bfbeceaa76cc5d3') diff --git a/var/spack/repos/builtin/packages/flap/package.py b/var/spack/repos/builtin/packages/flap/package.py new file mode 100644 index 00000000000..3196dbab2fd --- /dev/null +++ b/var/spack/repos/builtin/packages/flap/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2021 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 import * + + +class Flap(CMakePackage): + """Fortran command Line Arguments Parser""" + + homepage = "https://github.com/szaghi/FLAP" + url = "https://github.com/szaghi/FLAP.git" + git = "https://github.com/szaghi/FLAP.git" + + maintainers = ['fluidnumerics-joe'] + + version('master', branch='master', submodules=True) + + def flag_handler(self, name, flags): + if name in ['cflags', 'cxxflags', 'cppflags']: + return (None, flags, None) + elif name == 'fflags': + flags.append('-cpp') + return (flags, None, None) diff --git a/var/spack/repos/builtin/packages/flashdimmsim/package.py b/var/spack/repos/builtin/packages/flashdimmsim/package.py new file mode 100644 index 00000000000..49f8a3563aa --- /dev/null +++ b/var/spack/repos/builtin/packages/flashdimmsim/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2021 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 import * + + +class Flashdimmsim(Package): + """FlashDIMMSim: a reasonably accurate flash DIMM simulator.""" + homepage = "https://github.com/slunk/FlashDIMMSim" + git = "https://github.com/slunk/FlashDIMMSim.git" + + version('master', branch='master') + + build_directory = 'src' + + def install(self, spec, prefix): + with working_dir(self.build_directory): + make() # build program + make('libfdsim.so') # build shared library + + mkdir(prefix.bin) + mkdir(prefix.lib) + mkdir(prefix.include) + + install_tree('ini', join_path(prefix, 'ini')) + install('FDSim', prefix.bin) + install('libfdsim.so', prefix.lib) + install('*.h', prefix.include) diff --git a/var/spack/repos/builtin/packages/flatbuffers/package.py b/var/spack/repos/builtin/packages/flatbuffers/package.py index 35a36b35b9e..3c4e4647270 100644 --- a/var/spack/repos/builtin/packages/flatbuffers/package.py +++ b/var/spack/repos/builtin/packages/flatbuffers/package.py @@ -10,7 +10,7 @@ class Flatbuffers(CMakePackage): """Memory Efficient Serialization Library """ - homepage = "http://google.github.io/flatbuffers/" + homepage = "https://google.github.io/flatbuffers/" url = "https://github.com/google/flatbuffers/archive/v1.9.0.tar.gz" version('1.12.0', sha256='62f2223fb9181d1d6338451375628975775f7522185266cd5296571ac152bc45') diff --git a/var/spack/repos/builtin/packages/flint/package.py b/var/spack/repos/builtin/packages/flint/package.py index d6383b4a839..33ac3bdeb59 100644 --- a/var/spack/repos/builtin/packages/flint/package.py +++ b/var/spack/repos/builtin/packages/flint/package.py @@ -9,7 +9,7 @@ class Flint(Package): """FLINT (Fast Library for Number Theory).""" - homepage = "http://www.flintlib.org" + homepage = "https://www.flintlib.org" url = "http://mirrors.mit.edu/sage/spkg/upstream/flint/flint-2.5.2.tar.gz" git = "https://github.com/wbhart/flint2.git" diff --git a/var/spack/repos/builtin/packages/fltk/package.py b/var/spack/repos/builtin/packages/fltk/package.py index 99509b63082..f4f6e6c213b 100644 --- a/var/spack/repos/builtin/packages/fltk/package.py +++ b/var/spack/repos/builtin/packages/fltk/package.py @@ -18,8 +18,8 @@ class Fltk(Package): applications in minutes. """ - homepage = 'http://www.fltk.org/' - url = 'http://fltk.org/pub/fltk/1.3.3/fltk-1.3.3-source.tar.gz' + homepage = 'https://www.fltk.org/' + url = 'https://fltk.org/pub/fltk/1.3.3/fltk-1.3.3-source.tar.gz' version('1.3.3', sha256='f8398d98d7221d40e77bc7b19e761adaf2f1ef8bb0c30eceb7beb4f2273d0d97') diff --git a/var/spack/repos/builtin/packages/fmt/package.py b/var/spack/repos/builtin/packages/fmt/package.py index 47ea7e2513c..78dba39d282 100644 --- a/var/spack/repos/builtin/packages/fmt/package.py +++ b/var/spack/repos/builtin/packages/fmt/package.py @@ -14,6 +14,7 @@ class Fmt(CMakePackage): homepage = "https://fmt.dev/" url = "https://github.com/fmtlib/fmt/releases/download/7.1.3/fmt-7.1.3.zip" + version('8.0.1', sha256='a627a56eab9554fc1e5dd9a623d0768583b3a383ff70a4312ba68f94c9d415bf') version('7.1.3', sha256='5d98c504d0205f912e22449ecdea776b78ce0bb096927334f80781e720084c9f') version('7.1.2', sha256='4d6968ab7c01e95cc76df136755703defb985105a117b83057e4fd5d53680ea7') version('7.1.0', sha256='308af4e36ee3ab527b51014a2a5d862682c84f5d16f7a597aea34c84853cbcb0') diff --git a/var/spack/repos/builtin/packages/font-util/package.py b/var/spack/repos/builtin/packages/font-util/package.py index 07b18b1f76c..f9614e1ede5 100644 --- a/var/spack/repos/builtin/packages/font-util/package.py +++ b/var/spack/repos/builtin/packages/font-util/package.py @@ -9,7 +9,7 @@ class FontUtil(AutotoolsPackage, XorgPackage): """X.Org font package creation/installation utilities and fonts.""" - homepage = "http://cgit.freedesktop.org/xorg/font/util" + homepage = "https://cgit.freedesktop.org/xorg/font/util" xorg_mirror_path = "font/font-util-1.3.1.tar.gz" version('1.3.2', sha256='f115a3735604de1e852a4bf669be0269d8ce8f21f8e0e74ec5934b31dadc1e76') diff --git a/var/spack/repos/builtin/packages/fontcacheproto/package.py b/var/spack/repos/builtin/packages/fontcacheproto/package.py index cde060b19a2..7b3043ab0c5 100644 --- a/var/spack/repos/builtin/packages/fontcacheproto/package.py +++ b/var/spack/repos/builtin/packages/fontcacheproto/package.py @@ -9,7 +9,7 @@ class Fontcacheproto(AutotoolsPackage, XorgPackage): """X.org FontcacheProto protocol headers.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/fontcacheproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/fontcacheproto" xorg_mirror_path = "proto/fontcacheproto-0.1.3.tar.gz" version('0.1.3', sha256='759b4863b55a25bfc8f977d8ed969da0b99b3c823f33c674d6da5825f9df9a79') diff --git a/var/spack/repos/builtin/packages/fontconfig/package.py b/var/spack/repos/builtin/packages/fontconfig/package.py index 7012dce256e..5369b253e14 100644 --- a/var/spack/repos/builtin/packages/fontconfig/package.py +++ b/var/spack/repos/builtin/packages/fontconfig/package.py @@ -8,7 +8,7 @@ class Fontconfig(AutotoolsPackage): """Fontconfig is a library for configuring/customizing font access""" - homepage = "http://www.freedesktop.org/wiki/Software/fontconfig/" + homepage = "https://www.freedesktop.org/wiki/Software/fontconfig/" url = "http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.12.3.tar.gz" version('2.13.93', sha256='0f302a18ee52dde0793fe38b266bf269dfe6e0c0ae140e30d72c6cca5dc08db5') diff --git a/var/spack/repos/builtin/packages/fontsproto/package.py b/var/spack/repos/builtin/packages/fontsproto/package.py index 0ed73a0f71d..ff471243bd5 100644 --- a/var/spack/repos/builtin/packages/fontsproto/package.py +++ b/var/spack/repos/builtin/packages/fontsproto/package.py @@ -9,7 +9,7 @@ class Fontsproto(AutotoolsPackage, XorgPackage): """X Fonts Extension.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/fontsproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/fontsproto" xorg_mirror_path = "proto/fontsproto-2.1.3.tar.gz" version('2.1.3', sha256='72c44e63044b2b66f6fa112921621ecc20c71193982de4f198d9a29cda385c5e') diff --git a/var/spack/repos/builtin/packages/fonttosfnt/package.py b/var/spack/repos/builtin/packages/fonttosfnt/package.py index 7fa4820978a..c9b76544b11 100644 --- a/var/spack/repos/builtin/packages/fonttosfnt/package.py +++ b/var/spack/repos/builtin/packages/fonttosfnt/package.py @@ -9,7 +9,7 @@ class Fonttosfnt(AutotoolsPackage, XorgPackage): """Wrap a bitmap font in a sfnt (TrueType) wrapper.""" - homepage = "http://cgit.freedesktop.org/xorg/app/fonttosfnt" + homepage = "https://cgit.freedesktop.org/xorg/app/fonttosfnt" xorg_mirror_path = "app/fonttosfnt-1.0.4.tar.gz" version('1.0.4', sha256='3873636be5b3b8e4160070e8f9a7a9221b5bd5efbf740d7abaa9092e10732673') diff --git a/var/spack/repos/builtin/packages/freefem/acmpi.patch b/var/spack/repos/builtin/packages/freefem/acmpi.patch new file mode 100644 index 00000000000..f6dfdc1d2ba --- /dev/null +++ b/var/spack/repos/builtin/packages/freefem/acmpi.patch @@ -0,0 +1,11 @@ +--- a/etc/config/m4/acmpi.m4 2021-04-19 21:45:30.000000000 +0200 ++++ b/etc/config/m4/acmpi.m4 2021-07-06 09:53:06.100076241 +0200 +@@ -296,7 +296,7 @@ + test -n "$MPICC" && ff_mpicshow=`$MPICC -show` 2>/dev/null + test -n "$MPIFC" && ff_mpifcshow=`$MPIFC -show` 2>/dev/null + if test "$with_mpilibs" = no -o -z "$with_mpilibs" ; then +- [ff_MPI_INCLUDE=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^[-/][^WLlOgpf]|^-Wp,'|tr '\n' ' '`] ++ [ff_MPI_INCLUDE=`echo $ff_mpishow|tr ' ' '\n' | sed '1 d'| grep -E '^[-/][^WLlOgpf]|^-Wp,'|tr '\n' ' '`] + ff_MPI_LIB_DIRS="" + [ff_MPI_LIB=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|tr '\n' ' '`] + [ff_MPI_LIBC=`echo $ff_mpicshow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|tr '\n' ' '`] diff --git a/var/spack/repos/builtin/packages/freefem/acmpi4.8.patch b/var/spack/repos/builtin/packages/freefem/acmpi4.8.patch new file mode 100644 index 00000000000..59cbec98c63 --- /dev/null +++ b/var/spack/repos/builtin/packages/freefem/acmpi4.8.patch @@ -0,0 +1,11 @@ +--- a/etc/config/m4/acmpi.m4 2021-04-19 21:45:30.000000000 +0200 ++++ b/etc/config/m4/acmpi.m4 2021-07-06 09:53:06.100076241 +0200 +@@ -296,7 +296,7 @@ + test -n "$MPICC" && ff_mpicshow=`$MPICC -show` 2>/dev/null + test -n "$MPIFC" && ff_mpifcshow=`$MPIFC -show` 2>/dev/null + if test "$with_mpilibs" = no -o -z "$with_mpilibs" ; then +- [ff_MPI_INCLUDE=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^[-/][^WLlOgp]|^-Wp,'|tr '\n' ' '`] ++ [ff_MPI_INCLUDE=`echo $ff_mpishow|tr ' ' '\n' | sed '1 d'| grep -E '^[-/][^WLlOgpf]|^-Wp,'|tr '\n' ' '`] + ff_MPI_LIB_DIRS="" + [ff_MPI_LIB=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|tr '\n' ' '`] + [ff_MPI_LIBC=`echo $ff_mpicshow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|tr '\n' ' '`] diff --git a/var/spack/repos/builtin/packages/freefem/package.py b/var/spack/repos/builtin/packages/freefem/package.py new file mode 100644 index 00000000000..69d2e017fd0 --- /dev/null +++ b/var/spack/repos/builtin/packages/freefem/package.py @@ -0,0 +1,64 @@ +# Copyright 2013-2021 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 import * + + +class Freefem(AutotoolsPackage): + """FreeFEM is a popular 2D and 3D partial differential equations (PDE) solver. + It allows you to easily implement your own physics modules using the provided + FreeFEM language. FreeFEM offers a large list of finite elements, like the + Lagrange, Taylor-Hood, etc., usable in the continuous and discontinuous + Galerkin method framework. + """ + + homepage = "https://freefem.org" + url = "https://github.com/FreeFem/FreeFem-sources/archive/refs/tags/v4.9.tar.gz" + + maintainers = ['corentin-dev'] + + version('4.9', sha256='299ba2b73dfff578b7890f693c1e835680bf55eba87263cabd60d81909e1e0e4') + version('4.8', sha256='499b1ca24d45088226a238412ea1492d9cc3eb6088866904145511469780180d') + version('4.7-1', sha256='60d84424d20b5f6abaee638dc423480fc76f9c389bba1a2f23fd984e39a3fb96') + version('4.7', sha256='c1797b642e9c3d543eaad4949d26ce1e986f531ee9be14fff606ea525ada9206') + version('4.6', sha256='6c09af8e189fc02214b0e664b679b49832c134e29cf1ede3cab29cf754f6078f') + version('4.5', sha256='5b2d4125c312da8fbedd49a72e742f18f35e0ae100c82fb493067dfad5d51432') + + variant('mpi', default=False, + description='Activate MPI support') + variant('petsc', default=False, + description='Compile with PETSc/SLEPc') + + depends_on('mpi', when='+mpi') + depends_on('slepc', when='+petsc') + + # Patches to help configure find correctly MPI flags + # when using full path for compilers. + patch('acmpi.patch', when='@4.9', sha256='8157d89fc19227a555b54a4f2eb1c44da8aef3192077a6df2e88093b850f4c50') + patch('acmpi4.8.patch', when='@:4.8', sha256='be84f7b1b8182ff0151c258056a09bda70d72a611b0a4da1fa1954df2e0fe84e') + + def autoreconf(self, spec, prefix): + autoreconf = which('autoreconf') + autoreconf('-i') + + def configure_args(self): + spec = self.spec + options = ['--disable-mkl', + 'CFLAGS=%s' % ' '.join(spec.compiler_flags['cflags']), + 'FFLAGS=%s' % ' '.join(spec.compiler_flags['fflags']), + 'CXXFLAGS=%s' % ' '.join(spec.compiler_flags['cxxflags'])] + + if '+petsc' in spec: + options.append('--with-petsc=%s' + % spec['petsc'].prefix.lib.petsc.conf.petscvariables) + options.append('--with-slepc-ldflags=%s' + % spec['slepc'].libs.ld_flags) + options.append('--with-slepc-include=%s' + % spec['slepc'].headers.include_flags) + else: + options.append('--without-petsc') + options.append('--without-slepc') + + return options diff --git a/var/spack/repos/builtin/packages/freeglut/common-gcc10.patch b/var/spack/repos/builtin/packages/freeglut/common-gcc10.patch deleted file mode 100644 index bae46326016..00000000000 --- a/var/spack/repos/builtin/packages/freeglut/common-gcc10.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/CMakeLists.txt 2019-09-25 15:43:34.000000000 -0500 -+++ b/CMakeLists.txt 2020-01-31 09:26:24.104743210 -0600 -@@ -302,7 +302,7 @@ - ENDIF() - - IF(CMAKE_COMPILER_IS_GNUCC) -- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") -+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fcommon") - IF(NOT(ANDROID OR BLACKBERRY OR FREEGLUT_WAYLAND)) - # not setting -ansi as EGL/KHR headers doesn't support it - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic") diff --git a/var/spack/repos/builtin/packages/freeglut/package.py b/var/spack/repos/builtin/packages/freeglut/package.py index aa6d8509d67..4685f7f746b 100644 --- a/var/spack/repos/builtin/packages/freeglut/package.py +++ b/var/spack/repos/builtin/packages/freeglut/package.py @@ -26,7 +26,14 @@ class Freeglut(CMakePackage, SourceforgePackage): depends_on('xrandr') depends_on('inputproto') - patch('common-gcc10.patch', when="@3.2.1: %gcc@10.0:") + # freeglut fails to build with -fno-common (default with newer compilers) + # see https://bugs.gentoo.org/705840 and https://github.com/dcnieho/FreeGLUT/pull/76 + patch('https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/freeglut/files/freeglut-3.2.1-gcc10-fno-common.patch?id=f9102571b69d9fc05471a592fda252681fdfdef1', + sha256='898e8fb314cbe728d791e9ea69829313143cda039c008f0ca06c1b5730922aa7', + when="@3.2.1: %gcc@10.0:") + patch('https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/freeglut/files/freeglut-3.2.1-gcc10-fno-common.patch?id=f9102571b69d9fc05471a592fda252681fdfdef1', + sha256='898e8fb314cbe728d791e9ea69829313143cda039c008f0ca06c1b5730922aa7', + when="@3.2.1: %clang@11.0:") def cmake_args(self): return [ diff --git a/var/spack/repos/builtin/packages/freexl/package.py b/var/spack/repos/builtin/packages/freexl/package.py index 3afd530c2bb..4def8ab71c1 100644 --- a/var/spack/repos/builtin/packages/freexl/package.py +++ b/var/spack/repos/builtin/packages/freexl/package.py @@ -10,7 +10,7 @@ class Freexl(AutotoolsPackage): """FreeXL is an open source library to extract valid data from within an Excel (.xls) spreadsheet.""" - homepage = "http://www.gaia-gis.it" + homepage = "https://www.gaia-gis.it" url = "http://www.gaia-gis.it/gaia-sins/freexl-1.0.5.tar.gz" version('1.0.5', sha256='3dc9b150d218b0e280a3d6a41d93c1e45f4d7155829d75f1e5bf3e0b0de6750d') diff --git a/var/spack/repos/builtin/packages/fseq/package.py b/var/spack/repos/builtin/packages/fseq/package.py index d5aad7fe62d..92ed37cc4e3 100644 --- a/var/spack/repos/builtin/packages/fseq/package.py +++ b/var/spack/repos/builtin/packages/fseq/package.py @@ -9,7 +9,7 @@ class Fseq(Package): """F-Seq: A Feature Density Estimator for High-Throughput Sequence Tags""" - homepage = "http://fureylab.web.unc.edu/software/fseq/" + homepage = "https://fureylab.web.unc.edu/software/fseq/" url = "http://html-large-files-dept-fureylab.cloudapps.unc.edu/fureylabfiles/fseq/fseq_1.84.tgz" version('1.84', sha256='22d603a51f127cb86cdecde9aeae14d273bb98bcd2b47724763ab3b3241a6e68') diff --git a/var/spack/repos/builtin/packages/fslsfonts/package.py b/var/spack/repos/builtin/packages/fslsfonts/package.py index 5a261b229e1..b22e4bed491 100644 --- a/var/spack/repos/builtin/packages/fslsfonts/package.py +++ b/var/spack/repos/builtin/packages/fslsfonts/package.py @@ -9,7 +9,7 @@ class Fslsfonts(AutotoolsPackage, XorgPackage): """fslsfonts produces a list of fonts served by an X font server.""" - homepage = "http://cgit.freedesktop.org/xorg/app/fslsfonts" + homepage = "https://cgit.freedesktop.org/xorg/app/fslsfonts" xorg_mirror_path = "app/fslsfonts-1.0.5.tar.gz" version('1.0.5', sha256='27e58d2313835ce0f08cf47c59a43798b122f605a55f54b170db27b57a492007') diff --git a/var/spack/repos/builtin/packages/fstobdf/package.py b/var/spack/repos/builtin/packages/fstobdf/package.py index 62d4d93a702..9bddbca2fa1 100644 --- a/var/spack/repos/builtin/packages/fstobdf/package.py +++ b/var/spack/repos/builtin/packages/fstobdf/package.py @@ -12,7 +12,7 @@ class Fstobdf(AutotoolsPackage, XorgPackage): This is useful in testing servers, debugging font metrics, and reproducing lost BDF files.""" - homepage = "http://cgit.freedesktop.org/xorg/app/fstobdf" + homepage = "https://cgit.freedesktop.org/xorg/app/fstobdf" xorg_mirror_path = "app/fstobdf-1.0.6.tar.gz" version('1.0.6', sha256='bb903ae76cbcb0a08a71f06762b64db7d5c2064f6e88e8dc3a604e76d0bcb93d') diff --git a/var/spack/repos/builtin/packages/g2/package.py b/var/spack/repos/builtin/packages/g2/package.py new file mode 100644 index 00000000000..686a7bb7cc6 --- /dev/null +++ b/var/spack/repos/builtin/packages/g2/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 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 import * + + +class G2(CMakePackage): + """Utilities for coding/decoding GRIB2 messages. This library contains + Fortran 90 decoder/encoder routines for GRIB edition 2, as well as + indexing/searching utility routines.""" + + homepage = "https://noaa-emc.github.io/NCEPLIBS-g2" + url = "https://github.com/NOAA-EMC/NCEPLIBS-g2/archive/refs/tags/v3.4.3.tar.gz" + + maintainers = ['t-brown'] + + version('3.4.3', sha256='679ea99b225f08b168cbf10f4b29f529b5b011232f298a5442ce037ea84de17c') + + depends_on('jasper') + depends_on('libpng') diff --git a/var/spack/repos/builtin/packages/g2tmpl/package.py b/var/spack/repos/builtin/packages/g2tmpl/package.py new file mode 100644 index 00000000000..084017564a5 --- /dev/null +++ b/var/spack/repos/builtin/packages/g2tmpl/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2021 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 import * + + +class G2tmpl(CMakePackage): + """Utilities for GRIB2 templates.""" + + homepage = "https://github.com/NOAA-EMC/NCEPLIBS-g2tmpl" + url = "https://github.com/NOAA-EMC/NCEPLIBS-g2tmpl/archive/refs/tags/v1.10.0.tar.gz" + + maintainers = ['t-brown'] + + version('1.10.0', sha256='dcc0e40b8952f91d518c59df7af64e099131c17d85d910075bfa474c8822649d') diff --git a/var/spack/repos/builtin/packages/g4abla/package.py b/var/spack/repos/builtin/packages/g4abla/package.py index d74a7d15ed6..b0b25b9028f 100644 --- a/var/spack/repos/builtin/packages/g4abla/package.py +++ b/var/spack/repos/builtin/packages/g4abla/package.py @@ -9,7 +9,7 @@ class G4abla(Package): """Geant4 data for nuclear shell effects in INCL/ABLA hadronic mode""" - homepage = "http://geant4.web.cern.ch" + homepage = "https://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4ABLA.3.0.tar.gz" tags = ['hep'] diff --git a/var/spack/repos/builtin/packages/g4emlow/package.py b/var/spack/repos/builtin/packages/g4emlow/package.py index 5e7496892e2..7c6fabb4430 100644 --- a/var/spack/repos/builtin/packages/g4emlow/package.py +++ b/var/spack/repos/builtin/packages/g4emlow/package.py @@ -9,7 +9,7 @@ class G4emlow(Package): """Geant4 data files for low energy electromagnetic processes.""" - homepage = "http://geant4.web.cern.ch" + homepage = "https://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4EMLOW.6.50.tar.gz" tags = ['hep'] diff --git a/var/spack/repos/builtin/packages/g4ensdfstate/package.py b/var/spack/repos/builtin/packages/g4ensdfstate/package.py index cfbf04e79b8..bfaa5567beb 100644 --- a/var/spack/repos/builtin/packages/g4ensdfstate/package.py +++ b/var/spack/repos/builtin/packages/g4ensdfstate/package.py @@ -9,7 +9,7 @@ class G4ensdfstate(Package): """Geant4 data for nuclides properties""" - homepage = "http://geant4.web.cern.ch" + homepage = "https://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4ENSDFSTATE.2.1.tar.gz" tags = ['hep'] diff --git a/var/spack/repos/builtin/packages/g4incl/package.py b/var/spack/repos/builtin/packages/g4incl/package.py index e5fa43e7152..57cc06bccf6 100644 --- a/var/spack/repos/builtin/packages/g4incl/package.py +++ b/var/spack/repos/builtin/packages/g4incl/package.py @@ -10,7 +10,7 @@ class G4incl(Package): """Geant4 data for evaluated particle cross-sections on natural composition of elements""" - homepage = "http://geant4.web.cern.ch" + homepage = "https://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4INCL.1.0.tar.gz" tags = ['hep'] diff --git a/var/spack/repos/builtin/packages/g4ndl/package.py b/var/spack/repos/builtin/packages/g4ndl/package.py index e2ce0bbdacc..86645b2826d 100644 --- a/var/spack/repos/builtin/packages/g4ndl/package.py +++ b/var/spack/repos/builtin/packages/g4ndl/package.py @@ -9,7 +9,7 @@ class G4ndl(Package): """Geant4 Neutron data files with thermal cross sections """ - homepage = "http://geant4.web.cern.ch" + homepage = "https://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4NDL.4.5.tar.gz" tags = ['hep'] diff --git a/var/spack/repos/builtin/packages/g4neutronxs/package.py b/var/spack/repos/builtin/packages/g4neutronxs/package.py index 9d33ce8ff1f..dd76c7068f3 100644 --- a/var/spack/repos/builtin/packages/g4neutronxs/package.py +++ b/var/spack/repos/builtin/packages/g4neutronxs/package.py @@ -10,7 +10,7 @@ class G4neutronxs(Package): """Geant4 data for evaluated neutron cross-sections on natural composition of elements""" - homepage = "http://geant4.web.cern.ch" + homepage = "https://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4NEUTRONXS.1.4.tar.gz" tags = ['hep'] diff --git a/var/spack/repos/builtin/packages/g4particlexs/package.py b/var/spack/repos/builtin/packages/g4particlexs/package.py index 2e42a543f13..8bc3a28b934 100644 --- a/var/spack/repos/builtin/packages/g4particlexs/package.py +++ b/var/spack/repos/builtin/packages/g4particlexs/package.py @@ -10,7 +10,7 @@ class G4particlexs(Package): """Geant4 data for evaluated particle cross-sections on natural composition of elements""" - homepage = "http://geant4.web.cern.ch" + homepage = "https://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PARTICLEXS.2.1.tar.gz" tags = ['hep'] diff --git a/var/spack/repos/builtin/packages/g4photonevaporation/package.py b/var/spack/repos/builtin/packages/g4photonevaporation/package.py index a79d111824c..ec5d8a676a5 100644 --- a/var/spack/repos/builtin/packages/g4photonevaporation/package.py +++ b/var/spack/repos/builtin/packages/g4photonevaporation/package.py @@ -9,7 +9,7 @@ class G4photonevaporation(Package): """Geant4 data for photon evaporation""" - homepage = "http://geant4.web.cern.ch" + homepage = "https://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PhotonEvaporation.4.3.2.tar.gz" tags = ['hep'] diff --git a/var/spack/repos/builtin/packages/g4pii/package.py b/var/spack/repos/builtin/packages/g4pii/package.py index dafd7500186..45a1ed019ba 100644 --- a/var/spack/repos/builtin/packages/g4pii/package.py +++ b/var/spack/repos/builtin/packages/g4pii/package.py @@ -9,7 +9,7 @@ class G4pii(Package): """Geant4 data for shell ionisation cross-sections""" - homepage = "http://geant4.web.cern.ch" + homepage = "https://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PII.1.3.tar.gz" tags = ['hep'] diff --git a/var/spack/repos/builtin/packages/g4radioactivedecay/package.py b/var/spack/repos/builtin/packages/g4radioactivedecay/package.py index 2e1ea3ad348..09884b3598f 100644 --- a/var/spack/repos/builtin/packages/g4radioactivedecay/package.py +++ b/var/spack/repos/builtin/packages/g4radioactivedecay/package.py @@ -9,7 +9,7 @@ class G4radioactivedecay(Package): """Geant4 data files for radio-active decay hadronic processes""" - homepage = "http://geant4.web.cern.ch" + homepage = "https://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4RadioactiveDecay.5.1.1.tar.gz" tags = ['hep'] diff --git a/var/spack/repos/builtin/packages/g4realsurface/package.py b/var/spack/repos/builtin/packages/g4realsurface/package.py index ee866258988..3c69010c24e 100644 --- a/var/spack/repos/builtin/packages/g4realsurface/package.py +++ b/var/spack/repos/builtin/packages/g4realsurface/package.py @@ -9,7 +9,7 @@ class G4realsurface(Package): """Geant4 data for measured optical surface reflectance""" - homepage = "http://geant4.web.cern.ch" + homepage = "https://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/RealSurface.1.0.tar.gz" tags = ['hep'] diff --git a/var/spack/repos/builtin/packages/g4saiddata/package.py b/var/spack/repos/builtin/packages/g4saiddata/package.py index 6b6a8da546f..12084cf5d13 100644 --- a/var/spack/repos/builtin/packages/g4saiddata/package.py +++ b/var/spack/repos/builtin/packages/g4saiddata/package.py @@ -9,7 +9,7 @@ class G4saiddata(Package): """Geant4 data from evaluated cross-sections in SAID data-base """ - homepage = "http://geant4.web.cern.ch" + homepage = "https://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4SAIDDATA.1.1.tar.gz" tags = ['hep'] diff --git a/var/spack/repos/builtin/packages/g4tendl/package.py b/var/spack/repos/builtin/packages/g4tendl/package.py index 9c898897c6b..9824fe98000 100644 --- a/var/spack/repos/builtin/packages/g4tendl/package.py +++ b/var/spack/repos/builtin/packages/g4tendl/package.py @@ -9,7 +9,7 @@ class G4tendl(Package): """Geant4 data for incident particles [optional]""" - homepage = "http://geant4.web.cern.ch" + homepage = "https://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4TENDL.1.3.tar.gz" tags = ['hep'] diff --git a/var/spack/repos/builtin/packages/gatk/package.py b/var/spack/repos/builtin/packages/gatk/package.py index f83ead3d2d1..718b04fee48 100644 --- a/var/spack/repos/builtin/packages/gatk/package.py +++ b/var/spack/repos/builtin/packages/gatk/package.py @@ -12,7 +12,7 @@ class Gatk(Package): Variant Discovery in High-Throughput Sequencing Data """ - homepage = "https://software.broadinstitute.org/gatk/" + homepage = "https://gatk.broadinstitute.org/hc/en-us" url = "https://github.com/broadinstitute/gatk/releases/download/4.1.0.0/gatk-4.1.0.0.zip" list_url = "https://github.com/broadinstitute/gatk/releases" diff --git a/var/spack/repos/builtin/packages/gaudi/package.py b/var/spack/repos/builtin/packages/gaudi/package.py index d2d5937bb70..52e099fc407 100644 --- a/var/spack/repos/builtin/packages/gaudi/package.py +++ b/var/spack/repos/builtin/packages/gaudi/package.py @@ -9,7 +9,7 @@ class Gaudi(CMakePackage): """An experiment-independent HEP event data processing framework""" - homepage = "http://gaudi.web.cern.ch/gaudi/" + homepage = "https://gaudi.web.cern.ch/gaudi/" git = "https://gitlab.cern.ch/gaudi/Gaudi.git" url = "https://gitlab.cern.ch/gaudi/Gaudi/-/archive/v33r1/Gaudi-v33r1.tar.gz" @@ -56,7 +56,7 @@ class Gaudi(CMakePackage): depends_on('python@:2.99.99', when='@:32.1', type=('build', 'run')) depends_on('py-setuptools@:45.99.99', when='^python@:2.7.99', type='build') depends_on('py-six', type=('build', 'run')) - depends_on('py-xenv@1:', type=('build', 'run')) + depends_on('py-xenv@1:', when='@:34.9', type=('build', 'run')) depends_on('range-v3') depends_on('root +python +root7 +ssl +tbb +threads') depends_on('zlib') diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py index 03fc883abde..b639c8aae98 100644 --- a/var/spack/repos/builtin/packages/gcc/package.py +++ b/var/spack/repos/builtin/packages/gcc/package.py @@ -129,10 +129,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): depends_on('isl@0.15:', when='@10:') depends_on('zlib', when='@6:') - # GCC only tries to link with -lzstd but it requires - # -pthread too when linking against libzstd.a, so - # disable multithreading by default - depends_on('zstd~multithread', when='@10:') + depends_on('zstd', when='@10:') depends_on('diffutils', type='build') depends_on('iconv', when='platform=darwin') depends_on('gnat', when='languages=ada') diff --git a/var/spack/repos/builtin/packages/gccxml/package.py b/var/spack/repos/builtin/packages/gccxml/package.py index 72ea0799851..effc2ec2799 100644 --- a/var/spack/repos/builtin/packages/gccxml/package.py +++ b/var/spack/repos/builtin/packages/gccxml/package.py @@ -10,7 +10,7 @@ class Gccxml(CMakePackage): """gccxml dumps an XML description of C++ source code using an extension of the GCC C++ compiler.""" - homepage = "http://gccxml.github.io" + homepage = "https://gccxml.github.io" git = "https://github.com/gccxml/gccxml.git" version('develop', branch='master') diff --git a/var/spack/repos/builtin/packages/gconf/package.py b/var/spack/repos/builtin/packages/gconf/package.py index 5479ae80ba3..eaa70724c73 100644 --- a/var/spack/repos/builtin/packages/gconf/package.py +++ b/var/spack/repos/builtin/packages/gconf/package.py @@ -7,12 +7,16 @@ class Gconf(AutotoolsPackage): - """GConf is a system for storing application preferences.""" + """GConf is a system for storing application preferences. - homepage = "https://projects.gnome.org/gconf/" + 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') + version('3.2.6', sha256='1912b91803ab09a5eed34d364bf09fe3a2a9c96751fde03a4e0cfa51a04d784c', deprecated=True) depends_on('pkgconfig', type='build') depends_on('glib@2.14.0:') diff --git a/var/spack/repos/builtin/packages/gcta/package.py b/var/spack/repos/builtin/packages/gcta/package.py index 33748d15272..4220a8c9264 100644 --- a/var/spack/repos/builtin/packages/gcta/package.py +++ b/var/spack/repos/builtin/packages/gcta/package.py @@ -14,7 +14,7 @@ class Gcta(Package): for many other analyses to better understand the genetic architecture of complex traits. GCTA currently supports the following analyses.""" - homepage = "http://cnsgenomics.com/software/gcta/#Overview" + homepage = "https://cnsgenomics.com/software/gcta/#Overview" url = "http://cnsgenomics.com/software/gcta/gcta_1.91.2beta.zip" version('1.91.2beta_mac', 'ce0882ad35dd9474ffe40911da369274700af1ecb9916c0a355b7bad14850234') diff --git a/var/spack/repos/builtin/packages/gdbm/package.py b/var/spack/repos/builtin/packages/gdbm/package.py index b1a437b7cfd..7262a6e2ea1 100644 --- a/var/spack/repos/builtin/packages/gdbm/package.py +++ b/var/spack/repos/builtin/packages/gdbm/package.py @@ -13,7 +13,7 @@ class Gdbm(AutotoolsPackage, GNUMirrorPackage): These routines are provided to a programmer needing to create and manipulate a hashed database.""" - homepage = "http://www.gnu.org.ua/software/gdbm/gdbm.html" + homepage = "https://www.gnu.org.ua/software/gdbm/gdbm.html" gnu_mirror_path = "gdbm/gdbm-1.13.tar.gz" version('1.19', sha256='37ed12214122b972e18a0d94995039e57748191939ef74115b1d41d8811364bc') diff --git a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py index 0a9492653a9..7f4fa885273 100644 --- a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py +++ b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py @@ -13,7 +13,7 @@ class GdkPixbuf(Package): GTK+ 2 but it was split off into a separate package in preparation for the change to GTK+ 3.""" - homepage = "https://developer.gnome.org/gdk-pixbuf/" + homepage = "https://gitlab.gnome.org/GNOME/gdk-pixbuf" url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/2.40/gdk-pixbuf-2.40.0.tar.xz" list_url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/" list_depth = 1 diff --git a/var/spack/repos/builtin/packages/geos/package.py b/var/spack/repos/builtin/packages/geos/package.py index d4d905d4a56..f1f29bd0f43 100644 --- a/var/spack/repos/builtin/packages/geos/package.py +++ b/var/spack/repos/builtin/packages/geos/package.py @@ -13,7 +13,7 @@ class Geos(CMakePackage): Simple Features for SQL spatial predicate functions and spatial operators, as well as specific JTS enhanced topology functions.""" - homepage = "http://trac.osgeo.org/geos/" + homepage = "https://trac.osgeo.org/geos/" url = "https://download.osgeo.org/geos/geos-3.8.1.tar.bz2" maintainers = ['adamjstewart'] diff --git a/var/spack/repos/builtin/packages/gfsio/package.py b/var/spack/repos/builtin/packages/gfsio/package.py new file mode 100644 index 00000000000..bb71543945a --- /dev/null +++ b/var/spack/repos/builtin/packages/gfsio/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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 import * + + +class Gfsio(CMakePackage): + """The GFSIO library provides an API to convert GFS Gaussian output into + grib output.""" + + homepage = "https://github.com/NOAA-EMC/NCEPLIBS-gfsio" + url = "https://github.com/NOAA-EMC/NCEPLIBS-gfsio/archive/refs/tags/v1.4.1.tar.gz" + + maintainers = ['t-brown'] + + version('1.4.1', sha256='eab106302f520600decc4f9665d7c6a55e7b4901fab6d9ef40f29702b89b69b1') diff --git a/var/spack/repos/builtin/packages/ghostscript-fonts/package.py b/var/spack/repos/builtin/packages/ghostscript-fonts/package.py index fac683d2b12..7d75f3ba59a 100644 --- a/var/spack/repos/builtin/packages/ghostscript-fonts/package.py +++ b/var/spack/repos/builtin/packages/ghostscript-fonts/package.py @@ -11,7 +11,7 @@ class GhostscriptFonts(Package): """Ghostscript Fonts""" - homepage = "http://ghostscript.com/" + homepage = "https://ghostscript.com/" url = "https://www.imagemagick.org/download/delegates/ghostscript-fonts-std-8.11.tar.gz" version('8.11', sha256='0eb6f356119f2e49b2563210852e17f57f9dcc5755f350a69a46a0d641a0c401') diff --git a/var/spack/repos/builtin/packages/ghostscript/package.py b/var/spack/repos/builtin/packages/ghostscript/package.py index a75088c203b..25b16842bd2 100644 --- a/var/spack/repos/builtin/packages/ghostscript/package.py +++ b/var/spack/repos/builtin/packages/ghostscript/package.py @@ -12,7 +12,7 @@ class Ghostscript(AutotoolsPackage): """An interpreter for the PostScript language and for PDF.""" - homepage = "http://ghostscript.com/" + homepage = "https://ghostscript.com/" url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs926/ghostscript-9.26.tar.gz" executables = [r'^gs$'] diff --git a/var/spack/repos/builtin/packages/giflib/package.py b/var/spack/repos/builtin/packages/giflib/package.py index 1b97ad975cb..eebeb8e696e 100644 --- a/var/spack/repos/builtin/packages/giflib/package.py +++ b/var/spack/repos/builtin/packages/giflib/package.py @@ -24,12 +24,24 @@ class Giflib(MakefilePackage, SourceforgePackage): patch('bsd-head.patch') + def prefix_and_libversion_args(self): + args = [] + if self.spec.satisfies('@5.2.0:'): + args.extend([ + 'PREFIX={0}'.format(self.spec.prefix), + 'LIBMAJOR={0}'.format(self.spec.version.up_to(1)), + 'LIBVER={0}'.format(self.spec.version) + ]) + return args + + @property + def build_targets(self): + targets = ['all'] + self.prefix_and_libversion_args() + return targets + @property def install_targets(self): - targets = ['install'] - if self.spec.satisfies('@5.2.0:'): - targets.append('PREFIX={0}'.format(self.spec.prefix)) - + targets = ['install'] + self.prefix_and_libversion_args() return targets def check(self): diff --git a/var/spack/repos/builtin/packages/ginkgo/package.py b/var/spack/repos/builtin/packages/ginkgo/package.py index e62a94e4710..49bdfcfcc91 100644 --- a/var/spack/repos/builtin/packages/ginkgo/package.py +++ b/var/spack/repos/builtin/packages/ginkgo/package.py @@ -132,7 +132,7 @@ def setup_build_tests(self): return with working_dir(self.build_directory): make("test_install") - smoke_test_path = join_path(self.build_directory, 'test_install') + smoke_test_path = join_path(self.build_directory, 'test', 'test_install') with working_dir(smoke_test_path): make("install") diff --git a/var/spack/repos/builtin/packages/gl2ps/package.py b/var/spack/repos/builtin/packages/gl2ps/package.py index b6267af6164..1909d6fc4bd 100644 --- a/var/spack/repos/builtin/packages/gl2ps/package.py +++ b/var/spack/repos/builtin/packages/gl2ps/package.py @@ -10,7 +10,7 @@ class Gl2ps(CMakePackage): """GL2PS is a C library providing high quality vector output for any OpenGL application.""" - homepage = "http://www.geuz.org/gl2ps/" + homepage = "https://www.geuz.org/gl2ps/" url = "http://geuz.org/gl2ps/src/gl2ps-1.3.9.tgz" version('1.4.0', sha256='03cb5e6dfcd87183f3b9ba3b22f04cd155096af81e52988cc37d8d8efe6cf1e2') diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py index 20e04bf5436..975fbd5b754 100644 --- a/var/spack/repos/builtin/packages/glib/package.py +++ b/var/spack/repos/builtin/packages/glib/package.py @@ -23,6 +23,7 @@ class Glib(Package): maintainers = ['michaelkuhn'] + version('2.68.4', sha256='62fd061d08a75492617e625a73e2c05e259f831acbb8e1f8b9c81f23f7993a3b') version('2.68.3', sha256='e7e1a3c20c026109c45c9ec4a31d8dcebc22e86c69486993e565817d64be3138') version('2.68.2', sha256='ecc7798a9cc034eabdfd7f246e6dd461cdbf1175fcc2e9867cc7da7b7309e0fb') version('2.66.8', sha256='97bc87dd91365589af5cbbfea2574833aea7a1b71840fd365ecd2852c76b9c8b') diff --git a/var/spack/repos/builtin/packages/global/package.py b/var/spack/repos/builtin/packages/global/package.py index 1d078b21fab..aa66e2d91ce 100644 --- a/var/spack/repos/builtin/packages/global/package.py +++ b/var/spack/repos/builtin/packages/global/package.py @@ -11,7 +11,7 @@ class Global(Package): """ The Gnu Global tagging system """ - homepage = "http://www.gnu.org/software/global" + homepage = "https://www.gnu.org/software/global" url = "http://tamacom.com/global/global-6.5.tar.gz" maintainers = ['gaber'] diff --git a/var/spack/repos/builtin/packages/globalarrays/package.py b/var/spack/repos/builtin/packages/globalarrays/package.py index 94a4205feca..364383456c6 100644 --- a/var/spack/repos/builtin/packages/globalarrays/package.py +++ b/var/spack/repos/builtin/packages/globalarrays/package.py @@ -14,7 +14,7 @@ class Globalarrays(AutotoolsPackage): non-blocking primtives, and supports location consistency. """ - homepage = "http://hpc.pnl.gov/globalarrays/" + homepage = "https://hpc.pnl.gov/globalarrays/" url = "https://github.com/GlobalArrays/ga/releases/download/v5.7/ga-5.7.tar.gz" version('5.8', sha256='64df7d1ea4053d24d84ca361e67a6f51c7b17ed7d626cb18a9fbc759f4a078ac') diff --git a/var/spack/repos/builtin/packages/glvis/package.py b/var/spack/repos/builtin/packages/glvis/package.py index 3a912c24086..10af32e474b 100644 --- a/var/spack/repos/builtin/packages/glvis/package.py +++ b/var/spack/repos/builtin/packages/glvis/package.py @@ -9,7 +9,7 @@ class Glvis(MakefilePackage): """GLVis: an OpenGL tool for visualization of FEM meshes and functions""" - homepage = "http://glvis.org" + homepage = "https://glvis.org" git = "https://github.com/glvis/glvis.git" maintainers = ['goxberry', 'v-dobrev', 'tzanio', 'tomstitt'] diff --git a/var/spack/repos/builtin/packages/gmsh/package.py b/var/spack/repos/builtin/packages/gmsh/package.py index ea168d50916..f37dc87f00e 100644 --- a/var/spack/repos/builtin/packages/gmsh/package.py +++ b/var/spack/repos/builtin/packages/gmsh/package.py @@ -89,7 +89,10 @@ class Gmsh(CMakePackage): depends_on('metis', when='+metis+external') depends_on('cgns', when='+cgns') # Gmsh's high quality vector PostScript, PDF and SVG output is produced by GL2PS. - depends_on('gl2ps') + # But Gmsh ships with its own version of this library, so it is not a + # dependency of this package. + # See https://gitlab.onelab.info/gmsh/gmsh/-/blob/master/Graphics/gl2ps.h + # and https://gitlab.onelab.info/gmsh/gmsh/-/blob/master/Graphics/gl2ps.cpp conflicts('+slepc', when='~petsc') conflicts('+oce', when='+opencascade') diff --git a/var/spack/repos/builtin/packages/gnutls/package.py b/var/spack/repos/builtin/packages/gnutls/package.py index cdb7e1e1ad0..d84cf93d592 100644 --- a/var/spack/repos/builtin/packages/gnutls/package.py +++ b/var/spack/repos/builtin/packages/gnutls/package.py @@ -14,7 +14,7 @@ class Gnutls(AutotoolsPackage): #12, OpenPGP and other required structures. It is aimed to be portable and efficient with focus on security and interoperability.""" - homepage = "http://www.gnutls.org" + homepage = "https://www.gnutls.org" url = "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/gnutls-3.5.19.tar.xz" version('3.6.15', sha256='0ea8c3283de8d8335d7ae338ef27c53a916f15f382753b174c18b45ffd481558') diff --git a/var/spack/repos/builtin/packages/gotcha/package.py b/var/spack/repos/builtin/packages/gotcha/package.py index 99ff2fa6568..941496b3d11 100644 --- a/var/spack/repos/builtin/packages/gotcha/package.py +++ b/var/spack/repos/builtin/packages/gotcha/package.py @@ -10,7 +10,7 @@ class Gotcha(CMakePackage): """C software library for shared library function wrapping, enables tools to intercept calls into shared libraries""" - homepage = "http://github.com/LLNL/gotcha" + homepage = "https://github.com/LLNL/gotcha" git = "https://github.com/LLNL/gotcha.git" version('develop', branch='develop') diff --git a/var/spack/repos/builtin/packages/gource/package.py b/var/spack/repos/builtin/packages/gource/package.py index 0bdfd800be1..1641c0db3d4 100644 --- a/var/spack/repos/builtin/packages/gource/package.py +++ b/var/spack/repos/builtin/packages/gource/package.py @@ -9,7 +9,7 @@ class Gource(AutotoolsPackage): """Software version control visualization.""" - homepage = "http://gource.io" + homepage = "https://gource.io" url = "https://github.com/acaudwell/Gource/releases/download/gource-0.44/gource-0.44.tar.gz" version('0.44', sha256='2604ca4442305ffdc5bb1a7bac07e223d59c846f93567be067e8dfe2f42f097c') diff --git a/var/spack/repos/builtin/packages/gperftools/package.py b/var/spack/repos/builtin/packages/gperftools/package.py index cfe07715f3f..438236c75a9 100644 --- a/var/spack/repos/builtin/packages/gperftools/package.py +++ b/var/spack/repos/builtin/packages/gperftools/package.py @@ -14,6 +14,7 @@ class Gperftools(AutotoolsPackage): """ homepage = "https://github.com/gperftools/gperftools" url = "https://github.com/gperftools/gperftools/releases/download/gperftools-2.7/gperftools-2.7.tar.gz" + maintainers = ['albestro', 'eschnett', 'msimberg', 'teonnik'] version('2.9.1', sha256='ea566e528605befb830671e359118c2da718f721c27225cbbc93858c7520fee3') version('2.8.1', sha256='12f07a8ba447f12a3ae15e6e3a6ad74de35163b787c0c7b76288d7395f2f74e0') diff --git a/var/spack/repos/builtin/packages/grace/package.py b/var/spack/repos/builtin/packages/grace/package.py index 598ae1f923f..cbe9c9f585d 100644 --- a/var/spack/repos/builtin/packages/grace/package.py +++ b/var/spack/repos/builtin/packages/grace/package.py @@ -9,7 +9,7 @@ class Grace(AutotoolsPackage): """Grace is a WYSIWYG 2D plotting tool for the X Window System and M*tif.""" - homepage = "http://plasma-gate.weizmann.ac.il/Grace" + homepage = "https://plasma-gate.weizmann.ac.il/Grace" # The main site (ftp://plasma-gate.weizmann.ac.il/pub/grace/) # is currently unavailable so we use one of the mirrors instead. url = "ftp://ftp.fu-berlin.de/unix/graphics/grace/src/grace5/grace-5.1.25.tar.gz" diff --git a/var/spack/repos/builtin/packages/grib-api/package.py b/var/spack/repos/builtin/packages/grib-api/package.py index 24091ab9084..e0368c6ba49 100644 --- a/var/spack/repos/builtin/packages/grib-api/package.py +++ b/var/spack/repos/builtin/packages/grib-api/package.py @@ -9,18 +9,20 @@ 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.""" + 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://software.ecmwf.int/wiki/display/GRIB/Home' + 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') - version('1.21.0', sha256='50c2b58303ab578c55735e6c21c72ffc24f82a5bf52565550f54d49cb60e8a90') - version('1.17.0', sha256='55cbb4fdcb4ee1be6a27cece9ae7e26070beb8ab6cb7e77773db3fb0d4272462') - version('1.16.0', sha256='0068ca4149a9f991d4c86a813ac73b4e2299c6a3fd53aba9e6ab276ef6f0ff9a') + 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') diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py index 5b0a87a66e5..102d484122d 100644 --- a/var/spack/repos/builtin/packages/gromacs/package.py +++ b/var/spack/repos/builtin/packages/gromacs/package.py @@ -25,6 +25,7 @@ class Gromacs(CMakePackage): maintainers = ['junghans', 'marvinbernhardt'] version('master', branch='master') + version('2021.3', sha256='e109856ec444768dfbde41f3059e3123abdb8fe56ca33b1a83f31ed4575a1cc6') version('2021.2', sha256='d940d865ea91e78318043e71f229ce80d32b0dc578d64ee5aa2b1a4be801aadb') version('2021.1', sha256='bc1d0a75c134e1fb003202262fe10d3d32c59bbb40d714bc3e5015c71effe1e5') version('2021', sha256='efa78ab8409b0f5bf0fbca174fb8fbcf012815326b5c71a9d7c385cde9a8f87b') diff --git a/var/spack/repos/builtin/packages/gsl/package.py b/var/spack/repos/builtin/packages/gsl/package.py index 674b507b6d5..0f67b8a9f3e 100644 --- a/var/spack/repos/builtin/packages/gsl/package.py +++ b/var/spack/repos/builtin/packages/gsl/package.py @@ -14,7 +14,7 @@ class Gsl(AutotoolsPackage, GNUMirrorPackage): number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite.""" - homepage = "http://www.gnu.org/software/gsl" + homepage = "https://www.gnu.org/software/gsl" gnu_mirror_path = "gsl/gsl-2.3.tar.gz" version('2.7', sha256='efbbf3785da0e53038be7907500628b466152dbc3c173a87de1b5eba2e23602b') diff --git a/var/spack/repos/builtin/packages/gtkorvo-enet/package.py b/var/spack/repos/builtin/packages/gtkorvo-enet/package.py index 5a359a6ecbf..ef77a1e4300 100644 --- a/var/spack/repos/builtin/packages/gtkorvo-enet/package.py +++ b/var/spack/repos/builtin/packages/gtkorvo-enet/package.py @@ -13,7 +13,7 @@ class GtkorvoEnet(AutotoolsPackage): The original is at http://github.com/lsalzman/enet. """ - homepage = "http://www.github.com/GTkorvo/enet" + homepage = "https://www.github.com/GTkorvo/enet" url = "https://github.com/GTkorvo/enet/archive/v1.3.13.tar.gz" version('1.3.14', sha256='d1fda051bdee46ad8cce7c3bb36fb6b7a7a443945f27a280ac104753c29465b0') diff --git a/var/spack/repos/builtin/packages/gtkplus/package.py b/var/spack/repos/builtin/packages/gtkplus/package.py index e31df250754..a5db09d06c1 100644 --- a/var/spack/repos/builtin/packages/gtkplus/package.py +++ b/var/spack/repos/builtin/packages/gtkplus/package.py @@ -42,7 +42,7 @@ class Gtkplus(MesonPackage): depends_on('libxkbcommon') depends_on('librsvg') depends_on('xrandr') - depends_on('libepoxy', when='@3:') + depends_on('libepoxy+glx', when='@3:') depends_on('libxi', when='@3:') depends_on('inputproto', when='@3:') depends_on('fixesproto', when='@3:') diff --git a/var/spack/repos/builtin/packages/guacamole-server/package.py b/var/spack/repos/builtin/packages/guacamole-server/package.py index 2e1ab0b628a..c2ffa1f2be3 100644 --- a/var/spack/repos/builtin/packages/guacamole-server/package.py +++ b/var/spack/repos/builtin/packages/guacamole-server/package.py @@ -11,7 +11,7 @@ class GuacamoleServer(AutotoolsPackage): basis of the Guacamole stack. It consists of guacd, libguac, and several protocol support libraries.""" - homepage = "http://guacamole.apache.org/" + homepage = "https://guacamole.apache.org/" url = "https://github.com/apache/guacamole-server/archive/1.1.0.tar.gz" version('1.1.0', sha256='d0f0c66ebfa7a4fd6689ae5240f21797b5177945a042388b691b15b8bd5c81a8') diff --git a/var/spack/repos/builtin/packages/gurobi/package.py b/var/spack/repos/builtin/packages/gurobi/package.py index 849096076d6..5b2c5a71c86 100644 --- a/var/spack/repos/builtin/packages/gurobi/package.py +++ b/var/spack/repos/builtin/packages/gurobi/package.py @@ -20,7 +20,7 @@ class Gurobi(Package): # to set up a mirror, see # http://spack.readthedocs.io/en/latest/mirrors.html - homepage = "http://www.gurobi.com/index" + homepage = "https://www.gurobi.com/index" manual_download = True maintainers = ['glennpj'] diff --git a/var/spack/repos/builtin/packages/h5bench/package.py b/var/spack/repos/builtin/packages/h5bench/package.py new file mode 100644 index 00000000000..46fcc530214 --- /dev/null +++ b/var/spack/repos/builtin/packages/h5bench/package.py @@ -0,0 +1,29 @@ +# Copyright 2013-2021 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 import * + + +class H5bench(CMakePackage): + """A benchmark suite for measuring HDF5 performance.""" + + homepage = "https://github.com/hpc-io/h5bench" + git = "https://github.com/hpc-io/h5bench.git" + + version('master', branch='master') + + depends_on('cmake@3.10:', type='build') + depends_on('mpi') + depends_on('hdf5+mpi@1.12.0:1.99.99,develop-1.12:') + + @run_after('install') + def install_config(self): + install_tree('h5bench_patterns/sample_config', + self.prefix.share.patterns) + install('metadata_stress/hdf5_iotest.ini', + self.prefix.share) + + def setup_build_environment(self, env): + env.set('HDF5_HOME', self.spec['hdf5'].prefix) diff --git a/var/spack/repos/builtin/packages/h5part/package.py b/var/spack/repos/builtin/packages/h5part/package.py index efe13eb7073..aa186167b09 100644 --- a/var/spack/repos/builtin/packages/h5part/package.py +++ b/var/spack/repos/builtin/packages/h5part/package.py @@ -10,7 +10,7 @@ class H5part(AutotoolsPackage): """Portable High Performance Parallel Data Interface to HDF5""" - homepage = "http://vis.lbl.gov/Research/H5Part/" + homepage = "https://dav.lbl.gov/archive/Research/AcceleratorSAPP/" url = "https://codeforge.lbl.gov/frs/download.php/latestfile/18/H5Part-1.6.6.tar.gz" version('1.6.6', sha256='10347e7535d1afbb08d51be5feb0ae008f73caf889df08e3f7dde717a99c7571') diff --git a/var/spack/repos/builtin/packages/h5z-zfp/package.py b/var/spack/repos/builtin/packages/h5z-zfp/package.py index 1e6477d2411..4c2c82c44c1 100644 --- a/var/spack/repos/builtin/packages/h5z-zfp/package.py +++ b/var/spack/repos/builtin/packages/h5z-zfp/package.py @@ -10,7 +10,7 @@ class H5zZfp(MakefilePackage): """A highly flexible floating point and integer compression plugin for the HDF5 library using ZFP compression.""" - homepage = "http://h5z-zfp.readthedocs.io/en/latest" + homepage = "https://h5z-zfp.readthedocs.io/en/latest" git = "https://github.com/LLNL/H5Z-ZFP.git" version('develop', branch='master') diff --git a/var/spack/repos/builtin/packages/hadoop/package.py b/var/spack/repos/builtin/packages/hadoop/package.py index ad4ff12ee44..8aa34d14d90 100644 --- a/var/spack/repos/builtin/packages/hadoop/package.py +++ b/var/spack/repos/builtin/packages/hadoop/package.py @@ -12,7 +12,7 @@ class Hadoop(Package): across clusters of computers using simple programming models. """ - homepage = "http://hadoop.apache.org/" + homepage = "https://hadoop.apache.org/" url = "https://www.apache.org/dist/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz" version('3.3.0', sha256='ea1a0f0afcdfb9b6b9d261cdce5a99023d7e8f72d26409e87f69bda65c663688') diff --git a/var/spack/repos/builtin/packages/haploview/package.py b/var/spack/repos/builtin/packages/haploview/package.py index 0b7b9a2fbeb..5d634a71ac5 100644 --- a/var/spack/repos/builtin/packages/haploview/package.py +++ b/var/spack/repos/builtin/packages/haploview/package.py @@ -12,7 +12,7 @@ class Haploview(Package): """Haploview is designed to simplify and expedite the process of haplotype analysis.""" - homepage = "http://www.broadinstitute.org/haploview/haploview" + homepage = "https://www.broadinstitute.org/haploview/haploview" url = "https://downloads.sourceforge.net/project/haploview/release/Haploview4.1.jar" version('4.1', sha256='b3ffe4c3d8bbab6af5eebf89a2dccdb185280088f70ae84c84be60f85f10201d', expand=False) diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py index f110700efbc..13a4f0746fd 100644 --- a/var/spack/repos/builtin/packages/hdf5/package.py +++ b/var/spack/repos/builtin/packages/hdf5/package.py @@ -188,11 +188,12 @@ def flag_handler(self, name, flags): cmake_flags = [] if name == "cflags": - cc_name = os.path.basename(self.compiler.cc) - if "clang" in cc_name or "gcc" in cc_name: + if self.spec.satisfies('%gcc') \ + or self.spec.satisfies('%clang'): # Quiet warnings/errors about implicit declaration of functions # in C99: cmake_flags.append("-Wno-implicit-function-declaration") + # Note that this flag will cause an error if building %nvhpc. if self.spec.satisfies('@:1.8.12~shared'): # More recent versions set CMAKE_POSITION_INDEPENDENT_CODE to # True and build with PIC flags. @@ -201,6 +202,12 @@ def flag_handler(self, name, flags): if self.spec.satisfies('@:1.8.12+cxx~shared'): cmake_flags.append(self.compiler.cxx_pic_flag) elif name == "fflags": + if self.spec.satisfies('%cce+fortran'): + # Cray compiler generates module files with uppercase names by + # default, which is not handled by the CMake scripts. The + # following flag forces the compiler to produce module files + # with lowercase names. + cmake_flags.append('-ef') if self.spec.satisfies('@:1.8.12+fortran~shared'): cmake_flags.append(self.compiler.fc_pic_flag) elif name == "ldlibs": diff --git a/var/spack/repos/builtin/packages/hiop/package.py b/var/spack/repos/builtin/packages/hiop/package.py index 031edafce1c..d4a76a706fa 100644 --- a/var/spack/repos/builtin/packages/hiop/package.py +++ b/var/spack/repos/builtin/packages/hiop/package.py @@ -15,8 +15,11 @@ class Hiop(CMakePackage, CudaPackage): homepage = "https://github.com/LLNL/hiop" git = "https://github.com/LLNL/hiop.git" + maintainers = ['ashermancinelli', 'CameronRutherford'] # Most recent tagged snapshot is the preferred version when profiling. + version('0.4.6', commit='b72d163d52c9225c3196ceb2baebdc7cf09a69de') + version('0.4.5', commit='c353580456c4776c50811b97cf8ff802dc27b90c') version('0.4.4', commit='e858eefa6b914f5c87c3717bbce811931ea69386') version('0.4.3', commit='c0394af4d84ebb84b7d2b95283ad65ffd84e0d45') version('0.4.2', commit='3fcb788d223eec24c0241680070c4a9a5ec71ef3') diff --git a/var/spack/repos/builtin/packages/hip-rocclr/package.py b/var/spack/repos/builtin/packages/hip-rocclr/package.py index a62d6657470..3ff8e889d2e 100644 --- a/var/spack/repos/builtin/packages/hip-rocclr/package.py +++ b/var/spack/repos/builtin/packages/hip-rocclr/package.py @@ -27,6 +27,7 @@ def url_for_version(self, version): version('master', branch='main') + version('4.3.0', sha256='8a86b4f2a1b1c7ac628262e5b11b07ff42a224e62e594a4e0683aeb616062538') version('4.2.0', sha256='c57525af32c59becf56fd83cdd61f5320a95024d9baa7fb729a01e7a9fcdfd78') version('4.1.0', sha256='9eb1d88cfc9474979aaf29b99bcf9d3769a0f7f1f8f10660941aabf83d9eeb0c') version('4.0.0', sha256='8db502d0f607834e3b882f939d33e8abe2f9b55ddafaf1b0c2cd29a0425ed76a') @@ -42,7 +43,7 @@ def url_for_version(self, version): depends_on('numactl', type='link', when="@3.7.0:") for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0', 'master']: + '4.2.0', '4.3.0', 'master']: depends_on('hsakmt-roct@' + ver, when='@' + ver) depends_on('hsa-rocr-dev@' + ver, when='@' + ver) depends_on('comgr@' + ver, when='@' + ver) @@ -61,6 +62,7 @@ def url_for_version(self, version): # Add opencl sources thru the below for d_version, d_shasum in [ + ('4.3.0', 'd37bddcc6835b6c0fecdf4d02c204ac1d312076f3eef2b1faded1c4c1bc651e9'), ('4.2.0', '18133451948a83055ca5ebfb5ba1bd536ed0bcb611df98829f1251a98a38f730'), ('4.1.0', '0729e6c2adf1e3cf649dc6e679f9cb936f4f423f4954ad9852857c0a53ef799c'), ('4.0.0', 'd43ea5898c6b9e730b5efabe8367cc136a9260afeac5d0fe85b481d625dd7df1'), diff --git a/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.5.0.patch b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.5.0.patch new file mode 100644 index 00000000000..500504e6577 --- /dev/null +++ b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.5.0.patch @@ -0,0 +1,53 @@ +From 52f389bc39e6f3d1eb76225a82c23312dd6006ee Mon Sep 17 00:00:00 2001 +From: Harmen Stoppels +Date: Wed, 4 Aug 2021 15:12:10 +0200 +Subject: [PATCH] tests + +--- + CMakeLists.txt | 30 ------------------------------ + 1 file changed, 30 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4a34b02..37e1c3f 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -641,36 +641,6 @@ if(CLANGFORMAT_EXE) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + endif() + +-############################# +-# Testing steps +-############################# +-# Target: test +-set(HIP_ROOT_DIR ${CMAKE_INSTALL_PREFIX}) +-set(HIP_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR}) +-execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/cmake" "${HIP_ROOT_DIR}/cmake" RESULT_VARIABLE RUN_HIT ERROR_QUIET) +-if(${RUN_HIT} EQUAL 0) +- execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/bin" "${HIP_ROOT_DIR}/bin" RESULT_VARIABLE RUN_HIT ERROR_QUIET) +-endif() +-if(${RUN_HIT} EQUAL 0) +- set(CMAKE_MODULE_PATH "${HIP_ROOT_DIR}/cmake" ${CMAKE_MODULE_PATH}) +- include(${HIP_SRC_PATH}/tests/hit/HIT.cmake) +- +- # Add tests +- include_directories(${HIP_SRC_PATH}/tests/src) +- hit_add_directory_recursive(${HIP_SRC_PATH}/tests/src "directed_tests") +- +- # Add unit tests +- include_directories(${HIP_SRC_PATH}/tests/unit) +- hit_add_directory_recursive(${HIP_SRC_PATH}/tests/unit "unit_tests") +- +- # Add top-level tests to build_tests +- add_custom_target(build_tests DEPENDS directed_tests unit_tests) +- +- # Add custom target: check +- add_custom_target(check COMMAND "${CMAKE_COMMAND}" --build . --target test DEPENDS build_tests) +-else() +- message(STATUS "Testing targets will not be available. To enable them please ensure that the HIP installation directory is writeable. Use -DCMAKE_INSTALL_PREFIX to specify a suitable location") +-endif() + + ############################# + # Code analysis +-- +2.25.1 + diff --git a/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.6.0.patch b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.6.0.patch new file mode 100644 index 00000000000..7adf7e35cca --- /dev/null +++ b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.6.0.patch @@ -0,0 +1,65 @@ +From 400797728d50d335c2399bc44ab2b1330d0c6dc4 Mon Sep 17 00:00:00 2001 +From: Harmen Stoppels +Date: Wed, 4 Aug 2021 15:10:00 +0200 +Subject: [PATCH] tests + +--- + CMakeLists.txt | 42 ------------------------------------------ + 1 file changed, 42 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 055543a..7e408b6 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -661,48 +661,6 @@ if(CLANGFORMAT_EXE) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + endif() + +-############################# +-# Testing steps +-############################# +-# Target: test +-set(HIP_ROOT_DIR ${CMAKE_INSTALL_PREFIX}) +-set(HIP_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR}) +-execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/cmake" "${HIP_ROOT_DIR}/cmake" RESULT_VARIABLE RUN_HIT ERROR_QUIET) +-if(${RUN_HIT} EQUAL 0) +- execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/bin" "${HIP_ROOT_DIR}/bin" RESULT_VARIABLE RUN_HIT ERROR_QUIET) +-endif() +-if(${RUN_HIT} EQUAL 0) +- set(CMAKE_MODULE_PATH "${HIP_ROOT_DIR}/cmake" ${CMAKE_MODULE_PATH}) +- include(${HIP_SRC_PATH}/tests/hit/HIT.cmake) +- +- # Add tests +- include_directories(${HIP_SRC_PATH}/tests/src) +- hit_add_directory_recursive(${HIP_CTEST_CONFIG_DEFAULT} ${HIP_SRC_PATH}/tests/src "directed_tests") +- +- # Add unit tests +- include_directories(${HIP_SRC_PATH}/tests/unit) +- hit_add_directory_recursive(${HIP_CTEST_CONFIG_DEFAULT} ${HIP_SRC_PATH}/tests/unit "unit_tests") +- +- # Add performance tests +- include_directories(${HIP_SRC_PATH}/tests/performance) +- hit_add_directory_recursive(${HIP_CTEST_CONFIG_PERFORMANCE} ${HIP_SRC_PATH}/tests/performance "performance_tests") +- +- # Add top-level tests to build_tests +- add_custom_target(build_tests DEPENDS directed_tests unit_tests) +- +- # Add top-level tests to build performance_tests. +- # To build performance tests, just run "make build_perf" +- add_custom_target(build_perf DEPENDS performance_tests) +- +- # Add custom target: perf. +- # To run performance tests, just run "make perf" +- add_custom_target(perf COMMAND "${CMAKE_CTEST_COMMAND}" -C "${HIP_CTEST_CONFIG_PERFORMANCE}" -R "performance_tests/" --verbose) +- +- # Add custom target: check +- add_custom_target(check COMMAND "${CMAKE_COMMAND}" --build . --target test DEPENDS build_tests) +-else() +- message(STATUS "Testing targets will not be available. To enable them please ensure that the HIP installation directory is writeable. Use -DCMAKE_INSTALL_PREFIX to specify a suitable location") +-endif() + + ############################# + # Code analysis +-- +2.25.1 + diff --git a/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.9.0.patch b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.9.0.patch new file mode 100644 index 00000000000..fdc4a5ffa67 --- /dev/null +++ b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.9.0.patch @@ -0,0 +1,68 @@ +From 823d25faf479a83879a0faf73bf95eaae9ae9fff Mon Sep 17 00:00:00 2001 +From: Harmen Stoppels +Date: Wed, 4 Aug 2021 15:06:53 +0200 +Subject: [PATCH] Disable testing + +--- + CMakeLists.txt | 45 --------------------------------------------- + 1 file changed, 45 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7831bb4..b8f420c 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -696,51 +696,6 @@ if(CLANGFORMAT_EXE) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + endif() + +-############################# +-# Testing steps +-############################# +-# Target: test +-set(HIP_ROOT_DIR ${CMAKE_CURRENT_BINARY_DIR}) +-set(HIP_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR}) +-if(HIP_PLATFORM STREQUAL "nvcc") +- execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/include" "${CMAKE_CURRENT_BINARY_DIR}/include" RESULT_VARIABLE RUN_HIT ERROR_QUIET) +-endif() +-execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/cmake" "${HIP_ROOT_DIR}/cmake" RESULT_VARIABLE RUN_HIT ERROR_QUIET) +-if(${RUN_HIT} EQUAL 0) +- execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/bin" "${HIP_ROOT_DIR}/bin" RESULT_VARIABLE RUN_HIT ERROR_QUIET) +-endif() +-if(${RUN_HIT} EQUAL 0) +- set(CMAKE_MODULE_PATH "${HIP_ROOT_DIR}/cmake" ${CMAKE_MODULE_PATH}) +- include(${HIP_SRC_PATH}/tests/hit/HIT.cmake) +- +- # Add tests +- include_directories(${HIP_SRC_PATH}/tests/src) +- hit_add_directory_recursive(${HIP_CTEST_CONFIG_DEFAULT} ${HIP_SRC_PATH}/tests/src "directed_tests") +- +- # Add unit tests +- include_directories(${HIP_SRC_PATH}/tests/unit) +- hit_add_directory_recursive(${HIP_CTEST_CONFIG_DEFAULT} ${HIP_SRC_PATH}/tests/unit "unit_tests") +- +- # Add performance tests +- include_directories(${HIP_SRC_PATH}/tests/performance) +- hit_add_directory_recursive(${HIP_CTEST_CONFIG_PERFORMANCE} ${HIP_SRC_PATH}/tests/performance "performance_tests") +- +- # Add top-level tests to build_tests +- add_custom_target(build_tests DEPENDS directed_tests unit_tests) +- +- # Add top-level tests to build performance_tests. +- # To build performance tests, just run "make build_perf" +- add_custom_target(build_perf DEPENDS performance_tests) +- +- # Add custom target: perf. +- # To run performance tests, just run "make perf" +- add_custom_target(perf COMMAND "${CMAKE_CTEST_COMMAND}" -C "${HIP_CTEST_CONFIG_PERFORMANCE}" -R "performance_tests/" --verbose) +- +- # Add custom target: check +- add_custom_target(check COMMAND "${CMAKE_COMMAND}" --build . --target test DEPENDS build_tests) +-else() +- message(STATUS "Testing targets will not be available. To enable them please ensure that the HIP installation directory is writeable. Use -DCMAKE_INSTALL_PREFIX to specify a suitable location") +-endif() + + ############################# + # Code analysis +-- +2.25.1 + diff --git a/var/spack/repos/builtin/packages/hip/0005-Disable-tests-4.1.0.patch b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-4.1.0.patch new file mode 100644 index 00000000000..e5829514588 --- /dev/null +++ b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-4.1.0.patch @@ -0,0 +1,42 @@ +From 0c097d01b70f479acc7c40cde35a057fafa072ba Mon Sep 17 00:00:00 2001 +From: Harmen Stoppels +Date: Wed, 4 Aug 2021 15:00:14 +0200 +Subject: [PATCH] Disable tests + +--- + CMakeLists.txt | 19 ------------------- + 1 file changed, 19 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a059c42..471fa97 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -488,25 +488,6 @@ if(CLANGFORMAT_EXE) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + endif() + +-############################# +-# Testing steps +-############################# +-set(HIP_ROOT_DIR ${CMAKE_CURRENT_BINARY_DIR}) +-set(HIP_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR}) +-if(HIP_PLATFORM STREQUAL "nvidia") +- execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/include" "${HIP_ROOT_DIR}/include" RESULT_VARIABLE RUN_HIT ERROR_QUIET) +-endif() +-execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/cmake" "${HIP_ROOT_DIR}/cmake" RESULT_VARIABLE RUN_HIT ERROR_QUIET) +-if(${RUN_HIT} EQUAL 0) +- execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/bin" "${HIP_ROOT_DIR}/bin" RESULT_VARIABLE RUN_HIT ERROR_QUIET) +-endif() +-if(${RUN_HIT} EQUAL 0) +- set(CMAKE_MODULE_PATH "${HIP_ROOT_DIR}/cmake" ${CMAKE_MODULE_PATH}) +- include(${HIP_SRC_PATH}/tests/hit/HIT.cmake) +- include(${HIP_SRC_PATH}/tests/Tests.cmake) +-else() +- message(STATUS "Testing targets will not be available. To enable them please ensure that the HIP installation directory is writeable. Use -DCMAKE_INSTALL_PREFIX to specify a suitable location") +-endif() + + ############################# + # Code analysis +-- +2.25.1 + diff --git a/var/spack/repos/builtin/packages/hip/Add_missing_open_cl_header_file_for_4.3.0.patch b/var/spack/repos/builtin/packages/hip/Add_missing_open_cl_header_file_for_4.3.0.patch new file mode 100644 index 00000000000..236d591c51a --- /dev/null +++ b/var/spack/repos/builtin/packages/hip/Add_missing_open_cl_header_file_for_4.3.0.patch @@ -0,0 +1,125 @@ +diff --git a/amdocl/cl_vk_amd.hpp b/amdocl/cl_vk_amd.hpp +new file mode 100644 +index 0000000..8b6212b +--- /dev/null ++++ b/amdocl/cl_vk_amd.hpp +@@ -0,0 +1,119 @@ ++/* Copyright (c) 2010-present Advanced Micro Devices, Inc. ++ ++Permission is hereby granted, free of charge, to any person obtaining a copy ++of this software and associated documentation files (the "Software"), to deal ++in the Software without restriction, including without limitation the rights ++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++copies of the Software, and to permit persons to whom the Software is ++furnished to do so, subject to the following conditions: ++ ++The above copyright notice and this permission notice shall be included in ++all copies or substantial portions of the Software. ++ ++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN ++THE SOFTWARE. */ ++ ++#pragma once ++ ++#include "platform/context.hpp" ++#include "platform/memory.hpp" ++ ++namespace amd ++{ ++ class VkObject : public InteropObject ++ { ++ protected: ++ amd::Os::FileDesc handleVk_; ++ ++ public: ++ //! GLObject constructor initializes member variables ++ VkObject( ++ amd::Os::FileDesc handle ++ ) // Initialization of member variables ++ ++ { ++ handleVk_ = handle; ++ } ++ ++ virtual ~VkObject() {} ++ VkObject* asVkObject() { return this; } ++ amd::Os::FileDesc getVkSharedHandle() const { return handleVk_; } ++ ++ ++ }; ++ ++ class BufferVk : public Buffer, public VkObject ++ { ++ protected: ++ //! Initializes the device memory array which is nested ++ // after'BufferVk' object in memory layout. ++ void initDeviceMemory() { ++ deviceMemories_ = ++ reinterpret_cast(reinterpret_cast(this) + sizeof(BufferVk)); ++ memset(deviceMemories_, 0, context_().devices().size() * sizeof(DeviceMemory)); ++ } ++ public: ++ //! BufferVk constructor just calls constructors of base classes ++ //! to pass down the parameters ++ BufferVk( ++ Context& amdContext, ++ size_t uiSizeInBytes, ++ amd::Os::FileDesc handle) ++ : // Call base classes constructors ++ Buffer( ++ amdContext, ++ 0, ++ uiSizeInBytes ++ ), ++ VkObject( ++ handle ++ ) ++ { ++ setInteropObj(this); ++ } ++ virtual ~BufferVk() {} ++ ++ BufferVk* asBufferVk() { return this; } ++ }; ++ ++ // to be modified once image requirments are known, for now, implement like buffer ++ ++ class ImageVk : public Buffer, public VkObject ++ { ++ protected: ++ //! Initializes the device memory array which is nested ++ // after'ImageVk' object in memory layout. ++ void initDeviceMemory() { ++ deviceMemories_ = ++ reinterpret_cast(reinterpret_cast(this) + sizeof(ImageVk)); ++ memset(deviceMemories_, 0, context_().devices().size() * sizeof(DeviceMemory)); ++ } ++ public: ++ //! ImageVk constructor just calls constructors of base classes ++ //! to pass down the parameters ++ ImageVk( ++ Context& amdContext, ++ size_t uiSizeInBytes, ++ amd::Os::FileDesc handle) ++ : // Call base classes constructors ++ Buffer( ++ amdContext, ++ 0, ++ uiSizeInBytes ++ ), ++ VkObject( ++ handle ++ ) ++ { ++ setInteropObj(this); ++ } ++ virtual ~ImageVk() {} ++ ++ ImageVk* asImageVk() { return this; } ++ }; ++} diff --git a/var/spack/repos/builtin/packages/hip/package.py b/var/spack/repos/builtin/packages/hip/package.py index 2343c4d6028..491b537e191 100644 --- a/var/spack/repos/builtin/packages/hip/package.py +++ b/var/spack/repos/builtin/packages/hip/package.py @@ -16,10 +16,11 @@ class Hip(CMakePackage): homepage = "https://github.com/ROCm-Developer-Tools/HIP" git = "https://github.com/ROCm-Developer-Tools/HIP.git" - url = "https://github.com/ROCm-Developer-Tools/HIP/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCm-Developer-Tools/HIP/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie'] - + version('master', branch='master') + version('4.3.0', sha256='293b5025b5e153f2f25e465a2e0006a2b4606db7b7ec2ae449f8a4c0b52d491b') version('4.2.0', sha256='ecb929e0fc2eaaf7bbd16a1446a876a15baf72419c723734f456ee62e70b4c24') version('4.1.0', sha256='e21c10b62868ece7aa3c8413ec0921245612d16d86d81fe61797bf9a64bc37eb') version('4.0.0', sha256='d7b78d96cec67c55b74ea3811ce861b16d300410bc687d0629e82392e8d7c857') @@ -34,7 +35,7 @@ class Hip(CMakePackage): depends_on('mesa18~llvm@18.3:') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('hip-rocclr@' + ver, when='@' + ver) depends_on('hsakmt-roct@' + ver, when='@' + ver) depends_on('hsa-rocr-dev@' + ver, when='@' + ver) @@ -63,10 +64,20 @@ class Hip(CMakePackage): patch('0003-Improve-compilation-without-git-repo.3.10.0.patch', when='@3.10.0:4.0.0') patch('0003-Improve-compilation-without-git-repo.4.1.0.patch', when='@4.1.0') patch('0003-Improve-compilation-without-git-repo-and-remove-compiler-rt-linkage-for-host.4.2.0.patch', when='@4.2.0') + # See https://github.com/ROCm-Developer-Tools/HIP/pull/2219 patch('0004-Drop-clang-rt-builtins-linking-on-hip-host.3.7.0.patch', when='@3.7.0:3.9.0') patch('0004-Drop-clang-rt-builtins-linking-on-hip-host.3.10.0.patch', when='@3.10.0:4.1.0') + # Tests are broken when using cmake 3.21 + with when('^cmake@3.21:'): + patch('0005-Disable-tests-3.5.0.patch', when='@3.5.0') + patch('0005-Disable-tests-3.6.0.patch', when='@3.6.0:3.8.0') + patch('0005-Disable-tests-3.9.0.patch', when='@3.9.0:4.0.0') + patch('0005-Disable-tests-4.1.0.patch', when='@4.1.0:') + + patch('Add_missing_open_cl_header_file_for_4.3.0.patch', when='@4.3.0') + def get_paths(self): if self.spec.external: # For external packages we only assume the `hip` prefix is known, diff --git a/var/spack/repos/builtin/packages/hipblas/package.py b/var/spack/repos/builtin/packages/hipblas/package.py index c5d77e3fdd3..4836e47699b 100644 --- a/var/spack/repos/builtin/packages/hipblas/package.py +++ b/var/spack/repos/builtin/packages/hipblas/package.py @@ -12,8 +12,9 @@ class Hipblas(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/hipBLAS" git = "https://github.com/ROCmSoftwarePlatform/hipBLAS.git" - url = "https://github.com/ROCmSoftwarePlatform/hipBLAS/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/hipBLAS/archive/rocm-4.3.0.tar.gz" + version('4.3.0', sha256='0631e21c588794ea1c8413ef8ff293606bcf7a52c0c3ff88da824f103395a76a') version('4.2.0', sha256='c7ce7f69c7596b5a54e666fb1373ef41d1f896dd29260a691e2eadfa863e2b1a') version('4.1.0', sha256='876efe80a4109ad53d290d2921b3fb425b4cb857b32920819f10dcd4deee4ef8') version('4.0.0', sha256='6cc03af891b36cce8266d32ba8dfcf7fdfcc18afa7a6cc058fbe28bcf8528d94') @@ -26,14 +27,17 @@ class Hipblas(CMakePackage): maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie'] for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('hip@' + ver, when='@' + ver) depends_on('rocsolver@' + ver, when='@' + ver) depends_on('rocblas@' + ver, type='link', when='@' + ver) depends_on('comgr@' + ver, type='build', when='@' + ver) + depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) def cmake_args(self): args = [ + # Make sure find_package(HIP) finds the module. + self.define('CMAKE_MODULE_PATH', self.spec['hip'].prefix.cmake), self.define('BUILD_CLIENTS_SAMPLES', 'OFF'), self.define('BUILD_CLIENTS_TESTS', 'OFF') ] @@ -42,10 +46,12 @@ def cmake_args(self): # installed... if self.spec.satisfies('@:3.9.0'): args.append(self.define('TRY_CUDA', 'OFF')) - else: args.append(self.define('USE_CUDA', 'OFF')) + if self.spec.satisfies('^cmake@3.21:'): + args.append(self.define('__skip_rocmclang', 'ON')) + return args def setup_build_environment(self, env): diff --git a/var/spack/repos/builtin/packages/hipcub/package.py b/var/spack/repos/builtin/packages/hipcub/package.py index 33c593b8449..7335524740a 100644 --- a/var/spack/repos/builtin/packages/hipcub/package.py +++ b/var/spack/repos/builtin/packages/hipcub/package.py @@ -11,10 +11,11 @@ class Hipcub(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/hipCUB" git = "https://github.com/ROCmSoftwarePlatform/hipCUB.git" - url = "https://github.com/ROCmSoftwarePlatform/hipCUB/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/hipCUB/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='733499a8d55e2d73bf874d43a98ee7425e4325f77e03fb0c80debf36c740cb70') version('4.2.0', sha256='56b50e185b7cdf4615d2f56d3a4e86fe76f885e9ad04845f3d0671afcb315c69') version('4.1.0', sha256='6d33cc371b9a5ac9c0ab9853bac736f6cea0d2192f4dc9e6d8175d207ee4b4f2') version('4.0.0', sha256='656bd6ec547810fd74bcebba41453e6e729f3fdb7346f5564ab71fc0346c3fb5') @@ -30,18 +31,20 @@ class Hipcub(CMakePackage): depends_on('numactl', type='link', when='@3.7.0:') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('hip@' + ver, when='@' + ver) depends_on('rocprim@' + ver, when='@' + ver) depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) - for ver in ['4.1.0', '4.2.0']: - depends_on('hip-rocclr@' + ver, when='@' + ver) - def setup_build_environment(self, env): env.set('CXX', self.spec['hip'].hipcc) def cmake_args(self): - return [ + args = [ self.define('CMAKE_MODULE_PATH', self.spec['hip'].prefix.cmake) ] + + if self.spec.satisfies('^cmake@3.21:'): + args.append(self.define('__skip_rocmclang', 'ON')) + + return args diff --git a/var/spack/repos/builtin/packages/hipfft/package.py b/var/spack/repos/builtin/packages/hipfft/package.py index f5da6e596fd..69f9514edc8 100644 --- a/var/spack/repos/builtin/packages/hipfft/package.py +++ b/var/spack/repos/builtin/packages/hipfft/package.py @@ -16,26 +16,34 @@ class Hipfft(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/hipFFT" git = "https://github.com/ROCmSoftwarePlatform/hipFFT.git" - url = "https://github.com/ROCmSoftwarePlatform/hipfft/archive/rocm-4.1.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/hipfft/archive/rocm-4.3.0.tar.gz" maintainers = ['arjun-raj-kuppala', 'srekolam'] version('master', branch='master') + version('4.3.0', sha256='6e52e0eb5b2a13adaf317fe5b20b3e059589aabf2af87e4c67cb1022b861ba84') version('4.2.0', sha256='74253b0d92feff55ebb39b3fe4a22a6454160a60bdad37384aa5340fd8843f8a') version('4.1.0', sha256='885ffd4813f2c271150f1b8b386f0af775b38fc82b96ce6fd94eb4ba0c0180be') depends_on('cmake@3:', type='build') - for ver in ['4.1.0', '4.2.0']: + for ver in ['4.1.0', '4.2.0', '4.3.0']: depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) depends_on('hip@' + ver, when='@' + ver) - depends_on('hip-rocclr@' + ver, when='@' + ver) depends_on('rocfft@' + ver, when='@' + ver) def setup_build_environment(self, env): env.set('CXX', self.spec['hip'].hipcc) def cmake_args(self): - args = ['-DBUILD_CLIENTS_SAMPLES=OFF'] + args = [ + # Make sure find_package(HIP) finds the module. + self.define('CMAKE_MODULE_PATH', self.spec['hip'].prefix.cmake), + self.define('BUILD_CLIENTS_SAMPLES', 'OFF') + ] + + if self.spec.satisfies('^cmake@3.21:'): + args.append(self.define('__skip_rocmclang', 'ON')) + return args diff --git a/var/spack/repos/builtin/packages/hipfort/package.py b/var/spack/repos/builtin/packages/hipfort/package.py index e5bfc2afc4a..fc4a5485470 100644 --- a/var/spack/repos/builtin/packages/hipfort/package.py +++ b/var/spack/repos/builtin/packages/hipfort/package.py @@ -11,10 +11,11 @@ class Hipfort(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/hipfort" git = "https://github.com/ROCmSoftwarePlatform/hipfort.git" - url = "https://github.com/ROCmSoftwarePlatform/hipfort/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/hipfort/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='fd0ffdafdc17ac42c7dae3f89991651f15affdef9b2354da05c7493d09d8974e') version('4.2.0', sha256='b411cb32bf87927eba4c5573b412c56d75d15165e2f1c8ac5ac18e624ed3a4b4') version('4.1.0', sha256='2d335ae068d0cbb480575de7d3ea4868362af32cb195f911ee1aeced499f3974') version('4.0.0', sha256='a497645c33e0eff39abd5344756de63424733cde2837b7376c924b44ed5ae9c9') @@ -26,9 +27,18 @@ class Hipfort(CMakePackage): depends_on('cmake@3:', type='build') - for ver in ['3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0']: + for ver in ['3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0', + '4.3.0']: depends_on('hip@' + ver, type='build', when='@' + ver) depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) def setup_build_environment(self, env): env.set('CXX', self.spec['hip'].hipcc) + + def cmake_args(self): + args = [] + + if self.spec.satisfies('^cmake@3.21:'): + args.append(self.define('__skip_rocmclang', 'ON')) + + return args diff --git a/var/spack/repos/builtin/packages/hipify-clang/package.py b/var/spack/repos/builtin/packages/hipify-clang/package.py index 129fe1e26be..b4277529398 100644 --- a/var/spack/repos/builtin/packages/hipify-clang/package.py +++ b/var/spack/repos/builtin/packages/hipify-clang/package.py @@ -12,11 +12,12 @@ class HipifyClang(CMakePackage): homepage = "https://github.com/ROCm-Developer-Tools/HIPIFY" git = "https://github.com/ROCm-Developer-Tools/HIPIFY.git" - url = "https://github.com/ROCm-Developer-Tools/HIPIFY/archive/rocm-4.1.0.tar.gz" + url = "https://github.com/ROCm-Developer-Tools/HIPIFY/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] version('master', branch='master') + version('4.3.0', sha256='182b336a994e3de0dfbce935dc35091388d18a29e3cfdadb2ab7da8a2dc121a2') version('4.2.0', sha256='afdc82ae00e14e8e742be6cd47d8fb120d18fc52fe96cba8d8ac4c56176a432e') version('4.1.0', sha256='ec9cc410167b6ab31706742f3d7a77dbd29eb548e7371134b3aace8597665475') version('4.0.0', sha256='9d3906d606fca2bcb58f5f2a70cc4b9e298ca0e12a84ee5f18e42b7df97b38a4') @@ -30,5 +31,5 @@ class HipifyClang(CMakePackage): depends_on('cmake@3.5:', type='build') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0', 'master']: + '4.2.0', '4.3.0', 'master']: depends_on('llvm-amdgpu@' + ver, when='@' + ver) diff --git a/var/spack/repos/builtin/packages/hipsparse/package.py b/var/spack/repos/builtin/packages/hipsparse/package.py index efd4ef4f3f3..c939b686edc 100644 --- a/var/spack/repos/builtin/packages/hipsparse/package.py +++ b/var/spack/repos/builtin/packages/hipsparse/package.py @@ -12,10 +12,11 @@ class Hipsparse(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/hipSPARSE" git = "https://github.com/ROCmSoftwarePlatform/hipSPARSE.git" - url = "https://github.com/ROCmSoftwarePlatform/hipSPARSE/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/hipSPARSE/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie'] + version('4.3.0', sha256='194fbd589ce34471f3255f71ea5fca2d27bee47a464558a86d0713b4d26237ea') version('4.2.0', sha256='cdedf3766c10200d3ebabe86cbb9c0fe6504e4b3317dccca289327d7c189bb3f') version('4.1.0', sha256='66710c390489922f0bd1ac38fd8c32fcfb5b7760b92c2d282f7d1abf214742ee') version('4.0.0', sha256='fc3736b2ea203209021616b2ffbcdd664781d692b07b8e8bb7f78b42dabbd5e5') @@ -29,26 +30,30 @@ class Hipsparse(CMakePackage): depends_on('git', type='build') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) depends_on('hip@' + ver, when='@' + ver) depends_on('rocsparse@' + ver, when='@' + ver) - for ver in ['3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0']: + for ver in ['3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0', '4.3.0']: depends_on('rocprim@' + ver, when='@' + ver) - for ver in ['4.1.0', '4.2.0']: - depends_on('hip-rocclr@' + ver, when='@' + ver) - patch('e79985dccde22d826aceb3badfc643a3227979d2.patch', when='@3.5.0') patch('530047af4a0f437dafc02f76b3a17e3b1536c7ec.patch', when='@3.5.0') def cmake_args(self): - return [ + args = [ + # Make sure find_package(HIP) finds the module. + self.define('CMAKE_MODULE_PATH', self.spec['hip'].prefix.cmake), self.define('CMAKE_CXX_STANDARD', '14'), self.define('BUILD_CLIENTS_SAMPLES', 'OFF'), self.define('BUILD_CLIENTS_TESTS', 'OFF'), ] + if self.spec.satisfies('^cmake@3.21:'): + args.append(self.define('__skip_rocmclang', 'ON')) + + return args + def setup_build_environment(self, env): env.set('CXX', self.spec['hip'].hipcc) diff --git a/var/spack/repos/builtin/packages/hoomd-blue/package.py b/var/spack/repos/builtin/packages/hoomd-blue/package.py index 98c7c0282d6..5a44ea66470 100644 --- a/var/spack/repos/builtin/packages/hoomd-blue/package.py +++ b/var/spack/repos/builtin/packages/hoomd-blue/package.py @@ -18,7 +18,7 @@ class HoomdBlue(CMakePackage): to create custom initialization routines, control simulation parameters, and perform in situ analysis.""" - homepage = "http://glotzerlab.engin.umich.edu/hoomd-blue/" + homepage = "https://glotzerlab.engin.umich.edu/hoomd-blue/" git = "https://bitbucket.org/glotzer/hoomd-blue.git" version('develop', submodules=True) diff --git a/var/spack/repos/builtin/packages/hpcc/package.py b/var/spack/repos/builtin/packages/hpcc/package.py index 792cb29a094..90cb7680580 100644 --- a/var/spack/repos/builtin/packages/hpcc/package.py +++ b/var/spack/repos/builtin/packages/hpcc/package.py @@ -33,7 +33,7 @@ class Hpcc(MakefilePackage): latency and bandwidth of a number of simultaneous communication patterns; based on b_eff (effective bandwidth benchmark).""" - homepage = "http://icl.cs.utk.edu/hpcc" + homepage = "https://icl.cs.utk.edu/hpcc" url = "http://icl.cs.utk.edu/projectsfiles/hpcc/download/hpcc-1.5.0.tar.gz" git = "https://github.com/icl-utk-edu/hpcc.git" diff --git a/var/spack/repos/builtin/packages/hpddm/package.py b/var/spack/repos/builtin/packages/hpddm/package.py new file mode 100644 index 00000000000..f2b67947771 --- /dev/null +++ b/var/spack/repos/builtin/packages/hpddm/package.py @@ -0,0 +1,75 @@ +# Copyright 2013-2021 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 import * + + +class Hpddm(Package): + """High-performance unified framework for domain decomposition methods.""" + + homepage = "https://github.com/hpddm/hpddm" + url = "https://github.com/hpddm/hpddm" + git = "https://github.com/hpddm/hpddm.git" + + maintainers = ['corentin-dev'] + + version('main', branch='main') + version('2.1.2', commit='e58205623814f59bf2aec2e2bab8eafcfbd22466') + + depends_on('mpi') + depends_on('blas') + depends_on('lapack') + depends_on('mumps') + depends_on('hypre') + depends_on('scalapack') + depends_on('arpack-ng') + depends_on('python') + + def configure(self): + makefile_inc = [] + # cflags = [ + makefile_inc.append('SOLVER ?= MUMPS') + makefile_inc.append('SUBSOLVER ?= MUMPS') + makefile_inc.append('EIGENSOLVER ?= ARPACK') + makefile_inc.append('MPICXX ?= mpic++') + makefile_inc.append('MPICC ?= mpicc') + makefile_inc.append('MPIF90 ?= mpif90') + makefile_inc.append('MPIRUN ?= mpirun -np') + + makefile_inc.append('override CXXFLAGS += -std=c++11 -O3 -fPIC') + makefile_inc.append('override CFLAGS += -std=c99 -O3') + makefile_inc.append('INCS =') + makefile_inc.append('LIBS =') + + makefile_inc.append("HPDDMFLAGS ?= -DHPDM_NUMBERING=\'C\'") + + makefile_inc.append('MUMPS_INCS = ') + makefile_inc.append('PYTHON_INCS = ') + makefile_inc.append('BLAS_LIBS = -lopenblas') + makefile_inc.append('ARPACK_LIBS = -larpack') + makefile_inc.append('SCALAPACK_LIBS = -lscalapack') + makefile_inc.append(' '.join([ + 'MUMPS_LIBS', '=', + '-lcmumps', + '-ldmumps', + '-lsmumps', + '-lzmumps', + '-lmumps_common', + '-lpord', + '-fopenmp'])) + makefile_inc.append('HYPRE_LIBS = -lHYPRE') + makefile_inc.append('PYTHON_LIBS = -lpython3') + + with working_dir('.'): + with open('Makefile.inc', 'w') as fh: + fh.write('\n'.join(makefile_inc)) + + def patch(self): + self.configure() + + def install(self, spec, prefix): + make() + install_tree('include', prefix.include) + # make('install') diff --git a/var/spack/repos/builtin/packages/hpl/package.py b/var/spack/repos/builtin/packages/hpl/package.py index 5d914140a9d..30d236fc27a 100644 --- a/var/spack/repos/builtin/packages/hpl/package.py +++ b/var/spack/repos/builtin/packages/hpl/package.py @@ -15,7 +15,7 @@ class Hpl(AutotoolsPackage): It can thus be regarded as a portable as well as freely available implementation of the High Performance Computing Linpack Benchmark.""" - homepage = "http://www.netlib.org/benchmark/hpl/" + homepage = "https://www.netlib.org/benchmark/hpl/" url = "http://www.netlib.org/benchmark/hpl/hpl-2.2.tar.gz" # Note: HPL uses autotools starting with 2.3 diff --git a/var/spack/repos/builtin/packages/hpx/package.py b/var/spack/repos/builtin/packages/hpx/package.py index 0269a4b47b6..8643f735f64 100644 --- a/var/spack/repos/builtin/packages/hpx/package.py +++ b/var/spack/repos/builtin/packages/hpx/package.py @@ -18,6 +18,7 @@ class Hpx(CMakePackage, CudaPackage): version('master', git='https://github.com/STEllAR-GROUP/hpx.git', branch='master') version('stable', git='https://github.com/STEllAR-GROUP/hpx.git', tag='stable') + version('1.7.1', sha256='008a0335def3c551cba31452eda035d7e914e3e4f77eec679eea070ac71bd83b') version('1.7.0', sha256='05099b860410aa5d8a10d6915b1a8818733aa1aa2d5f2b9774730ca7e6de5fac') version('1.6.0', sha256='4ab715613c1e1808edc93451781cc9bc98feec4e422ccd4322858a680f6d9017') version('1.5.1', sha256='b2f9358ce2a9446b9d8fb1998c30913e7199b007aa82e46d0aa05c763331c635') diff --git a/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py b/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py index ba570b766e1..c5004e7427c 100644 --- a/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py +++ b/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py @@ -20,6 +20,7 @@ class HsaRocrDev(CMakePackage): maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie'] version('master', branch='master') + version('4.3.0', sha256='2a08657a517971447fc233cb2c8ee2e117c6ab5efc31af147b28b3ef59b3847d') version('4.2.0', sha256='fa0e7bcd64e97cbff7c39c9e87c84a49d2184dc977b341794770805ec3f896cc') version('4.1.0', sha256='c223a5f7ccac280520abb6ea49fdd36fa9468718098a9d984be6ef839ccbc6db') version('4.0.0', sha256='e84c48e80ea38698a5bd5da3940048ad3cab3696d10a53132acad07ca357f17c') @@ -41,7 +42,7 @@ class HsaRocrDev(CMakePackage): depends_on('libelf@0.8:', type='link') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0', 'master']: + '4.2.0', '4.3.0', 'master']: depends_on('hsakmt-roct@' + ver, when='@' + ver) depends_on('llvm-amdgpu@' + ver, when='@' + ver) # allow standalone rocm-device-libs (useful for aomp) diff --git a/var/spack/repos/builtin/packages/hsakmt-roct/package.py b/var/spack/repos/builtin/packages/hsakmt-roct/package.py index a46e9f767e3..a0601be0272 100644 --- a/var/spack/repos/builtin/packages/hsakmt-roct/package.py +++ b/var/spack/repos/builtin/packages/hsakmt-roct/package.py @@ -14,11 +14,12 @@ class HsakmtRoct(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface" git = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface.git" - url = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] version('master', branch='master') + version('4.3.0', sha256='1ef5fe687bc23ffda17841fe354c1fb94e9aaf276ca9e5757488852f9066f231') version('4.2.0', sha256='cc325d4b9a96062f2ad0515fce724a8c64ba56a7d7f1ac4a0753941b8599c52e') version('4.1.0', sha256='8443ed5907a7ba9ad4003a49d90ff7b8886e1b2a5e90f14e4035765a7f64d7ca') version('4.0.0', sha256='a6960fffc8388731ee18953faae12d1449c582e3b3594418845a544455895f42') diff --git a/var/spack/repos/builtin/packages/httpd/package.py b/var/spack/repos/builtin/packages/httpd/package.py index 5b5a2e28f37..bdc405ab79c 100644 --- a/var/spack/repos/builtin/packages/httpd/package.py +++ b/var/spack/repos/builtin/packages/httpd/package.py @@ -10,7 +10,7 @@ class Httpd(AutotoolsPackage): """The Apache HTTP Server is a powerful and flexible HTTP/1.1 compliant web server.""" - homepage = "http://httpd.apache.org/" + homepage = "https://httpd.apache.org/" url = "http://archive.apache.org/dist/httpd/httpd-2.4.43.tar.bz2" version('2.4.43', sha256='a497652ab3fc81318cdc2a203090a999150d86461acff97c1065dc910fe10f43') diff --git a/var/spack/repos/builtin/packages/httping/package.py b/var/spack/repos/builtin/packages/httping/package.py index cd93ef81e6f..5b8668f095f 100644 --- a/var/spack/repos/builtin/packages/httping/package.py +++ b/var/spack/repos/builtin/packages/httping/package.py @@ -14,7 +14,7 @@ class Httping(AutotoolsPackage): the latency. of the webserver + network. It supports, of course, IPv6. httping was analyzed by Coverity Scan for software defects. """ - homepage = "http://www.vanheusden.com/httping/" + homepage = "https://www.vanheusden.com/httping/" url = "https://github.com/flok99/httping/archive/2.5.tar.gz" version('2.5', sha256='2ad423097fa7a0d2d20a387050e34374326a703dddce897e152a8341e47ea500') diff --git a/var/spack/repos/builtin/packages/hunspell/package.py b/var/spack/repos/builtin/packages/hunspell/package.py index bd9060f5e8c..7827cd96939 100644 --- a/var/spack/repos/builtin/packages/hunspell/package.py +++ b/var/spack/repos/builtin/packages/hunspell/package.py @@ -9,7 +9,7 @@ class Hunspell(AutotoolsPackage): """The most popular spellchecking library (sez the author...).""" - homepage = "http://hunspell.github.io/" + homepage = "https://hunspell.github.io/" url = "https://github.com/hunspell/hunspell/archive/v1.6.0.tar.gz" version('1.7.0', sha256='bb27b86eb910a8285407cf3ca33b62643a02798cf2eef468c0a74f6c3ee6bc8a') diff --git a/var/spack/repos/builtin/packages/hwloc/package.py b/var/spack/repos/builtin/packages/hwloc/package.py index ca59d8e922b..d3b1fe2ca80 100644 --- a/var/spack/repos/builtin/packages/hwloc/package.py +++ b/var/spack/repos/builtin/packages/hwloc/package.py @@ -21,7 +21,7 @@ class Hwloc(AutotoolsPackage): efficiently. """ - homepage = "http://www.open-mpi.org/projects/hwloc/" + homepage = "https://www.open-mpi.org/projects/hwloc/" url = "https://download.open-mpi.org/release/hwloc/v2.0/hwloc-2.0.2.tar.gz" list_url = "http://www.open-mpi.org/software/hwloc/" list_depth = 2 @@ -72,6 +72,10 @@ class Hwloc(AutotoolsPackage): default=False, description="Enable netloc [requires MPI]" ) + variant('opencl', default=False, + description="Support an OpenCL library at run time") + variant('rocm', default=False, + description="Support ROCm devices") # netloc isn't available until version 2.0.0 conflicts('+netloc', when="@:1.99.99") @@ -109,16 +113,27 @@ class Hwloc(AutotoolsPackage): # See https://github.com/spack/spack/issues/15836 for details depends_on('mpi', when='+netloc') + with when('+rocm'): + depends_on('rocm-smi-lib') + depends_on('rocm-opencl', when='+opencl') + # Avoid a circular dependency since the openmp + # variant of llvm-amdgpu depends on hwloc. + depends_on('llvm-amdgpu~openmp', when='+opencl') + def url_for_version(self, version): return "http://www.open-mpi.org/software/hwloc/v%s/downloads/hwloc-%s.tar.gz" % (version.up_to(2), version) def configure_args(self): - args = [ - # Disable OpenCL, since hwloc might pick up an OpenCL - # library at build time that is then not found at run time - # (Alternatively, we could require OpenCL as dependency.) - "--disable-opencl", - ] + args = [] + + # If OpenCL is not enabled, disable it since hwloc might + # pick up an OpenCL library at build time that is then + # not found at run time. + # The OpenCl variant allows OpenCl providers such as + # 'cuda' and 'rocm-opencl' to be used. + if '+opencl' not in self.spec: + args.append('--disable-opencl') + if '+netloc' in self.spec: args.append('--enable-netloc') diff --git a/var/spack/repos/builtin/packages/hydra/package.py b/var/spack/repos/builtin/packages/hydra/package.py index 9c502951101..70e540aa739 100644 --- a/var/spack/repos/builtin/packages/hydra/package.py +++ b/var/spack/repos/builtin/packages/hydra/package.py @@ -12,7 +12,7 @@ class Hydra(AutotoolsPackage): (such as ssh, rsh, fork), as well as natively integrate with resource management systems (such as slurm, pbs, sge).""" - homepage = "http://www.mpich.org" + homepage = "https://www.mpich.org" url = "http://www.mpich.org/static/downloads/3.2/hydra-3.2.tar.gz" list_url = "http://www.mpich.org/static/downloads/" list_depth = 1 diff --git a/var/spack/repos/builtin/packages/hydrogen/package.py b/var/spack/repos/builtin/packages/hydrogen/package.py index 61394c48180..d576f0bee3c 100644 --- a/var/spack/repos/builtin/packages/hydrogen/package.py +++ b/var/spack/repos/builtin/packages/hydrogen/package.py @@ -12,7 +12,7 @@ class Hydrogen(CMakePackage, CudaPackage, ROCmPackage): """Hydrogen: Distributed-memory dense and sparse-direct linear algebra and optimization library. Based on the Elemental library.""" - homepage = "http://libelemental.org" + homepage = "https://libelemental.org" url = "https://github.com/LLNL/Elemental/archive/v1.0.1.tar.gz" git = "https://github.com/LLNL/Elemental.git" @@ -50,8 +50,8 @@ class Hydrogen(CMakePackage, CudaPackage, ROCmPackage): variant('build_type', default='Release', description='The build type to build', values=('Debug', 'Release')) - variant('blas', default='openblas', values=('openblas', 'mkl', 'accelerate', 'essl'), - description='Enable the use of OpenBlas/MKL/Accelerate/ESSL') + variant('blas', default='openblas', values=('openblas', 'mkl', 'accelerate', 'essl', 'libsci'), + description='Enable the use of OpenBlas/MKL/Accelerate/ESSL/LibSci') variant('mpfr', default=False, description='Support GNU MPFR\'s' 'arbitrary-precision floating-point arithmetic') @@ -90,6 +90,9 @@ class Hydrogen(CMakePackage, CudaPackage, ROCmPackage): depends_on('essl threads=openmp', when='blas=essl +openmp_blas') depends_on('netlib-lapack +external-blas', when='blas=essl') + depends_on('cray-libsci', when='blas=libsci') + depends_on('cray-libsci +openmp', when='blas=libsci +openmp_blas') + # Specify the correct version of Aluminum depends_on('aluminum@:0.3.99', when='@:1.3.99 +al') depends_on('aluminum@0.4:0.4.99', when='@1.4:1.4.99 +al') @@ -97,8 +100,8 @@ class Hydrogen(CMakePackage, CudaPackage, ROCmPackage): depends_on('aluminum@0.7.0:', when='@:1.0,1.5.2: +al') # Add Aluminum variants - depends_on('aluminum +cuda +nccl +ht +cuda_rma', when='+al +cuda') - depends_on('aluminum +rocm +rccl +ht', when='+al +rocm') + depends_on('aluminum +cuda +nccl +cuda_rma', when='+al +cuda') + depends_on('aluminum +rocm +rccl', when='+al +rocm') for arch in CudaPackage.cuda_arch_values: depends_on('aluminum cuda_arch=%s' % arch, when='+al +cuda cuda_arch=%s' % arch) @@ -169,6 +172,7 @@ def cmake_args(self): if '+rocm' in spec: args.extend([ + '-DCMAKE_CXX_FLAGS=-std=c++17', '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix), '-DHIP_CXX_COMPILER={0}'.format(self.spec['hip'].hipcc)]) archs = self.spec.variants['amdgpu_target'].value @@ -177,7 +181,8 @@ def cmake_args(self): cxxflags_str = " ".join(self.spec.compiler_flags['cxxflags']) args.append( '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}' - ' -g -fsized-deallocation -fPIC {1}'.format(arch_str, cxxflags_str) + ' -g -fsized-deallocation -fPIC {1}' + ' -std=c++17'.format(arch_str, cxxflags_str) ) # Add support for OS X to find OpenMP (LLVM installed via brew) diff --git a/var/spack/repos/builtin/packages/hyphy/package.py b/var/spack/repos/builtin/packages/hyphy/package.py index 00647dc5de4..3489e7d9337 100644 --- a/var/spack/repos/builtin/packages/hyphy/package.py +++ b/var/spack/repos/builtin/packages/hyphy/package.py @@ -9,7 +9,7 @@ class Hyphy(CMakePackage): """HyPhy: Hypothesis testing using Phylogenies""" - homepage = "http://www.hyphy.org/" + homepage = "https://www.hyphy.org/" url = "https://github.com/veg/hyphy/archive/2.3.14.tar.gz" version('2.3.14', sha256='9e6c817cb649986e3fe944bcaf88be3533e7e62968b9a486c719e951e5ed1cf6') diff --git a/var/spack/repos/builtin/packages/hypre/package.py b/var/spack/repos/builtin/packages/hypre/package.py index 674cf7f98c3..3818677eaf0 100644 --- a/var/spack/repos/builtin/packages/hypre/package.py +++ b/var/spack/repos/builtin/packages/hypre/package.py @@ -14,7 +14,7 @@ class Hypre(Package, CudaPackage): features parallel multigrid methods for both structured and unstructured grid problems.""" - homepage = "http://computing.llnl.gov/project/linear_solvers/software.php" + homepage = "https://computing.llnl.gov/project/linear_solvers/software.php" url = "https://github.com/hypre-space/hypre/archive/v2.14.0.tar.gz" git = "https://github.com/hypre-space/hypre.git" @@ -41,7 +41,6 @@ class Hypre(Package, CudaPackage): version('2.11.1', sha256='6bb2ff565ff694596d0e94d0a75f0c3a2cd6715b8b7652bc71feb8698554db93') version('2.10.1', sha256='a4a9df645ebdc11e86221b794b276d1e17974887ead161d5050aaf0b43bb183a') version('2.10.0b', sha256='b55dbdc692afe5a00490d1ea1c38dd908dae244f7bdd7faaf711680059824c11') - version('xsdk-0.2.0', tag='xsdk-0.2.0', git='https://github.com/LLNL/hypre.git') # Versions 2.13.0 and later can be patched to build shared # libraries on Darwin; the patch for this capability does not diff --git a/var/spack/repos/builtin/packages/iceauth/package.py b/var/spack/repos/builtin/packages/iceauth/package.py index 18f1c5ad24d..cd206ff8d46 100644 --- a/var/spack/repos/builtin/packages/iceauth/package.py +++ b/var/spack/repos/builtin/packages/iceauth/package.py @@ -11,7 +11,7 @@ class Iceauth(AutotoolsPackage, XorgPackage): information used in connecting with ICE. It operates very much like the xauth program for X11 connection authentication records.""" - homepage = "http://cgit.freedesktop.org/xorg/app/iceauth" + homepage = "https://cgit.freedesktop.org/xorg/app/iceauth" xorg_mirror_path = "app/iceauth-1.0.7.tar.gz" version('1.0.7', sha256='6c9706cce276609876e768759ed4ee3b447cd17af4a61f9b5a374c7dda9696d8') diff --git a/var/spack/repos/builtin/packages/icedtea/package.py b/var/spack/repos/builtin/packages/icedtea/package.py index 916be5eabcb..41f5929439f 100644 --- a/var/spack/repos/builtin/packages/icedtea/package.py +++ b/var/spack/repos/builtin/packages/icedtea/package.py @@ -14,7 +14,7 @@ class Icedtea(AutotoolsPackage): of key features to the upstream OpenJDK codebase. IcedTea requires an existing IcedTea or OpenJDK install to build.""" - homepage = "http://icedtea.classpath.org/wiki/Main_Page" + homepage = "https://openjdk.java.net/projects/icedtea/" url = "http://icedtea.wildebeest.org/download/source/icedtea-3.4.0.tar.gz" version('3.9.0', sha256='84a63bc59f4e101ce8fa183060a59c7e8cbe270945310e90c92b8609a9b8bc88') diff --git a/var/spack/repos/builtin/packages/icet/package.py b/var/spack/repos/builtin/packages/icet/package.py index 95afb15c955..cdeaa267192 100644 --- a/var/spack/repos/builtin/packages/icet/package.py +++ b/var/spack/repos/builtin/packages/icet/package.py @@ -10,7 +10,7 @@ class Icet(CMakePackage): """The Image Composition Engine for Tiles (IceT) is a high-performance sort-last parallel rendering library.""" - homepage = "http://icet.sandia.gov" + homepage = "https://icet.sandia.gov" url = "https://gitlab.kitware.com/api/v4/projects/icet%2Ficet/repository/archive.tar.bz2?sha=IceT-2.1.1" git = "https://gitlab.kitware.com/icet/icet.git" diff --git a/var/spack/repos/builtin/packages/ico/package.py b/var/spack/repos/builtin/packages/ico/package.py index b9ba9c50751..0876053b855 100644 --- a/var/spack/repos/builtin/packages/ico/package.py +++ b/var/spack/repos/builtin/packages/ico/package.py @@ -12,7 +12,7 @@ class Ico(AutotoolsPackage, XorgPackage): polyhedron, with hidden lines removed, or a solid-fill polyhedron with hidden faces removed.""" - homepage = "http://cgit.freedesktop.org/xorg/app/ico" + homepage = "https://cgit.freedesktop.org/xorg/app/ico" xorg_mirror_path = "app/ico-1.0.4.tar.gz" version('1.0.4', sha256='eb8609c3b43dc2e575272f2702590525fe13229e022c4aff8b9a0cc2a3f3205d') diff --git a/var/spack/repos/builtin/packages/idba/package.py b/var/spack/repos/builtin/packages/idba/package.py index 9db9050ba46..60356c649e3 100644 --- a/var/spack/repos/builtin/packages/idba/package.py +++ b/var/spack/repos/builtin/packages/idba/package.py @@ -10,7 +10,7 @@ class Idba(AutotoolsPackage): """IDBA is a practical iterative De Bruijn Graph De Novo Assembler for sequence assembly in bioinfomatics.""" - homepage = "http://i.cs.hku.hk/~alse/hkubrg/projects/idba/" + homepage = "https://i.cs.hku.hk/~alse/hkubrg/projects/idba/" url = "https://github.com/loneknightpy/idba/archive/1.1.3.tar.gz" version('1.1.3', sha256='6b1746a29884f4fa17b110d94d9ead677ab5557c084a93b16b6a043dbb148709') diff --git a/var/spack/repos/builtin/packages/iegenlib/package.py b/var/spack/repos/builtin/packages/iegenlib/package.py index b9920ec8742..686367ad311 100644 --- a/var/spack/repos/builtin/packages/iegenlib/package.py +++ b/var/spack/repos/builtin/packages/iegenlib/package.py @@ -10,7 +10,7 @@ class Iegenlib(CMakePackage): """Inspector/Executor Generation Library for manipulating sets and relations with uninterpreted function symbols. """ - homepage = "http://github.com/CompOpt4Apps/IEGenLib" + homepage = "https://github.com/CompOpt4Apps/IEGenLib" git = "https://github.com/CompOpt4Apps/IEGenLib.git" url = "https://github.com/CompOpt4Apps/IEGenLib/archive/fc479ee6ff01dba26beffc1dc6bacdba03262138.zip" diff --git a/var/spack/repos/builtin/packages/igraph/package.py b/var/spack/repos/builtin/packages/igraph/package.py index 13a31cc7739..84b2f75fe4f 100644 --- a/var/spack/repos/builtin/packages/igraph/package.py +++ b/var/spack/repos/builtin/packages/igraph/package.py @@ -9,7 +9,7 @@ class Igraph(AutotoolsPackage): """igraph is a library for creating and manipulating graphs.""" - homepage = "http://igraph.org/" + homepage = "https://igraph.org/" url = "https://github.com/igraph/igraph/releases/download/0.7.1/igraph-0.7.1.tar.gz" version('0.7.1', sha256='d978030e27369bf698f3816ab70aa9141e9baf81c56cc4f55efbe5489b46b0df') diff --git a/var/spack/repos/builtin/packages/ilmbase/package.py b/var/spack/repos/builtin/packages/ilmbase/package.py index 940bdb41ef1..13c3f2f11b8 100644 --- a/var/spack/repos/builtin/packages/ilmbase/package.py +++ b/var/spack/repos/builtin/packages/ilmbase/package.py @@ -9,7 +9,7 @@ class Ilmbase(AutotoolsPackage): """OpenEXR ILM Base libraries (high dynamic-range image file format)""" - homepage = "http://www.openexr.com/" + homepage = "https://www.openexr.com/" url = "https://github.com/openexr/openexr/releases/download/v2.3.0/ilmbase-2.3.0.tar.gz" version('2.3.0', sha256='456978d1a978a5f823c7c675f3f36b0ae14dba36638aeaa3c4b0e784f12a3862') diff --git a/var/spack/repos/builtin/packages/imagemagick/package.py b/var/spack/repos/builtin/packages/imagemagick/package.py index 1d22842fbd2..cda59af5ebe 100644 --- a/var/spack/repos/builtin/packages/imagemagick/package.py +++ b/var/spack/repos/builtin/packages/imagemagick/package.py @@ -10,7 +10,7 @@ class Imagemagick(AutotoolsPackage): """ImageMagick is a software suite to create, edit, compose, or convert bitmap images.""" - homepage = "http://www.imagemagick.org" + homepage = "https://www.imagemagick.org" url = "https://github.com/ImageMagick/ImageMagick/archive/7.0.2-7.tar.gz" version('7.0.8-7', sha256='fadb36b59f310e9eee5249ecb2326b323a64da6cc716dd6d08ece8ea2c780b81') diff --git a/var/spack/repos/builtin/packages/imlib2/package.py b/var/spack/repos/builtin/packages/imlib2/package.py index 8d7f7ac943f..3d0156bb7e2 100644 --- a/var/spack/repos/builtin/packages/imlib2/package.py +++ b/var/spack/repos/builtin/packages/imlib2/package.py @@ -11,11 +11,13 @@ class Imlib2(AutotoolsPackage, SourceforgePackage): manipulation, arbitrary polygon support """ - homepage = "http://sourceforge.net/projects/enlightenment/" + homepage = "https://sourceforge.net/projects/enlightenment/" sourceforge_mirror_path = "enlightenment/imlib2-1.5.1.tar.bz2" maintainers = ['TheQueasle'] + version('1.7.1', sha256='033a6a639dcbc8e03f65ff05e57068e7346d50ee2f2fff304bb9095a1b2bc407') + version('1.7.0', sha256='1976ca3db48cbae79cd0fc737dabe39cc81494fc2560e1d22821e7dc9c22b37d') version('1.6.1', sha256='4d393a77e13da883c8ee2da3b029da3570210fe37d000c9ac33d9fce751b166d') version('1.6.0', sha256='cfc440ddfaed5fc85ba2572ad8d87a87cd77a5bffb33ebca882c42cefcd8691d') version('1.5.1', sha256='fa4e57452b8843f4a70f70fd435c746ae2ace813250f8c65f977db5d7914baae') @@ -28,3 +30,4 @@ class Imlib2(AutotoolsPackage, SourceforgePackage): depends_on('libpng') depends_on('libid3tag') depends_on('libjpeg-turbo') + depends_on('pkgconfig', type='build') diff --git a/var/spack/repos/builtin/packages/inputproto/package.py b/var/spack/repos/builtin/packages/inputproto/package.py index a2c3d57785c..f73303c8e3b 100644 --- a/var/spack/repos/builtin/packages/inputproto/package.py +++ b/var/spack/repos/builtin/packages/inputproto/package.py @@ -12,7 +12,7 @@ class Inputproto(AutotoolsPackage, XorgPackage): This extension defines a protocol to provide additional input devices management such as graphic tablets.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/inputproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/inputproto" xorg_mirror_path = "proto/inputproto-2.3.2.tar.gz" version('2.3.2', sha256='10eaadd531f38f7c92ab59ef0708ca195caf3164a75c4ed99f0c04f2913f6ef3') diff --git a/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py index c5e43599796..acd9e10ac27 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py @@ -11,7 +11,7 @@ class IntelOneapiCcl(IntelOneApiLibraryPackage): """Intel oneAPI CCL.""" - maintainers = ['rscohn2', 'danvev'] + maintainers = ['rscohn2'] homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/oneccl.html' diff --git a/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py b/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py index 919cb43510e..c28753dcd18 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py @@ -15,7 +15,7 @@ class IntelOneapiCompilers(IntelOneApiPackage): """Intel OneAPI compilers Provides Classic and Beta compilers for: Fortran, C, C++""" - maintainers = ['rscohn2', 'danvev'] + maintainers = ['rscohn2'] homepage = "https://software.intel.com/content/www/us/en/develop/tools/oneapi.html" diff --git a/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py b/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py index 91b9855f9de..17094fcb72a 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py @@ -12,7 +12,7 @@ class IntelOneapiDal(IntelOneApiLibraryPackage): """Intel oneAPI DAL.""" - maintainers = ['rscohn2', 'danvev'] + maintainers = ['rscohn2'] homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onedal.html' diff --git a/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py b/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py index 94d064de2f8..0412ccd770d 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py @@ -12,7 +12,7 @@ class IntelOneapiDnn(IntelOneApiLibraryPackage): """Intel oneAPI DNN.""" - maintainers = ['rscohn2', 'danvev'] + maintainers = ['rscohn2'] homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onednn.html' diff --git a/var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py index fa027629890..c583a31b827 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py @@ -12,7 +12,7 @@ class IntelOneapiDpl(IntelOneApiLibraryPackage): """Intel oneAPI DPL.""" - maintainers = ['rscohn2', 'danvev'] + maintainers = ['rscohn2'] homepage = 'https://github.com/oneapi-src/oneDPL' diff --git a/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py b/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py index 00baf88f319..85eb6793515 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py @@ -11,7 +11,7 @@ class IntelOneapiIpp(IntelOneApiLibraryPackage): """Intel oneAPI IPP.""" - maintainers = ['rscohn2', 'danvev'] + maintainers = ['rscohn2'] homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/ipp.html' diff --git a/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py b/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py index ea44573b353..f783b770a5f 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py @@ -12,7 +12,7 @@ class IntelOneapiIppcp(IntelOneApiLibraryPackage): """Intel oneAPI IPP Crypto.""" - maintainers = ['rscohn2', 'danvev'] + maintainers = ['rscohn2'] homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/ipp.html' diff --git a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py index 81ec236f587..6d9ee6dd913 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py @@ -12,7 +12,7 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage): """Intel oneAPI MKL.""" - maintainers = ['rscohn2', 'danvev'] + maintainers = ['rscohn2'] homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html' diff --git a/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py b/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py index 4a013c2b2f0..05e14018429 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py @@ -13,7 +13,7 @@ class IntelOneapiMpi(IntelOneApiLibraryPackage): """Intel oneAPI MPI.""" - maintainers = ['rscohn2', 'danvev'] + maintainers = ['rscohn2', ] homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/mpi-library.html' diff --git a/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py b/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py index c184d95aaca..d177f18e262 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py @@ -12,7 +12,7 @@ class IntelOneapiTbb(IntelOneApiLibraryPackage): """Intel oneAPI TBB.""" - maintainers = ['rscohn2', 'danvev'] + maintainers = ['rscohn2'] homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onetbb.html' diff --git a/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py index f0ab170c5b4..c1524b4b982 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py @@ -11,7 +11,7 @@ class IntelOneapiVpl(IntelOneApiLibraryPackage): """Intel oneAPI VPL.""" - maintainers = ['rscohn2', 'danvev'] + maintainers = ['rscohn2'] homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onevpl.html' diff --git a/var/spack/repos/builtin/packages/intel-oneapi-vtune/package.py b/var/spack/repos/builtin/packages/intel-oneapi-vtune/package.py new file mode 100644 index 00000000000..cf6ba649dfb --- /dev/null +++ b/var/spack/repos/builtin/packages/intel-oneapi-vtune/package.py @@ -0,0 +1,29 @@ +# Copyright 2013-2021 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 platform + +from spack import * + + +class IntelOneapiVtune(IntelOneApiPackage): + """Intel oneAPI VTune Profiler. + Installed in Perf driverless mode, detailed here: https://software.intel.com/content/www/us/en/develop/documentation/vtune-cookbook/top/configuration-recipes/profiling-hardware-without-sampling-drivers.html + Users can manually install drivers, please read the instructions here: https://software.intel.com/content/www/us/en/develop/documentation/vtune-help/top/set-up-analysis-target/linux-targets/building-and-installing-the-sampling-drivers-for-linux-targets.html + """ + + maintainers = ['rscohn2'] + + homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/vtune-profiler.html' + + if platform.system() == 'Linux': + version('2021.6.0', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18012/l_oneapi_vtune_p_2021.6.0.411_offline.sh', + sha256='6b1df7da713337aa665bcc6ff23e4a006695b5bfaf71dffd305cbadca2e5560c', + expand=False) + + @property + def component_dir(self): + return 'vtune' diff --git a/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2017.patch b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2017.patch new file mode 100644 index 00000000000..beeaa15e7cf --- /dev/null +++ b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2017.patch @@ -0,0 +1,41 @@ +diff -Naur spack-src/build/linux.gcc.inc spack-src.patched/build/linux.gcc.inc +--- spack-src/build/linux.gcc.inc 2018-03-30 11:55:05.000000000 -0400 ++++ spack-src.patched/build/linux.gcc.inc 2021-07-22 10:41:47.712124058 -0400 +@@ -27,7 +27,9 @@ + WARNING_KEY = -Wall + TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor + +-WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor ++# Skip for nvhpc compilers ++# WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor ++WARNING_SUPPRESS = + DYLIB_KEY = -shared + EXPORT_KEY = -Wl,--version-script, + LIBDL = -ldl +@@ -62,10 +64,11 @@ + + # gcc 6.0 and later have -flifetime-dse option that controls + # elimination of stores done outside the object lifetime +-ifneq (,$(shell gcc -dumpversion | egrep "^([6-9])")) +- # keep pre-contruction stores for zero initialization +- DSE_KEY = -flifetime-dse=1 +-endif ++# Skip for nvhpc compilers ++#ifneq (,$(shell gcc -dumpversion | egrep "^([6-9])")) ++# # keep pre-contruction stores for zero initialization ++# DSE_KEY = -flifetime-dse=1 ++#endif + + ifeq ($(cfg), release) + CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD +@@ -148,7 +151,9 @@ + # Setting tbbmalloc data. + #------------------------------------------------------------------------------ + +-M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions ++# Drop -fno-rtti for nvhpc compilers ++#M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions ++M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-exceptions + + #------------------------------------------------------------------------------ + # End of setting tbbmalloc data. diff --git a/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.1.patch b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.1.patch new file mode 100644 index 00000000000..d561a82de03 --- /dev/null +++ b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.1.patch @@ -0,0 +1,41 @@ +diff -Naur spack-src/build/linux.gcc.inc spack-src.patched/build/linux.gcc.inc +--- spack-src/build/linux.gcc.inc 2019-03-21 11:28:21.000000000 -0400 ++++ spack-src.patched/build/linux.gcc.inc 2021-07-28 16:02:11.714975264 -0400 +@@ -29,7 +29,9 @@ + WARNING_KEY = -Wall + TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor + +-WARNING_SUPPRESS = -Wno-parentheses ++# Skip for nvhpc compilers ++#WARNING_SUPPRESS = -Wno-parentheses ++WARNING_SUPPRESS = + DYLIB_KEY = -shared + EXPORT_KEY = -Wl,--version-script, + LIBDL = -ldl +@@ -63,10 +65,11 @@ + + # gcc 6.0 and later have -flifetime-dse option that controls + # elimination of stores done outside the object lifetime +-ifneq (,$(shell $(CONLY) -dumpversion | egrep "^([6-9])")) +- # keep pre-contruction stores for zero initialization +- DSE_KEY = -flifetime-dse=1 +-endif ++# Skip for nvhpc compilers ++#ifneq (,$(shell $(CONLY) -dumpversion | egrep "^([6-9])")) ++# # keep pre-contruction stores for zero initialization ++# DSE_KEY = -flifetime-dse=1 ++#endif + + ifeq ($(cfg), release) + CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD +@@ -149,7 +152,9 @@ + # Setting tbbmalloc data. + #------------------------------------------------------------------------------ + +-M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions ++# Drop -fno-rtti flag for nvhpc compilers ++#M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions ++M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-exceptions + + #------------------------------------------------------------------------------ + # End of setting tbbmalloc data. diff --git a/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.7.patch b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.7.patch new file mode 100644 index 00000000000..e7045f03a31 --- /dev/null +++ b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.7.patch @@ -0,0 +1,41 @@ +diff -Naur spack-src/build/linux.gcc.inc spack-src.patched/build/linux.gcc.inc +--- spack-src/build/linux.gcc.inc 2019-05-23 06:35:29.000000000 -0400 ++++ spack-src.patched/build/linux.gcc.inc 2021-07-28 16:09:17.574383383 -0400 +@@ -25,7 +25,9 @@ + WARNING_KEY = -Wall + TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor + +-WARNING_SUPPRESS = -Wno-parentheses ++# Skip for nvhpc compilers ++#WARNING_SUPPRESS = -Wno-parentheses ++WARNING_SUPPRESS = + DYLIB_KEY = -shared + EXPORT_KEY = -Wl,--version-script, + LIBDL = -ldl +@@ -59,10 +61,11 @@ + + # gcc 6.0 and later have -flifetime-dse option that controls + # elimination of stores done outside the object lifetime +-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9])")) +- # keep pre-contruction stores for zero initialization +- DSE_KEY = -flifetime-dse=1 +-endif ++# Skip for nvhpc compilers ++#ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9])")) ++# # keep pre-contruction stores for zero initialization ++# DSE_KEY = -flifetime-dse=1 ++#endif + + ifeq ($(cfg), release) + CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD +@@ -145,7 +148,9 @@ + # Setting tbbmalloc data. + #------------------------------------------------------------------------------ + +-M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions ++# Drop -fno-rtti flag for nvhpc compilers ++#M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions ++M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-exceptions + + #------------------------------------------------------------------------------ + # End of setting tbbmalloc data. diff --git a/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.9.patch b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.9.patch new file mode 100644 index 00000000000..4bc846276aa --- /dev/null +++ b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.9.patch @@ -0,0 +1,43 @@ +diff -Naur spack-src/build/linux.gcc.inc spack-src.patched/build/linux.gcc.inc +--- spack-src/build/linux.gcc.inc 2020-07-10 09:18:01.000000000 -0400 ++++ spack-src.patched/build/linux.gcc.inc 2021-07-28 15:32:43.640185318 -0400 +@@ -25,7 +25,9 @@ + WARNING_KEY = -Wall + TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor + +-WARNING_SUPPRESS = -Wno-parentheses ++# Skip for nvhpc compilers ++# WARNING_SUPPRESS = -Wno-parentheses ++WARNING_SUPPRESS = + DYLIB_KEY = -shared + EXPORT_KEY = -Wl,--version-script, + LIBDL = -ldl +@@ -57,12 +59,11 @@ + WARNING_SUPPRESS += -Wno-sized-deallocation + endif + +-# gcc 6.0 and later have -flifetime-dse option that controls +-# elimination of stores done outside the object lifetime +-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9]|1[0-9])")) +- # keep pre-contruction stores for zero initialization +- DSE_KEY = -flifetime-dse=1 +-endif ++#Skip for nvhpc compilers ++#ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9]|1[0-9])")) ++# # keep pre-contruction stores for zero initialization ++# DSE_KEY = -flifetime-dse=1 ++#endif + + ifeq ($(cfg), release) + # -g is set intentionally in the release mode. It should not affect performance. +@@ -149,7 +150,9 @@ + # Setting tbbmalloc data. + #------------------------------------------------------------------------------ + +-M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions ++# Drop -fno-rtti for nvhpc compilers ++# M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions ++M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-exceptions + + #------------------------------------------------------------------------------ + # End of setting tbbmalloc data. diff --git a/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.patch b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.patch new file mode 100644 index 00000000000..eb1ffff9a74 --- /dev/null +++ b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.patch @@ -0,0 +1,41 @@ +diff -Naur spack-src/build/linux.gcc.inc spack-src.patched/build/linux.gcc.inc +--- spack-src/build/linux.gcc.inc 2018-08-29 10:37:51.000000000 -0400 ++++ spack-src.patched/build/linux.gcc.inc 2021-07-28 15:52:03.235813820 -0400 +@@ -27,7 +27,9 @@ + WARNING_KEY = -Wall + TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor + +-WARNING_SUPPRESS = -Wno-parentheses ++# Skip for nvhpc compilers ++#WARNING_SUPPRESS = -Wno-parentheses ++WARNING_SUPPRESS = + DYLIB_KEY = -shared + EXPORT_KEY = -Wl,--version-script, + LIBDL = -ldl +@@ -63,10 +65,11 @@ + + # gcc 6.0 and later have -flifetime-dse option that controls + # elimination of stores done outside the object lifetime +-ifneq (,$(shell gcc -dumpversion | egrep "^([6-9])")) +- # keep pre-contruction stores for zero initialization +- DSE_KEY = -flifetime-dse=1 +-endif ++# Skip for nvhpc compilers ++#ifneq (,$(shell gcc -dumpversion | egrep "^([6-9])")) ++# # keep pre-contruction stores for zero initialization ++# DSE_KEY = -flifetime-dse=1 ++#endif + + ifeq ($(cfg), release) + CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD +@@ -149,7 +152,9 @@ + # Setting tbbmalloc data. + #------------------------------------------------------------------------------ + +-M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions ++# Drop -fno-rtti flag for nvhpc compilers ++#M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions ++M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-exceptions + + #------------------------------------------------------------------------------ + # End of setting tbbmalloc data. diff --git a/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-version-script-fix.2017.patch b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-version-script-fix.2017.patch new file mode 100644 index 00000000000..eb5dc47799b --- /dev/null +++ b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-version-script-fix.2017.patch @@ -0,0 +1,14 @@ +diff -Naur spack-src/build/linux.gcc.inc spack-src.patched/build/linux.gcc.inc +--- spack-src/build/linux.gcc.inc 2018-03-30 11:55:05.000000000 -0400 ++++ spack-src.patched/build/linux.gcc.inc 2021-07-22 15:58:22.876292608 -0400 +@@ -17,7 +17,9 @@ + # + + COMPILE_ONLY = -c -MMD +-PREPROC_ONLY = -E -x c++ ++# For nvc++, need --no_preincludes as well to avoid issues with ++# pre-included content interfering with version scripts, etc. ++PREPROC_ONLY = -E -x c++ --no_preincludes + INCLUDE_KEY = -I + DEFINE_KEY = -D + OUTPUT_KEY = -o # diff --git a/var/spack/repos/builtin/packages/intel-tbb/package.py b/var/spack/repos/builtin/packages/intel-tbb/package.py index 50c674543de..5c8d158e02e 100644 --- a/var/spack/repos/builtin/packages/intel-tbb/package.py +++ b/var/spack/repos/builtin/packages/intel-tbb/package.py @@ -11,19 +11,22 @@ from spack import * -class IntelTbb(Package): +class IntelTbb(CMakePackage): """Widely used C++ template library for task parallelism. Intel Threading Building Blocks (Intel TBB) lets you easily write parallel C++ programs that take full advantage of multicore performance, that are portable and composable, and that have future-proof scalability. """ - homepage = "http://www.threadingbuildingblocks.org/" + homepage = "https://www.threadingbuildingblocks.org/" url_prefix = 'https://github.com/oneapi-src/oneTBB/' url = url_prefix + 'archive/v2020.1.tar.gz' # Note: when adding new versions, please check and update the # patches, filters and url_for_version() below as needed. + version('2021.3.0', sha256='8f616561603695bbb83871875d2c6051ea28f8187dbe59299961369904d1d49e') + version('2021.2.0', sha256='cee20b0a71d977416f3e3b4ec643ee4f38cedeb2a9ff015303431dd9d8d79854') + version('2021.1.1', sha256='b182c73caaaabc44ddc5ad13113aca7e453af73c1690e4061f71dfe4935d74e8') version('2020.3', sha256='ebc4f6aa47972daed1f7bf71d100ae5bf6931c2e3144cf299c8cc7d041dca2f3', preferred=True) version('2020.2', sha256='4804320e1e6cbe3a5421997b52199e3c1a3829b2ecb6489641da4b8e32faf500') @@ -97,7 +100,9 @@ class IntelTbb(Package): # Build and install CMake config files if we're new enough. # CMake support started in 2017.7. - depends_on('cmake@3.0.0:', type='build', when='@2017.7:') + depends_on('cmake@3.1.0:', type='build', when='@2017.7:') + + depends_on('hwloc', when='@2021.1.1:') # Patch for pedantic warnings (#10836). This was fixed in the TBB # source tree in 2019.6. @@ -120,6 +125,27 @@ class IntelTbb(Package): # https://github.com/oneapi-src/oneTBB/commit/86f6dcdc17a8f5ef2382faaef860cfa5243984fe.patch?full_index=1 patch("macos-arm64.patch", when="@:2021.0") + # Support for building with %nvhpc + # 1) remove flags nvhpc compilers do not recognize + patch("intel-tbb.nvhpc-remove-flags.2017.patch", + when="@2017:2018.9 %nvhpc") + patch("intel-tbb.nvhpc-remove-flags.2019.patch", + when="@2019:2019.0 %nvhpc") + patch("intel-tbb.nvhpc-remove-flags.2019.1.patch", + when="@2019.1:2019.6 %nvhpc") + patch("intel-tbb.nvhpc-remove-flags.2019.7.patch", + when="@2019.7:2019.8 %nvhpc") + # The 2019.9 patch below was tested successfully + # on @2019.9, @2020.0, and @2020.3 + patch("intel-tbb.nvhpc-remove-flags.2019.9.patch", + when="@2019.9: %nvhpc") + # 2) Fix generation of version script tbb.def for ld (nvc++ -E + # appears to produce more output than g++ -E which was causing problems) + # The 2017 patch below was tested on @2017, @2017.8, @2018, + # @2018.3, @2018.6, 2019, @2019.[1-9], and @2020.[0-3] + patch("intel-tbb.nvhpc-version-script-fix.2017.patch", + when="@2017 %nvhpc") + # Version and tar file names: # 2020.0 --> v2020.0.tar.gz starting with 2020 # 2017.1 --> 2017_U1.tar.gz starting with 2017 @@ -141,6 +167,7 @@ def url_for_version(self, version): def setup_build_environment(self, env): env.set('OS', platform.system()) + @when('@:2020.3') def coerce_to_spack(self, tbb_build_subdir): for compiler in ["icc", "gcc", "clang"]: fs = glob.glob(join_path(tbb_build_subdir, @@ -158,7 +185,16 @@ def coerce_to_spack(self, tbb_build_subdir): else: of.write(lin) - def install(self, spec, prefix): + @when('@:2020.3') + def cmake(self, spec, prefix): + return + + @when('@:2020.3') + def cmake_args(self): + return + + @when('@:2020.3') + def build(self, spec, prefix): # Deactivate use of RTM with GCC when on an OS with a very old # assembler. if (spec.satisfies('%gcc@4.8.0: os=rhel6') @@ -186,9 +222,6 @@ def install(self, spec, prefix): else: tbb_compiler = "gcc" - mkdirp(prefix) - mkdirp(prefix.lib) - make_opts = [] # Static builds of TBB are enabled by including 'big_iron.inc' file @@ -208,6 +241,11 @@ def install(self, spec, prefix): make_opts.append("compiler={0}".format(tbb_compiler)) make(*make_opts) + @when('@:2020.3') + def install(self, spec, prefix): + mkdirp(prefix) + mkdirp(prefix.lib) + # install headers to {prefix}/include install_tree('include', prefix.include) @@ -233,6 +271,7 @@ def install(self, spec, prefix): with working_dir(join_path(self.stage.source_path, 'cmake')): inspect.getmodule(self).cmake(*cmake_args) + @when('@:2020.3') @run_after('install') def darwin_fix(self): # Replace @rpath in ids with full path @@ -244,3 +283,18 @@ def libs(self): shared = True if '+shared' in self.spec else False return find_libraries( 'libtbb*', root=self.prefix, shared=shared, recursive=True) + + @when('@2021.1.1:') + def cmake_args(self): + spec = self.spec + options = [] + options.append('-DCMAKE_HWLOC_2_INCLUDE_PATH=%s' % + spec['hwloc'].prefix.include) + options.append('-DCMAKE_HWLOC_2_LIBRARY_PATH=%s' % + spec['hwloc'].libs) + options.append('-DTBB_CPF=ON') + options.append('-DTBB_STRICT=OFF') + if spec.variants['cxxstd'].value != 'default': + options.append('-DCMAKE_CXX_STANDARD=%s' % + spec.variants['cxxstd'].value) + return options diff --git a/var/spack/repos/builtin/packages/iozone/package.py b/var/spack/repos/builtin/packages/iozone/package.py index 57fc601c841..8bb7ad9f63d 100644 --- a/var/spack/repos/builtin/packages/iozone/package.py +++ b/var/spack/repos/builtin/packages/iozone/package.py @@ -13,7 +13,7 @@ class Iozone(MakefilePackage): measures a variety of file operations. Iozone has been ported to many machines and runs under many operating systems.""" - homepage = "http://www.iozone.org/" + homepage = "https://www.iozone.org/" url = "http://www.iozone.org/src/current/iozone3_465.tar" version('3_491', sha256='2cc4842d382e46a585d1df9ae1e255695480dcc0fc05c3b1cb32ef3493d0ec9a') diff --git a/var/spack/repos/builtin/packages/ip/package.py b/var/spack/repos/builtin/packages/ip/package.py new file mode 100644 index 00000000000..807bbf6c6e5 --- /dev/null +++ b/var/spack/repos/builtin/packages/ip/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2021 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 import * + + +class Ip(CMakePackage): + """The NCEP general interpolation library (iplib) contains Fortran 90 + subprograms to be used for interpolating between nearly all grids used at + NCEP.""" + + homepage = "https://noaa-emc.github.io/NCEPLIBS-ip" + url = "https://github.com/NOAA-EMC/NCEPLIBS-ip/archive/refs/tags/v3.3.3.tar.gz" + + maintainers = ['t-brown'] + + version('3.3.3', sha256='d5a569ca7c8225a3ade64ef5cd68f3319bcd11f6f86eb3dba901d93842eb3633') + + depends_on('sp') diff --git a/var/spack/repos/builtin/packages/ip2/package.py b/var/spack/repos/builtin/packages/ip2/package.py new file mode 100644 index 00000000000..778c1f01bfc --- /dev/null +++ b/var/spack/repos/builtin/packages/ip2/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2021 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 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.""" + + 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'] + + version('1.1.2', sha256='73c6beec8fd463ec7ccba3633d8c5d53d385c43d507367efde918c2db0af42ab') + + depends_on('sp') diff --git a/var/spack/repos/builtin/packages/isaac-server/package.py b/var/spack/repos/builtin/packages/isaac-server/package.py index 8b9f43c516c..66fcba776f1 100644 --- a/var/spack/repos/builtin/packages/isaac-server/package.py +++ b/var/spack/repos/builtin/packages/isaac-server/package.py @@ -9,7 +9,7 @@ class IsaacServer(CMakePackage): """In Situ Animation of Accelerated Computations: Server""" - homepage = "http://computationalradiationphysics.github.io/isaac/" + homepage = "https://computationalradiationphysics.github.io/isaac/" url = "https://github.com/ComputationalRadiationPhysics/isaac/archive/v1.3.0.tar.gz" git = "https://github.com/ComputationalRadiationPhysics/isaac.git" diff --git a/var/spack/repos/builtin/packages/isaac/package.py b/var/spack/repos/builtin/packages/isaac/package.py index 26fdc4ddc04..6c8733f590e 100644 --- a/var/spack/repos/builtin/packages/isaac/package.py +++ b/var/spack/repos/builtin/packages/isaac/package.py @@ -9,7 +9,7 @@ class Isaac(CMakePackage): """In Situ Animation of Accelerated Computations: Header-Only Library""" - homepage = "http://computationalradiationphysics.github.io/isaac/" + homepage = "https://computationalradiationphysics.github.io/isaac/" url = "https://github.com/ComputationalRadiationPhysics/isaac/archive/v1.3.0.tar.gz" git = "https://github.com/ComputationalRadiationPhysics/isaac.git" diff --git a/var/spack/repos/builtin/packages/isl/package.py b/var/spack/repos/builtin/packages/isl/package.py index 6ccc856f83b..82c333dcdd1 100644 --- a/var/spack/repos/builtin/packages/isl/package.py +++ b/var/spack/repos/builtin/packages/isl/package.py @@ -10,7 +10,7 @@ class Isl(AutotoolsPackage): """isl (Integer Set Library) is a thread-safe C library for manipulating sets and relations of integer points bounded by affine constraints.""" - homepage = "http://isl.gforge.inria.fr" + homepage = "https://isl.gforge.inria.fr" url = "http://isl.gforge.inria.fr/isl-0.21.tar.bz2" version('0.21', sha256='d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859') diff --git a/var/spack/repos/builtin/packages/ispc/package.py b/var/spack/repos/builtin/packages/ispc/package.py index 160eb8be23c..2bfbab8abaa 100644 --- a/var/spack/repos/builtin/packages/ispc/package.py +++ b/var/spack/repos/builtin/packages/ispc/package.py @@ -26,6 +26,8 @@ class Ispc(CMakePackage): executables = ['^ispc$'] version('master', branch='master') + version('1.16.1', sha256='b32dbd374eea5f1b5f535bfd79c5cc35591c0df2e7bf1f86dec96b74e4ebf661') + version('1.16.0', sha256='12db1a90046b51752a65f50426e1d99051c6d55e30796ddd079f7bc97d5f6faf') version('1.15.0', sha256='3b634aaa10c9bf0e82505d1af69cb307a3a00182d57eae019680ccfa62338af9') version('1.14.1', sha256='ca12f26dafbc4ef9605487d03a2156331c1351a4ffefc9bab4d896a466880794') version('1.14.0', sha256='1ed72542f56738c632bb02fb0dd56ad8aec3e2487839ebbc0def8334f305a4c7') @@ -36,9 +38,10 @@ class Ispc(CMakePackage): depends_on('flex', type='build') depends_on('ncurses', type='link') depends_on('zlib', type='link') - depends_on('llvm~libcxx') - depends_on('llvm@10:', when='@1.14:') - depends_on('llvm@10:10.999', when='@1.13:1.13.999') + depends_on('llvm+clang') + depends_on('llvm@11:', when='@1.16:') + depends_on('llvm@10:11.999', when='@1.15:1.15.999') + depends_on('llvm@10:10.999', when='@1.13:1.14.999') patch('don-t-assume-that-ncurses-zlib-are-system-libraries.patch', when='@1.14:1.14.999', diff --git a/var/spack/repos/builtin/packages/itsx/package.py b/var/spack/repos/builtin/packages/itsx/package.py index e451935f5b5..94424729601 100644 --- a/var/spack/repos/builtin/packages/itsx/package.py +++ b/var/spack/repos/builtin/packages/itsx/package.py @@ -11,7 +11,7 @@ class Itsx(Package): ribosomal ITS sequences of fungi and other eukaryotes for use in environmental sequencing""" - homepage = "http://microbiology.se/software/itsx/" + homepage = "https://microbiology.se/software/itsx/" url = "http://microbiology.se/sw/ITSx_1.0.11.tar.gz" version('1.0.11', sha256='8f4f76fc9c43b61f4dd4cd8dc4e495e9687943e15515396583f7a757651d435e') diff --git a/var/spack/repos/builtin/packages/jansi/package.py b/var/spack/repos/builtin/packages/jansi/package.py index af1ee089883..7747ac6ea16 100644 --- a/var/spack/repos/builtin/packages/jansi/package.py +++ b/var/spack/repos/builtin/packages/jansi/package.py @@ -11,7 +11,7 @@ class Jansi(MavenPackage): ANSI escape codes to format your console output which works even on Windows.""" - homepage = "http://fusesource.github.io/jansi/" + homepage = "https://fusesource.github.io/jansi/" url = "https://github.com/fusesource/jansi/archive/jansi-project-1.18.tar.gz" version('1.18', sha256='73cd47ecf370a33c6e76afb5d9a8abf99489361d7bd191781dbd9b7efd082aa5') diff --git a/var/spack/repos/builtin/packages/jansson/package.py b/var/spack/repos/builtin/packages/jansson/package.py index b781d68dbec..5c80e1a605e 100644 --- a/var/spack/repos/builtin/packages/jansson/package.py +++ b/var/spack/repos/builtin/packages/jansson/package.py @@ -10,7 +10,7 @@ class Jansson(CMakePackage): """Jansson is a C library for encoding, decoding and manipulating JSON data.""" - homepage = "http://www.digip.org/jansson/" + homepage = "https://www.digip.org/jansson/" url = "https://github.com/akheron/jansson/archive/v2.9.tar.gz" maintainers = ['ax3l'] diff --git a/var/spack/repos/builtin/packages/jbigkit/package.py b/var/spack/repos/builtin/packages/jbigkit/package.py index d59712a5655..1b190036a4c 100644 --- a/var/spack/repos/builtin/packages/jbigkit/package.py +++ b/var/spack/repos/builtin/packages/jbigkit/package.py @@ -10,7 +10,7 @@ class Jbigkit(MakefilePackage): """JBIG-Kit is a software implementation of the JBIG1 data compression standard.""" - homepage = "http://www.cl.cam.ac.uk/~mgk25/jbigkit/" + homepage = "https://www.cl.cam.ac.uk/~mgk25/jbigkit/" url = "http://www.cl.cam.ac.uk/~mgk25/jbigkit/download/jbigkit-2.1.tar.gz" version('2.1', sha256='de7106b6bfaf495d6865c7dd7ac6ca1381bd12e0d81405ea81e7f2167263d932') diff --git a/var/spack/repos/builtin/packages/jchronoss/package.py b/var/spack/repos/builtin/packages/jchronoss/package.py index c91d18f27d0..2fcc062de26 100644 --- a/var/spack/repos/builtin/packages/jchronoss/package.py +++ b/var/spack/repos/builtin/packages/jchronoss/package.py @@ -11,7 +11,7 @@ class Jchronoss(CMakePackage): """ JCHRONOSS aims to help HPC application testing process to scale as much as the application does. """ - homepage = "http://jchronoss.hpcframework.com" + homepage = "https://jchronoss.hpcframework.com" url = "http://fs.paratools.com/mpc/contrib/apps/jchronoss/JCHRONOSS-1.2.tar.gz" version('1.2', sha256='52a565a28c0b83b433065060863d29f2b3e4b05f4f26b7a5893a21a2c66d6eba') diff --git a/var/spack/repos/builtin/packages/jdk/package.py b/var/spack/repos/builtin/packages/jdk/package.py index a2bdafa5f80..1f8cb534992 100644 --- a/var/spack/repos/builtin/packages/jdk/package.py +++ b/var/spack/repos/builtin/packages/jdk/package.py @@ -16,7 +16,7 @@ class Jdk(Package): form of a binary product aimed at Java developers. Includes a complete JRE plus tools for developing, debugging, and monitoring Java applications.""" - homepage = "http://www.oracle.com/technetwork/java/javase/downloads/index.html" + homepage = "https://www.oracle.com/technetwork/java/javase/downloads/index.html" maintainers = ['justintoo'] diff --git a/var/spack/repos/builtin/packages/jellyfish/package.py b/var/spack/repos/builtin/packages/jellyfish/package.py index 2889bfd2ad0..228aa77fa9d 100644 --- a/var/spack/repos/builtin/packages/jellyfish/package.py +++ b/var/spack/repos/builtin/packages/jellyfish/package.py @@ -10,7 +10,7 @@ class Jellyfish(AutotoolsPackage): """JELLYFISH is a tool for fast, memory-efficient counting of k-mers in DNA.""" - homepage = "http://www.cbcb.umd.edu/software/jellyfish/" + homepage = "https://www.cbcb.umd.edu/software/jellyfish/" url = "https://github.com/gmarcais/Jellyfish/releases/download/v2.2.7/jellyfish-2.2.7.tar.gz" list_url = "http://www.cbcb.umd.edu/software/jellyfish/" diff --git a/var/spack/repos/builtin/packages/jemalloc/package.py b/var/spack/repos/builtin/packages/jemalloc/package.py index 5fd06489d78..332899d38b4 100644 --- a/var/spack/repos/builtin/packages/jemalloc/package.py +++ b/var/spack/repos/builtin/packages/jemalloc/package.py @@ -9,7 +9,7 @@ class Jemalloc(AutotoolsPackage): """jemalloc is a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support.""" - homepage = "http://www.canonware.com/jemalloc/" + homepage = "http://jemalloc.net/" url = "https://github.com/jemalloc/jemalloc/releases/download/4.0.4/jemalloc-4.0.4.tar.bz2" version('5.2.1', sha256='34330e5ce276099e2e8950d9335db5a875689a4c6a56751ef3b1d8c537f887f6') diff --git a/var/spack/repos/builtin/packages/jhpcn-df/package.py b/var/spack/repos/builtin/packages/jhpcn-df/package.py index 09ed64922ee..585770fb933 100644 --- a/var/spack/repos/builtin/packages/jhpcn-df/package.py +++ b/var/spack/repos/builtin/packages/jhpcn-df/package.py @@ -18,7 +18,7 @@ class JhpcnDf(CMakePackage): to truncating some lower bits of significand. """ - homepage = "http://avr-aics-riken.github.io/JHPCN-DF/" + homepage = "https://avr-aics-riken.github.io/JHPCN-DF/" url = "https://github.com/avr-aics-riken/JHPCN-DF/archive/1.1.0.tar.gz" version('1.1.0', sha256='106d99cc4faac5c76e51e8bfe3193c1d3dc91648072cf418d868ed830592b04b') diff --git a/var/spack/repos/builtin/packages/json-fortran/package.py b/var/spack/repos/builtin/packages/json-fortran/package.py index 185d747cc80..6e425552a22 100644 --- a/var/spack/repos/builtin/packages/json-fortran/package.py +++ b/var/spack/repos/builtin/packages/json-fortran/package.py @@ -9,7 +9,7 @@ class JsonFortran(CMakePackage): """A Fortran 2008 JSON API""" - homepage = "http://jacobwilliams.github.io/json-fortran/" + homepage = "https://jacobwilliams.github.io/json-fortran/" url = "https://github.com/jacobwilliams/json-fortran/archive/7.0.0.tar.gz" version('7.1.0', sha256='e7aa1f6e09b25ebacb17188147380c3f8c0a254754cd24869c001745fcecc9e6') diff --git a/var/spack/repos/builtin/packages/julia/package.py b/var/spack/repos/builtin/packages/julia/package.py index c2af83df20b..c307eee28e7 100644 --- a/var/spack/repos/builtin/packages/julia/package.py +++ b/var/spack/repos/builtin/packages/julia/package.py @@ -12,7 +12,7 @@ class Julia(Package): """The Julia Language: A fresh approach to technical computing""" - homepage = "http://julialang.org" + homepage = "https://julialang.org" url = "https://github.com/JuliaLang/julia/releases/download/v0.4.3/julia-0.4.3-full.tar.gz" git = "https://github.com/JuliaLang/julia.git" diff --git a/var/spack/repos/builtin/packages/kadath/package.py b/var/spack/repos/builtin/packages/kadath/package.py new file mode 100644 index 00000000000..6abfdd9ab2f --- /dev/null +++ b/var/spack/repos/builtin/packages/kadath/package.py @@ -0,0 +1,88 @@ +# Copyright 2013-2021 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 import * + + +class Kadath(CMakePackage): + """KADATH SPECTRAL SOLVER. + + The Frankfurt University/Kadath (FUKA) Initial Data solver branch is + a collection of ID solvers aimed at delivering consistent initial + data (ID) solutions to the eXtended Conformal Thin-Sandwich (XCTS) + formulation of Einstein's field equations for a variety of compact + object configurations to include extremely compact, asymmetric, and + mixed spin binaries. + """ + + homepage = "https://kadath.obspm.fr/fuka/" + git = "https://gitlab.obspm.fr/grandcle/Kadath.git" + + maintainers = ['eschnett'] + + version('fuka', branch='fuka') + + variant('mpi', default=True, description='Enable MPI support') + + variant('codes', multi=True, + description="Codes to enable", + values=('none', 'BBH', 'BH', 'BHNS', 'BNS', 'NS'), + default='none') + + depends_on('blas') + depends_on('boost cxxstd=17') # kadath uses std=C++17 + depends_on('cmake @2.8:', type='build') + depends_on('fftw-api @3:') + depends_on('gsl') + depends_on('lapack') + depends_on('mpi', when='+mpi') + depends_on('pgplot') + depends_on('scalapack') + + root_cmakelists_dir = 'build_release' + + def patch(self): + for code in self.spec.variants['codes'].value: + if code != 'none': + # Disable unwanted explicit include directory settings + filter_file(r"include_directories\(/usr", + "# include_directories(/usr", + join_path("codes", code, "CMakeLists.txt")) + + def setup_build_environment(self, env): + env.set('HOME_KADATH', self.stage.source_path) + + def cmake_args(self): + return [ + # kadath uses a non-standard option to enable MPI + self.define_from_variant('PAR_VERSION', 'mpi'), + ] + + def cmake(self, spec, prefix): + options = self.std_cmake_args + options += self.cmake_args() + options.append(os.path.abspath(self.root_cmakelists_dir)) + with working_dir(self.build_directory, create=True): + cmake(*options) + for code in self.spec.variants['codes'].value: + if code != 'none': + with working_dir(join_path("codes", code)): + cmake(*options) + + def build(self, spec, prefix): + with working_dir(self.build_directory): + make(*self.build_targets) + for code in self.spec.variants['codes'].value: + if code != 'none': + with working_dir(join_path("codes", code)): + make(*self.build_targets) + + def install(self, spec, prefix): + mkdirp(prefix.include) + install_tree('include', prefix.include) + mkdirp(prefix.lib) + install_tree('lib', prefix.lib) diff --git a/var/spack/repos/builtin/packages/kallisto/package.py b/var/spack/repos/builtin/packages/kallisto/package.py index e307decfa42..cc32281d0fc 100644 --- a/var/spack/repos/builtin/packages/kallisto/package.py +++ b/var/spack/repos/builtin/packages/kallisto/package.py @@ -10,7 +10,7 @@ class Kallisto(CMakePackage): """kallisto is a program for quantifying abundances of transcripts from RNA-Seq data.""" - homepage = "http://pachterlab.github.io/kallisto" + homepage = "https://pachterlab.github.io/kallisto" url = "https://github.com/pachterlab/kallisto/archive/v0.43.1.tar.gz" version('0.46.2', sha256='c447ca8ddc40fcbd7d877d7c868bc8b72807aa8823a8a8d659e19bdd515baaf2') diff --git a/var/spack/repos/builtin/packages/kbd/package.py b/var/spack/repos/builtin/packages/kbd/package.py index 88d74b83666..3a2d0b5eabf 100644 --- a/var/spack/repos/builtin/packages/kbd/package.py +++ b/var/spack/repos/builtin/packages/kbd/package.py @@ -11,7 +11,7 @@ class Kbd(AutotoolsPackage): (Linux console, virtual terminals, keyboard, etc.) - mainly, what they do is loading console fonts and keyboard maps.""" - homepage = "http://kbd-project.org/" + homepage = "https://kbd-project.org/" url = "https://github.com/legionus/kbd/archive/v2.3.0.tar.gz" version('2.3.0', sha256='28f05450cfde08259341b9641d222027844c075f77a2bac6ce143b3f33a6eb4e') diff --git a/var/spack/repos/builtin/packages/kcov/package.py b/var/spack/repos/builtin/packages/kcov/package.py index f426c0ec872..ddf3554ae97 100644 --- a/var/spack/repos/builtin/packages/kcov/package.py +++ b/var/spack/repos/builtin/packages/kcov/package.py @@ -11,7 +11,7 @@ class Kcov(CMakePackage): debugging information to collect and report data without special compilation options""" - homepage = "http://simonkagstrom.github.io/kcov/index.html" + homepage = "https://simonkagstrom.github.io/kcov/index.html" url = "https://github.com/SimonKagstrom/kcov/archive/38.tar.gz" version('38', sha256='b37af60d81a9b1e3b140f9473bdcb7975af12040feb24cc666f9bb2bb0be68b4') diff --git a/var/spack/repos/builtin/packages/keepalived/package.py b/var/spack/repos/builtin/packages/keepalived/package.py index 1097d54ce27..bdf33e41152 100644 --- a/var/spack/repos/builtin/packages/keepalived/package.py +++ b/var/spack/repos/builtin/packages/keepalived/package.py @@ -12,7 +12,7 @@ class Keepalived(AutotoolsPackage): maintain and manage loadbalanced server pool according their health """ - homepage = "http://www.keepalived.org" + homepage = "https://www.keepalived.org" url = "http://www.keepalived.org/software/keepalived-1.2.0.tar.gz" version('2.0.19', sha256='0e2f8454765bc6a5fa26758bd9cec18aae42882843cdd24848aff0ae65ce4ca7') diff --git a/var/spack/repos/builtin/packages/kinesis/package.py b/var/spack/repos/builtin/packages/kinesis/package.py index a9ea2c9b925..1e067bdecdf 100644 --- a/var/spack/repos/builtin/packages/kinesis/package.py +++ b/var/spack/repos/builtin/packages/kinesis/package.py @@ -8,7 +8,7 @@ class Kinesis(MavenPackage): """The Amazon Kinesis Client Library for Java (Amazon KCL) enables Java developers to easily consume and process data from Amazon Kinesis.""" - homepage = "http://aws.amazon.com/kinesis" + homepage = "https://aws.amazon.com/kinesis" url = "https://github.com/awslabs/amazon-kinesis-client/archive/v2.2.10.tar.gz" version('2.2.10', sha256='ab1fa33466d07c41d0bbf0d1c7d2380d6f5d2957dea040ca5fe911be83bfe9f9') diff --git a/var/spack/repos/builtin/packages/knem/package.py b/var/spack/repos/builtin/packages/knem/package.py index 757119017bf..c7131c98675 100644 --- a/var/spack/repos/builtin/packages/knem/package.py +++ b/var/spack/repos/builtin/packages/knem/package.py @@ -10,7 +10,7 @@ class Knem(AutotoolsPackage): """KNEM is a Linux kernel module enabling high-performance intra-node MPI communication for large messages.""" - homepage = "http://knem.gforge.inria.fr" + homepage = "https://knem.gforge.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/var/spack/repos/builtin/packages/krims/package.py b/var/spack/repos/builtin/packages/krims/package.py index 770c9b5f71d..9127bb9d482 100644 --- a/var/spack/repos/builtin/packages/krims/package.py +++ b/var/spack/repos/builtin/packages/krims/package.py @@ -9,7 +9,7 @@ class Krims(CMakePackage): """The bucket of Krimskrams every C or C++ project needs""" - homepage = "http://lazyten.org/krims" + homepage = "https://lazyten.org/krims" url = "https://github.com/lazyten/krims/archive/v0.2.1.tar.gz" git = "https://github.com/lazyten/krims.git" diff --git a/var/spack/repos/builtin/packages/laghos/package.py b/var/spack/repos/builtin/packages/laghos/package.py index 0f327ceb1c9..0082333cd8c 100644 --- a/var/spack/repos/builtin/packages/laghos/package.py +++ b/var/spack/repos/builtin/packages/laghos/package.py @@ -28,6 +28,7 @@ class Laghos(MakefilePackage): version('1.0', sha256='af50a126355a41c758fcda335a43fdb0a3cd97e608ba51c485afda3dd84a5b34') variant('metis', default=True, description='Enable/disable METIS support') + variant('ofast', default=False, description="Enable gcc optimization flags") depends_on('mfem+mpi+metis', when='+metis') depends_on('mfem+mpi~metis', when='~metis') @@ -50,7 +51,8 @@ def build_targets(self): targets.append('TEST_MK=%s' % spec['mfem'].package.test_mk) if spec.satisfies('@:2.0'): targets.append('CXX=%s' % spec['mpi'].mpicxx) - + if '+ofast %gcc' in self.spec: + targets.append('CXXFLAGS = -Ofast -finline-functions') return targets # See lib/spack/spack/build_systems/makefile.py diff --git a/var/spack/repos/builtin/packages/lammps/package.py b/var/spack/repos/builtin/packages/lammps/package.py index 582e6194837..619242fba72 100644 --- a/var/spack/repos/builtin/packages/lammps/package.py +++ b/var/spack/repos/builtin/packages/lammps/package.py @@ -14,7 +14,7 @@ class Lammps(CMakePackage, CudaPackage): See https://github.com/spack/spack/pull/5342 for a detailed discussion. """ - homepage = "http://lammps.sandia.gov/" + homepage = "https://lammps.sandia.gov/" url = "https://github.com/lammps/lammps/archive/patch_1Sep2017.tar.gz" git = "https://github.com/lammps/lammps.git" diff --git a/var/spack/repos/builtin/packages/lazyten/package.py b/var/spack/repos/builtin/packages/lazyten/package.py index 86fc12ab7e7..cd2b7d0f38a 100644 --- a/var/spack/repos/builtin/packages/lazyten/package.py +++ b/var/spack/repos/builtin/packages/lazyten/package.py @@ -11,7 +11,7 @@ class Lazyten(CMakePackage): """Lightweight linear algebra library based on lazy matrices""" - homepage = "http://lazyten.org" + homepage = "https://lazyten.org" url = "https://github.com/lazyten/lazyten/archive/v0.4.1.tar.gz" git = "https://github.com/lazyten/lazyten.git" diff --git a/var/spack/repos/builtin/packages/lbann/package.py b/var/spack/repos/builtin/packages/lbann/package.py index e1a965c6161..5e1b09f8a03 100644 --- a/var/spack/repos/builtin/packages/lbann/package.py +++ b/var/spack/repos/builtin/packages/lbann/package.py @@ -15,7 +15,7 @@ class Lbann(CMakePackage, CudaPackage, ROCmPackage): neural networks. """ - homepage = "http://software.llnl.gov/lbann/" + homepage = "https://software.llnl.gov/lbann/" url = "https://github.com/LLNL/lbann/archive/v0.91.tar.gz" git = "https://github.com/LLNL/lbann.git" @@ -135,8 +135,8 @@ class Lbann(CMakePackage, CudaPackage, ROCmPackage): depends_on('aluminum@0.5.0:', when='@:0.90,0.102: +al') # Add Aluminum variants - depends_on('aluminum +cuda +nccl +ht +cuda_rma', when='+al +cuda') - depends_on('aluminum +rocm +rccl +ht', when='+al +rocm') + depends_on('aluminum +cuda +nccl +cuda_rma', when='+al +cuda') + depends_on('aluminum +rocm +rccl', when='+al +rocm') depends_on('dihydrogen@0.2.0:', when='@:0.90,0.102:') depends_on('dihydrogen +openmp', when='+dihydrogen') @@ -249,6 +249,7 @@ def common_config_args(self): # Environment variables cppflags = [] cppflags.append('-DLBANN_SET_EL_RNG') + cppflags.append('-std=c++17') args = [] args.extend([ '-DCMAKE_CXX_FLAGS=%s' % ' '.join(cppflags), diff --git a/var/spack/repos/builtin/packages/lbxproxy/package.py b/var/spack/repos/builtin/packages/lbxproxy/package.py index 51f7038e395..b111c235a68 100644 --- a/var/spack/repos/builtin/packages/lbxproxy/package.py +++ b/var/spack/repos/builtin/packages/lbxproxy/package.py @@ -16,7 +16,7 @@ class Lbxproxy(AutotoolsPackage, XorgPackage): extension, so this program is only useful in connecting to older X servers.""" - homepage = "http://cgit.freedesktop.org/xorg/app/lbxproxy" + homepage = "https://cgit.freedesktop.org/xorg/app/lbxproxy" xorg_mirror_path = "app/lbxproxy-1.0.3.tar.gz" version('1.0.3', sha256='db36251c9656c7da720f31e10df384f8946a9a5395915371b60d9423ad8f6a80') diff --git a/var/spack/repos/builtin/packages/lbzip2/package.py b/var/spack/repos/builtin/packages/lbzip2/package.py index 818bc7828a4..ecfd9667629 100644 --- a/var/spack/repos/builtin/packages/lbzip2/package.py +++ b/var/spack/repos/builtin/packages/lbzip2/package.py @@ -10,7 +10,7 @@ class Lbzip2(AutotoolsPackage): """Multi-threaded compression utility with support for bzip2 compressed file format""" - homepage = "http://lbzip2.org/" + homepage = "https://lbzip2.org/" url = "http://archive.lbzip2.org/lbzip2-2.5.tar.gz" version('2.5', sha256='46c75ee93cc95eedc6005625442b2b8e59a2bef3ba80987d0491f055185650e9') diff --git a/var/spack/repos/builtin/packages/lcms/package.py b/var/spack/repos/builtin/packages/lcms/package.py index 00c7ac190f6..0fffe9799d6 100644 --- a/var/spack/repos/builtin/packages/lcms/package.py +++ b/var/spack/repos/builtin/packages/lcms/package.py @@ -11,7 +11,7 @@ class Lcms(AutotoolsPackage): transforms between ICC profiles. It is focused on speed, and is portable across several platforms (MIT license).""" - homepage = "http://www.littlecms.com" + homepage = "https://www.littlecms.com" url = "http://downloads.sourceforge.net/project/lcms/lcms/2.9/lcms2-2.9.tar.gz" version('2.9', sha256='48c6fdf98396fa245ed86e622028caf49b96fa22f3e5734f853f806fbc8e7d20') diff --git a/var/spack/repos/builtin/packages/ldak/package.py b/var/spack/repos/builtin/packages/ldak/package.py index 12a5e64739e..40327ced4e0 100644 --- a/var/spack/repos/builtin/packages/ldak/package.py +++ b/var/spack/repos/builtin/packages/ldak/package.py @@ -9,7 +9,7 @@ class Ldak(Package): """LDAK is a software package for analyzing GWAS data""" - homepage = "http://dougspeed.com/ldak/" + homepage = "https://dougspeed.com/ldak/" url = "http://dougspeed.com/wp-content/uploads/source.zip" version('5.1', sha256='ae3eb8c2ef31af210e138336fd6edcd0e3a26ea9bae89fd6c0c6ea33e3a1517e') diff --git a/var/spack/repos/builtin/packages/legion/package.py b/var/spack/repos/builtin/packages/legion/package.py index 21e16a1ac7d..7949036b2e6 100644 --- a/var/spack/repos/builtin/packages/legion/package.py +++ b/var/spack/repos/builtin/packages/legion/package.py @@ -22,7 +22,7 @@ class Legion(CMakePackage): that is orthogonal to correctness, thereby enabling easy porting and tuning of Legion applications to new architectures.""" - homepage = "http://legion.stanford.edu/" + homepage = "https://legion.stanford.edu/" git = "https://github.com/StanfordLegion/legion.git" maintainers = ['pmccormick', 'streichler'] @@ -332,3 +332,44 @@ def cmake_args(self): options.append('-DBUILD_MARCH:STRING=native') return options + + @run_after('install') + def cache_test_sources(self): + """Copy the example source files after the package is installed to an + install test subdirectory for use during `spack test run`.""" + self.cache_extra_test_sources([join_path('examples', 'local_function_tasks')]) + + def run_local_function_tasks_test(self): + """Run stand alone test: local_function_tasks""" + + test_dir = join_path(self.test_suite.current_test_cache_dir, + 'examples', 'local_function_tasks') + + if not os.path.exists(test_dir): + print('Skipping local_function_tasks test') + return + + exe = 'local_function_tasks' + + cmake_args = ['-DCMAKE_C_COMPILER={0}'.format(self.compiler.cc), + '-DCMAKE_CXX_COMPILER={0}'.format(self.compiler.cxx), + '-DLegion_DIR={0}'.format(join_path(self.prefix, + 'share', + 'Legion', + 'cmake'))] + + self.run_test('cmake', + options=cmake_args, + purpose='test: generate makefile for {0} example'.format(exe), + work_dir=test_dir) + + self.run_test('make', + purpose='test: build {0} example'.format(exe), + work_dir=test_dir) + + self.run_test(exe, + purpose='test: run {0} example'.format(exe), + work_dir=test_dir) + + def test(self): + self.run_local_function_tasks_test() diff --git a/var/spack/repos/builtin/packages/lemon/package.py b/var/spack/repos/builtin/packages/lemon/package.py index 500372aed78..f839a0fe544 100644 --- a/var/spack/repos/builtin/packages/lemon/package.py +++ b/var/spack/repos/builtin/packages/lemon/package.py @@ -12,7 +12,7 @@ class Lemon(CMakePackage): of common data structures and algorithms with focus on combinatorial optimization tasks connected mainly with graphs and networks.""" - homepage = "http://lemon.cs.elte.hu/trac/lemon" + homepage = "https://lemon.cs.elte.hu/trac/lemon" url = "http://lemon.cs.elte.hu/pub/sources/lemon-1.3.1.tar.gz" version('1.3.1', sha256='71b7c725f4c0b4a8ccb92eb87b208701586cf7a96156ebd821ca3ed855bad3c8') diff --git a/var/spack/repos/builtin/packages/less/package.py b/var/spack/repos/builtin/packages/less/package.py index e6ef02d6fe7..fe7884e7e25 100644 --- a/var/spack/repos/builtin/packages/less/package.py +++ b/var/spack/repos/builtin/packages/less/package.py @@ -11,7 +11,7 @@ class Less(AutotoolsPackage): has more capabilities. Less allows you to move backwards in the file aswell as forwards.""" - homepage = "http://www.greenwoodsoftware.com/less/" + homepage = "https://www.greenwoodsoftware.com/less/" url = "http://www.greenwoodsoftware.com/less/less-551.zip" version('551', sha256='2630db16ef188e88b513b3cc24daa9a798c45643cc7da06e549c9c00cfd84244') diff --git a/var/spack/repos/builtin/packages/lftp/package.py b/var/spack/repos/builtin/packages/lftp/package.py index 559be74da7d..606fc7dbe0f 100644 --- a/var/spack/repos/builtin/packages/lftp/package.py +++ b/var/spack/repos/builtin/packages/lftp/package.py @@ -10,7 +10,7 @@ class Lftp(AutotoolsPackage): """LFTP is a sophisticated file transfer program supporting a number of network protocols (ftp, http, sftp, fish, torrent).""" - homepage = "http://lftp.yar.ru/" + homepage = "https://lftp.yar.ru/" url = "http://lftp.yar.ru/ftp/lftp-4.7.7.tar.gz" version('4.8.1', sha256='6117866215cd889dab30ff73292cd1d35fe0e12a9af5cd76d093500d07ab65a3') diff --git a/var/spack/repos/builtin/packages/lhapdf5/package.py b/var/spack/repos/builtin/packages/lhapdf5/package.py index 7e5879a4342..f9e813221fd 100644 --- a/var/spack/repos/builtin/packages/lhapdf5/package.py +++ b/var/spack/repos/builtin/packages/lhapdf5/package.py @@ -10,7 +10,7 @@ class Lhapdf5(AutotoolsPackage): """LHAPDF is a general purpose Fortran 77/90 interpolator, used for evaluating PDFs from discretised data files.""" - homepage = "http://lhapdf.hepforge.org/lhapdf5/" + homepage = "https://lhapdf.hepforge.org/lhapdf5/" url = "http://lhapdf.hepforge.org/downloads?f=old/lhapdf-5.9.1.tar.gz" version('5.9.1', sha256='86b9b046d7f25627ce2aab6847ef1c5534972f4bae18de98225080cf5086919c') diff --git a/var/spack/repos/builtin/packages/libaec/package.py b/var/spack/repos/builtin/packages/libaec/package.py index c80c40acdf2..38899129a90 100644 --- a/var/spack/repos/builtin/packages/libaec/package.py +++ b/var/spack/repos/builtin/packages/libaec/package.py @@ -19,6 +19,9 @@ class Libaec(CMakePackage): provides('szip') + version('1.0.5', sha256='7bf7be828dc3caefcc968e98a59b997b6b3b06e4123137e9e0b0988dc1be3b2f') + version('1.0.4', sha256='7456adff4e817f94fc57a3eca824db1c203770ffb7a9253c435093ac5e239e31') + version('1.0.3', sha256='c28b340b20dcc0ad352970143e01718bd68dd5ef2a07a971736368805972f562') version('1.0.2', sha256='b9e5bbbc8bf9cbfd3b9b4ce38b3311f2c88d3d99f476edb35590eb0006aa1fc5') version('1.0.1', sha256='3668eb4ed36724441e488a7aadc197426afef4b1e8bd139af6d3e36023906459') version('1.0.0', sha256='849f08b08ddaaffe543d06d0ced5e4ee3e526b13a67c5f422d126b1c9cf1b546') diff --git a/var/spack/repos/builtin/packages/libapplewm/package.py b/var/spack/repos/builtin/packages/libapplewm/package.py index 0a730cddb4b..87de869f016 100644 --- a/var/spack/repos/builtin/packages/libapplewm/package.py +++ b/var/spack/repos/builtin/packages/libapplewm/package.py @@ -11,7 +11,7 @@ class Libapplewm(AutotoolsPackage, XorgPackage): extension. This extension allows X window managers to better interact with the Mac OS X Aqua user interface when running X11 in a rootless mode.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libAppleWM" + homepage = "https://cgit.freedesktop.org/xorg/lib/libAppleWM" xorg_mirror_path = "lib/libAppleWM-1.4.1.tar.gz" version('1.4.1', sha256='d7fb098d65ad4d840f60e5c92de7f58f1725bd70d0d132755ea453462fd50049') diff --git a/var/spack/repos/builtin/packages/libarchive/package.py b/var/spack/repos/builtin/packages/libarchive/package.py index 726e46a88c9..35c07c0b77f 100644 --- a/var/spack/repos/builtin/packages/libarchive/package.py +++ b/var/spack/repos/builtin/packages/libarchive/package.py @@ -10,9 +10,11 @@ class Libarchive(AutotoolsPackage): """libarchive: C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats.""" - homepage = "http://www.libarchive.org" + homepage = "https://www.libarchive.org" url = "http://www.libarchive.org/downloads/libarchive-3.1.2.tar.gz" + maintainers = ['haampie'] + version('3.5.2', sha256='5f245bd5176bc5f67428eb0aa497e09979264a153a074d35416521a5b8e86189') version('3.5.1', sha256='9015d109ec00bb9ae1a384b172bf2fc1dff41e2c66e5a9eeddf933af9db37f5a') version('3.4.1', sha256='fcf87f3ad8db2e4f74f32526dee62dd1fb9894782b0a503a89c9d7a70a235191') version('3.3.2', sha256='ed2dbd6954792b2c054ccf8ec4b330a54b85904a80cef477a1c74643ddafa0ce') @@ -21,15 +23,43 @@ class Libarchive(AutotoolsPackage): version('3.1.1', sha256='4968f9a3f2405ec7e07d5f6e78b36f21bceee6196df0a795165f89774bbbc6d8') version('3.1.0', sha256='64b15dfa623b323da8fc9c238b5bca962ec3b38dcdfd2ed86f5f509e578a3524') - depends_on('zlib') - depends_on('bzip2') - depends_on('lz4') - depends_on('xz') - depends_on('lzo') - depends_on('nettle') - depends_on('openssl') - depends_on('libxml2') - depends_on('expat') + variant('libs', default='static,shared', values=('static', 'shared'), + multi=True, description='What libraries to build') + + # TODO: BLAKE2 is missing + variant('compression', default='bz2lib,lz4,lzo2,lzma,zlib,zstd', values=('bz2lib', 'lz4', 'lzo2', 'lzma', 'zlib', 'zstd'), multi=True, description='Supported compression') + variant('xar', default='libxml2', values=('libxml2', 'expat'), description='What library to use for xar support') + variant('crypto', default='mbedtls', values=('mbedtls', 'nettle', 'openssl'), description='What crypto library to use for mtree and xar hashes') + variant('programs', values=any_combination_of('bsdtar', 'bsdcpio', 'bsdcat'), description='What executables to build') + variant('iconv', default=True, description='Support iconv') + + depends_on('bzip2', when='compression=bz2lib') + depends_on('lz4', when='compression=lz4') + depends_on('lzo', when='compression=lzo2') + depends_on('xz', when='compression=lzma') + depends_on('zlib', when='compression=zlib') + depends_on('zstd', when='compression=zstd') + + depends_on('nettle', when='crypto=nettle') + depends_on('openssl', when='crypto=openssl') + depends_on('mbedtls@2:2.999 +pic', when='crypto=mbedtls') + + depends_on('libxml2', when='xar=libxml2') + depends_on('expat', when='xar=expat') + + depends_on('libiconv', 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 + + def configure_args(self): + args = ['--without-libb2'] + args += self.with_or_without('compression') + args += self.with_or_without('crypto') + args += self.with_or_without('iconv') + args += self.with_or_without('xar') + args += self.enable_or_disable('programs') + + return args diff --git a/var/spack/repos/builtin/packages/libatasmart/package.py b/var/spack/repos/builtin/packages/libatasmart/package.py index b5dfdf1d593..ce6ed31b754 100644 --- a/var/spack/repos/builtin/packages/libatasmart/package.py +++ b/var/spack/repos/builtin/packages/libatasmart/package.py @@ -10,7 +10,7 @@ class Libatasmart(AutotoolsPackage): """A small and lightweight parser library for ATA S.M.A.R.T. hard disk health monitoring.""" - homepage = "http://git.0pointer.de/?p=libatasmart.git" + homepage = "https://github.com/ebe-forks/libatasmart" url = "https://github.com/ebe-forks/libatasmart/archive/v0.19.tar.gz" version('0.19', sha256='10bb5321a254e28bd60fd297f284bfc81cce4fde92e150187640e62ec667e5fb') diff --git a/var/spack/repos/builtin/packages/libcanberra/package.py b/var/spack/repos/builtin/packages/libcanberra/package.py index f0775855f04..5545b71022c 100644 --- a/var/spack/repos/builtin/packages/libcanberra/package.py +++ b/var/spack/repos/builtin/packages/libcanberra/package.py @@ -11,7 +11,7 @@ class Libcanberra(AutotoolsPackage): Name Specifications, for generating event sounds on free desktops, such as GNOME.""" - homepage = "http://0pointer.de/lennart/projects/libcanberra/" + homepage = "https://0pointer.de/lennart/projects/libcanberra/" url = "http://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz" version('0.30', sha256='c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72') diff --git a/var/spack/repos/builtin/packages/libcerf/package.py b/var/spack/repos/builtin/packages/libcerf/package.py index 58170ad5ba6..66afa4ad434 100644 --- a/var/spack/repos/builtin/packages/libcerf/package.py +++ b/var/spack/repos/builtin/packages/libcerf/package.py @@ -13,7 +13,7 @@ class Libcerf(AutotoolsPackage, SourceforgePackage): integral and Voigt's convolution of a Gaussian and a Lorentzian """ - homepage = "http://sourceforge.net/projects/libcerf" + homepage = "https://sourceforge.net/projects/libcerf" sourceforge_mirror_path = "libcerf/libcerf-1.3.tgz" version('1.3', sha256='d7059e923d3f370c89fb4d19ed4f827d381bc3f0e36da5595a04aeaaf3e6a859') diff --git a/var/spack/repos/builtin/packages/libcircle/package.py b/var/spack/repos/builtin/packages/libcircle/package.py index 019e2a68aa4..0e9bc3437c9 100644 --- a/var/spack/repos/builtin/packages/libcircle/package.py +++ b/var/spack/repos/builtin/packages/libcircle/package.py @@ -21,8 +21,9 @@ class Libcircle(AutotoolsPackage): depends_on('mpi') depends_on('pkgconfig', type='build') depends_on('libpciaccess', type='link') - depends_on('autoconf', when='%cce') - depends_on('automake', when='%cce') + depends_on('autoconf', when='%cce', type='build') + depends_on('automake', when='%cce', type='build') + depends_on('libtool', when='%cce', type='build') patch('CrayPE_configure-ac.patch', when='%cce') diff --git a/var/spack/repos/builtin/packages/libconfig/package.py b/var/spack/repos/builtin/packages/libconfig/package.py index 613fe0ac701..b09cf0e2002 100644 --- a/var/spack/repos/builtin/packages/libconfig/package.py +++ b/var/spack/repos/builtin/packages/libconfig/package.py @@ -9,7 +9,7 @@ class Libconfig(AutotoolsPackage): """C/C++ Configuration File Library""" - homepage = "http://www.hyperrealm.com/libconfig/" + homepage = "https://www.hyperrealm.com/libconfig/" url = "https://github.com/hyperrealm/libconfig/archive/v1.5.tar.gz" force_autoreconf = True diff --git a/var/spack/repos/builtin/packages/libdaemon/package.py b/var/spack/repos/builtin/packages/libdaemon/package.py index 6b1ca538af2..ea0872f660a 100644 --- a/var/spack/repos/builtin/packages/libdaemon/package.py +++ b/var/spack/repos/builtin/packages/libdaemon/package.py @@ -10,7 +10,7 @@ class Libdaemon(AutotoolsPackage): """libdaemon is a lightweight C library which eases the writing of UNIX daemons.""" - homepage = "http://0pointer.de/lennart/projects/libdaemon/" + homepage = "https://0pointer.de/lennart/projects/libdaemon/" url = "http://0pointer.de/lennart/projects/libdaemon/libdaemon-0.14.tar.gz" version('0.14', sha256='fd23eb5f6f986dcc7e708307355ba3289abe03cc381fc47a80bca4a50aa6b834') diff --git a/var/spack/repos/builtin/packages/libdatrie/package.py b/var/spack/repos/builtin/packages/libdatrie/package.py index 57b3c95f7b0..6e772467ecf 100644 --- a/var/spack/repos/builtin/packages/libdatrie/package.py +++ b/var/spack/repos/builtin/packages/libdatrie/package.py @@ -10,7 +10,7 @@ class Libdatrie(AutotoolsPackage): """datrie is an implementation of double-array structure for representing trie.""" - homepage = "http://linux.thai.net/projects/datrie" + homepage = "https://linux.thai.net/projects/datrie" url = "https://github.com/tlwg/libdatrie/releases/download/v0.2.12/libdatrie-0.2.12.tar.xz" version('0.2.12', sha256='452dcc4d3a96c01f80f7c291b42be11863cd1554ff78b93e110becce6e00b149') diff --git a/var/spack/repos/builtin/packages/libdmx/package.py b/var/spack/repos/builtin/packages/libdmx/package.py index 0a16e2238ee..757b5aca61e 100644 --- a/var/spack/repos/builtin/packages/libdmx/package.py +++ b/var/spack/repos/builtin/packages/libdmx/package.py @@ -10,7 +10,7 @@ class Libdmx(AutotoolsPackage, XorgPackage): """libdmx - X Window System DMX (Distributed Multihead X) extension library.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libdmx" + homepage = "https://cgit.freedesktop.org/xorg/lib/libdmx" xorg_mirror_path = "lib/libdmx-1.1.3.tar.gz" version('1.1.3', sha256='c4b24d7e13e5a67ead7a18f0b4cc9b7b5363c9d04cd01b83b5122ff92b3b4996') diff --git a/var/spack/repos/builtin/packages/libdrm/package.py b/var/spack/repos/builtin/packages/libdrm/package.py index aafb9b2338c..2d7a4133fbd 100644 --- a/var/spack/repos/builtin/packages/libdrm/package.py +++ b/var/spack/repos/builtin/packages/libdrm/package.py @@ -10,7 +10,7 @@ class Libdrm(AutotoolsPackage): """A userspace library for accessing the DRM, direct rendering manager, on Linux, BSD and other systems supporting the ioctl interface.""" - homepage = "http://dri.freedesktop.org/libdrm/" + homepage = "https://dri.freedesktop.org/libdrm/" url = "https://dri.freedesktop.org/libdrm/libdrm-2.4.59.tar.gz" version('2.4.100', sha256='6a5337c054c0c47bc16607a21efa2b622e08030be4101ef4a241c5eb05b6619b') diff --git a/var/spack/repos/builtin/packages/libdwarf/package.py b/var/spack/repos/builtin/packages/libdwarf/package.py index 87ed1b62c53..c60fa76df3e 100644 --- a/var/spack/repos/builtin/packages/libdwarf/package.py +++ b/var/spack/repos/builtin/packages/libdwarf/package.py @@ -24,7 +24,7 @@ class Libdwarf(Package): respectively, not source) with every release of the SGI MIPS/IRIX C compiler.""" - homepage = "http://www.prevanders.net/dwarf.html" + homepage = "https://www.prevanders.net/dwarf.html" url = "http://www.prevanders.net/libdwarf-20160507.tar.gz" list_url = homepage diff --git a/var/spack/repos/builtin/packages/libedit/package.py b/var/spack/repos/builtin/packages/libedit/package.py index f9369716617..192842d4c8d 100644 --- a/var/spack/repos/builtin/packages/libedit/package.py +++ b/var/spack/repos/builtin/packages/libedit/package.py @@ -8,7 +8,7 @@ class Libedit(AutotoolsPackage): """An autotools compatible port of the NetBSD editline library""" - homepage = "http://thrysoee.dk/editline/" + homepage = "https://thrysoee.dk/editline/" url = "http://thrysoee.dk/editline/libedit-20170329-3.1.tar.gz" version('3.1-20210216', sha256='2283f741d2aab935c8c52c04b57bf952d02c2c02e651172f8ac811f77b1fc77a') diff --git a/var/spack/repos/builtin/packages/libevdev/package.py b/var/spack/repos/builtin/packages/libevdev/package.py index 530f9aeaeb1..94e7f4484cd 100644 --- a/var/spack/repos/builtin/packages/libevdev/package.py +++ b/var/spack/repos/builtin/packages/libevdev/package.py @@ -11,7 +11,7 @@ class Libevdev(AutotoolsPackage): tasks when dealing with evdev devices into a library and provides a library interface to the callers, thus avoiding erroneous ioctls, etc.""" - homepage = "http://cgit.freedesktop.org/libevdev" + homepage = "https://cgit.freedesktop.org/libevdev" url = "https://github.com/whot/libevdev/archive/libevdev-1.5.4.tar.gz" version('1.5.4', sha256='11ef3510970c049b0e30985be3149d27b4b36b7cbe14ca678746aac1ca86744d') diff --git a/var/spack/repos/builtin/packages/libevent/package.py b/var/spack/repos/builtin/packages/libevent/package.py index a16e528acb9..d24c9ecd3b6 100644 --- a/var/spack/repos/builtin/packages/libevent/package.py +++ b/var/spack/repos/builtin/packages/libevent/package.py @@ -14,7 +14,7 @@ class Libevent(AutotoolsPackage): """ - homepage = "http://libevent.org" + homepage = "https://libevent.org" url = "https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz" list_url = "http://libevent.org/old-releases.html" diff --git a/var/spack/repos/builtin/packages/libffs/package.py b/var/spack/repos/builtin/packages/libffs/package.py index 7d1e0d1c6cf..33ca18fa9ce 100644 --- a/var/spack/repos/builtin/packages/libffs/package.py +++ b/var/spack/repos/builtin/packages/libffs/package.py @@ -14,7 +14,7 @@ class Libffs(CMakePackage): and providing complex run-time flexibility. """ - homepage = "http://www.cc.gatech.edu/systems/projects/FFS" + homepage = "https://www.cc.gatech.edu/systems/projects/FFS" url = "https://github.com/GTkorvo/ffs/archive/v1.1.tar.gz" git = "https://github.com/GTkorvo/ffs.git" diff --git a/var/spack/repos/builtin/packages/libfontenc/package.py b/var/spack/repos/builtin/packages/libfontenc/package.py index 907dee3dbbe..9f1e52b7431 100644 --- a/var/spack/repos/builtin/packages/libfontenc/package.py +++ b/var/spack/repos/builtin/packages/libfontenc/package.py @@ -9,7 +9,7 @@ class Libfontenc(AutotoolsPackage, XorgPackage): """libfontenc - font encoding library.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libfontenc" + homepage = "https://cgit.freedesktop.org/xorg/lib/libfontenc" xorg_mirror_path = "lib/libfontenc-1.1.3.tar.gz" version('1.1.3', sha256='6fba26760ca8d5045f2b52ddf641c12cedc19ee30939c6478162b7db8b6220fb') diff --git a/var/spack/repos/builtin/packages/libfs/package.py b/var/spack/repos/builtin/packages/libfs/package.py index 460058d90d1..241892d86c5 100644 --- a/var/spack/repos/builtin/packages/libfs/package.py +++ b/var/spack/repos/builtin/packages/libfs/package.py @@ -12,7 +12,7 @@ class Libfs(AutotoolsPackage, XorgPackage): This library is used by clients of X Font Servers (xfs), such as xfsinfo, fslsfonts, and the X servers themselves.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libFS" + homepage = "https://cgit.freedesktop.org/xorg/lib/libFS" xorg_mirror_path = "lib/libFS-1.0.7.tar.gz" version('1.0.7', sha256='91bf1c5ce4115b7dbf4e314fdbee54052708e8f7b6a2ec6e82c309bcbe40ef3d') diff --git a/var/spack/repos/builtin/packages/libgpuarray/package.py b/var/spack/repos/builtin/packages/libgpuarray/package.py index 012209e5028..b977b8f97c2 100644 --- a/var/spack/repos/builtin/packages/libgpuarray/package.py +++ b/var/spack/repos/builtin/packages/libgpuarray/package.py @@ -11,7 +11,7 @@ class Libgpuarray(CMakePackage): projects that is as future proof as possible, while keeping it easy to use for simple need/quick test.""" - homepage = "http://deeplearning.net/software/libgpuarray/" + homepage = "https://github.com/Theano/libgpuarray" url = "https://github.com/Theano/libgpuarray/archive/v0.6.1.tar.gz" version('0.7.6', sha256='ad1c00dd47c3d36ee1708e5167377edbfcdb7226e837ef9c68b841afbb4a4f6a') diff --git a/var/spack/repos/builtin/packages/libice/package.py b/var/spack/repos/builtin/packages/libice/package.py index bb210343bf4..967f4268f91 100644 --- a/var/spack/repos/builtin/packages/libice/package.py +++ b/var/spack/repos/builtin/packages/libice/package.py @@ -9,7 +9,7 @@ class Libice(AutotoolsPackage, XorgPackage): """libICE - Inter-Client Exchange Library.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libICE" + homepage = "https://cgit.freedesktop.org/xorg/lib/libICE" xorg_mirror_path = "lib/libICE-1.0.9.tar.gz" version('1.0.9', sha256='7812a824a66dd654c830d21982749b3b563d9c2dfe0b88b203cefc14a891edc0') diff --git a/var/spack/repos/builtin/packages/libiconv/package.py b/var/spack/repos/builtin/packages/libiconv/package.py index 8343d6e68c0..7bd1649d932 100644 --- a/var/spack/repos/builtin/packages/libiconv/package.py +++ b/var/spack/repos/builtin/packages/libiconv/package.py @@ -17,6 +17,9 @@ class Libiconv(AutotoolsPackage, GNUMirrorPackage): version('1.15', sha256='ccf536620a45458d26ba83887a983b96827001e92a13847b45e4925cc8913178') version('1.14', sha256='72b24ded17d687193c3366d0ebe7cde1e6b18f0df8c55438ac95be39e8a30613') + variant('libs', default='shared,static', values=('shared', 'static'), + multi=True, description='Build shared libs, static libs or both') + # We cannot set up a warning for gets(), since gets() is not part # of C11 any more and thus might not exist. patch('gets.patch', when='@1.14') @@ -27,6 +30,8 @@ class Libiconv(AutotoolsPackage, GNUMirrorPackage): def configure_args(self): args = ['--enable-extra-encodings'] + args += self.enable_or_disable('libs') + # A hack to patch config.guess in the libcharset sub directory copy('./build-aux/config.guess', 'libcharset/build-aux/config.guess') diff --git a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py index 9f0eb2c3f74..2f881a6634d 100644 --- a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py +++ b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py @@ -17,6 +17,7 @@ class LibjpegTurbo(Package): homepage = "https://libjpeg-turbo.org/" url = "https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.3.tar.gz" + version('2.1.0', sha256='d6b7790927d658108dfd3bee2f0c66a2924c51ee7f9dc930f62c452f4a638c52') version('2.0.6', sha256='005aee2fcdca252cee42271f7f90574dda64ca6505d9f8b86ae61abc2b426371') version('2.0.5', sha256='b3090cd37b5a8b3e4dbd30a1311b3989a894e5d3c668f14cbc6739d77c9402b7') version('2.0.4', sha256='7777c3c19762940cff42b3ba4d7cd5c52d1671b39a79532050c85efb99079064') diff --git a/var/spack/repos/builtin/packages/liblbfgs/package.py b/var/spack/repos/builtin/packages/liblbfgs/package.py index fa6b0703ba9..970cac4ee40 100644 --- a/var/spack/repos/builtin/packages/liblbfgs/package.py +++ b/var/spack/repos/builtin/packages/liblbfgs/package.py @@ -14,7 +14,7 @@ class Liblbfgs(AutotoolsPackage): minimize F(x), x = (x1, x2, ..., xN), only if the objective function F(x) and its gradient G(x) are computable.""" - homepage = "http://www.chokkan.org/software/liblbfgs/" + homepage = "https://www.chokkan.org/software/liblbfgs/" url = "https://github.com/downloads/chokkan/liblbfgs/liblbfgs-1.10.tar.gz" git = "https://github.com/chokkan/liblbfgs.git" diff --git a/var/spack/repos/builtin/packages/liblbxutil/package.py b/var/spack/repos/builtin/packages/liblbxutil/package.py index 12ad6f59648..d087e8a9bb7 100644 --- a/var/spack/repos/builtin/packages/liblbxutil/package.py +++ b/var/spack/repos/builtin/packages/liblbxutil/package.py @@ -9,7 +9,7 @@ class Liblbxutil(AutotoolsPackage, XorgPackage): """liblbxutil - Low Bandwith X extension (LBX) utility routines.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/liblbxutil" + homepage = "https://cgit.freedesktop.org/xorg/lib/liblbxutil" xorg_mirror_path = "lib/liblbxutil-1.1.0.tar.gz" version('1.1.0', sha256='285c1bc688cc71ec089e9284f2566d1780cc5d90816e9997890af8689f386951') diff --git a/var/spack/repos/builtin/packages/libmesh/package.py b/var/spack/repos/builtin/packages/libmesh/package.py index 9b6778aa6d7..8a19a00fe63 100644 --- a/var/spack/repos/builtin/packages/libmesh/package.py +++ b/var/spack/repos/builtin/packages/libmesh/package.py @@ -11,7 +11,7 @@ class Libmesh(AutotoolsPackage): partial differential equations using arbitrary unstructured discretizations on serial and parallel platforms.""" - homepage = "http://libmesh.github.io/" + homepage = "https://libmesh.github.io/" url = "https://github.com/libMesh/libmesh/releases/download/v1.0.0/libmesh-1.0.0.tar.bz2" git = "https://github.com/libMesh/libmesh.git" diff --git a/var/spack/repos/builtin/packages/libmng/package.py b/var/spack/repos/builtin/packages/libmng/package.py index 47b447ad934..7eb08206b3d 100644 --- a/var/spack/repos/builtin/packages/libmng/package.py +++ b/var/spack/repos/builtin/packages/libmng/package.py @@ -10,7 +10,7 @@ class Libmng(CMakePackage): """THE reference library for reading, displaying, writing and examining Multiple-Image Network Graphics. MNG is the animation extension to the popular PNG image format.""" - homepage = "http://sourceforge.net/projects/libmng/" + homepage = "https://sourceforge.net/projects/libmng/" url = "http://downloads.sourceforge.net/project/libmng/libmng-devel/2.0.3/libmng-2.0.3.tar.gz" version('2.0.3', sha256='cf112a1fb02f5b1c0fce5cab11ea8243852c139e669c44014125874b14b7dfaa') diff --git a/var/spack/repos/builtin/packages/libnetfilter-conntrack/package.py b/var/spack/repos/builtin/packages/libnetfilter-conntrack/package.py index 31865d1df15..fa88f17a06f 100644 --- a/var/spack/repos/builtin/packages/libnetfilter-conntrack/package.py +++ b/var/spack/repos/builtin/packages/libnetfilter-conntrack/package.py @@ -10,7 +10,7 @@ class LibnetfilterConntrack(AutotoolsPackage): """libnetfilter_conntrack is a userspace library providing a programming interface (API) to the in-kernel connection tracking state table.""" - homepage = "http://netfilter.org" + homepage = "https://netfilter.org" url = "https://github.com/Distrotech/libnetfilter_conntrack/archive/libnetfilter_conntrack-1.0.4.tar.gz" version('1.0.4', sha256='68168697b9d6430b7797ddd579e13a2cef06ea15c154dfd14e18be64e035ea6e') diff --git a/var/spack/repos/builtin/packages/libnetworkit/0001-Name-agnostic-import-of-tlx-library-90.patch b/var/spack/repos/builtin/packages/libnetworkit/0001-Name-agnostic-import-of-tlx-library-90.patch new file mode 100644 index 00000000000..a330172db0a --- /dev/null +++ b/var/spack/repos/builtin/packages/libnetworkit/0001-Name-agnostic-import-of-tlx-library-90.patch @@ -0,0 +1,17 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -224,10 +224,11 @@ if(NOT NETWORKIT_EXT_TLX) + "Please run `git submodule update --init` to fetch the submodule.") + endif() + else() ++ file(GLOB tlx_path ${NETWORKIT_EXT_TLX}/lib/**.a) + add_library(tlx STATIC IMPORTED) + set_target_properties(tlx PROPERTIES +- IMPORTED_LOCATION "${NETWORKIT_EXT_TLX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}tlx${CMAKE_STATIC_LIBRARY_SUFFIX}" +- INTERFACE_INCLUDE_DIRECTORIES "${NETWORKIT_EXT_TLX}/include/") ++ IMPORTED_LOCATION "${tlx_path}" ++ INTERFACE_INCLUDE_DIRECTORIES "${NETWORKIT_EXT_TLX}/include/") + endif() + + ################################################################################ + diff --git a/var/spack/repos/builtin/packages/libnetworkit/package.py b/var/spack/repos/builtin/packages/libnetworkit/package.py index 1b9d3c1f400..32d34aa38ca 100644 --- a/var/spack/repos/builtin/packages/libnetworkit/package.py +++ b/var/spack/repos/builtin/packages/libnetworkit/package.py @@ -22,6 +22,7 @@ class Libnetworkit(CMakePackage): maintainers = ['fabratu'] + version('9.0', sha256='c574473bc7d86934f0f4b3049c0eeb9c4444cfa873e5fecda194ee5b1930f82c') version('8.1', sha256='0a22eb839606b9fabfa68c7add12c4de5eee735c6f8bb34420e5916ce5d7f829') version('8.0', sha256='cdf9571043edbe76c447622ed33efe9cba2880f887ca231d98f6d3c22027e20e') version('7.1', sha256='60026c3be581ae9d5c919c861605082fcb9c8205758b3ddfcde2408153ae166e') @@ -34,7 +35,8 @@ class Libnetworkit(CMakePackage): depends_on('libtlx') depends_on('py-sphinx', when='+doc', type='build') - patch('0001-Name-agnostic-import-of-tlx-library.patch', when='@6.1:') + patch('0001-Name-agnostic-import-of-tlx-library.patch', when='@6.1:8.1') + patch('0001-Name-agnostic-import-of-tlx-library-90.patch', when='@9.0:') def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/libnfnetlink/package.py b/var/spack/repos/builtin/packages/libnfnetlink/package.py index 9ff50c0c090..175a45151c2 100644 --- a/var/spack/repos/builtin/packages/libnfnetlink/package.py +++ b/var/spack/repos/builtin/packages/libnfnetlink/package.py @@ -12,7 +12,7 @@ class Libnfnetlink(AutotoolsPackage): netfilter subsystem specific libraries such as libnfnetlink_conntrack, libnfnetlink_log and libnfnetlink_queue.""" - homepage = "http://netfilter.org" + homepage = "https://netfilter.org" url = "https://github.com/Distrotech/libnfnetlink/archive/libnfnetlink-1.0.1.tar.gz" version('1.0.1', sha256='11dd8a1045b03d47c878535eeb6b9eb34db295d21903a4dfd2c2cc63f45e675b') diff --git a/var/spack/repos/builtin/packages/libpcap/package.py b/var/spack/repos/builtin/packages/libpcap/package.py index ee1c5aae15d..070bdafe67d 100644 --- a/var/spack/repos/builtin/packages/libpcap/package.py +++ b/var/spack/repos/builtin/packages/libpcap/package.py @@ -8,7 +8,7 @@ class Libpcap(AutotoolsPackage): """libpcap is a portable library in C/C++ for packet capture.""" - homepage = "http://www.tcpdump.org/" + homepage = "https://www.tcpdump.org/" list_url = "http://www.tcpdump.org/release/" url = "http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz" diff --git a/var/spack/repos/builtin/packages/libpciaccess/package.py b/var/spack/repos/builtin/packages/libpciaccess/package.py index b132ec079e5..def39f36ce8 100644 --- a/var/spack/repos/builtin/packages/libpciaccess/package.py +++ b/var/spack/repos/builtin/packages/libpciaccess/package.py @@ -9,7 +9,7 @@ class Libpciaccess(AutotoolsPackage, XorgPackage): """Generic PCI access library.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libpciaccess/" + homepage = "https://cgit.freedesktop.org/xorg/lib/libpciaccess/" xorg_mirror_path = "lib/libpciaccess-0.13.5.tar.gz" version('0.16', sha256='84413553994aef0070cf420050aa5c0a51b1956b404920e21b81e96db6a61a27') diff --git a/var/spack/repos/builtin/packages/libproxy/package.py b/var/spack/repos/builtin/packages/libproxy/package.py index b55e24ca953..ab33c26c1d7 100644 --- a/var/spack/repos/builtin/packages/libproxy/package.py +++ b/var/spack/repos/builtin/packages/libproxy/package.py @@ -10,7 +10,7 @@ class Libproxy(CMakePackage): """libproxy is a library that provides automatic proxy configuration management.""" - homepage = "http://libproxy.github.io/libproxy/" + homepage = "https://libproxy.github.io/libproxy/" url = "https://github.com/libproxy/libproxy/archive/0.4.15.tar.gz" version('0.4.17', sha256='88c624711412665515e2800a7e564aabb5b3ee781b9820eca9168035b0de60a9') diff --git a/var/spack/repos/builtin/packages/librelp/package.py b/var/spack/repos/builtin/packages/librelp/package.py index ca2d668ae76..a8fb33d78a2 100644 --- a/var/spack/repos/builtin/packages/librelp/package.py +++ b/var/spack/repos/builtin/packages/librelp/package.py @@ -11,7 +11,7 @@ class Librelp(AutotoolsPackage): (stands for Reliable Event Logging Protocol) is a general-purpose, extensible logging protocol.""" - homepage = "http://www.rsyslog.com/librelp/" + homepage = "https://www.rsyslog.com/librelp/" url = "https://github.com/rsyslog/librelp/archive/v1.7.0.tar.gz" version('1.7.0', sha256='ff46bdd74798934663d1388d010270325dc6a6ed6d44358ca69b280a8304b1e9') diff --git a/var/spack/repos/builtin/packages/libsm/package.py b/var/spack/repos/builtin/packages/libsm/package.py index aec4fe364e9..a3dcedb9af4 100644 --- a/var/spack/repos/builtin/packages/libsm/package.py +++ b/var/spack/repos/builtin/packages/libsm/package.py @@ -9,7 +9,7 @@ class Libsm(AutotoolsPackage, XorgPackage): """libSM - X Session Management Library.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libSM" + homepage = "https://cgit.freedesktop.org/xorg/lib/libSM" xorg_mirror_path = "lib/libSM-1.2.2.tar.gz" version('1.2.3', sha256='1e92408417cb6c6c477a8a6104291001a40b3bb56a4a60608fdd9cd2c5a0f320') diff --git a/var/spack/repos/builtin/packages/libspatialite/package.py b/var/spack/repos/builtin/packages/libspatialite/package.py index 36c5b737334..8e87ef1cefc 100644 --- a/var/spack/repos/builtin/packages/libspatialite/package.py +++ b/var/spack/repos/builtin/packages/libspatialite/package.py @@ -12,7 +12,7 @@ class Libspatialite(AutotoolsPackage): """SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities.""" - homepage = "http://www.gaia-gis.it" + homepage = "https://www.gaia-gis.it" url = "http://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-4.3.0a.tar.gz" manual_download = True diff --git a/var/spack/repos/builtin/packages/libthai/package.py b/var/spack/repos/builtin/packages/libthai/package.py index 90d6775289c..5d1e6337ab4 100644 --- a/var/spack/repos/builtin/packages/libthai/package.py +++ b/var/spack/repos/builtin/packages/libthai/package.py @@ -13,7 +13,7 @@ class Libthai(AutotoolsPackage): word breaking, input and output methods as well as basic character and string supports.""" - homepage = "http://linux.thai.net" + homepage = "https://linux.thai.net" url = "https://github.com/tlwg/libthai/releases/download/v0.1.28/libthai-0.1.28.tar.xz" version('0.1.28', sha256='ffe0a17b4b5aa11b153c15986800eca19f6c93a4025ffa5cf2cab2dcdf1ae911') diff --git a/var/spack/repos/builtin/packages/libtheora/package.py b/var/spack/repos/builtin/packages/libtheora/package.py index c67e6531b9f..7bd00f36407 100644 --- a/var/spack/repos/builtin/packages/libtheora/package.py +++ b/var/spack/repos/builtin/packages/libtheora/package.py @@ -9,7 +9,7 @@ class Libtheora(AutotoolsPackage): """Theora Video Compression.""" - homepage = "http://www.theora.org" + homepage = "https://www.theora.org" url = "http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.xz" version('1.1.1', sha256='f36da409947aa2b3dcc6af0a8c2e3144bc19db2ed547d64e9171c59c66561c61') diff --git a/var/spack/repos/builtin/packages/libtommath/package.py b/var/spack/repos/builtin/packages/libtommath/package.py index f3e6e748e01..abc9f961a6f 100644 --- a/var/spack/repos/builtin/packages/libtommath/package.py +++ b/var/spack/repos/builtin/packages/libtommath/package.py @@ -9,7 +9,7 @@ class Libtommath(MakefilePackage): """A portable number theoretic multiple-precision integer library.""" - homepage = "http://www.libtom.net/" + homepage = "https://www.libtom.net/" url = "https://github.com/libtom/libtommath/archive/v1.2.0.tar.gz" version('1.2.0', sha256='f3c20ab5df600d8d89e054d096c116417197827d12732e678525667aa724e30f') diff --git a/var/spack/repos/builtin/packages/libtree/package.py b/var/spack/repos/builtin/packages/libtree/package.py index 2abaa0ca9bf..5d5aaa78abd 100644 --- a/var/spack/repos/builtin/packages/libtree/package.py +++ b/var/spack/repos/builtin/packages/libtree/package.py @@ -11,10 +11,13 @@ class Libtree(CMakePackage): single folder""" homepage = "https://github.com/haampie/libtree" - url = "https://github.com/haampie/libtree/releases/download/v1.0.3/sources.tar.gz" - + git = "https://github.com/haampie/libtree.git" + url = "https://github.com/haampie/libtree/archive/refs/tags/v2.0.0.tar.gz" maintainers = ['haampie'] + version('master', branch='master') + version('2.0.0', sha256='099e85d8ba3c3d849ce05b8ba2791dd25cd042a813be947fb321b0676ef71883') + version('1.2.3', sha256='4a912cf97109219fe931942a30579336b6ab9865395447bd157bbfa74bf4e8cf') version('1.2.2', sha256='4ccf09227609869b85a170550b636defcf0b0674ecb0785063b81785b1c29bdd') version('1.2.1', sha256='26791c0f418b93d502879db0e1fd2fd3081b885ad87326611d992a5f8977a9b0') version('1.2.0', sha256='3e74655f22b1dcc19e8a1b9e7796b8ad44bc37f29e9a99134119e8521e28be97') @@ -25,3 +28,39 @@ class Libtree(CMakePackage): version('1.1.0', sha256='6cf36fb9a4c8c3af01855527d4931110732bb2d1c19be9334c689f1fd1c78536') version('1.0.4', sha256='b15a54b6f388b8bd8636e288fcb581029f1e65353660387b0096a554ad8e9e45') version('1.0.3', sha256='67ce886c191d50959a5727246cdb04af38872cd811c9ed4e3822f77a8f40b20b') + + def url_for_version(self, version): + if version < Version("2.0.0"): + return "https://github.com/haampie/libtree/releases/download/v{0}/sources.tar.gz".format(version) + + return "https://github.com/haampie/libtree/archive/refs/tags/v{0}.tar.gz".format(version) + + variant('chrpath', default=False, description='Use chrpath for deployment') + variant('strip', default=False, description='Use binutils strip for deployment') + + # header only dependencies + depends_on('cpp-termcolor', when='@2.0:', type='build') + depends_on('cxxopts', when='@2.0:', type='build') + depends_on('elfio', when='@2.0:', type='build') + + # runtime deps + depends_on('chrpath', when='+chrpath', type='run') + depends_on('binutils', when='+strip', type='run') + + # testing + depends_on('googletest', type='test') + + def cmake_args(self): + tests_enabled = 'ON' if self.run_tests else 'OFF' + if self.spec.satisfies('@2.0:'): + tests_define = 'LIBTREE_BUILD_TESTS' + else: + tests_define = 'BUILD_TESTING' + + return [ + self.define(tests_define, tests_enabled) + ] + + def check(self): + with working_dir(self.build_directory): + ctest('--output-on-failure') diff --git a/var/spack/repos/builtin/packages/libunwind/package.py b/var/spack/repos/builtin/packages/libunwind/package.py index 1192fef2c02..d87581b664c 100644 --- a/var/spack/repos/builtin/packages/libunwind/package.py +++ b/var/spack/repos/builtin/packages/libunwind/package.py @@ -10,7 +10,7 @@ class Libunwind(AutotoolsPackage): """A portable and efficient C programming interface (API) to determine the call-chain of a program.""" - homepage = "http://www.nongnu.org/libunwind/" + homepage = "https://www.nongnu.org/libunwind/" url = "http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz" git = "https://github.com/libunwind/libunwind" maintainers = ['mwkrentel'] diff --git a/var/spack/repos/builtin/packages/libuuid/package.py b/var/spack/repos/builtin/packages/libuuid/package.py index 6e6f36845ff..c39a29f407a 100644 --- a/var/spack/repos/builtin/packages/libuuid/package.py +++ b/var/spack/repos/builtin/packages/libuuid/package.py @@ -9,7 +9,7 @@ class Libuuid(AutotoolsPackage, SourceforgePackage): """Portable uuid C library""" - homepage = "http://sourceforge.net/projects/libuuid/" + homepage = "https://sourceforge.net/projects/libuuid/" sourceforge_mirror_path = "libuuid/libuuid-1.0.3.tar.gz" version('1.0.3', sha256='46af3275291091009ad7f1b899de3d0cea0252737550e7919d17237997db5644') diff --git a/var/spack/repos/builtin/packages/libuv/package.py b/var/spack/repos/builtin/packages/libuv/package.py index a510de1be56..c5ef0039d34 100644 --- a/var/spack/repos/builtin/packages/libuv/package.py +++ b/var/spack/repos/builtin/packages/libuv/package.py @@ -4,9 +4,11 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) class Libuv(AutotoolsPackage): """Multi-platform library with a focus on asynchronous IO""" - homepage = "http://libuv.org" + homepage = "https://libuv.org" url = "https://github.com/libuv/libuv/archive/v1.9.0.tar.gz" + version('1.42.0', sha256='371e5419708f6aaeb8656671f89400b92a9bba6443369af1bb70bcd6e4b3c764') + version('1.41.1', sha256='62c29d1d76b0478dc8aaed0ed1f874324f6cd2d6ff4cb59a44026c09e818cd53') version('1.41.0', sha256='6cfeb5f4bab271462b4a2cc77d4ecec847fdbdc26b72019c27ae21509e6f94fa') version('1.40.0', sha256='70fe1c9ba4f2c509e8166c0ca2351000237da573bb6c82092339207a9715ba6b') version('1.39.0', sha256='dc7b21f1bb7ef19f4b42c5ea058afabe51132d165da18812b70fb319659ba629') diff --git a/var/spack/repos/builtin/packages/libvpx/package.py b/var/spack/repos/builtin/packages/libvpx/package.py new file mode 100644 index 00000000000..f6a4c11bfad --- /dev/null +++ b/var/spack/repos/builtin/packages/libvpx/package.py @@ -0,0 +1,31 @@ +# Copyright 2013-2021 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 import * + + +class Libvpx(AutotoolsPackage): + """libvpx is a free software video codec library from Google and the + Alliance for Open Media. + It serves as the reference software implementation for the VP8 and VP9 + video coding formats, and for AV1 a special fork named libaom that was + stripped of backwards compatibility. + """ + + homepage = "https://chromium.googlesource.com/webm/libvpx" + url = "https://github.com/webmproject/libvpx/archive/refs/tags/v1.10.0.tar.gz" + + version('1.10.0', sha256='85803ccbdbdd7a3b03d930187cb055f1353596969c1f92ebec2db839fa4f834a') + + variant('pic', default=True, + description='Produce position-independent code (for shared libs)') + + depends_on('yasm') + + def configure_args(self): + extra_args = [] + if "+pic" in self.spec: + extra_args.append('--enable-pic') + return extra_args diff --git a/var/spack/repos/builtin/packages/libwindowswm/package.py b/var/spack/repos/builtin/packages/libwindowswm/package.py index fd7e7dca5b0..d1ad3eae168 100644 --- a/var/spack/repos/builtin/packages/libwindowswm/package.py +++ b/var/spack/repos/builtin/packages/libwindowswm/package.py @@ -14,7 +14,7 @@ class Libwindowswm(AutotoolsPackage, XorgPackage): better interact with the Cygwin XWin server when running X11 in a rootless mode.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libWindowsWM" + homepage = "https://cgit.freedesktop.org/xorg/lib/libWindowsWM" xorg_mirror_path = "lib/libWindowsWM-1.0.1.tar.gz" version('1.0.1', sha256='94f9c0add3bad38ebd84bc43d854207c4deaaa74fb15339276e022546124b98a') diff --git a/var/spack/repos/builtin/packages/libxaw/package.py b/var/spack/repos/builtin/packages/libxaw/package.py index bff3ecd704e..9a86846835d 100644 --- a/var/spack/repos/builtin/packages/libxaw/package.py +++ b/var/spack/repos/builtin/packages/libxaw/package.py @@ -10,7 +10,7 @@ class Libxaw(AutotoolsPackage, XorgPackage): """Xaw is the X Athena Widget Set. Xaw is a widget set based on the X Toolkit Intrinsics (Xt) Library.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXaw" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXaw" xorg_mirror_path = "lib/libXaw-1.0.13.tar.gz" version('1.0.13', sha256='7e74ac3e5f67def549722ff0333d6e6276b8becd9d89615cda011e71238ab694') diff --git a/var/spack/repos/builtin/packages/libxaw3d/package.py b/var/spack/repos/builtin/packages/libxaw3d/package.py index 2b04a501647..cd397d0f6a2 100644 --- a/var/spack/repos/builtin/packages/libxaw3d/package.py +++ b/var/spack/repos/builtin/packages/libxaw3d/package.py @@ -10,7 +10,7 @@ class Libxaw3d(AutotoolsPackage, XorgPackage): """Xaw3d is the X 3D Athena Widget Set. Xaw3d is a widget set based on the X Toolkit Intrinsics (Xt) Library.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXaw3d" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXaw3d" xorg_mirror_path = "lib/libXaw3d-1.6.2.tar.gz" version('1.6.2', sha256='847dab01aeac1448916e3b4edb4425594b3ac2896562d9c7141aa4ac6c898ba9') diff --git a/var/spack/repos/builtin/packages/libxc/package.py b/var/spack/repos/builtin/packages/libxc/package.py index eeec410f9d5..cdfcc52433d 100644 --- a/var/spack/repos/builtin/packages/libxc/package.py +++ b/var/spack/repos/builtin/packages/libxc/package.py @@ -79,8 +79,10 @@ def setup_build_environment(self, env): env.append_flags('CFLAGS', optflags) env.append_flags('FCFLAGS', optflags) - if '%intel' in self.spec and which('xiar'): - env.set('AR', 'xiar') + if '%intel' in self.spec: + env.append_flags('CFLAGS', '-std=c99') + if which('xiar'): + env.set('AR', 'xiar') if '%aocc' in self.spec: env.append_flags('FCFLAGS', '-fPIC') diff --git a/var/spack/repos/builtin/packages/libxcomposite/package.py b/var/spack/repos/builtin/packages/libxcomposite/package.py index 6d479f7f425..24b8a374c4a 100644 --- a/var/spack/repos/builtin/packages/libxcomposite/package.py +++ b/var/spack/repos/builtin/packages/libxcomposite/package.py @@ -10,7 +10,7 @@ class Libxcomposite(AutotoolsPackage, XorgPackage): """libXcomposite - client library for the Composite extension to the X11 protocol.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXcomposite" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXcomposite" xorg_mirror_path = "lib/libXcomposite-0.4.4.tar.gz" version('0.4.4', sha256='83c04649819c6f52cda1b0ce8bcdcc48ad8618428ad803fb07f20b802f1bdad1') diff --git a/var/spack/repos/builtin/packages/libxcursor/package.py b/var/spack/repos/builtin/packages/libxcursor/package.py index 30119927909..a0d3ebcabb1 100644 --- a/var/spack/repos/builtin/packages/libxcursor/package.py +++ b/var/spack/repos/builtin/packages/libxcursor/package.py @@ -9,7 +9,7 @@ class Libxcursor(AutotoolsPackage, XorgPackage): """libXcursor - X Window System Cursor management library.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXcursor" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXcursor" xorg_mirror_path = "lib/libXcursor-1.1.14.tar.gz" version('1.1.14', sha256='be0954faf274969ffa6d95b9606b9c0cfee28c13b6fc014f15606a0c8b05c17b') diff --git a/var/spack/repos/builtin/packages/libxdamage/package.py b/var/spack/repos/builtin/packages/libxdamage/package.py index 1122135d230..04c066b32c5 100644 --- a/var/spack/repos/builtin/packages/libxdamage/package.py +++ b/var/spack/repos/builtin/packages/libxdamage/package.py @@ -9,7 +9,7 @@ class Libxdamage(AutotoolsPackage, XorgPackage): """This package contains the library for the X Damage extension.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXdamage" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXdamage" xorg_mirror_path = "lib/libXdamage-1.1.4.tar.gz" version('1.1.4', sha256='4bb3e9d917f5f593df2277d452926ee6ad96de7b7cd1017cbcf4579fe5d3442b') diff --git a/var/spack/repos/builtin/packages/libxdmcp/package.py b/var/spack/repos/builtin/packages/libxdmcp/package.py index 0a7ba3b7cb2..fe1a6d2133d 100644 --- a/var/spack/repos/builtin/packages/libxdmcp/package.py +++ b/var/spack/repos/builtin/packages/libxdmcp/package.py @@ -9,7 +9,7 @@ class Libxdmcp(AutotoolsPackage, XorgPackage): """libXdmcp - X Display Manager Control Protocol library.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXdmcp" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXdmcp" xorg_mirror_path = "lib/libXdmcp-1.1.2.tar.gz" version('1.1.2', sha256='6f7c7e491a23035a26284d247779174dedc67e34e93cc3548b648ffdb6fc57c0') diff --git a/var/spack/repos/builtin/packages/libxevie/package.py b/var/spack/repos/builtin/packages/libxevie/package.py index 062728c14d2..f70cd344246 100644 --- a/var/spack/repos/builtin/packages/libxevie/package.py +++ b/var/spack/repos/builtin/packages/libxevie/package.py @@ -9,7 +9,7 @@ class Libxevie(AutotoolsPackage, XorgPackage): """Xevie - X Event Interception Extension (XEvIE).""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXevie" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXevie" xorg_mirror_path = "lib/libXevie-1.0.3.tar.gz" version('1.0.3', sha256='3759bb1f7fdade13ed99bfc05c0717bc42ce3f187e7da4eef80beddf5e461258') diff --git a/var/spack/repos/builtin/packages/libxext/package.py b/var/spack/repos/builtin/packages/libxext/package.py index 4fbcf089d0a..a9e8f4871d6 100644 --- a/var/spack/repos/builtin/packages/libxext/package.py +++ b/var/spack/repos/builtin/packages/libxext/package.py @@ -9,7 +9,7 @@ class Libxext(AutotoolsPackage, XorgPackage): """libXext - library for common extensions to the X11 protocol.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXext" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXext" xorg_mirror_path = "lib/libXext-1.3.3.tar.gz" version('1.3.3', sha256='eb0b88050491fef4716da4b06a4d92b4fc9e76f880d6310b2157df604342cfe5') diff --git a/var/spack/repos/builtin/packages/libxfixes/package.py b/var/spack/repos/builtin/packages/libxfixes/package.py index d8f072dab8a..2a74a088381 100644 --- a/var/spack/repos/builtin/packages/libxfixes/package.py +++ b/var/spack/repos/builtin/packages/libxfixes/package.py @@ -10,7 +10,7 @@ class Libxfixes(AutotoolsPackage, XorgPackage): """This package contains header files and documentation for the XFIXES extension. Library and server implementations are separate.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXfixes" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXfixes" xorg_mirror_path = "lib/libXfixes-5.0.2.tar.gz" version('5.0.2', sha256='ad8df1ecf3324512b80ed12a9ca07556e561b14256d94216e67a68345b23c981') diff --git a/var/spack/repos/builtin/packages/libxfont/package.py b/var/spack/repos/builtin/packages/libxfont/package.py index 03c2cc8469e..d7fb57f57d4 100644 --- a/var/spack/repos/builtin/packages/libxfont/package.py +++ b/var/spack/repos/builtin/packages/libxfont/package.py @@ -14,7 +14,7 @@ class Libxfont(AutotoolsPackage, XorgPackage): but should not be used by normal X11 clients. X11 clients access fonts via either the new API's in libXft, or the legacy API's in libX11.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXfont" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXfont" xorg_mirror_path = "lib/libXfont-1.5.2.tar.gz" version('1.5.2', sha256='a7350c75171d03d06ae0d623e42240356d6d3e1ac7dfe606639bf20f0d653c93') diff --git a/var/spack/repos/builtin/packages/libxfont2/package.py b/var/spack/repos/builtin/packages/libxfont2/package.py index 21576da4a9d..24fa3e3f156 100644 --- a/var/spack/repos/builtin/packages/libxfont2/package.py +++ b/var/spack/repos/builtin/packages/libxfont2/package.py @@ -14,7 +14,7 @@ class Libxfont2(AutotoolsPackage, XorgPackage): but should not be used by normal X11 clients. X11 clients access fonts via either the new API's in libXft, or the legacy API's in libX11.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXfont" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXfont" xorg_mirror_path = "lib/libXfont2-2.0.1.tar.gz" version('2.0.1', sha256='381b6b385a69343df48a082523c856aed9042fbbc8ee0a6342fb502e4321230a') diff --git a/var/spack/repos/builtin/packages/libxfontcache/package.py b/var/spack/repos/builtin/packages/libxfontcache/package.py index beb884129ee..3590197b245 100644 --- a/var/spack/repos/builtin/packages/libxfontcache/package.py +++ b/var/spack/repos/builtin/packages/libxfontcache/package.py @@ -9,7 +9,7 @@ class Libxfontcache(AutotoolsPackage, XorgPackage): """Xfontcache - X-TrueType font cache extension client library.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXfontcache" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXfontcache" xorg_mirror_path = "lib/libXfontcache-1.0.5.tar.gz" version('1.0.5', sha256='fdba75307a0983d2566554e0e9effa7079551f1b7b46e8de642d067998619659') diff --git a/var/spack/repos/builtin/packages/libxft/package.py b/var/spack/repos/builtin/packages/libxft/package.py index e231d8b4582..effe915a796 100644 --- a/var/spack/repos/builtin/packages/libxft/package.py +++ b/var/spack/repos/builtin/packages/libxft/package.py @@ -13,7 +13,7 @@ class Libxft(AutotoolsPackage, XorgPackage): connects X applications with the FreeType font rasterization library. Xft uses fontconfig to locate fonts so it has no configuration files.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXft" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXft" xorg_mirror_path = "lib/libXft-2.3.2.tar.gz" version('2.3.2', sha256='26cdddcc70b187833cbe9dc54df1864ba4c03a7175b2ca9276de9f05dce74507') diff --git a/var/spack/repos/builtin/packages/libxi/package.py b/var/spack/repos/builtin/packages/libxi/package.py index 782c67c2ace..3b5d9e107da 100644 --- a/var/spack/repos/builtin/packages/libxi/package.py +++ b/var/spack/repos/builtin/packages/libxi/package.py @@ -9,7 +9,7 @@ class Libxi(AutotoolsPackage, XorgPackage): """libXi - library for the X Input Extension.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXi" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXi" xorg_mirror_path = "lib/libXi-1.7.6.tar.gz" version('1.7.6', sha256='4e88fa7decd287e58140ea72238f8d54e4791de302938c83695fc0c9ac102b7e') diff --git a/var/spack/repos/builtin/packages/libxinerama/package.py b/var/spack/repos/builtin/packages/libxinerama/package.py index e6c6fb04cac..c6ac18f86ae 100644 --- a/var/spack/repos/builtin/packages/libxinerama/package.py +++ b/var/spack/repos/builtin/packages/libxinerama/package.py @@ -9,7 +9,7 @@ class Libxinerama(AutotoolsPackage, XorgPackage): """libXinerama - API for Xinerama extension to X11 Protocol.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXinerama" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXinerama" xorg_mirror_path = "lib/libXinerama-1.1.3.tar.gz" version('1.1.3', sha256='0ba243222ae5aba4c6a3d7a394c32c8b69220a6872dbb00b7abae8753aca9a44') diff --git a/var/spack/repos/builtin/packages/libxml2/package.py b/var/spack/repos/builtin/packages/libxml2/package.py index 781c4a9d3ed..3db52461329 100644 --- a/var/spack/repos/builtin/packages/libxml2/package.py +++ b/var/spack/repos/builtin/packages/libxml2/package.py @@ -16,6 +16,8 @@ class Libxml2(AutotoolsPackage): homepage = "http://xmlsoft.org" url = "http://xmlsoft.org/sources/libxml2-2.9.8.tar.gz" + 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') diff --git a/var/spack/repos/builtin/packages/libxmu/package.py b/var/spack/repos/builtin/packages/libxmu/package.py index 040086074bf..6b4128fc438 100644 --- a/var/spack/repos/builtin/packages/libxmu/package.py +++ b/var/spack/repos/builtin/packages/libxmu/package.py @@ -12,7 +12,7 @@ class Libxmu(AutotoolsPackage, XorgPackage): that it may be layered on top of any proprietary implementation of Xlib or Xt.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXmu" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXmu" xorg_mirror_path = "lib/libXmu-1.1.2.tar.gz" version('1.1.2', sha256='e5fd4bacef068f9509b8226017205040e38d3fba8d2de55037200e7176c13dba') diff --git a/var/spack/repos/builtin/packages/libxp/package.py b/var/spack/repos/builtin/packages/libxp/package.py index 2e842670c60..c2432182f84 100644 --- a/var/spack/repos/builtin/packages/libxp/package.py +++ b/var/spack/repos/builtin/packages/libxp/package.py @@ -9,7 +9,7 @@ class Libxp(AutotoolsPackage, XorgPackage): """libXp - X Print Client Library.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXp" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXp" xorg_mirror_path = "lib/libXp-1.0.3.tar.gz" version('1.0.3', sha256='f6b8cc4ef05d3eafc9ef5fc72819dd412024b4ed60197c0d5914758125817e9c') diff --git a/var/spack/repos/builtin/packages/libxpm/package.py b/var/spack/repos/builtin/packages/libxpm/package.py index c0d71ca9106..190cc7ece86 100644 --- a/var/spack/repos/builtin/packages/libxpm/package.py +++ b/var/spack/repos/builtin/packages/libxpm/package.py @@ -9,7 +9,7 @@ class Libxpm(AutotoolsPackage, XorgPackage): """libXpm - X Pixmap (XPM) image file format library.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXpm" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXpm" xorg_mirror_path = "lib/libXpm-3.5.12.tar.gz" version('3.5.12', sha256='2523acc780eac01db5163267b36f5b94374bfb0de26fc0b5a7bee76649fd8501') diff --git a/var/spack/repos/builtin/packages/libxrandr/package.py b/var/spack/repos/builtin/packages/libxrandr/package.py index d3a78aa4988..ef17f8a58c7 100644 --- a/var/spack/repos/builtin/packages/libxrandr/package.py +++ b/var/spack/repos/builtin/packages/libxrandr/package.py @@ -9,7 +9,7 @@ class Libxrandr(AutotoolsPackage, XorgPackage): """libXrandr - X Resize, Rotate and Reflection extension library.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXrandr" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXrandr" xorg_mirror_path = "lib/libXrandr-1.5.0.tar.gz" version('1.5.0', sha256='1b594a149e6b124aab7149446f2fd886461e2935eca8dca43fe83a70cf8ec451') diff --git a/var/spack/repos/builtin/packages/libxrender/package.py b/var/spack/repos/builtin/packages/libxrender/package.py index c991c8d9ca6..23a622f121b 100644 --- a/var/spack/repos/builtin/packages/libxrender/package.py +++ b/var/spack/repos/builtin/packages/libxrender/package.py @@ -9,7 +9,7 @@ class Libxrender(AutotoolsPackage, XorgPackage): """libXrender - library for the Render Extension to the X11 protocol.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXrender" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXrender" xorg_mirror_path = "lib/libXrender-0.9.10.tar.gz" version('0.9.10', sha256='770527cce42500790433df84ec3521e8bf095dfe5079454a92236494ab296adf') diff --git a/var/spack/repos/builtin/packages/libxres/package.py b/var/spack/repos/builtin/packages/libxres/package.py index c6c4d94f4e2..8c1078bc40d 100644 --- a/var/spack/repos/builtin/packages/libxres/package.py +++ b/var/spack/repos/builtin/packages/libxres/package.py @@ -9,7 +9,7 @@ class Libxres(AutotoolsPackage, XorgPackage): """libXRes - X-Resource extension client library.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXRes" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXRes" xorg_mirror_path = "lib/libXres-1.0.7.tar.gz" version('1.0.7', sha256='488c9fa14b38f794d1f019fe62e6b06514a39f1a7538e55ece8faf22482fefcd') diff --git a/var/spack/repos/builtin/packages/libxscrnsaver/package.py b/var/spack/repos/builtin/packages/libxscrnsaver/package.py index e7c6edfb176..200c6f780b1 100644 --- a/var/spack/repos/builtin/packages/libxscrnsaver/package.py +++ b/var/spack/repos/builtin/packages/libxscrnsaver/package.py @@ -9,7 +9,7 @@ class Libxscrnsaver(AutotoolsPackage, XorgPackage): """XScreenSaver - X11 Screen Saver extension client library""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXScrnSaver" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXScrnSaver" xorg_mirror_path = "lib/libXScrnSaver-1.2.2.tar.gz" version('1.2.2', sha256='e12ba814d44f7b58534c0d8521e2d4574f7bf2787da405de4341c3b9f4cc8d96') diff --git a/var/spack/repos/builtin/packages/libxt/package.py b/var/spack/repos/builtin/packages/libxt/package.py index 9a5fb28ed1c..f4b3df1e7fa 100644 --- a/var/spack/repos/builtin/packages/libxt/package.py +++ b/var/spack/repos/builtin/packages/libxt/package.py @@ -9,7 +9,7 @@ class Libxt(AutotoolsPackage, XorgPackage): """libXt - X Toolkit Intrinsics library.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXt" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXt" xorg_mirror_path = "lib/libXt-1.1.5.tar.gz" version('1.1.5', sha256='b59bee38a9935565fa49dc1bfe84cb30173e2e07e1dcdf801430d4b54eb0caa3') diff --git a/var/spack/repos/builtin/packages/libxtrap/package.py b/var/spack/repos/builtin/packages/libxtrap/package.py index 18212be6961..c5dd44779a1 100644 --- a/var/spack/repos/builtin/packages/libxtrap/package.py +++ b/var/spack/repos/builtin/packages/libxtrap/package.py @@ -18,7 +18,7 @@ class Libxtrap(AutotoolsPackage, XorgPackage): As X11R6 was released in 1994, XTrap has now been deprecated for over 15 years, and uses of it should be quite rare.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXTrap" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXTrap" xorg_mirror_path = "lib/libXTrap-1.0.1.tar.gz" version('1.0.1', sha256='db748e299dcc9af68428795b898a4a96cf806f79b75786781136503e4fce5e17') diff --git a/var/spack/repos/builtin/packages/libxtst/package.py b/var/spack/repos/builtin/packages/libxtst/package.py index 3073e998193..7146212e5bc 100644 --- a/var/spack/repos/builtin/packages/libxtst/package.py +++ b/var/spack/repos/builtin/packages/libxtst/package.py @@ -18,7 +18,7 @@ class Libxtst(AutotoolsPackage, XorgPackage): The RECORD extension supports the recording and reporting of all core X protocol and arbitrary X extension protocol.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXtst" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXtst" xorg_mirror_path = "lib/libXtst-1.2.2.tar.gz" version('1.2.2', sha256='221838960c7b9058cd6795c1c3ee8e25bae1c68106be314bc3036a4f26be0e6c') diff --git a/var/spack/repos/builtin/packages/libxv/package.py b/var/spack/repos/builtin/packages/libxv/package.py index 68810c66c6d..c71e7fc645e 100644 --- a/var/spack/repos/builtin/packages/libxv/package.py +++ b/var/spack/repos/builtin/packages/libxv/package.py @@ -10,7 +10,7 @@ class Libxv(AutotoolsPackage, XorgPackage): """libXv - library for the X Video (Xv) extension to the X Window System.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXv" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXv" xorg_mirror_path = "lib/libXv-1.0.10.tar.gz" version('1.0.10', sha256='89a664928b625558268de81c633e300948b3752b0593453d7815f8775bab5293') diff --git a/var/spack/repos/builtin/packages/libxxf86dga/package.py b/var/spack/repos/builtin/packages/libxxf86dga/package.py index b352d8bfddf..06d91bcdc0d 100644 --- a/var/spack/repos/builtin/packages/libxxf86dga/package.py +++ b/var/spack/repos/builtin/packages/libxxf86dga/package.py @@ -9,7 +9,7 @@ class Libxxf86dga(AutotoolsPackage, XorgPackage): """libXxf86dga - Client library for the XFree86-DGA extension.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXxf86dga" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXxf86dga" xorg_mirror_path = "lib/libXxf86dga-1.1.4.tar.gz" version('1.1.4', sha256='e6361620a15ceba666901ca8423e8be0c6ed0271a7088742009160349173766b') diff --git a/var/spack/repos/builtin/packages/libxxf86misc/package.py b/var/spack/repos/builtin/packages/libxxf86misc/package.py index 07348169f82..eb30de2da56 100644 --- a/var/spack/repos/builtin/packages/libxxf86misc/package.py +++ b/var/spack/repos/builtin/packages/libxxf86misc/package.py @@ -9,7 +9,7 @@ class Libxxf86misc(AutotoolsPackage, XorgPackage): """libXxf86misc - Extension library for the XFree86-Misc X extension.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXxf86misc" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXxf86misc" xorg_mirror_path = "lib/libXxf86misc-1.0.3.tar.gz" version('1.0.3', sha256='358f692f793af00f6ef4c7a8566c1bcaeeea37e417337db3f519522cc1df3946') diff --git a/var/spack/repos/builtin/packages/libxxf86vm/package.py b/var/spack/repos/builtin/packages/libxxf86vm/package.py index 5ed1816f968..4d6b7bfc5aa 100644 --- a/var/spack/repos/builtin/packages/libxxf86vm/package.py +++ b/var/spack/repos/builtin/packages/libxxf86vm/package.py @@ -9,7 +9,7 @@ class Libxxf86vm(AutotoolsPackage, XorgPackage): """libXxf86vm - Extension library for the XFree86-VidMode X extension.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libXxf86vm" + homepage = "https://cgit.freedesktop.org/xorg/lib/libXxf86vm" xorg_mirror_path = "lib/libXxf86vm-1.1.4.tar.gz" version('1.1.4', sha256='5108553c378a25688dcb57dca383664c36e293d60b1505815f67980ba9318a99') diff --git a/var/spack/repos/builtin/packages/libzmq/package.py b/var/spack/repos/builtin/packages/libzmq/package.py index ccbb7d7d4dd..ca17fad1550 100644 --- a/var/spack/repos/builtin/packages/libzmq/package.py +++ b/var/spack/repos/builtin/packages/libzmq/package.py @@ -9,7 +9,7 @@ class Libzmq(AutotoolsPackage): """The ZMQ networking/concurrency library and core API""" - homepage = "http://zguide.zeromq.org/" + homepage = "https://zguide.zeromq.org/" url = "https://github.com/zeromq/libzmq/releases/download/v4.3.2/zeromq-4.3.2.tar.gz" git = "https://github.com/zeromq/libzmq.git" diff --git a/var/spack/repos/builtin/packages/ligra/package.py b/var/spack/repos/builtin/packages/ligra/package.py index 3bfa849b5f3..72804c970c1 100644 --- a/var/spack/repos/builtin/packages/ligra/package.py +++ b/var/spack/repos/builtin/packages/ligra/package.py @@ -9,7 +9,7 @@ class Ligra(MakefilePackage): """A Lightweight Graph Processing Framework for Shared Memory""" - homepage = "http://jshun.github.io/ligra/" + homepage = "https://jshun.github.io/ligra/" url = "https://github.com/jshun/ligra/archive/v.1.5.tar.gz" version('1.5', sha256='74113a5a3c19a0e319a5b9ebefc8a67c5d18d4d2a9670363092a966f4163f6b7') diff --git a/var/spack/repos/builtin/packages/listres/package.py b/var/spack/repos/builtin/packages/listres/package.py index c27c30509d2..40e39ae950f 100644 --- a/var/spack/repos/builtin/packages/listres/package.py +++ b/var/spack/repos/builtin/packages/listres/package.py @@ -10,7 +10,7 @@ class Listres(AutotoolsPackage, XorgPackage): """The listres program generates a list of X resources for a widget in an X client written using a toolkit based on libXt.""" - homepage = "http://cgit.freedesktop.org/xorg/app/listres" + homepage = "https://cgit.freedesktop.org/xorg/app/listres" xorg_mirror_path = "app/listres-1.0.3.tar.gz" version('1.0.3', sha256='87d5698b8aa4d841e45e6556932c9914210cbd8b10003d664b31185b087981be') diff --git a/var/spack/repos/builtin/packages/llvm-amdgpu/package.py b/var/spack/repos/builtin/packages/llvm-amdgpu/package.py index 507c3f7569c..840182d2302 100644 --- a/var/spack/repos/builtin/packages/llvm-amdgpu/package.py +++ b/var/spack/repos/builtin/packages/llvm-amdgpu/package.py @@ -15,11 +15,12 @@ class LlvmAmdgpu(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/llvm-project" git = "https://github.com/RadeonOpenCompute/llvm-project.git" - url = "https://github.com/RadeonOpenCompute/llvm-project/archive/rocm-4.1.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/llvm-project/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie'] version('master', branch='amd-stg-open') + version('4.3.0', sha256='1567d349cd3bcd2c217b3ecec2f70abccd5e9248bd2c3c9f21d4cdb44897fc87') version('4.2.0', sha256='751eca1d18595b565cfafa01c3cb43efb9107874865a60c80d6760ba83edb661') version('4.1.0', sha256='244e38d824fa7dfa8d0edf3c036b3c84e9c17a16791828e4b745a8d31eb374ae') version('4.0.0', sha256='aa1f80f429fded465e86bcfaef72255da1af1c5c52d58a4c979bc2f6c2da5a69') @@ -50,7 +51,7 @@ class LlvmAmdgpu(CMakePackage): patch('fix-ncurses-3.9.0.patch', when='@3.9.0:4.0.0') # This is already fixed in upstream but not in 4.2.0 rocm release - patch('fix-spack-detection-4.2.0.patch', when='@4.2.0') + patch('fix-spack-detection-4.2.0.patch', when='@4.2.0:') conflicts('^cmake@3.19.0') @@ -59,6 +60,7 @@ class LlvmAmdgpu(CMakePackage): # Add device libs sources so they can be an external LLVM project for d_version, d_shasum in [ + ('4.3.0', '055a67e63da6491c84cd45865500043553fb33c44d538313dd87040a6f3826f2'), ('4.2.0', '34a2ac39b9bb7cfa8175cbab05d30e7f3c06aaffce99eed5f79c616d0f910f5f'), ('4.1.0', 'f5f5aa6bfbd83ff80a968fa332f80220256447c4ccb71c36f1fbd2b4a8e9fc1b'), ('4.0.0', 'd0aa495f9b63f6d8cf8ac668f4dc61831d996e9ae3f15280052a37b9d7670d2a'), @@ -92,12 +94,25 @@ def cmake_args(self): 'compiler-rt' ] + args = [] + if self.spec.satisfies('@4.3.0:'): + llvm_projects.append('libcxx') + llvm_projects.append('libcxxabi') + + args = [ + 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'), + ] + if '+openmp' in self.spec: llvm_projects.append('openmp') - args = [ - self.define('LLVM_ENABLE_PROJECTS', ';'.join(llvm_projects)) - ] + args.extend([self.define('LLVM_ENABLE_PROJECTS', ';'.join(llvm_projects))]) # Enable rocm-device-libs as a external project if '+rocm-device-libs' in self.spec: diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py index 4c55482347c..bd707f44297 100644 --- a/var/spack/repos/builtin/packages/llvm/package.py +++ b/var/spack/repos/builtin/packages/llvm/package.py @@ -19,7 +19,7 @@ class Llvm(CMakePackage, CudaPackage): is not an acronym; it is the full name of the project. """ - homepage = "http://llvm.org/" + homepage = "https://llvm.org/" url = "https://github.com/llvm/llvm-project/archive/llvmorg-7.1.0.tar.gz" list_url = "http://releases.llvm.org/download.html" git = "https://github.com/llvm/llvm-project" diff --git a/var/spack/repos/builtin/packages/lndir/package.py b/var/spack/repos/builtin/packages/lndir/package.py index 0e8891b04ed..7751feb76df 100644 --- a/var/spack/repos/builtin/packages/lndir/package.py +++ b/var/spack/repos/builtin/packages/lndir/package.py @@ -10,7 +10,7 @@ class Lndir(AutotoolsPackage, XorgPackage): """lndir - create a shadow directory of symbolic links to another directory tree.""" - homepage = "http://cgit.freedesktop.org/xorg/util/lndir" + homepage = "https://cgit.freedesktop.org/xorg/util/lndir" xorg_mirror_path = "util/lndir-1.0.3.tar.gz" version('1.0.3', sha256='95b2d26fb3cbe702f828146c7a4c7c48001d2da52b062580227b7b68180be902') diff --git a/var/spack/repos/builtin/packages/lorene/package.py b/var/spack/repos/builtin/packages/lorene/package.py index d8cef6630ee..fc8a5748153 100644 --- a/var/spack/repos/builtin/packages/lorene/package.py +++ b/var/spack/repos/builtin/packages/lorene/package.py @@ -39,7 +39,7 @@ class Lorene(MakefilePackage): parallel = False def edit(self, spec, prefix): - blas_libs = spec['lapack'].libs.link_flags + blas_libs = spec['blas'].libs.link_flags fftw_incdirs = "-I" + spec['fftw'].prefix.include if '+fftw' in spec else "" fftw_libdirs = "-L" + spec['fftw'].prefix.lib if '+fftw' in spec else "" fftw_libs = spec['fftw'].libs.link_flags @@ -63,7 +63,7 @@ def edit(self, spec, prefix): "-I$(HOME_LORENE)/C++/Include_extra " + fftw_incdirs + " " + gsl_incdirs + " " + pgplot_incdirs)), ('@RANLIB@', "ls"), - ('@MAKEDEPEND@', "cpp $(INC) -M >> $(df).d $<"), + ('@MAKEDEPEND@', ": >$(df).d"), ('@FFT_DIR@', "FFTW3"), ('@LIB_CXX@', fftw_libdirs + " " + fftw_libs + " -lgfortran"), ('@LIB_GSL@', gsl_libdirs + " " + gsl_libs), @@ -99,7 +99,9 @@ def install(self, spec, prefix): install_tree('Lib', prefix.lib) mkdirp(prefix.bin) if '+bin_star' in spec: - install_tree(join_path('Codes', 'Bin_star'), prefix.bin) + for exe in ['coal', 'lit_bin', 'init_bin', 'coal_regu', + 'init_bin_regu', 'analyse', 'prepare_seq']: + install(join_path('Codes', 'Bin_star', exe), prefix.bin) @property def libs(self): diff --git a/var/spack/repos/builtin/packages/lsscsi/package.py b/var/spack/repos/builtin/packages/lsscsi/package.py index 6505d76401b..0e98ba4cb7c 100644 --- a/var/spack/repos/builtin/packages/lsscsi/package.py +++ b/var/spack/repos/builtin/packages/lsscsi/package.py @@ -12,7 +12,7 @@ class Lsscsi(AutotoolsPackage): 'classic'option to mimic the output of 'cat /proc/scsi/scsi' that has been widely used prior to the lk 2.6 series.""" - homepage = "http://sg.danny.cz/scsi/lsscsi.html" + homepage = "https://sg.danny.cz/scsi/lsscsi.html" url = "http://sg.danny.cz/scsi/lsscsi-0.31.tgz" version('0.31', sha256='12bf1973014803c6fd6d547e7594a4c049f0eef3bf5d22190d4be29d7c09f3ca') diff --git a/var/spack/repos/builtin/packages/lua-luajit/package.py b/var/spack/repos/builtin/packages/lua-luajit/package.py index feab2028a63..68c6f2ec482 100644 --- a/var/spack/repos/builtin/packages/lua-luajit/package.py +++ b/var/spack/repos/builtin/packages/lua-luajit/package.py @@ -11,7 +11,7 @@ class LuaLuajit(MakefilePackage): """Flast flexible JITed lua""" - homepage = "http://www.luajit.org" + homepage = "https://www.luajit.org" url = "http://luajit.org/download/LuaJIT-2.0.5.tar.gz" version('2.1.0-beta3', sha256='1ad2e34b111c802f9d0cdf019e986909123237a28c746b21295b63c9e785d9c3') diff --git a/var/spack/repos/builtin/packages/lua/package.py b/var/spack/repos/builtin/packages/lua/package.py index 3290a6fe975..5574d0d59a5 100644 --- a/var/spack/repos/builtin/packages/lua/package.py +++ b/var/spack/repos/builtin/packages/lua/package.py @@ -13,7 +13,7 @@ class Lua(Package): """The Lua programming language interpreter and library.""" - homepage = "http://www.lua.org" + homepage = "https://www.lua.org" url = "http://www.lua.org/ftp/lua-5.3.4.tar.gz" version('5.3.5', sha256='0c2eed3f960446e1a3e4b9a1ca2f3ff893b6ce41942cf54d5dd59ab4b3b058ac') diff --git a/var/spack/repos/builtin/packages/luit/package.py b/var/spack/repos/builtin/packages/luit/package.py index a3c6c3b7511..b3d4f7725dc 100644 --- a/var/spack/repos/builtin/packages/luit/package.py +++ b/var/spack/repos/builtin/packages/luit/package.py @@ -12,7 +12,7 @@ class Luit(AutotoolsPackage, XorgPackage): output from the locale's encoding into UTF-8, and convert terminal input from UTF-8 into the locale's encoding.""" - homepage = "http://cgit.freedesktop.org/xorg/app/luit" + homepage = "https://cgit.freedesktop.org/xorg/app/luit" xorg_mirror_path = "app/luit-1.1.1.tar.gz" version('1.1.1', sha256='87b0be0bd01f3b857a53e6625bdd31cef18418c95394b7f4387f8ecef78e45da') diff --git a/var/spack/repos/builtin/packages/lz4/package.py b/var/spack/repos/builtin/packages/lz4/package.py index f8a376e64e6..88df78fddef 100644 --- a/var/spack/repos/builtin/packages/lz4/package.py +++ b/var/spack/repos/builtin/packages/lz4/package.py @@ -14,7 +14,7 @@ class Lz4(MakefilePackage): an extremely fast decoder, with speed in multiple GB/s per core, typically reaching RAM speed limits on multi-core systems.""" - homepage = "http://lz4.github.io/lz4/" + homepage = "https://lz4.github.io/lz4/" url = "https://github.com/lz4/lz4/archive/v1.9.2.tar.gz" version('1.9.3', sha256='030644df4611007ff7dc962d981f390361e6c97a34e5cbc393ddfbe019ffe2c1') diff --git a/var/spack/repos/builtin/packages/lzma/package.py b/var/spack/repos/builtin/packages/lzma/package.py index 41fac117b31..0765eecfc9b 100644 --- a/var/spack/repos/builtin/packages/lzma/package.py +++ b/var/spack/repos/builtin/packages/lzma/package.py @@ -16,7 +16,7 @@ class Lzma(AutotoolsPackage): tools of LZMA Utils. This should make transition from LZMA Utils to XZ Utils relatively easy.""" - homepage = "http://tukaani.org/lzma/" + homepage = "https://tukaani.org/lzma/" url = "http://tukaani.org/lzma/lzma-4.32.7.tar.gz" version('4.32.7', sha256='9f337a8c51e5ded198d1032f5087ba3fe438f2a54e9df419e513a151775b032c') diff --git a/var/spack/repos/builtin/packages/m4/nvhpc-1.4.19.patch b/var/spack/repos/builtin/packages/m4/nvhpc-1.4.19.patch new file mode 100644 index 00000000000..ee9398b3bb5 --- /dev/null +++ b/var/spack/repos/builtin/packages/m4/nvhpc-1.4.19.patch @@ -0,0 +1,14 @@ +--- a/lib/intprops.h ++++ b/lib/intprops.h +@@ -232,9 +232,9 @@ + (A, B, P) work when P is non-null. */ + /* __builtin_{add,sub}_overflow exists but is not reliable in GCC 5.x and 6.x, + see . */ +-#if 7 <= __GNUC__ && !defined __ICC ++#if 7 <= __GNUC__ && !defined __ICC && !defined __NVCOMPILER + # define _GL_HAS_BUILTIN_ADD_OVERFLOW 1 +-#elif defined __has_builtin ++#elif defined __has_builtin && !defined __NVCOMPILER + # define _GL_HAS_BUILTIN_ADD_OVERFLOW __has_builtin (__builtin_add_overflow) + #else + # define _GL_HAS_BUILTIN_ADD_OVERFLOW 0 diff --git a/var/spack/repos/builtin/packages/m4/nvhpc-long-width.patch b/var/spack/repos/builtin/packages/m4/nvhpc-long-width.patch new file mode 100644 index 00000000000..1dceb3a0342 --- /dev/null +++ b/var/spack/repos/builtin/packages/m4/nvhpc-long-width.patch @@ -0,0 +1,17 @@ +--- a/lib/regex_internal.h ++++ b/lib/regex_internal.h +@@ -39,6 +39,14 @@ + #include + #include + ++#ifndef __LONG_WIDTH__ ++#if LONG_WIDTH ++#define __LONG_WIDTH__ LONG_WIDTH ++#else ++#define __LONG_WIDTH__ __WORDSIZE ++#endif ++#endif ++ + #if defined DEBUG && DEBUG != 0 + # include + # define DEBUG_ASSERT(x) assert (x) diff --git a/var/spack/repos/builtin/packages/m4/package.py b/var/spack/repos/builtin/packages/m4/package.py index a71240e4bc4..d39ac2450d0 100644 --- a/var/spack/repos/builtin/packages/m4/package.py +++ b/var/spack/repos/builtin/packages/m4/package.py @@ -18,7 +18,12 @@ class M4(AutotoolsPackage, GNUMirrorPackage): patch('gnulib-pgi.patch', when='@1.4.18') patch('pgi.patch', when='@1.4.17') + # The NVIDIA compilers do not currently support some GNU builtins. + # Detect this case and use the fallback path. patch('nvhpc.patch', when='@1.4.18 %nvhpc') + patch('nvhpc-1.4.19.patch', when='@1.4.19 %nvhpc') + # Workaround bug where __LONG_WIDTH__ is not defined + patch('nvhpc-long-width.patch', when='@1.4.19 %nvhpc') patch('oneapi.patch', when='@1.4.18 %oneapi') # from: https://github.com/Homebrew/homebrew-core/blob/master/Formula/m4.rb # Patch credit to Jeremy Huddleston Sequoia diff --git a/var/spack/repos/builtin/packages/mafft/package.py b/var/spack/repos/builtin/packages/mafft/package.py index 9ca65a87222..0747e057dd7 100644 --- a/var/spack/repos/builtin/packages/mafft/package.py +++ b/var/spack/repos/builtin/packages/mafft/package.py @@ -12,7 +12,7 @@ class Mafft(Package): methods, L-INS-i (accurate; for alignment of <~200 sequences), FFT-NS-2 (fast; for alignment of <~30,000 sequences), etc.""" - homepage = "http://mafft.cbrc.jp/alignment/software/index.html" + homepage = "https://mafft.cbrc.jp/alignment/software/index.html" url = "http://mafft.cbrc.jp/alignment/software/mafft-7.221-with-extensions-src.tgz" version('7.481', sha256='7397f1193048587a3d887e46a353418e67849f71729764e8195b218e3453dfa2') diff --git a/var/spack/repos/builtin/packages/magma/package.py b/var/spack/repos/builtin/packages/magma/package.py index 15aef600967..26e467fcae2 100644 --- a/var/spack/repos/builtin/packages/magma/package.py +++ b/var/spack/repos/builtin/packages/magma/package.py @@ -13,7 +13,7 @@ class Magma(CMakePackage, CudaPackage, ROCmPackage): current "Multicore+GPU" systems. """ - homepage = "http://icl.cs.utk.edu/magma/" + homepage = "https://icl.cs.utk.edu/magma/" git = 'https://bitbucket.org/icl/magma' url = "http://icl.cs.utk.edu/projectsfiles/magma/downloads/magma-2.2.0.tar.gz" maintainers = ['stomov', 'luszczek', 'G-Ragghianti'] diff --git a/var/spack/repos/builtin/packages/makedepend/package.py b/var/spack/repos/builtin/packages/makedepend/package.py index cae4d4938af..54592030bb8 100644 --- a/var/spack/repos/builtin/packages/makedepend/package.py +++ b/var/spack/repos/builtin/packages/makedepend/package.py @@ -9,7 +9,7 @@ class Makedepend(AutotoolsPackage, XorgPackage): """makedepend - create dependencies in makefiles.""" - homepage = "http://cgit.freedesktop.org/xorg/util/makedepend" + homepage = "https://cgit.freedesktop.org/xorg/util/makedepend" xorg_mirror_path = "util/makedepend-1.0.5.tar.gz" version('1.0.5', sha256='503903d41fb5badb73cb70d7b3740c8b30fe1cc68c504d3b6a85e6644c4e5004') diff --git a/var/spack/repos/builtin/packages/maker/package.py b/var/spack/repos/builtin/packages/maker/package.py index 7d12a0ddb6c..8951b72d823 100644 --- a/var/spack/repos/builtin/packages/maker/package.py +++ b/var/spack/repos/builtin/packages/maker/package.py @@ -31,7 +31,7 @@ class Maker(Package): For instructions on how to set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" - homepage = "http://www.yandell-lab.org/software/maker.html" + homepage = "https://www.yandell-lab.org/software/maker.html" manual_download = True version('3.01.03', sha256='d3979af9710d61754a3b53f6682d0e2052c6c3f36be6f2df2286d2587406f07d') diff --git a/var/spack/repos/builtin/packages/man-db/package.py b/var/spack/repos/builtin/packages/man-db/package.py index e5ecc8fc86e..349936af5a8 100644 --- a/var/spack/repos/builtin/packages/man-db/package.py +++ b/var/spack/repos/builtin/packages/man-db/package.py @@ -12,7 +12,7 @@ class ManDb(AutotoolsPackage): a Berkeley DB database in place of the traditional flat-text whatis databases.""" - homepage = "http://www.nongnu.org/man-db/" + homepage = "https://www.nongnu.org/man-db/" url = "http://git.savannah.nongnu.org/cgit/man-db.git/snapshot/man-db-2.7.6.1.tar.gz" version('2.7.6.1', sha256='dd913662e341fc01e6721878b6cbe1001886cc3bfa6632b095937bba3238c779') diff --git a/var/spack/repos/builtin/packages/mapserver/package.py b/var/spack/repos/builtin/packages/mapserver/package.py index ed9bb7079d1..de972ab81b6 100644 --- a/var/spack/repos/builtin/packages/mapserver/package.py +++ b/var/spack/repos/builtin/packages/mapserver/package.py @@ -14,7 +14,7 @@ class Mapserver(CMakePackage): "geographic image maps", that is, maps that can direct users to content""" - homepage = "http://www.mapserver.org/" + homepage = "https://www.mapserver.org/" url = "https://download.osgeo.org/mapserver/mapserver-7.2.1.tar.gz" version('7.2.1', sha256='9459a7057d5a85be66a41096a5d804f74665381186c37077c94b56e784db6102') diff --git a/var/spack/repos/builtin/packages/mariadb-c-client/package.py b/var/spack/repos/builtin/packages/mariadb-c-client/package.py index 4c3a4b1b4ac..e6f2e0904b5 100644 --- a/var/spack/repos/builtin/packages/mariadb-c-client/package.py +++ b/var/spack/repos/builtin/packages/mariadb-c-client/package.py @@ -16,7 +16,7 @@ class MariadbCClient(CMakePackage): Connector', which enables connections to MariaDB and MySQL servers. """ - homepage = "http://mariadb.org/about/" + homepage = "https://mariadb.org/about/" url = "https://downloads.mariadb.com/Connectors/c/connector-c-3.0.3/mariadb-connector-c-3.0.3-src.tar.gz" list_url = "https://downloads.mariadb.com/Connectors/c/" diff --git a/var/spack/repos/builtin/packages/masa/package.py b/var/spack/repos/builtin/packages/masa/package.py index dee05e96ef6..ec72851f1a1 100644 --- a/var/spack/repos/builtin/packages/masa/package.py +++ b/var/spack/repos/builtin/packages/masa/package.py @@ -44,3 +44,10 @@ def configure_args(self): options.extend(['--enable-python-interfaces']) return options + + def setup_build_environment(self, env): + # Unfortunately can't use this because MASA overwrites it + # env.set('CXXFLAGS', self.compiler.cxx11_flag) + env.set('CXX', "{0} {1}".format(self.compiler.cxx, self.compiler.cxx11_flag)) + if self.spec.satisfies('%apple-clang'): + env.set('CFLAGS', '-Wno-implicit-function-declaration') diff --git a/var/spack/repos/builtin/packages/mash/package.py b/var/spack/repos/builtin/packages/mash/package.py index bebcdd69af5..e93cc3d672d 100644 --- a/var/spack/repos/builtin/packages/mash/package.py +++ b/var/spack/repos/builtin/packages/mash/package.py @@ -11,7 +11,7 @@ class Mash(AutotoolsPackage): Fast genome and metagenome distance estimation using MinHash. """ - homepage = "http://mash.readthedocs.org/" + homepage = "https://mash.readthedocs.org/" url = "https://github.com/marbl/Mash/archive/refs/tags/v2.3.tar.gz" maintainers = ['marcusboden'] diff --git a/var/spack/repos/builtin/packages/mawk/package.py b/var/spack/repos/builtin/packages/mawk/package.py index 1a8da55db53..4cbd322d77a 100644 --- a/var/spack/repos/builtin/packages/mawk/package.py +++ b/var/spack/repos/builtin/packages/mawk/package.py @@ -9,7 +9,7 @@ class Mawk(AutotoolsPackage): """mawk is an interpreter for the AWK Programming Language.""" - homepage = "http://invisible-island.net/mawk/mawk.html" + homepage = "https://invisible-island.net/mawk/mawk.html" url = "http://invisible-mirror.net/archives/mawk/mawk-1.3.4.tgz" version('1.3.4-20171017', sha256='db17115d1ed18ed1607c8b93291db9ccd4fe5e0f30d2928c3c5d127b23ec9e5b') diff --git a/var/spack/repos/builtin/packages/mbedtls/package.py b/var/spack/repos/builtin/packages/mbedtls/package.py index bb641994358..a3063415e84 100644 --- a/var/spack/repos/builtin/packages/mbedtls/package.py +++ b/var/spack/repos/builtin/packages/mbedtls/package.py @@ -17,6 +17,7 @@ class Mbedtls(CMakePackage): url = "https://github.com/ARMmbed/mbedtls/archive/mbedtls-2.2.1.tar.gz" maintainers = ['mwkrentel'] + version('3.0.0', sha256='377d376919be19f07c7e7adeeded088a525be40353f6d938a78e4f986bce2ae0') version('2.16.9', sha256='b7ca99ee10551b5b13242b7effebefd2a5cc38c287e5f5be1267d51ee45effe3') version('2.16.7', sha256='4786b7d1676f5e4d248f3a7f2d28446876d64962634f060ff21b92c690cfbe86') version('2.16.1', sha256='daf0d40f3016c34eb42d1e4b3b52be047e976d566aba8668977723c829af72f3') @@ -38,8 +39,9 @@ class Mbedtls(CMakePackage): variant('shared', default=False, description='Build shared libraries') + depends_on('cmake@3.10.2:', type='build', when='@3.0.0:') depends_on('cmake@3.1.0:', type='build', when='@2.8.0:') - depends_on('cmake@2.6:', type='build', when='@:2.7.99') + depends_on('cmake@2.6:', type='build') depends_on('perl', type='test') def cmake_args(self): diff --git a/var/spack/repos/builtin/packages/mc/package.py b/var/spack/repos/builtin/packages/mc/package.py index b9cf4a664b3..e897d2158f3 100644 --- a/var/spack/repos/builtin/packages/mc/package.py +++ b/var/spack/repos/builtin/packages/mc/package.py @@ -12,6 +12,7 @@ class Mc(AutotoolsPackage): homepage = "https://midnight-commander.org" url = "http://ftp.midnight-commander.org/mc-4.8.20.tar.bz2" + version('4.8.26', sha256='9d6358d0a351a455a1410aab57f33b6b48b0fcf31344b9a10b0ff497595979d1') version('4.8.23', sha256='238c4552545dcf3065359bd50753abbb150c1b22ec5a36eaa02c82808293267d') version('4.8.21', sha256='251d9f0ef9309ef3eea0fdc4c12b8b61149e5056bef1b2de2ccc7f015d973444') version('4.8.20', sha256='2d85daaa6ab26e524946df4823ac2f69802bc16bc967781b5e28d5b86fc3b979') diff --git a/var/spack/repos/builtin/packages/med/package.py b/var/spack/repos/builtin/packages/med/package.py index 453af1b6cf1..fe8944a3ebc 100644 --- a/var/spack/repos/builtin/packages/med/package.py +++ b/var/spack/repos/builtin/packages/med/package.py @@ -9,7 +9,7 @@ class Med(CMakePackage): """The MED file format is a specialization of the HDF5 standard.""" - homepage = "http://docs.salome-platform.org/latest/dev/MEDCoupling/med-file.html" + 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" maintainers = ['likask'] diff --git a/var/spack/repos/builtin/packages/megadock/package.py b/var/spack/repos/builtin/packages/megadock/package.py index da0182e8217..cdbf870136f 100644 --- a/var/spack/repos/builtin/packages/megadock/package.py +++ b/var/spack/repos/builtin/packages/megadock/package.py @@ -12,7 +12,7 @@ class Megadock(MakefilePackage, CudaPackage): """an ultra-high-performance protein-protein docking for heterogeneous supercomputers""" - homepage = "http://www.bi.cs.titech.ac.jp/megadock/" + homepage = "https://www.bi.cs.titech.ac.jp/megadock/" url = "http://www.bi.cs.titech.ac.jp/megadock/archives/megadock-4.0.3.tgz" version('4.0.3', sha256='c1409a411555f4f7b4eeeda81caf622d8a28259a599ea1d2181069c55f257664') diff --git a/var/spack/repos/builtin/packages/melissa/package.py b/var/spack/repos/builtin/packages/melissa/package.py new file mode 100644 index 00000000000..6cf4b4de166 --- /dev/null +++ b/var/spack/repos/builtin/packages/melissa/package.py @@ -0,0 +1,42 @@ +# Copyright 2013-2021 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 import * + + +class Melissa(CMakePackage): + """Melissa is a file-avoiding, adaptive, fault-tolerant and elastic + framework, to run large-scale sensitivity analysis on supercomputers. + """ + + homepage = 'https://gitlab.inria.fr/melissa/melissa' + url = 'https://gitlab.inria.fr/melissa/melissa/-/archive/v1.0/melissa-v1.0.tar.bz2' + git = 'https://gitlab.inria.fr/melissa/melissa.git' + + # attention: Git**Hub**.com accounts + maintainers = ['christoph-conrads', 'raffino'] + + version('master', branch='master') + version('develop', branch='develop') + version('0.7.1', sha256='c30584f15fecf6297712a88e4d28851bfd992f31209fd7bb8af2feebe73d539d') + version('0.7.0', sha256='a801d0b512e31a0750f98cfca80f8338985e06abf9b26e96f7645a022864e41c', deprecated=True) + + variant('no_mpi_api', default=False, description="Enable the deprecated no-MPI API") + variant('shared', default=True, description="Build shared libraries") + + depends_on('cmake@3.7.2:', type='build') + depends_on('libzmq@4.1.5:') + depends_on('mpi') + depends_on('pkgconfig', type='build') + depends_on('python@3.5.3:', type=('build', 'run')) + + def cmake_args(self): + args = [ + self.define('BUILD_TESTING', self.run_tests), + self.define_from_variant('BUILD_SHARED_LIBS', 'shared'), + self.define_from_variant('MELISSA_ENABLE_NO_MPI_API', 'no_mpi_api') + ] + + return args diff --git a/var/spack/repos/builtin/packages/meme/package.py b/var/spack/repos/builtin/packages/meme/package.py index 78e21ca595c..bf6b463e520 100644 --- a/var/spack/repos/builtin/packages/meme/package.py +++ b/var/spack/repos/builtin/packages/meme/package.py @@ -12,7 +12,7 @@ class Meme(AutotoolsPackage): collections of unaligned nucleotide or protein sequences, and to perform a wide variety of other motif-based analyses.""" - homepage = "http://meme-suite.org" + homepage = "https://meme-suite.org" url = "http://meme-suite.org/meme-software/5.1.1/meme-5.1.1.tar.gz" version('5.3.0', sha256='b2ddec9db972fcf77b29c7deb62df8b1dd8a6638c13c1aa06a5d563c4a7ff756') diff --git a/var/spack/repos/builtin/packages/mercurial/package.py b/var/spack/repos/builtin/packages/mercurial/package.py index 2cee858c2ec..2041f79eef7 100644 --- a/var/spack/repos/builtin/packages/mercurial/package.py +++ b/var/spack/repos/builtin/packages/mercurial/package.py @@ -31,8 +31,8 @@ class Mercurial(PythonPackage): version('3.8.2', sha256='cb78b16956140625266a8a6d1fadc7c868969d994086e1ec60279a66bf20bffd') version('3.8.1', sha256='face1f058de5530b56b0dfd3b4d0b23d89590c588605c06f3d18b79e8c30d594') - depends_on('python@2.6:2.8', when='@:4.2.99', type=('build', 'run')) - depends_on('python@2.7:2.8,3.5.3:3.5.999,3.6.2:', when='@4.3:', type=('build', 'run')) + depends_on('python+bz2+ssl+zlib@2.6:2.8', when='@:4.2.99', type=('build', 'run')) + depends_on('python+bz2+ssl+zlib@2.7:2.8,3.5.3:3.5.999,3.6.2:', when='@4.3:', type=('build', 'run')) depends_on('py-setuptools', when='@3.6:', type='build') depends_on('py-docutils', type='build') depends_on('py-pygments', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/mesa-demos/package.py b/var/spack/repos/builtin/packages/mesa-demos/package.py index f5de75dabe6..8adc35710b1 100644 --- a/var/spack/repos/builtin/packages/mesa-demos/package.py +++ b/var/spack/repos/builtin/packages/mesa-demos/package.py @@ -9,7 +9,7 @@ class MesaDemos(AutotoolsPackage): """This package provides some demo applications for testing Mesa.""" - homepage = "http://www.mesa3d.org" + homepage = "https://www.mesa3d.org" url = "https://github.com/freedesktop/mesa-demos/archive/mesa-demos-8.3.0.tar.gz" version('8.3.0', sha256='9bc1b37f4fc7bfc3f818f2d3851ffde28e8167ef11dca87f4781e9ef6206901f') diff --git a/var/spack/repos/builtin/packages/mesa/package.py b/var/spack/repos/builtin/packages/mesa/package.py index d39c61f519f..4ea29184edf 100644 --- a/var/spack/repos/builtin/packages/mesa/package.py +++ b/var/spack/repos/builtin/packages/mesa/package.py @@ -12,7 +12,7 @@ class Mesa(MesonPackage): """Mesa is an open-source implementation of the OpenGL specification - a system for rendering interactive 3D graphics.""" - homepage = "http://www.mesa3d.org" + homepage = "https://www.mesa3d.org" maintainers = ['chuckatkins', 'v-dobrev'] git = "https://gitlab.freedesktop.org/mesa/mesa.git" diff --git a/var/spack/repos/builtin/packages/mesa18/package.py b/var/spack/repos/builtin/packages/mesa18/package.py index 89c3a2dce72..b75ef647515 100644 --- a/var/spack/repos/builtin/packages/mesa18/package.py +++ b/var/spack/repos/builtin/packages/mesa18/package.py @@ -12,7 +12,7 @@ class Mesa18(AutotoolsPackage): """Mesa is an open-source implementation of the OpenGL specification - a system for rendering interactive 3D graphics.""" - homepage = "http://www.mesa3d.org" + homepage = "https://www.mesa3d.org" maintainers = ['v-dobrev', 'chuckatkins', 'ChristianTackeGSI'] # Note that we always want to build from the git repo instead of a diff --git a/var/spack/repos/builtin/packages/meshkit/package.py b/var/spack/repos/builtin/packages/meshkit/package.py index ea3dec2ace8..17ac4379e16 100644 --- a/var/spack/repos/builtin/packages/meshkit/package.py +++ b/var/spack/repos/builtin/packages/meshkit/package.py @@ -13,7 +13,7 @@ class Meshkit(AutotoolsPackage): meshing algorithms for use in real meshing problems, along with other tools commonly needed to support mesh generation""" - homepage = "http://sigma.mcs.anl.gov/meshkit-library" + homepage = "https://sigma.mcs.anl.gov/meshkit-library" url = "http://ftp.mcs.anl.gov/pub/fathom/meshkit-1.5.0.tar.gz" version('1.5.0', sha256='6a4c119af191e24ef40644acb7cfbe967af0678ac3412f38a943fb28d661cac7') diff --git a/var/spack/repos/builtin/packages/meson/package.py b/var/spack/repos/builtin/packages/meson/package.py index 87cdf6e4528..4c401140305 100644 --- a/var/spack/repos/builtin/packages/meson/package.py +++ b/var/spack/repos/builtin/packages/meson/package.py @@ -11,12 +11,14 @@ class Meson(PythonPackage): """Meson is a portable open source build system meant to be both extremely fast, and as user friendly as possible.""" - homepage = "http://mesonbuild.com/" + homepage = "https://mesonbuild.com/" url = "https://github.com/mesonbuild/meson/archive/0.49.0.tar.gz" maintainers = ['michaelkuhn'] + 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') diff --git a/var/spack/repos/builtin/packages/metall/package.py b/var/spack/repos/builtin/packages/metall/package.py index ee9495733f1..1409f173d45 100644 --- a/var/spack/repos/builtin/packages/metall/package.py +++ b/var/spack/repos/builtin/packages/metall/package.py @@ -9,14 +9,16 @@ class Metall(CMakePackage): homepage = "https://github.com/LLNL/metall" git = "https://github.com/LLNL/metall.git" - url = "https://github.com/LLNL/metall/archive/v0.15.tar.gz" + url = "https://github.com/LLNL/metall/archive/v0.16.tar.gz" maintainers = ['KIwabuchi', 'rogerpearce', 'mayagokhale'] version('master', branch='master') version('develop', branch='develop') + version('0.16', sha256='190fa6936cbbfad1844659eb1fcfd1ad8c5880f60e76e223e33c506d371ea3a3') version('0.15', sha256='a1ea475ce1297b0c4cdf450544dc60ecf1b0a30c548b08ba77ccda5585df7248') + version('0.14', sha256='386a6db0cfd3b3693cf8b0de323dcb60d43777aa5c871b744c9e8c19a572a917') version('0.13', sha256='959d37d0a7e7e5b4d5e6c0334aaaeef1b463e855fa8e807042f662c993ed60b1') version('0.12', sha256='b757b354b355e866bd6d42da53b0160442f3b7f663a19ba113da1ffc1a76176e') version('0.11', sha256='7cfa6a7eaaeb7fd11ecfbe43a172a36c8cde200601d6cd3b309d7a0acf752f3c') diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py index 05481e62167..ecd470c4cb7 100644 --- a/var/spack/repos/builtin/packages/mfem/package.py +++ b/var/spack/repos/builtin/packages/mfem/package.py @@ -49,10 +49,13 @@ class Mfem(Package, CudaPackage, ROCmPackage): # other version. version('develop', branch='master') + version('4.3.0', + sha256='3a495602121b986049286ea0b23512279cdbdfb43c15c42a1511b521051fbe38', + url='https://bit.ly/mfem-4-3', extension='tar.gz') + version('4.2.0', '4352a225b55948d2e73a5ee88cece0e88bdbe7ba6726a23d68b2736d3221a86d', - url='https://bit.ly/mfem-4-2', extension='tar.gz', - preferred=True) + url='https://bit.ly/mfem-4-2', extension='tar.gz') version('4.1.0', '4c83fdcf083f8e2f5b37200a755db843cdb858811e25a8486ad36b2cbec0e11d', diff --git a/var/spack/repos/builtin/packages/migraphx/package.py b/var/spack/repos/builtin/packages/migraphx/package.py index 7261e464b29..9e2c316e28d 100644 --- a/var/spack/repos/builtin/packages/migraphx/package.py +++ b/var/spack/repos/builtin/packages/migraphx/package.py @@ -11,10 +11,11 @@ class Migraphx(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX" git = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX.git" - url = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='99cf202a5e86cf5502b0f8bf12f152dbd5a6aacc204b3d9d5efca67a54793408') version('4.2.0', sha256='93f22f6c641dde5d7fb8abcbd99621b3c81e332e125a6f3a258d5e4cf2055f55') version('4.1.0', sha256='f9b1d2e25cdbaf5d0bfb07d4c8ccef0abaa291757c4bce296c3b5b9488174045') version('4.0.0', sha256='b8b845249626e9169353dbfa2530db468972a7569b248c8118ff19e029a12e55') @@ -48,7 +49,7 @@ def url_for_version(self, version): depends_on('py-pybind11@2.6:', type='build', when='@4.1.0:') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) depends_on('hip@' + ver, when='@' + ver) depends_on('llvm-amdgpu@' + ver, when='@' + ver) @@ -61,7 +62,8 @@ def cmake_python_hints(self): CMake based on current spec """ python_spec = self.spec['python'] - include_dir = python_spec.package.get_python_inc() + include_dir = join_path( + python_spec.prefix, python_spec.package.config_vars['python_inc']['false']) return [ self.define('Python_INCLUDE_DIR', include_dir) ] diff --git a/var/spack/repos/builtin/packages/migrate/package.py b/var/spack/repos/builtin/packages/migrate/package.py index 340229905ac..408a5fefb6d 100644 --- a/var/spack/repos/builtin/packages/migrate/package.py +++ b/var/spack/repos/builtin/packages/migrate/package.py @@ -11,7 +11,7 @@ class Migrate(AutotoolsPackage): between n population assuming a migration matrix model with asymmetric migration rates and different subpopulation sizes""" - homepage = "http://popgen.sc.fsu.edu/" + homepage = "https://popgen.sc.fsu.edu/" url = "http://popgen.sc.fsu.edu/currentversions/migrate-3.6.11.src.tar.gz" version('3.6.11', sha256='a9ba06a4e995a45b8d04037f5f2da23e1fe64a2f3565189bdd50c62c6fe01fb8') diff --git a/var/spack/repos/builtin/packages/miniaero/package.py b/var/spack/repos/builtin/packages/miniaero/package.py index 3985f03d7d4..65c090d9067 100644 --- a/var/spack/repos/builtin/packages/miniaero/package.py +++ b/var/spack/repos/builtin/packages/miniaero/package.py @@ -12,7 +12,7 @@ class Miniaero(MakefilePackage): of programming models and hardware for next generation platforms. """ - homepage = "http://mantevo.org" + homepage = "https://mantevo.org" git = "https://github.com/Mantevo/miniAero.git" tags = ['proxy-app'] diff --git a/var/spack/repos/builtin/packages/miniconda3/package.py b/var/spack/repos/builtin/packages/miniconda3/package.py index b2f783c5441..03d717e4bb7 100644 --- a/var/spack/repos/builtin/packages/miniconda3/package.py +++ b/var/spack/repos/builtin/packages/miniconda3/package.py @@ -9,6 +9,8 @@ from spack import * _versions = { + '4.10.3': { + 'Linux-x86_64': ('1ea2f885b4dbc3098662845560bc64271eb17085387a70c2ba3f29fff6f8d52f', 'https://repo.anaconda.com/miniconda/Miniconda3-py39_4.10.3-Linux-x86_64.sh')}, '4.9.2': { 'Linux-ppc64le': ('2b111dab4b72a34c969188aa7a91eca927a034b14a87f725fa8d295955364e71', 'https://repo.anaconda.com/miniconda/Miniconda3-py38_4.9.2-Linux-ppc64le.sh'), 'Linux-x86_64': ('1314b90489f154602fd794accfc90446111514a5a72fe1f71ab83e07de9504a7', 'https://repo.anaconda.com/miniconda/Miniconda3-py38_4.9.2-Linux-x86_64.sh')}, diff --git a/var/spack/repos/builtin/packages/minighost/package.py b/var/spack/repos/builtin/packages/minighost/package.py index 65393d31483..d1575d6c998 100644 --- a/var/spack/repos/builtin/packages/minighost/package.py +++ b/var/spack/repos/builtin/packages/minighost/package.py @@ -15,7 +15,7 @@ class Minighost(MakefilePackage): across a homogenous three dimensional domain. """ - homepage = "http://mantevo.org" + homepage = "https://mantevo.org" url = "http://downloads.mantevo.org/releaseTarballs/miniapps/MiniGhost/miniGhost_1.0.1.tar.gz" tags = ['proxy-app'] diff --git a/var/spack/repos/builtin/packages/minimd/package.py b/var/spack/repos/builtin/packages/minimd/package.py index 0f71b46b783..2fe32090381 100644 --- a/var/spack/repos/builtin/packages/minimd/package.py +++ b/var/spack/repos/builtin/packages/minimd/package.py @@ -11,7 +11,7 @@ class Minimd(MakefilePackage): in a typical molecular dynamics applications. """ - homepage = "http://mantevo.org" + homepage = "https://mantevo.org" url = "http://downloads.mantevo.org/releaseTarballs/miniapps/MiniMD/miniMD_1.2.tgz" tags = ['proxy-app'] diff --git a/var/spack/repos/builtin/packages/minismac2d/package.py b/var/spack/repos/builtin/packages/minismac2d/package.py index b0c70a16d8c..40a61a2acb0 100644 --- a/var/spack/repos/builtin/packages/minismac2d/package.py +++ b/var/spack/repos/builtin/packages/minismac2d/package.py @@ -13,7 +13,7 @@ class Minismac2d(MakefilePackage): turbulence model on a structured body conforming grid. """ - homepage = "http://mantevo.org" + homepage = "https://mantevo.org" url = "http://downloads.mantevo.org/releaseTarballs/miniapps/MiniSMAC2D/miniSMAC2D-2.0.tgz" tags = ['proxy-app'] diff --git a/var/spack/repos/builtin/packages/minivite/package.py b/var/spack/repos/builtin/packages/minivite/package.py index fa355fedf0d..3d92af95c30 100644 --- a/var/spack/repos/builtin/packages/minivite/package.py +++ b/var/spack/repos/builtin/packages/minivite/package.py @@ -12,7 +12,7 @@ class Minivite(MakefilePackage): """ tags = ['proxy-app', 'ecp-proxy-app'] - homepage = "http://hpc.pnl.gov/people/hala/grappolo.html" + homepage = "https://hpc.pnl.gov/people/hala/grappolo.html" git = "https://github.com/Exa-Graph/miniVite.git" version('develop', branch='master') diff --git a/var/spack/repos/builtin/packages/minizip/package.py b/var/spack/repos/builtin/packages/minizip/package.py index 28715822952..9c1690ee3e0 100644 --- a/var/spack/repos/builtin/packages/minizip/package.py +++ b/var/spack/repos/builtin/packages/minizip/package.py @@ -9,7 +9,7 @@ class Minizip(AutotoolsPackage): """C library for zip/unzip via zLib.""" - homepage = "http://www.winimage.com/zLibDll/minizip.html" + homepage = "https://www.winimage.com/zLibDll/minizip.html" url = "https://zlib.net/fossils/zlib-1.2.11.tar.gz" version('1.2.11', sha256='c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1') diff --git a/var/spack/repos/builtin/packages/miopen-hip/package.py b/var/spack/repos/builtin/packages/miopen-hip/package.py index 2479e1e70c4..fe35848761c 100644 --- a/var/spack/repos/builtin/packages/miopen-hip/package.py +++ b/var/spack/repos/builtin/packages/miopen-hip/package.py @@ -12,10 +12,11 @@ class MiopenHip(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/MIOpen" git = "https://github.com/ROCmSoftwarePlatform/MIOpen.git" - url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='034445470cfd44480a1d9854f9fdfe92cfb8efa3f002dee508eb9585e338486d') version('4.2.0', sha256='8ab02e784c8b3471159794766ed6303c333b33c69dc5186c0930e56504373b7c') version('4.1.0', sha256='068b1bc33f90fe21d3aab5697d2b3b7b930e613c54d6c5ee820768579b2b41ee') version('4.0.0', sha256='84c6c17be9c1a9cd0d3a2af283433f64b07a4b9941349f498e40fed82fb205a6') @@ -38,7 +39,7 @@ class MiopenHip(CMakePackage): patch('0001-Add-rocm-path-and-rocm-device-lib-path-flags.patch', when='@3.9.0:') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) depends_on('hip@' + ver, when='@' + ver) depends_on('rocm-clang-ocl@' + ver, when='@' + ver) @@ -67,6 +68,10 @@ def cmake_args(self): 'CMAKE_CXX_COMPILER', '{0}/bin/clang++'.format(spec['llvm-amdgpu'].prefix) ), + self.define( + 'MIOPEN_AMDGCN_ASSEMBLER', + '{0}/bin/clang'.format(spec['llvm-amdgpu'].prefix) + ), self.define('Boost_USE_STATIC_LIBS', 'Off'), self.define('HIP_PREFIX_PATH', spec['hip'].prefix), self.define('DEVICELIBS_PREFIX_PATH', self.get_bitcode_dir()) diff --git a/var/spack/repos/builtin/packages/miopen-opencl/package.py b/var/spack/repos/builtin/packages/miopen-opencl/package.py index 1c5d4ee1be3..5dc553acd07 100644 --- a/var/spack/repos/builtin/packages/miopen-opencl/package.py +++ b/var/spack/repos/builtin/packages/miopen-opencl/package.py @@ -12,10 +12,11 @@ class MiopenOpencl(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/MIOpen" git = "https://github.com/ROCmSoftwarePlatform/MIOpen.git" - url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='034445470cfd44480a1d9854f9fdfe92cfb8efa3f002dee508eb9585e338486d') version('4.2.0', sha256='8ab02e784c8b3471159794766ed6303c333b33c69dc5186c0930e56504373b7c') version('4.1.0', sha256='068b1bc33f90fe21d3aab5697d2b3b7b930e613c54d6c5ee820768579b2b41ee') version('4.0.0', sha256='84c6c17be9c1a9cd0d3a2af283433f64b07a4b9941349f498e40fed82fb205a6') @@ -36,18 +37,15 @@ class MiopenOpencl(CMakePackage): depends_on('miopengemm@1.1.6', type='link', when='@3.5.0') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) depends_on('hip@' + ver, when='@' + ver) depends_on('rocm-opencl@' + ver, when='@' + ver) for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('miopengemm@' + ver, when='@' + ver) - for ver in ['4.1.0', '4.2.0']: - depends_on('hip-rocclr@' + ver, when='@' + ver) - def cmake_args(self): args = [ self.define('MIOPEN_BACKEND', 'OpenCL'), @@ -59,6 +57,10 @@ def cmake_args(self): 'HIP_CXX_COMPILER', '{0}/bin/clang++'.format(self.spec['llvm-amdgpu'].prefix) ), + self.define( + 'MIOPEN_AMDGCN_ASSEMBLER', + '{0}/bin/clang'.format(self.spec['llvm-amdgpu'].prefix) + ), self.define('Boost_USE_STATIC_LIBS', 'Off') ] return args diff --git a/var/spack/repos/builtin/packages/miopengemm/package.py b/var/spack/repos/builtin/packages/miopengemm/package.py index cfbd3643593..c751607c038 100644 --- a/var/spack/repos/builtin/packages/miopengemm/package.py +++ b/var/spack/repos/builtin/packages/miopengemm/package.py @@ -12,7 +12,7 @@ class Miopengemm(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM" git = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM.git" - url = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] @@ -22,6 +22,7 @@ def url_for_version(self, version): url = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM/archive/rocm-{0}.tar.gz" return url.format(version) + version('4.3.0', sha256='d32b3b98e695b7db2fd2faa6587a57728d1252d6d649dcb2db3102f98cd5930e') version('4.2.0', sha256='a11fa063248ed339fe897ab4c5d338b7279035fa37fcbe0909e2c4c352aaefb1') version('4.1.0', sha256='389328eb4a16565853691bd5b01a0eab978d99e3217329236ddc63a38b8dd4eb') version('4.0.0', sha256='366d03facb1ec5f6f4894aa88859df1d7fea00fee0cbac5173d7577e9a8ba799') @@ -38,6 +39,6 @@ def url_for_version(self, version): depends_on('rocm-opencl@3.5.0', when='@1.1.6') for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) depends_on('rocm-opencl@' + ver, when='@' + ver) diff --git a/var/spack/repos/builtin/packages/mira/package.py b/var/spack/repos/builtin/packages/mira/package.py index 4caf029858b..e147000f0fe 100644 --- a/var/spack/repos/builtin/packages/mira/package.py +++ b/var/spack/repos/builtin/packages/mira/package.py @@ -10,7 +10,7 @@ class Mira(AutotoolsPackage): """MIRA is a multi-pass DNA sequence data assembler/mapper for whole genome and EST/RNASeq projects.""" - homepage = "http://sourceforge.net/projects/mira-assembler/" + homepage = "https://sourceforge.net/projects/mira-assembler/" url = "https://downloads.sourceforge.net/project/mira-assembler/MIRA/stable/mira-4.0.2.tar.bz2" version('4.0.2', sha256='a32cb2b21e0968a5536446287c895fe9e03d11d78957554e355c1080b7b92a80') diff --git a/var/spack/repos/builtin/packages/mivisionx/package.py b/var/spack/repos/builtin/packages/mivisionx/package.py index 3aabcb74281..44d444d4a15 100644 --- a/var/spack/repos/builtin/packages/mivisionx/package.py +++ b/var/spack/repos/builtin/packages/mivisionx/package.py @@ -13,7 +13,7 @@ class Mivisionx(CMakePackage): homepage = "https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX" git = "https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX.git" - url = "https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] @@ -24,6 +24,7 @@ def url_for_version(self, version): url = "https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-{0}.tar.gz" return url.format(version) + version('4.3.0', sha256='31f6ab9fb7f40b23d4b24c9a70f809623720943e0492c3d357dd22dcfa50efb2') version('4.2.0', sha256='172857b1b340373ae81ed6aa241559aa781e32250e75c82d7ba3c002930a8a3a') version('4.1.0', sha256='0b431a49807682b9a81adac6a64160a0712ddaa3963e0f05595c93b92be777ea') version('4.0.0', sha256='e09d4890b729740ded056b3974daea84c8eb1fc93714c52bf89f853c2eef1fb5') @@ -41,6 +42,10 @@ def patch(self): self.spec['rocm-opencl'].prefix, 'amd_openvx/cmake/FindOpenCL.cmake', string=True) + filter_file('/opt/rocm/mivisionx/include', + self.spec['mivisionx'].prefix.include, + 'utilities/mv_deploy/CMakeLists.txt', + string=True) def flag_handler(self, name, flags): spec = self.spec @@ -59,7 +64,8 @@ def flag_handler(self, name, flags): depends_on('miopengemm@1.1.6', when='@1.7') depends_on('openssl', when='@4.0.0:4.2.0') - for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0']: + for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0', + '4.3.0']: depends_on('rocm-opencl@' + ver, when='@' + ver) depends_on('miopengemm@' + ver, when='@' + ver) depends_on('miopen-opencl@' + ver, when='@' + ver) diff --git a/var/spack/repos/builtin/packages/mkfontdir/package.py b/var/spack/repos/builtin/packages/mkfontdir/package.py index a6f8e9aaffa..ac06bfa7047 100644 --- a/var/spack/repos/builtin/packages/mkfontdir/package.py +++ b/var/spack/repos/builtin/packages/mkfontdir/package.py @@ -11,7 +11,7 @@ class Mkfontdir(AutotoolsPackage, XorgPackage): core font system. The current implementation is a simple wrapper script around the mkfontscale program, which must be built and installed first.""" - homepage = "http://cgit.freedesktop.org/xorg/app/mkfontdir" + homepage = "https://cgit.freedesktop.org/xorg/app/mkfontdir" xorg_mirror_path = "app/mkfontdir-1.0.7.tar.gz" version('1.0.7', sha256='bccc5fb7af1b614eabe4a22766758c87bfc36d66191d08c19d2fa97674b7b5b7') diff --git a/var/spack/repos/builtin/packages/mkfontscale/package.py b/var/spack/repos/builtin/packages/mkfontscale/package.py index aaae9efe691..fa3628f35eb 100644 --- a/var/spack/repos/builtin/packages/mkfontscale/package.py +++ b/var/spack/repos/builtin/packages/mkfontscale/package.py @@ -10,7 +10,7 @@ class Mkfontscale(AutotoolsPackage, XorgPackage): """mkfontscale creates the fonts.scale and fonts.dir index files used by the legacy X11 font system.""" - homepage = "http://cgit.freedesktop.org/xorg/app/mkfontscale" + homepage = "https://cgit.freedesktop.org/xorg/app/mkfontscale" xorg_mirror_path = "app/mkfontscale-1.1.2.tar.gz" version('1.1.2', sha256='8bba59e60fbc4cb082092cf6b67e810b47b4fe64fbc77dbea1d7e7d55312b2e4') diff --git a/var/spack/repos/builtin/packages/mmg/package.py b/var/spack/repos/builtin/packages/mmg/package.py index a420975bb30..0d985b8bb26 100644 --- a/var/spack/repos/builtin/packages/mmg/package.py +++ b/var/spack/repos/builtin/packages/mmg/package.py @@ -23,9 +23,10 @@ class Mmg(CMakePackage): libmmg3d libraries. """ - homepage = "http://www.mmgtools.org/" + homepage = "https://www.mmgtools.org/" url = "https://github.com/MmgTools/mmg/archive/v5.3.13.tar.gz" + version('5.5.2', sha256='58e3b866101e6f0686758e16bcf9fb5fb06c85184533fc5054ef1c8adfd4be73') version('5.4.0', sha256='2b5cc505018859856766be901797ff5d4789f89377038a0211176a5571039750') version('5.3.13', sha256='d9a5925b69b0433f942ab2c8e55659d9ccea758743354b43d54fdf88a6c3c191') diff --git a/var/spack/repos/builtin/packages/moab/package.py b/var/spack/repos/builtin/packages/moab/package.py index 118b822d324..3d4f470c1a6 100644 --- a/var/spack/repos/builtin/packages/moab/package.py +++ b/var/spack/repos/builtin/packages/moab/package.py @@ -18,12 +18,13 @@ class Moab(AutotoolsPackage): homepage = "https://bitbucket.org/fathomteam/moab" git = "https://bitbucket.org/fathomteam/moab.git" - url = "http://ftp.mcs.anl.gov/pub/fathom/moab-5.0.0.tar.gz" + url = "https://ftp.mcs.anl.gov/pub/fathom/moab-5.0.0.tar.gz" maintainers = ['vijaysm', 'iulian787'] version('develop', branch='develop') version('master', branch='master') + version('5.3.0', sha256='51c31ccbcaa76d9658a44452b9a39f076b795b27a1c9f408fc3d0eea97e032ef') version('5.2.1', sha256='60d31762be3f0e5c89416c764e844ec88dac294169b59a5ead3c316b50f85c29') version('5.2.0', sha256='805ed3546deff39e076be4d1f68aba1cf0dda8c34ce43e1fc179d1aff57c5d5d') version('5.1.0', sha256='0371fc25d2594589e95700739f01614f097b6157fb6023ed8995e582726ca658') diff --git a/var/spack/repos/builtin/packages/mochi-margo/package.py b/var/spack/repos/builtin/packages/mochi-margo/package.py index 9022f6e1866..a02ed349b18 100644 --- a/var/spack/repos/builtin/packages/mochi-margo/package.py +++ b/var/spack/repos/builtin/packages/mochi-margo/package.py @@ -17,6 +17,7 @@ class MochiMargo(AutotoolsPackage): maintainers = ['carns', 'mdorier', 'fbudin69500', 'chuckatkins'] version('main', branch='main') + version('0.9.5', sha256='b5c52477a82aa44a079f876cbb8166d0bce5a07a92bcf8a0c76670b245e728a3') version('0.9.4', sha256='4292e083c8375ab07bc6dd0b3b1ea2ce9c9dd864c27ac7f07c6913dcccecc746') version('0.9.3', sha256='1331423d4864349c3a9ec52b2114122659da310d5270fa1aea652e8ee48a0b3a') version('0.9.2', sha256='de88cd725c8ff3ec63412f3f5ed22ad1a56cb367c31b842c816ce40cba777f7c') diff --git a/var/spack/repos/builtin/packages/molcas/package.py b/var/spack/repos/builtin/packages/molcas/package.py index 7fa77cfb463..e6b384f1280 100644 --- a/var/spack/repos/builtin/packages/molcas/package.py +++ b/var/spack/repos/builtin/packages/molcas/package.py @@ -14,7 +14,7 @@ class Molcas(CMakePackage): Please set the path to licence file with the following command export MOLCAS_LICENSE=/path/to/molcas/license/""" - homepage = "http://www.molcas.org/" + homepage = "https://www.molcas.org/" url = "file://{0}/molcas8.2.tar.gz".format(os.getcwd()) manual_download = True diff --git a/var/spack/repos/builtin/packages/mono/package.py b/var/spack/repos/builtin/packages/mono/package.py index 80ab3c3db89..8ecc0add5bd 100644 --- a/var/spack/repos/builtin/packages/mono/package.py +++ b/var/spack/repos/builtin/packages/mono/package.py @@ -13,8 +13,9 @@ class Mono(AutotoolsPackage): standards for C# and the Common Language Runtime. """ - homepage = "http://www.mono-project.com/" + homepage = "https://www.mono-project.com/" url = "https://download.mono-project.com/sources/mono/mono-5.0.1.1.tar.bz2" + maintainers = ['grospelliergilles'] # /usr/share/.mono/keypairs needs to exist or be able to be # created, e.g. https://github.com/gentoo/dotnet/issues/6 @@ -29,6 +30,8 @@ class Mono(AutotoolsPackage): depends_on('perl', type=('build')) depends_on('python', type=('build')) + version('6.12.0.122', sha256='29c277660fc5e7513107aee1cbf8c5057c9370a4cdfeda2fc781be6986d89d23', + url='https://download.mono-project.com/sources/mono/mono-6.12.0.122.tar.xz') version('6.8.0.123', sha256='e2e42d36e19f083fc0d82f6c02f7db80611d69767112af353df2f279744a2ac5', url='https://download.mono-project.com/sources/mono/mono-6.8.0.123.tar.xz') version('6.8.0.105', sha256='578799c44c3c86a9eb5daf6dec6c60a24341940fd376371956d4a46cf8612178', diff --git a/var/spack/repos/builtin/packages/motif/package.py b/var/spack/repos/builtin/packages/motif/package.py index 8491244146e..1118148178e 100644 --- a/var/spack/repos/builtin/packages/motif/package.py +++ b/var/spack/repos/builtin/packages/motif/package.py @@ -13,7 +13,7 @@ class Motif(AutotoolsPackage): """ force_autoreconf = True - homepage = "http://motif.ics.com/" + homepage = "https://motif.ics.com/" url = "http://cfhcable.dl.sourceforge.net/project/motif/Motif%202.3.8%20Source%20Code/motif-2.3.8.tar.gz" version('2.3.8', sha256='859b723666eeac7df018209d66045c9853b50b4218cecadb794e2359619ebce7') diff --git a/var/spack/repos/builtin/packages/mozjs/package.py b/var/spack/repos/builtin/packages/mozjs/package.py index 35586093740..c219c36dcee 100644 --- a/var/spack/repos/builtin/packages/mozjs/package.py +++ b/var/spack/repos/builtin/packages/mozjs/package.py @@ -11,7 +11,7 @@ class Mozjs(AutotoolsPackage): It is used in various Mozilla products, including Firefox, and is available under the MPL2.""" - homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey" + homepage = "https://firefox-source-docs.mozilla.org/js/index.html" version('24.2.0', sha256='e62f3f331ddd90df1e238c09d61a505c516fe9fd8c5c95336611d191d18437d8', url="http://ftp.mozilla.org/pub/js/mozjs-24.2.0.tar.bz2") diff --git a/var/spack/repos/builtin/packages/mpe2/package.py b/var/spack/repos/builtin/packages/mpe2/package.py index 88a477b644e..1e44f77264a 100644 --- a/var/spack/repos/builtin/packages/mpe2/package.py +++ b/var/spack/repos/builtin/packages/mpe2/package.py @@ -9,7 +9,7 @@ class Mpe2(AutotoolsPackage): """Message Passing Extensions (MPE): Parallel, shared X window graphics""" - homepage = "http://www.mcs.anl.gov/research/projects/perfvis/software/MPE/" + homepage = "https://www.mcs.anl.gov/research/projects/perfvis/software/MPE/" url = "http://ftp.mcs.anl.gov/pub/mpi/mpe/mpe2-1.3.0.tar.gz" version('1.3.0', sha256='0faf32f9adab6fd882be30be913089ebf75272f8b5e4a012bb20c54abc21c0be') diff --git a/var/spack/repos/builtin/packages/mpibind/package.py b/var/spack/repos/builtin/packages/mpibind/package.py new file mode 100644 index 00000000000..f448d9b9521 --- /dev/null +++ b/var/spack/repos/builtin/packages/mpibind/package.py @@ -0,0 +1,47 @@ +# Copyright 2013-2020 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 sys + +from spack import * + + +class Mpibind(AutotoolsPackage): + """A memory-driven algorithm to map parallel codes + to heterogeneous architectures""" + + homepage = "https://github.com/LLNL/mpibind" + url = "https://github.com/LLNL/mpibind/archive/refs/tags/v0.5.0.tar.gz" + git = "https://github.com/LLNL/mpibind.git" + + maintainers = ['eleon'] + + # The build process uses 'git describe --tags' to get the + # package version, thus we need 'get_full_repo' + version('master', branch='master', get_full_repo=True) + version('0.5.0', sha256='51bb27341109aeef121a8630bd56f5551c70ebfd337a459fb70ef9015d97d2b7') + + variant('cuda', default=False, + description='Build w/support for NVIDIA GPUs.') + variant('rocm', default=False, + description='Build w/support for AMD GPUs.') + + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('m4', type='build') + depends_on('pkgconf', type='build') + + depends_on('hwloc@2:+libxml2', type='link') + depends_on('hwloc@2:+pci', when=(sys.platform != 'darwin'), type='link') + depends_on('hwloc@2:+cuda+nvml', when='+cuda', type='link') + depends_on('hwloc@2.4:+rocm+opencl', when='+rocm', type='link') + + def autoreconf(self, spec, prefix): + autoreconf('--install', '--verbose', '--force') + + # To build and run the tests, make sure 'libtap' is installed + # on the target system and is recognized by pkg-config. + # Unfortunately, libtap is not in Spack. diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py index fb66aaa20e2..a958701a6bf 100644 --- a/var/spack/repos/builtin/packages/mpich/package.py +++ b/var/spack/repos/builtin/packages/mpich/package.py @@ -14,7 +14,7 @@ class Mpich(AutotoolsPackage): """MPICH is a high performance and widely portable implementation of the Message Passing Interface (MPI) standard.""" - homepage = "http://www.mpich.org" + homepage = "https://www.mpich.org" url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz" git = "https://github.com/pmodels/mpich.git" list_url = "http://www.mpich.org/static/downloads/" diff --git a/var/spack/repos/builtin/packages/mpitrampoline/package.py b/var/spack/repos/builtin/packages/mpitrampoline/package.py new file mode 100644 index 00000000000..3c0b463aa37 --- /dev/null +++ b/var/spack/repos/builtin/packages/mpitrampoline/package.py @@ -0,0 +1,48 @@ +# Copyright 2013-2021 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 import * + + +class Mpitrampoline(CMakePackage): + """MPItrampoline: 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" + git = "https://github.com/eschnett/MPItrampoline.git" + + maintainers = ['eschnett'] + + version('develop', branch='main') + version('1.0.1', sha256='4ce91b99fb6d2dab481b5e477b6b6a0709add48cf0f287afbbb440fdf3232500') + + variant('shared', default=True, + description='Build a shared version of the library') + + provides("mpi @3.1") + + def cmake_args(self): + return [self.define_from_variant('BUILD_SHARED_LIBS', 'shared')] + + def setup_run_environment(self, env): + # Because MPI implementations provide compilers, they have to add to + # their run environments the code to make the compilers available. + env.set('MPITRAMPOLINE_CC', self.compiler.cc_names[0]) + env.set('MPITRAMPOLINE_CXX', self.compiler.cxx_names[0]) + env.set('MPITRAMPOLINE_FC', self.compiler.fc_names[0]) + env.set('MPICC', join_path(self.prefix.bin, 'mpicc')) + env.set('MPICXX', join_path(self.prefix.bin, 'mpicxx')) + env.set('MPIF77', join_path(self.prefix.bin, 'mpifc')) + env.set('MPIF90', join_path(self.prefix.bin, 'mpifc')) + + def setup_dependent_build_environment(self, env, dependent_spec): + self.setup_run_environment(env) + + def setup_dependent_package(self, module, dependent_spec): + self.spec.mpicc = join_path(self.prefix.bin, 'mpicc') + self.spec.mpicxx = join_path(self.prefix.bin, 'mpicxx') + self.spec.mpif77 = join_path(self.prefix.bin, 'mpifc') + self.spec.mpifc = join_path(self.prefix.bin, 'mpifc') diff --git a/var/spack/repos/builtin/packages/mrnet/package.py b/var/spack/repos/builtin/packages/mrnet/package.py index 64de446e500..931cbbc6962 100644 --- a/var/spack/repos/builtin/packages/mrnet/package.py +++ b/var/spack/repos/builtin/packages/mrnet/package.py @@ -9,7 +9,7 @@ class Mrnet(AutotoolsPackage): """The MRNet Multi-Cast Reduction Network.""" - homepage = "http://paradyn.org/mrnet" + homepage = "https://paradyn.org/mrnet" url = "http://ftp.cs.wisc.edu/pub/paradyn/mrnet/mrnet_5.0.1.tar.gz" git = "https://github.com/dyninst/mrnet.git" list_url = "http://ftp.cs.wisc.edu/paradyn/mrnet" diff --git a/var/spack/repos/builtin/packages/mrtrix3/package.py b/var/spack/repos/builtin/packages/mrtrix3/package.py index 34b6bf33f94..c54fd354819 100644 --- a/var/spack/repos/builtin/packages/mrtrix3/package.py +++ b/var/spack/repos/builtin/packages/mrtrix3/package.py @@ -12,7 +12,7 @@ class Mrtrix3(Package): probabilistic tractography, track-density imaging, and apparent fibre density.""" - homepage = "http://www.mrtrix.org/" + homepage = "https://www.mrtrix.org/" git = "https://github.com/MRtrix3/mrtrix3.git" version('2017-09-25', commit='72aca89e3d38c9d9e0c47104d0fb5bd2cbdb536d') diff --git a/var/spack/repos/builtin/packages/mscgen/package.py b/var/spack/repos/builtin/packages/mscgen/package.py index c663e029bc1..dddee92e84b 100644 --- a/var/spack/repos/builtin/packages/mscgen/package.py +++ b/var/spack/repos/builtin/packages/mscgen/package.py @@ -12,7 +12,7 @@ class Mscgen(AutotoolsPackage): and produces PNG, SVG, EPS or server side image maps (ismaps) as the output.""" - homepage = "http://www.mcternan.me.uk/mscgen/" + homepage = "https://www.mcternan.me.uk/mscgen/" url = "http://www.mcternan.me.uk/mscgen/software/mscgen-src-0.20.tar.gz" version('0.20', sha256='3c3481ae0599e1c2d30b7ed54ab45249127533ab2f20e768a0ae58d8551ddc23') diff --git a/var/spack/repos/builtin/packages/mumax/package.py b/var/spack/repos/builtin/packages/mumax/package.py index 78755f3cf59..3e810b2736a 100644 --- a/var/spack/repos/builtin/packages/mumax/package.py +++ b/var/spack/repos/builtin/packages/mumax/package.py @@ -12,7 +12,7 @@ class Mumax(MakefilePackage, CudaPackage): """GPU accelerated micromagnetic simulator.""" - homepage = "http://mumax.github.io" + homepage = "https://mumax.github.io" url = "https://github.com/mumax/3/archive/v3.10.tar.gz" maintainers = ['glennpj'] diff --git a/var/spack/repos/builtin/packages/muparser/package.py b/var/spack/repos/builtin/packages/muparser/package.py index 94583280222..2b01e6f18a0 100644 --- a/var/spack/repos/builtin/packages/muparser/package.py +++ b/var/spack/repos/builtin/packages/muparser/package.py @@ -8,7 +8,7 @@ class Muparser(Package): """C++ math expression parser library.""" - homepage = "http://muparser.beltoforion.de/" + homepage = "https://beltoforion.de/en/muparser/" url = "https://github.com/beltoforion/muparser/archive/v2.2.5.tar.gz" version('2.2.6.1', sha256='d2562853d972b6ddb07af47ce8a1cdeeb8bb3fa9e8da308746de391db67897b3') diff --git a/var/spack/repos/builtin/packages/muscle/package.py b/var/spack/repos/builtin/packages/muscle/package.py index b5bb5361097..f874578bac1 100644 --- a/var/spack/repos/builtin/packages/muscle/package.py +++ b/var/spack/repos/builtin/packages/muscle/package.py @@ -11,7 +11,7 @@ class Muscle(MakefilePackage): according to published benchmark tests, with accuracy and speed that are consistently better than CLUSTALW.""" - homepage = "http://drive5.com/muscle/" + homepage = "https://drive5.com/muscle/" version('3.8.31', sha256='43c5966a82133bd7da5921e8142f2f592c2b5f53d802f0527a2801783af809ad') version('3.8.1551', sha256='c70c552231cd3289f1bad51c9bd174804c18bb3adcf47f501afec7a68f9c482e') diff --git a/var/spack/repos/builtin/packages/muse/package.py b/var/spack/repos/builtin/packages/muse/package.py index e9410ba9389..34d0cf5efec 100644 --- a/var/spack/repos/builtin/packages/muse/package.py +++ b/var/spack/repos/builtin/packages/muse/package.py @@ -9,7 +9,7 @@ class Muse(MakefilePackage): """Somatic point mutation caller.""" - homepage = "http://bioinformatics.mdanderson.org/main/MuSE" + homepage = "https://bioinformatics.mdanderson.org/main/MuSE" url = "https://github.com/danielfan/MuSE/archive/v1.0-rc.tar.gz" version('1.0-rc', sha256='b48b8be0044a2249bdc0b625fe0192c65089c598bbd1b1142902dfa81e804023') diff --git a/var/spack/repos/builtin/packages/mvapich2/package.py b/var/spack/repos/builtin/packages/mvapich2/package.py index faf1d696e0e..92e5ea55db3 100644 --- a/var/spack/repos/builtin/packages/mvapich2/package.py +++ b/var/spack/repos/builtin/packages/mvapich2/package.py @@ -13,7 +13,7 @@ class Mvapich2(AutotoolsPackage): networks (InfiniBand, Omni-Path, Ethernet/iWARP, and RoCE) and computing platforms (x86 (Intel and AMD), ARM and OpenPOWER)""" - homepage = "http://mvapich.cse.ohio-state.edu/userguide/userguide_spack/" + homepage = "https://mvapich.cse.ohio-state.edu/userguide/userguide_spack/" url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.6.tar.gz" list_url = "http://mvapich.cse.ohio-state.edu/downloads/" diff --git a/var/spack/repos/builtin/packages/mvapich2x/package.py b/var/spack/repos/builtin/packages/mvapich2x/package.py index 0c12ddef598..3a75e3876e1 100755 --- a/var/spack/repos/builtin/packages/mvapich2x/package.py +++ b/var/spack/repos/builtin/packages/mvapich2x/package.py @@ -18,7 +18,7 @@ class Mvapich2x(AutotoolsPackage): http://mvapich.cse.ohio-state.edu/download/mvapich/spack-mirror/mvapich2x/ """ - homepage = "http://mvapich.cse.ohio-state.edu" + 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'] diff --git a/var/spack/repos/builtin/packages/mxml/package.py b/var/spack/repos/builtin/packages/mxml/package.py index 9a494928f31..24066425766 100644 --- a/var/spack/repos/builtin/packages/mxml/package.py +++ b/var/spack/repos/builtin/packages/mxml/package.py @@ -12,7 +12,7 @@ class Mxml(AutotoolsPackage): non-standard libraries. """ - homepage = "http://michaelrsweet.github.io/mxml/" + homepage = "https://michaelrsweet.github.io/mxml/" url = "https://github.com/michaelrsweet/mxml/releases/download/release-2.10/mxml-2.10.tar.gz" version('2.10', sha256='267ff58b64ddc767170d71dab0c729c06f45e1df9a9b6f75180b564f09767891') diff --git a/var/spack/repos/builtin/packages/nag/package.py b/var/spack/repos/builtin/packages/nag/package.py index b1735e920fe..dcddb3924ae 100644 --- a/var/spack/repos/builtin/packages/nag/package.py +++ b/var/spack/repos/builtin/packages/nag/package.py @@ -12,7 +12,7 @@ class Nag(Package): """The NAG Fortran Compiler.""" - homepage = "http://www.nag.com/nagware/np.asp" + homepage = "https://www.nag.com/nagware/np.asp" maintainers = ['ThemosTsikas'] version('7.0', sha256='6d509208533d79139e5a9f879b7b93e7b58372b78d404d51f35e491ecbaa54c7') diff --git a/var/spack/repos/builtin/packages/nalu-wind/package.py b/var/spack/repos/builtin/packages/nalu-wind/package.py index 203d69b8306..70e77ac765d 100644 --- a/var/spack/repos/builtin/packages/nalu-wind/package.py +++ b/var/spack/repos/builtin/packages/nalu-wind/package.py @@ -52,24 +52,25 @@ class NaluWind(CMakePackage, CudaPackage): depends_on('mpi') depends_on('yaml-cpp@0.5.3:') - depends_on('openfast@master,develop +cxx', when='+openfast') - depends_on('tioga@master,develop', when='+tioga') - depends_on('hypre@develop,2.18.2: +int64+mpi~superlu-dist', when='+hypre') - depends_on('kokkos-nvcc-wrapper', type='build', when='+cuda') - depends_on('trilinos@master,develop +exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+zlib+pnetcdf+shards~hypre cxxstd=14') + depends_on('trilinos@master,develop ~cuda~wrapper+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+zlib+shards~hypre cxxstd=14', when='~cuda') # Cannot build Trilinos as a shared library with STK on Darwin # https://github.com/trilinos/Trilinos/issues/2994 - depends_on('trilinos~shared', when=(sys.platform == 'darwin')) - # Propagate cuda options to trilinos and hypre - depends_on('trilinos~cuda~wrapper', when='~cuda') - depends_on('trilinos+cuda+wrapper+cuda_rdc', when='+cuda') - depends_on('hypre@develop +cuda', when='+cuda') + depends_on('trilinos@master,develop ~cuda~wrapper+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+zlib+shards~hypre~shared cxxstd=14', when=(sys.platform == 'darwin')) + depends_on('openfast@2.6.0 +cxx', when='+openfast') + depends_on('tioga@master,develop', when='+tioga') + depends_on('hypre@develop,2.18.2: ~int64+mpi~superlu-dist', when='+hypre') + depends_on('kokkos-nvcc-wrapper', type='build', when='+cuda') for _arch in CudaPackage.cuda_arch_values: - depends_on('trilinos cuda_arch=' + _arch, when='+cuda cuda_arch=' + _arch) - depends_on('hypre cuda_arch=' + _arch, when='+hypre+cuda cuda_arch=' + _arch) + depends_on('trilinos@master,develop ~shared+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+zlib+shards~hypre+cuda+cuda_rdc+wrapper cxxstd=14 cuda_arch={0}'.format(_arch), + when='+cuda cuda_arch={0}'.format(_arch)) + depends_on('hypre@develop +mpi+cuda~int64~superlu-dist cuda_arch={0}'.format(_arch), + when='+hypre+cuda cuda_arch={0}'.format(_arch)) depends_on('trilinos-catalyst-ioss-adapter', when='+catalyst') depends_on('fftw+mpi', when='+fftw') depends_on('boost cxxstd=14', when='+boost') + depends_on('nccmp') + # indirect dependency needed to make original concretizer work + depends_on('netcdf-c+parallel-netcdf') def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/nalu/package.py b/var/spack/repos/builtin/packages/nalu/package.py index acda4934e68..f6973b86105 100644 --- a/var/spack/repos/builtin/packages/nalu/package.py +++ b/var/spack/repos/builtin/packages/nalu/package.py @@ -35,8 +35,8 @@ class Nalu(CMakePackage): # Cannot build Trilinos as a shared library with STK on Darwin # which is why we have a 'shared' variant for Nalu # https://github.com/trilinos/Trilinos/issues/2994 - depends_on('trilinos+mpi+netcdf+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+pnetcdf+shards~hypre@master,develop', when='+shared') - depends_on('trilinos~shared+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+pnetcdf+shards~hypre@master,develop', when='~shared') + depends_on('trilinos+mpi+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+shards~hypre@master') + depends_on('trilinos~shared', when='~shared') # Optional dependencies depends_on('tioga', when='+tioga+shared') depends_on('tioga~shared', when='+tioga~shared') diff --git a/var/spack/repos/builtin/packages/namd/package.py b/var/spack/repos/builtin/packages/namd/package.py index 143e2045de6..db75d470f20 100644 --- a/var/spack/repos/builtin/packages/namd/package.py +++ b/var/spack/repos/builtin/packages/namd/package.py @@ -16,7 +16,7 @@ class Namd(MakefilePackage, CudaPackage): """NAMDis a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems.""" - homepage = "http://www.ks.uiuc.edu/Research/namd/" + homepage = "https://www.ks.uiuc.edu/Research/namd/" url = "file://{0}/NAMD_2.12_Source.tar.gz".format(os.getcwd()) git = "https://charm.cs.illinois.edu/gerrit/namd.git" manual_download = True diff --git a/var/spack/repos/builtin/packages/nano/package.py b/var/spack/repos/builtin/packages/nano/package.py index 5c076e89099..a987d823043 100644 --- a/var/spack/repos/builtin/packages/nano/package.py +++ b/var/spack/repos/builtin/packages/nano/package.py @@ -9,7 +9,7 @@ class Nano(AutotoolsPackage): """Tiny little text editor""" - homepage = "http://www.nano-editor.org" + homepage = "https://www.nano-editor.org" url = "https://www.nano-editor.org/dist/v4/nano-4.9.tar.xz" list_url = "https://www.nano-editor.org/dist/" list_depth = 1 diff --git a/var/spack/repos/builtin/packages/nauty/package.py b/var/spack/repos/builtin/packages/nauty/package.py index 5eff01dac7a..6a8156b04aa 100644 --- a/var/spack/repos/builtin/packages/nauty/package.py +++ b/var/spack/repos/builtin/packages/nauty/package.py @@ -12,7 +12,7 @@ class Nauty(AutotoolsPackage): """nauty and Traces are programs for computing automorphism groups of graphsq and digraphs""" - homepage = "http://pallini.di.uniroma1.it/index.html" + homepage = "https://pallini.di.uniroma1.it/index.html" url = "http://pallini.di.uniroma1.it/nauty26r7.tar.gz" version('2.6r7', sha256='97b5648de17645895cbd56a9a0b3e23cf01f5332c476d013ea459f1a0363cdc6') diff --git a/var/spack/repos/builtin/packages/ncbi-rmblastn/package.py b/var/spack/repos/builtin/packages/ncbi-rmblastn/package.py index 95f3a14b14b..702cd664ea1 100644 --- a/var/spack/repos/builtin/packages/ncbi-rmblastn/package.py +++ b/var/spack/repos/builtin/packages/ncbi-rmblastn/package.py @@ -9,7 +9,7 @@ class NcbiRmblastn(AutotoolsPackage): """RMBlast search engine for NCBI""" - homepage = "http://www.repeatmasker.org/RMBlast.html" + homepage = "https://www.repeatmasker.org/RMBlast.html" url = "ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.9.0/ncbi-blast-2.9.0+-src.tar.gz" version('2.11.0', sha256='d88e1858ae7ce553545a795a2120e657a799a6d334f2a07ef0330cc3e74e1954') diff --git a/var/spack/repos/builtin/packages/nccmp/package.py b/var/spack/repos/builtin/packages/nccmp/package.py index 6751a95b185..5e36ebfa00c 100644 --- a/var/spack/repos/builtin/packages/nccmp/package.py +++ b/var/spack/repos/builtin/packages/nccmp/package.py @@ -2,28 +2,16 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack import * -class Nccmp(Package, SourceforgePackage): +class Nccmp(CMakePackage): """Compare NetCDF Files""" homepage = "http://nccmp.sourceforge.net/" - sourceforge_mirror_path = "nccmp/nccmp-1.8.2.0.tar.gz" + url = "https://gitlab.com/remikz/nccmp/-/archive/1.9.0.1/nccmp-1.9.0.1.tar.gz" + version('1.9.0.1', sha256='81e9753cf451afe8248d44c841e102349e07cde942b11d1f91b5f85feb622b99') + version('1.8.9.0', sha256='da5d2b4dcd52aec96e7d96ba4d0e97efebbd40fe9e640535e5ee3d5cd082ae50') version('1.8.2.0', sha256='7f5dad4e8670568a71f79d2bcebb08d95b875506d3d5faefafe1a8b3afa14f18') depends_on('netcdf-c') - - def install(self, spec, prefix): - # Configure says: F90 and F90FLAGS are replaced by FC and - # FCFLAGS respectively in this configure, please unset - # F90/F90FLAGS and set FC/FCFLAGS instead and rerun configure - # again. - env.pop('F90', None) - env.pop('F90FLAGS', None) - - configure('--prefix=%s' % prefix) - make() - make("check") - make("install") diff --git a/var/spack/repos/builtin/packages/ncdu/package.py b/var/spack/repos/builtin/packages/ncdu/package.py index a1dd768915b..bdb88290457 100644 --- a/var/spack/repos/builtin/packages/ncdu/package.py +++ b/var/spack/repos/builtin/packages/ncdu/package.py @@ -14,7 +14,7 @@ class Ncdu(Package): to run in any minimal POSIX-like environment with ncurses installed. """ - homepage = "http://dev.yorhel.nl/ncdu" + homepage = "https://dev.yorhel.nl/ncdu" url = "http://dev.yorhel.nl/download/ncdu-1.11.tar.gz" version('1.15.1', sha256='b02ddc4dbf1db139cc6fbbe2f54a282770380f0ca5c17089855eab52a9ea3fb0') diff --git a/var/spack/repos/builtin/packages/ncep-post/cmake_findnetcdf.patch b/var/spack/repos/builtin/packages/ncep-post/cmake_findnetcdf.patch new file mode 100644 index 00000000000..880660f05c9 --- /dev/null +++ b/var/spack/repos/builtin/packages/ncep-post/cmake_findnetcdf.patch @@ -0,0 +1,350 @@ +--- a/CMakeModules/Modules/FindNetCDF.cmake 2021-07-26 07:16:22.760999830 -0600 ++++ b/CMakeModules/Modules/FindNetCDF.cmake 2021-05-21 09:22:26.000000000 -0600 +@@ -0,0 +1,347 @@ ++# (C) Copyright 2011- ECMWF. ++# ++# This software is licensed under the terms of the Apache Licence Version 2.0 ++# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. ++# In applying this licence, ECMWF does not waive the privileges and immunities ++# granted to it by virtue of its status as an intergovernmental organisation nor ++# does it submit to any jurisdiction. ++ ++# Try to find NetCDF includes and library. ++# Supports static and shared libaries and allows each component to be found in sepearte prefixes. ++# ++# This module defines ++# ++# - NetCDF_FOUND - System has NetCDF ++# - NetCDF_INCLUDE_DIRS - the NetCDF include directories ++# - NetCDF_VERSION - the version of NetCDF ++# - NetCDF_CONFIG_EXECUTABLE - the netcdf-config executable if found ++# - NetCDF_PARALLEL - Boolean True if NetCDF4 has parallel IO support via hdf5 and/or pnetcdf ++# - NetCDF_HAS_PNETCDF - Boolean True if NetCDF4 has pnetcdf support ++# ++# Deprecated Defines ++# - NetCDF_LIBRARIES - [Deprecated] Use NetCDF::NetCDF_ targets instead. ++# ++# ++# Following components are available: ++# ++# - C - C interface to NetCDF (netcdf) ++# - CXX - CXX4 interface to NetCDF (netcdf_c++4) ++# - Fortran - Fortran interface to NetCDF (netcdff) ++# ++# For each component the following are defined: ++# ++# - NetCDF__FOUND - whether the component is found ++# - NetCDF__LIBRARIES - the libraries for the component ++# - NetCDF__LIBRARY_SHARED - Boolean is true if libraries for component are shared ++# - NetCDF__INCLUDE_DIRS - the include directories for specified component ++# - NetCDF::NetCDF_ - target of component to be used with target_link_libraries() ++# ++# The following paths will be searched in order if set in CMake (first priority) or environment (second priority) ++# ++# - NetCDF_ROOT - root of NetCDF installation ++# - NetCDF_PATH - root of NetCDF installation ++# ++# The search process begins with locating NetCDF Include headers. If these are in a non-standard location, ++# set one of the following CMake or environment variables to point to the location: ++# ++# - NetCDF_INCLUDE_DIR or NetCDF_${comp}_INCLUDE_DIR ++# - NetCDF_INCLUDE_DIRS or NetCDF_${comp}_INCLUDE_DIR ++# ++# Notes: ++# ++# - Use "NetCDF::NetCDF_" targets only. NetCDF_LIBRARIES exists for backwards compatibility and should not be used. ++# - These targets have all the knowledge of include directories and library search directories, and a single ++# call to target_link_libraries will provide all these transitive properties to your target. Normally all that is ++# needed to build and link against NetCDF is, e.g.: ++# target_link_libraries(my_c_tgt PUBLIC NetCDF::NetCDF_C) ++# - "NetCDF" is always the preferred naming for this package, its targets, variables, and environment variables ++# - For compatibility, some variables are also set/checked using alternate names NetCDF4, NETCDF, or NETCDF4 ++# - Environments relying on these older environment variable names should move to using a "NetCDF_ROOT" environment variable ++# - Preferred component capitalization follows the CMake LANGUAGES variables: i.e., C, Fortran, CXX ++# - For compatibility, alternate capitalizations are supported but should not be used. ++# - If no components are defined, all components will be searched ++# ++ ++list( APPEND _possible_components C CXX Fortran ) ++ ++## Include names for each component ++set( NetCDF_C_INCLUDE_NAME netcdf.h ) ++set( NetCDF_CXX_INCLUDE_NAME netcdf ) ++set( NetCDF_Fortran_INCLUDE_NAME netcdf.mod ) ++ ++## Library names for each component ++set( NetCDF_C_LIBRARY_NAME netcdf ) ++set( NetCDF_CXX_LIBRARY_NAME netcdf_c++4 ) ++set( NetCDF_Fortran_LIBRARY_NAME netcdff ) ++ ++## Enumerate search components ++foreach( _comp ${_possible_components} ) ++ string( TOUPPER "${_comp}" _COMP ) ++ set( _arg_${_COMP} ${_comp} ) ++ set( _name_${_COMP} ${_comp} ) ++endforeach() ++ ++set( _search_components C) ++foreach( _comp ${${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS} ) ++ string( TOUPPER "${_comp}" _COMP ) ++ set( _arg_${_COMP} ${_comp} ) ++ list( APPEND _search_components ${_name_${_COMP}} ) ++ if( NOT _name_${_COMP} ) ++ message(SEND_ERROR "Find${CMAKE_FIND_PACKAGE_NAME}: COMPONENT ${_comp} is not a valid component. Valid components: ${_possible_components}" ) ++ endif() ++endforeach() ++list( REMOVE_DUPLICATES _search_components ) ++ ++## Search hints for finding include directories and libraries ++foreach( _comp IN ITEMS "_" "_C_" "_Fortran_" "_CXX_" ) ++ foreach( _name IN ITEMS NetCDF4 NetCDF NETCDF4 NETCDF ) ++ foreach( _var IN ITEMS ROOT PATH ) ++ list(APPEND _search_hints ${${_name}${_comp}${_var}} $ENV{${_name}${_comp}${_var}} ) ++ list(APPEND _include_search_hints ++ ${${_name}${_comp}INCLUDE_DIR} $ENV{${_name}${_comp}INCLUDE_DIR} ++ ${${_name}${_comp}INCLUDE_DIRS} $ENV{${_name}${_comp}INCLUDE_DIRS} ) ++ endforeach() ++ endforeach() ++endforeach() ++#Old-school HPC module env variable names ++foreach( _name IN ITEMS NetCDF4 NetCDF NETCDF4 NETCDF ) ++ foreach( _comp IN ITEMS "_C" "_Fortran" "_CXX" ) ++ list(APPEND _search_hints ${${_name}} $ENV{${_name}}) ++ list(APPEND _search_hints ${${_name}${_comp}} $ENV{${_name}${_comp}}) ++ endforeach() ++endforeach() ++ ++## Find headers for each component ++set(NetCDF_INCLUDE_DIRS) ++set(_new_search_components) ++foreach( _comp IN LISTS _search_components ) ++ if(NOT ${PROJECT_NAME}_NetCDF_${_comp}_FOUND) ++ list(APPEND _new_search_components ${_comp}) ++ endif() ++ find_file(NetCDF_${_comp}_INCLUDE_FILE ++ NAMES ${NetCDF_${_comp}_INCLUDE_NAME} ++ DOC "NetCDF ${_comp} include directory" ++ HINTS ${_include_search_hints} ${_search_hints} ++ PATH_SUFFIXES include include/netcdf ++ ) ++ mark_as_advanced(NetCDF_${_comp}_INCLUDE_FILE) ++ message(DEBUG "NetCDF_${_comp}_INCLUDE_FILE: ${NetCDF_${_comp}_INCLUDE_FILE}") ++ if( NetCDF_${_comp}_INCLUDE_FILE ) ++ get_filename_component(NetCDF_${_comp}_INCLUDE_FILE ${NetCDF_${_comp}_INCLUDE_FILE} ABSOLUTE) ++ get_filename_component(NetCDF_${_comp}_INCLUDE_DIR ${NetCDF_${_comp}_INCLUDE_FILE} DIRECTORY) ++ list(APPEND NetCDF_INCLUDE_DIRS ${NetCDF_${_comp}_INCLUDE_DIR}) ++ endif() ++endforeach() ++if(NetCDF_INCLUDE_DIRS) ++ list(REMOVE_DUPLICATES NetCDF_INCLUDE_DIRS) ++endif() ++set(NetCDF_INCLUDE_DIRS "${NetCDF_INCLUDE_DIRS}" CACHE STRING "NetCDF Include directory paths" FORCE) ++ ++## Find n*-config executables for search components ++foreach( _comp IN LISTS _search_components ) ++ if( _comp MATCHES "^(C)$" ) ++ set(_conf "c") ++ elseif( _comp MATCHES "^(Fortran)$" ) ++ set(_conf "f") ++ elseif( _comp MATCHES "^(CXX)$" ) ++ set(_conf "cxx4") ++ endif() ++ find_program( NetCDF_${_comp}_CONFIG_EXECUTABLE ++ NAMES n${_conf}-config ++ HINTS ${NetCDF_INCLUDE_DIRS} ${_include_search_hints} ${_search_hints} ++ PATH_SUFFIXES bin Bin ../bin ../../bin ++ DOC "NetCDF n${_conf}-config helper" ) ++ message(DEBUG "NetCDF_${_comp}_CONFIG_EXECUTABLE: ${NetCDF_${_comp}_CONFIG_EXECUTABLE}") ++endforeach() ++ ++set(_C_libs_flag --libs) ++set(_Fortran_libs_flag --flibs) ++set(_CXX_libs_flag --libs) ++set(_C_includes_flag --includedir) ++set(_Fortran_includes_flag --includedir) ++set(_CXX_includes_flag --includedir) ++function(netcdf_config exec flag output_var) ++ set(${output_var} False PARENT_SCOPE) ++ if( exec ) ++ execute_process( COMMAND ${exec} ${flag} RESULT_VARIABLE _ret OUTPUT_VARIABLE _val) ++ if( _ret EQUAL 0 ) ++ string( STRIP ${_val} _val ) ++ set( ${output_var} ${_val} PARENT_SCOPE ) ++ endif() ++ endif() ++endfunction() ++ ++## Detect additional package properties ++netcdf_config(${NetCDF_C_CONFIG_EXECUTABLE} --has-parallel4 _val) ++if( NOT _val MATCHES "^(yes|no)$" ) ++ netcdf_config(${NetCDF_C_CONFIG_EXECUTABLE} --has-parallel _val) ++endif() ++if( _val MATCHES "^(yes)$" ) ++ set(NetCDF_PARALLEL TRUE CACHE STRING "NetCDF has parallel IO capability via pnetcdf or hdf5." FORCE) ++else() ++ set(NetCDF_PARALLEL FALSE CACHE STRING "NetCDF has no parallel IO capability." FORCE) ++endif() ++ ++if(NetCDF_PARALLEL) ++ find_package(MPI REQUIRED) ++endif() ++ ++## Find libraries for each component ++set( NetCDF_LIBRARIES ) ++foreach( _comp IN LISTS _search_components ) ++ string( TOUPPER "${_comp}" _COMP ) ++ ++ find_library( NetCDF_${_comp}_LIBRARY ++ NAMES ${NetCDF_${_comp}_LIBRARY_NAME} ++ DOC "NetCDF ${_comp} library" ++ HINTS ${NetCDF_${_comp}_INCLUDE_DIRS} ${_search_hints} ++ PATH_SUFFIXES lib64 lib ../lib64 ../lib ../../lib64 ../../lib ) ++ mark_as_advanced( NetCDF_${_comp}_LIBRARY ) ++ get_filename_component(NetCDF_${_comp}_LIBRARY ${NetCDF_${_comp}_LIBRARY} ABSOLUTE) ++ set(NetCDF_${_comp}_LIBRARY ${NetCDF_${_comp}_LIBRARY} CACHE STRING "NetCDF ${_comp} library" FORCE) ++ message(DEBUG "NetCDF_${_comp}_LIBRARY: ${NetCDF_${_comp}_LIBRARY}") ++ ++ if( NetCDF_${_comp}_LIBRARY ) ++ if( NetCDF_${_comp}_LIBRARY MATCHES ".a$" ) ++ set( NetCDF_${_comp}_LIBRARY_SHARED FALSE ) ++ set( _library_type STATIC) ++ else() ++ list( APPEND NetCDF_LIBRARIES ${NetCDF_${_comp}_LIBRARY} ) ++ set( NetCDF_${_comp}_LIBRARY_SHARED TRUE ) ++ set( _library_type SHARED) ++ endif() ++ endif() ++ ++ #Use nc-config to set per-component LIBRARIES variable if possible ++ netcdf_config( ${NetCDF_${_comp}_CONFIG_EXECUTABLE} ${_${_comp}_libs_flag} _val ) ++ if( _val ) ++ set( NetCDF_${_comp}_LIBRARIES ${_val} ) ++ if(NOT NetCDF_${_comp}_LIBRARY_SHARED AND NOT NetCDF_${_comp}_FOUND) #Static targets should use nc_config to get a proper link line with all necessary static targets. ++ list( APPEND NetCDF_LIBRARIES ${NetCDF_${_comp}_LIBRARIES} ) ++ endif() ++ else() ++ set( NetCDF_${_comp}_LIBRARIES ${NetCDF_${_comp}_LIBRARY} ) ++ if(NOT NetCDF_${_comp}_LIBRARY_SHARED) ++ message(SEND_ERROR "Unable to properly find NetCDF. Found static libraries at: ${NetCDF_${_comp}_LIBRARY} but could not run nc-config: ${NetCDF_CONFIG_EXECUTABLE}") ++ endif() ++ endif() ++ ++ #Use nc-config to set per-component INCLUDE_DIRS variable if possible ++ netcdf_config( ${NetCDF_${_comp}_CONFIG_EXECUTABLE} ${_${_comp}_includes_flag} _val ) ++ if( _val ) ++ string( REPLACE " " ";" _val ${_val} ) ++ set( NetCDF_${_comp}_INCLUDE_DIRS ${_val} ) ++ else() ++ set( NetCDF_${_comp}_INCLUDE_DIRS ${NetCDF_${_comp}_INCLUDE_DIR} ) ++ endif() ++ ++ if( NetCDF_${_comp}_LIBRARIES AND NetCDF_${_comp}_INCLUDE_DIRS ) ++ set( ${CMAKE_FIND_PACKAGE_NAME}_${_arg_${_COMP}}_FOUND TRUE ) ++ if (NOT TARGET NetCDF::NetCDF_${_comp}) ++ add_library(NetCDF::NetCDF_${_comp} ${_library_type} IMPORTED) ++ set_target_properties(NetCDF::NetCDF_${_comp} PROPERTIES ++ IMPORTED_LOCATION ${NetCDF_${_comp}_LIBRARY} ++ INTERFACE_INCLUDE_DIRECTORIES "${NetCDF_${_comp}_INCLUDE_DIRS}" ++ INTERFACE_LINK_LIBRARIES ${NetCDF_${_comp}_LIBRARIES} ) ++ if( NOT _comp MATCHES "^(C)$" ) ++ target_link_libraries(NetCDF::NetCDF_${_comp} INTERFACE NetCDF::NetCDF_C) ++ endif() ++ if(MPI_${_comp}_FOUND) ++ target_link_libraries(NetCDF::NetCDF_${_comp} INTERFACE MPI::MPI_${_comp}) ++ endif() ++ endif() ++ endif() ++endforeach() ++if(NetCDF_LIBRARIES AND NetCDF_${_comp}_LIBRARY_SHARED) ++ list(REMOVE_DUPLICATES NetCDF_LIBRARIES) ++endif() ++set(NetCDF_LIBRARIES "${NetCDF_LIBRARIES}" CACHE STRING "NetCDF library targets" FORCE) ++ ++## Find version via netcdf-config if possible ++if (NetCDF_INCLUDE_DIRS) ++ if( NetCDF_C_CONFIG_EXECUTABLE ) ++ netcdf_config( ${NetCDF_C_CONFIG_EXECUTABLE} --version _vers ) ++ if( _vers ) ++ string(REGEX REPLACE ".* ((([0-9]+)\\.)+([0-9]+)).*" "\\1" NetCDF_VERSION "${_vers}" ) ++ endif() ++ else() ++ foreach( _dir IN LISTS NetCDF_INCLUDE_DIRS) ++ if( EXISTS "${_dir}/netcdf_meta.h" ) ++ file(STRINGS "${_dir}/netcdf_meta.h" _netcdf_version_lines ++ REGEX "#define[ \t]+NC_VERSION_(MAJOR|MINOR|PATCH|NOTE)") ++ string(REGEX REPLACE ".*NC_VERSION_MAJOR *\([0-9]*\).*" "\\1" _netcdf_version_major "${_netcdf_version_lines}") ++ string(REGEX REPLACE ".*NC_VERSION_MINOR *\([0-9]*\).*" "\\1" _netcdf_version_minor "${_netcdf_version_lines}") ++ string(REGEX REPLACE ".*NC_VERSION_PATCH *\([0-9]*\).*" "\\1" _netcdf_version_patch "${_netcdf_version_lines}") ++ string(REGEX REPLACE ".*NC_VERSION_NOTE *\"\([^\"]*\)\".*" "\\1" _netcdf_version_note "${_netcdf_version_lines}") ++ set(NetCDF_VERSION "${_netcdf_version_major}.${_netcdf_version_minor}.${_netcdf_version_patch}${_netcdf_version_note}") ++ unset(_netcdf_version_major) ++ unset(_netcdf_version_minor) ++ unset(_netcdf_version_patch) ++ unset(_netcdf_version_note) ++ unset(_netcdf_version_lines) ++ endif() ++ endforeach() ++ endif() ++endif () ++ ++## Finalize find_package ++include(FindPackageHandleStandardArgs) ++ ++if(NOT NetCDF_FOUND OR _new_search_components) ++ find_package_handle_standard_args( ${CMAKE_FIND_PACKAGE_NAME} ++ REQUIRED_VARS NetCDF_INCLUDE_DIRS NetCDF_LIBRARIES ++ VERSION_VAR NetCDF_VERSION ++ HANDLE_COMPONENTS ) ++endif() ++ ++foreach( _comp IN LISTS _search_components ) ++ if( NetCDF_${_comp}_FOUND ) ++ #Record found components to avoid duplication in NetCDF_LIBRARIES for static libraries ++ set(NetCDF_${_comp}_FOUND ${NetCDF_${_comp}_FOUND} CACHE BOOL "NetCDF ${_comp} Found" FORCE) ++ #Set a per-package, per-component found variable to communicate between multiple calls to find_package() ++ set(${PROJECT_NAME}_NetCDF_${_comp}_FOUND True) ++ endif() ++endforeach() ++ ++if( ${CMAKE_FIND_PACKAGE_NAME}_FOUND AND NOT ${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY AND _new_search_components) ++ message( STATUS "Find${CMAKE_FIND_PACKAGE_NAME} defines targets:" ) ++ message( STATUS " - NetCDF_VERSION [${NetCDF_VERSION}]") ++ message( STATUS " - NetCDF_PARALLEL [${NetCDF_PARALLEL}]") ++ foreach( _comp IN LISTS _new_search_components ) ++ string( TOUPPER "${_comp}" _COMP ) ++ message( STATUS " - NetCDF_${_comp}_CONFIG_EXECUTABLE [${NetCDF_${_comp}_CONFIG_EXECUTABLE}]") ++ if( ${CMAKE_FIND_PACKAGE_NAME}_${_arg_${_COMP}}_FOUND ) ++ get_filename_component(_root ${NetCDF_${_comp}_INCLUDE_DIR}/.. ABSOLUTE) ++ if( NetCDF_${_comp}_LIBRARY_SHARED ) ++ message( STATUS " - NetCDF::NetCDF_${_comp} [SHARED] [Root: ${_root}] Lib: ${NetCDF_${_comp}_LIBRARY} ") ++ else() ++ message( STATUS " - NetCDF::NetCDF_${_comp} [STATIC] [Root: ${_root}] Lib: ${NetCDF_${_comp}_LIBRARY} ") ++ endif() ++ endif() ++ endforeach() ++endif() ++ ++foreach( _prefix NetCDF NetCDF4 NETCDF NETCDF4 ${CMAKE_FIND_PACKAGE_NAME} ) ++ set( ${_prefix}_INCLUDE_DIRS ${NetCDF_INCLUDE_DIRS} ) ++ set( ${_prefix}_LIBRARIES ${NetCDF_LIBRARIES}) ++ set( ${_prefix}_VERSION ${NetCDF_VERSION} ) ++ set( ${_prefix}_FOUND ${${CMAKE_FIND_PACKAGE_NAME}_FOUND} ) ++ set( ${_prefix}_CONFIG_EXECUTABLE ${NetCDF_CONFIG_EXECUTABLE} ) ++ set( ${_prefix}_PARALLEL ${NetCDF_PARALLEL} ) ++ ++ foreach( _comp ${_search_components} ) ++ string( TOUPPER "${_comp}" _COMP ) ++ set( _arg_comp ${_arg_${_COMP}} ) ++ set( ${_prefix}_${_comp}_FOUND ${${CMAKE_FIND_PACKAGE_NAME}_${_arg_comp}_FOUND} ) ++ set( ${_prefix}_${_COMP}_FOUND ${${CMAKE_FIND_PACKAGE_NAME}_${_arg_comp}_FOUND} ) ++ set( ${_prefix}_${_arg_comp}_FOUND ${${CMAKE_FIND_PACKAGE_NAME}_${_arg_comp}_FOUND} ) ++ ++ set( ${_prefix}_${_comp}_LIBRARIES ${NetCDF_${_comp}_LIBRARIES} ) ++ set( ${_prefix}_${_COMP}_LIBRARIES ${NetCDF_${_comp}_LIBRARIES} ) ++ set( ${_prefix}_${_arg_comp}_LIBRARIES ${NetCDF_${_comp}_LIBRARIES} ) ++ ++ set( ${_prefix}_${_comp}_INCLUDE_DIRS ${NetCDF_${_comp}_INCLUDE_DIRS} ) ++ set( ${_prefix}_${_COMP}_INCLUDE_DIRS ${NetCDF_${_comp}_INCLUDE_DIRS} ) ++ set( ${_prefix}_${_arg_comp}_INCLUDE_DIRS ${NetCDF_${_comp}_INCLUDE_DIRS} ) ++ endforeach() ++endforeach() diff --git a/var/spack/repos/builtin/packages/ncep-post/package.py b/var/spack/repos/builtin/packages/ncep-post/package.py new file mode 100644 index 00000000000..fd82899fadc --- /dev/null +++ b/var/spack/repos/builtin/packages/ncep-post/package.py @@ -0,0 +1,49 @@ +# Copyright 2013-2021 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 import * + + +class NcepPost(CMakePackage): + """The NCEP Post Processor is a software package designed + to generate useful products from raw model output.""" + + homepage = "https://github.com/NOAA-EMC/EMC_post" + url = "https://github.com/NOAA-EMC/EMC_post/archive/refs/tags/upp_v10.0.8.tar.gz" + + maintainers = ['t-brown'] + + version('10.0.8', sha256='b3b27d03250450159a8261c499d57168bdd833790c1c80c854d081fe37aaab47') + + variant('wrf-io', default=True, description='Enable WRF I/O.') + + depends_on('bacio') + depends_on('crtm') + depends_on('g2') + depends_on('g2tmpl') + depends_on('gfsio') + depends_on('ip') + depends_on('jasper') + depends_on('libpng') + depends_on('mpi') + depends_on('netcdf-c') + depends_on('netcdf-fortran') + depends_on('nemsio') + depends_on('sfcio') + depends_on('sigio') + depends_on('sp') + depends_on('w3emc') + depends_on('w3nco') + depends_on('w3nco') + depends_on('wrf-io', when='+wrf-io') + depends_on('zlib') + + patch('cmake_findnetcdf.patch') + + def cmake_args(self): + args = [] + if '+wrf-io' in self.spec: + args.append('-DBUILD_WITH_WRFIO:BOOL=ON') + return args diff --git a/var/spack/repos/builtin/packages/ncftp/package.py b/var/spack/repos/builtin/packages/ncftp/package.py index 22a342219d7..e30d3c918f4 100644 --- a/var/spack/repos/builtin/packages/ncftp/package.py +++ b/var/spack/repos/builtin/packages/ncftp/package.py @@ -10,7 +10,7 @@ class Ncftp(AutotoolsPackage): """NcFTP Client is a set of application programs implementing the File Transfer Protocol.""" - homepage = "http://www.ncftp.com/" + homepage = "https://www.ncftp.com/" url = "ftp://ftp.ncftp.com/ncftp/ncftp-3.2.6-src.tar.gz" version('3.2.6', sha256='129e5954850290da98af012559e6743de193de0012e972ff939df9b604f81c23') diff --git a/var/spack/repos/builtin/packages/ncurses/package.py b/var/spack/repos/builtin/packages/ncurses/package.py index a0658dc9209..e9b469647e5 100644 --- a/var/spack/repos/builtin/packages/ncurses/package.py +++ b/var/spack/repos/builtin/packages/ncurses/package.py @@ -16,7 +16,7 @@ class Ncurses(AutotoolsPackage, GNUMirrorPackage): characters and function-key mapping, and has all the other SYSV-curses enhancements over BSD curses.""" - homepage = "http://invisible-island.net/ncurses/ncurses.html" + homepage = "https://invisible-island.net/ncurses/ncurses.html" # URL must remain http:// so Spack can bootstrap curl gnu_mirror_path = "ncurses/ncurses-6.1.tar.gz" diff --git a/var/spack/repos/builtin/packages/ncview/package.py b/var/spack/repos/builtin/packages/ncview/package.py index dd50c8fba22..22fe338c502 100644 --- a/var/spack/repos/builtin/packages/ncview/package.py +++ b/var/spack/repos/builtin/packages/ncview/package.py @@ -8,7 +8,7 @@ class Ncview(AutotoolsPackage): """Simple viewer for NetCDF files.""" - homepage = "http://meteora.ucsd.edu/~pierce/ncview_home_page.html" + homepage = "https://cirrus.ucsd.edu/ncview/" url = "ftp://cirrus.ucsd.edu/pub/ncview/ncview-2.1.7.tar.gz" version('2.1.8', sha256='e8badc507b9b774801288d1c2d59eb79ab31b004df4858d0674ed0d87dfc91be') diff --git a/var/spack/repos/builtin/packages/ndiff/package.py b/var/spack/repos/builtin/packages/ndiff/package.py index f64c260ed41..2397c8eb1c9 100644 --- a/var/spack/repos/builtin/packages/ndiff/package.py +++ b/var/spack/repos/builtin/packages/ndiff/package.py @@ -15,7 +15,7 @@ class Ndiff(Package): """ - homepage = "http://ftp.math.utah.edu/pub/ndiff/" + homepage = "https://ftp.math.utah.edu/pub/ndiff/" url = "http://ftp.math.utah.edu/pub/ndiff/ndiff-2.00.tar.gz" version('2.00', sha256='f2bbd9a2c8ada7f4161b5e76ac5ebf9a2862cab099933167fe604b88f000ec2c') diff --git a/var/spack/repos/builtin/packages/nemsio/package.py b/var/spack/repos/builtin/packages/nemsio/package.py new file mode 100644 index 00000000000..76edd7d7341 --- /dev/null +++ b/var/spack/repos/builtin/packages/nemsio/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2021 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 import * + + +class Nemsio(CMakePackage): + """The NOAA Environmental Modeling System I/O (NEMSIO) library. The + basic functions it provides are to read and write data sets for all the + NEMS applications.""" + + homepage = "https://noaa-emc.github.io/NCEPLIBS-nemsio" + url = "https://github.com/NOAA-EMC/NCEPLIBS-nemsio/archive/refs/tags/v2.5.2.tar.gz" + + maintainers = ['t-brown'] + + version('2.5.2', sha256='c59e9379969690de8d030cbf4bbbbe3726faf13c304f3b88b0f6aec1496d2c08') + + depends_on('bacio') + depends_on('mpi') + depends_on('w3nco') diff --git a/var/spack/repos/builtin/packages/neo4j/package.py b/var/spack/repos/builtin/packages/neo4j/package.py index 517e06792ec..8140868412f 100644 --- a/var/spack/repos/builtin/packages/neo4j/package.py +++ b/var/spack/repos/builtin/packages/neo4j/package.py @@ -13,7 +13,7 @@ class Neo4j(MavenPackage): enterprise-quality database. For many applications, Neo4j offers orders of magnitude performance benefits compared to relational DBs.""" - homepage = "http://neo4j.com/" + homepage = "https://neo4j.com/" url = "https://github.com/neo4j/neo4j/archive/4.0.3.tar.gz" version('4.0.3', sha256='19d79052657665dd661bbe906b3552b88108bf379d39fa007b883fff718cabee') diff --git a/var/spack/repos/builtin/packages/nest/package.py b/var/spack/repos/builtin/packages/nest/package.py index 7b7658028fd..4bb0058de59 100644 --- a/var/spack/repos/builtin/packages/nest/package.py +++ b/var/spack/repos/builtin/packages/nest/package.py @@ -12,18 +12,13 @@ class Nest(CMakePackage): It focuses on the dynamics, size and structure of neural systems rather than on the exact morphology of individual neurons.""" - homepage = "http://www.nest-simulator.org" - url = "https://github.com/nest/nest-simulator/releases/download/v2.12.0/nest-2.12.0.tar.gz" + homepage = "https://www.nest-simulator.org" + url = "https://github.com/nest/nest-simulator/archive/refs/tags/v3.0.tar.gz" git = "https://github.com/nest/nest-simulator.git" version('master', branch='master') - version('2.20.0', sha256='40e33187c22d6e843d80095b221fa7fd5ebe4dbc0116765a91fc5c425dd0eca4') - version('2.14.0', sha256='d6316d6c9153100a3220488abfa738958c4b65bf2622bd15540e4aa81e79f17f') - version('2.12.0', sha256='bac578f38bb0621618ee9d5f2f1febfee60cddc000ff32e51a5f5470bb3df40d') - version('2.10.0', sha256='2b6fc562cd6362e812d94bb742562a5a685fb1c7e08403765dbe123d59b0996c') - version('2.8.0', sha256='d47325b27a5599b6ea58a3c4ef06656e7c5a4941c4e94dec6a5c2fa956209915') - version('2.6.0', sha256='5fe4924bc57d0c7dd820aa371de935eedf7e813832c0eee2c976b33c9a8db4cf') - version('2.4.2', sha256='8f86e58c1a12b733ffabd8b0400326e5a3494a458149ea8ebe9f19674d05b91b') + version('3.0', sha256='d481ea67f3251fe3aadf5252ab0a999172f0cd5536c5985366d271d772e686e6') + version('2.20.1', sha256='df3d32b5899d5d444f708037b290f889ac6ff8eae6b7be9e9faee2c0d660d8e5') maintainers = ['ikitayama'] diff --git a/var/spack/repos/builtin/packages/netcdf-c/package.py b/var/spack/repos/builtin/packages/netcdf-c/package.py index f65e55eca0e..f3e7da52b29 100644 --- a/var/spack/repos/builtin/packages/netcdf-c/package.py +++ b/var/spack/repos/builtin/packages/netcdf-c/package.py @@ -11,7 +11,7 @@ class NetcdfC(AutotoolsPackage): machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data. This is the C distribution.""" - homepage = "http://www.unidata.ucar.edu/software/netcdf" + homepage = "https://www.unidata.ucar.edu/software/netcdf" git = "https://github.com/Unidata/netcdf-c.git" url = "ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-c-4.7.3.tar.gz" diff --git a/var/spack/repos/builtin/packages/netcdf-cxx/package.py b/var/spack/repos/builtin/packages/netcdf-cxx/package.py index b00cd17987e..75932f46c3d 100644 --- a/var/spack/repos/builtin/packages/netcdf-cxx/package.py +++ b/var/spack/repos/builtin/packages/netcdf-cxx/package.py @@ -12,7 +12,7 @@ class NetcdfCxx(AutotoolsPackage): maintained by Unidata. Developers should migrate to current NetCDF C++ bindings, in Spack package netcdf-cxx4.""" - homepage = "http://www.unidata.ucar.edu/software/netcdf" + homepage = "https://www.unidata.ucar.edu/software/netcdf" url = "http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-cxx-4.2.tar.gz" version('4.2', sha256='95ed6ab49a0ee001255eac4e44aacb5ca4ea96ba850c08337a3e4c9a0872ccd1') diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/package.py b/var/spack/repos/builtin/packages/netcdf-fortran/package.py index 1eca31d8497..add133d56ef 100644 --- a/var/spack/repos/builtin/packages/netcdf-fortran/package.py +++ b/var/spack/repos/builtin/packages/netcdf-fortran/package.py @@ -141,11 +141,50 @@ def configure_args(self): def patch_libtool(self): """AOCC support for NETCDF-F""" if '%aocc' in self.spec: + # Libtool does not fully support the compiler toolchain, therefore + # we have to patch the script. The C compiler normally gets + # configured correctly, the variables of interest in the + # 'BEGIN LIBTOOL CONFIG' section are set to non-empty values and, + # therefore, are not affected by the replacements below. A more + # robust solution would be to extend the filter_file function with + # an additional argument start_at and perform the replacements + # between the '# ### BEGIN LIBTOOL TAG CONFIG: FC' and + # '# ### END LIBTOOL TAG CONFIG: FC' markers for the Fortran + # compiler, and between the '# ### BEGIN LIBTOOL TAG CONFIG: F77' + # and '# ### END LIBTOOL TAG CONFIG: F77' markers for the Fortran 77 + # compiler. + + # How to pass a linker flag through the compiler: + filter_file(r'^wl=""$', + 'wl="{0}"'.format(self.compiler.linker_arg), + 'libtool') + + # Additional compiler flags for building library objects (we need + # this to enable shared libraries when building with ~pic). Note + # that the following will set fc_pic_flag for both FC and F77, which + # in the case of AOCC, should not be a problem. If it is, the + # aforementioned modification of the filter_file function could be + # a solution. + filter_file(r'^pic_flag=""$', + 'pic_flag=" {0}"'.format(self.compiler.fc_pic_flag), + 'libtool') + + # The following is supposed to tell the compiler to use the GNU + # linker. However, the replacement does not happen (at least for + # NetCDF-Fortran 4.5.3) because the replaced substring (i.e. the + # first argument passed to the filter_file function) is not present + # in the file. The flag should probably be added to 'ldflags' in the + # flag_handler method above (another option is to add the flag to + # 'ldflags' in compilers.yaml automatically as it was done for other + # flags in https://github.com/spack/spack/pull/22219). filter_file( r'\${wl}-soname \$wl\$soname', r'-fuse-ld=ld -Wl,-soname,\$soname', 'libtool', string=True) + # TODO: resolve the NAG-related issues in a similar way: remove the + # respective patch files and tune the generated libtool script instead. + @when('@:4.4.5') def check(self): with working_dir(self.build_directory): diff --git a/var/spack/repos/builtin/packages/netlib-lapack/package.py b/var/spack/repos/builtin/packages/netlib-lapack/package.py index e2187ab9dd3..92ada1ba051 100644 --- a/var/spack/repos/builtin/packages/netlib-lapack/package.py +++ b/var/spack/repos/builtin/packages/netlib-lapack/package.py @@ -14,7 +14,7 @@ class NetlibLapack(CMakePackage): package that has found extensive use in the scientific community. """ - homepage = "http://www.netlib.org/lapack/" + homepage = "https://www.netlib.org/lapack/" url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz" version('3.9.1', sha256='d0085d2caf997ff39299c05d4bacb6f3d27001d25a4cc613d48c1f352b73e7e0', diff --git a/var/spack/repos/builtin/packages/netlib-scalapack/package.py b/var/spack/repos/builtin/packages/netlib-scalapack/package.py index 03dd89c037e..6227c84cae7 100644 --- a/var/spack/repos/builtin/packages/netlib-scalapack/package.py +++ b/var/spack/repos/builtin/packages/netlib-scalapack/package.py @@ -105,7 +105,7 @@ class NetlibScalapack(ScalapackBase): parallel distributed memory machines """ - homepage = "http://www.netlib.org/scalapack/" + homepage = "https://www.netlib.org/scalapack/" url = "http://www.netlib.org/scalapack/scalapack-2.0.2.tgz" version('2.1.0', sha256='61d9216cf81d246944720cfce96255878a3f85dec13b9351f1fa0fd6768220a6') diff --git a/var/spack/repos/builtin/packages/netlib-xblas/package.py b/var/spack/repos/builtin/packages/netlib-xblas/package.py index b9ca43d64ea..b515ae1e51b 100644 --- a/var/spack/repos/builtin/packages/netlib-xblas/package.py +++ b/var/spack/repos/builtin/packages/netlib-xblas/package.py @@ -20,7 +20,7 @@ class NetlibXblas(AutotoolsPackage): made to optimize performance; performance should be as good as straightforward but careful code written by hand.""" - homepage = "http://www.netlib.org/xblas" + homepage = "https://www.netlib.org/xblas" url = "http://www.netlib.org/xblas/xblas.tar.gz" version('1.0.248', sha256='b5fe7c71c2da1ed9bcdc5784a12c5fa9fb417577513fe8a38de5de0007f7aaa1') diff --git a/var/spack/repos/builtin/packages/neuron/package.py b/var/spack/repos/builtin/packages/neuron/package.py index 27e6967da36..0934e1834f4 100644 --- a/var/spack/repos/builtin/packages/neuron/package.py +++ b/var/spack/repos/builtin/packages/neuron/package.py @@ -21,6 +21,7 @@ class Neuron(CMakePackage): maintainers = ['pramodk', 'nrnhines', 'iomaganaris', 'alexsavulescu'] version('develop', branch='master', submodules='True') + version("8.0.0", tag="8.0.0", submodules='True') version("7.8.2", tag="7.8.2", submodules='True') version("7.8.1", tag="7.8.1", submodules='True') @@ -43,6 +44,7 @@ class Neuron(CMakePackage): depends_on("ncurses") depends_on("python@2.7:", when="+python") depends_on("py-pytest", when="+python+tests") + depends_on("py-mpi4py", when="+mpi+python+tests") depends_on("readline") depends_on("caliper", when="+caliper") depends_on("py-numpy", type='run') diff --git a/var/spack/repos/builtin/packages/nextflow/package.py b/var/spack/repos/builtin/packages/nextflow/package.py index 1f14cf8d9de..b075de775a5 100644 --- a/var/spack/repos/builtin/packages/nextflow/package.py +++ b/var/spack/repos/builtin/packages/nextflow/package.py @@ -9,7 +9,7 @@ class Nextflow(Package): """Data-driven computational pipelines""" - homepage = "http://www.nextflow.io" + homepage = "https://www.nextflow.io" url = "https://github.com/nextflow-io/nextflow/releases/download/v0.24.1/nextflow" version('20.10.0', sha256='54f76c83cbabe8ec68d6a878dcf921e647284499f4ae917356e594d873cb78dd', expand=False) diff --git a/var/spack/repos/builtin/packages/nghttp2/package.py b/var/spack/repos/builtin/packages/nghttp2/package.py index 332b8bc4250..c4000d16387 100644 --- a/var/spack/repos/builtin/packages/nghttp2/package.py +++ b/var/spack/repos/builtin/packages/nghttp2/package.py @@ -3,8 +3,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import os - from spack import * @@ -15,23 +13,25 @@ class Nghttp2(AutotoolsPackage): homepage = "https://nghttp2.org/" url = "https://github.com/nghttp2/nghttp2/releases/download/v1.26.0/nghttp2-1.26.0.tar.gz" + version('1.44.0', sha256='3e4824d02ae27eca931e0bb9788df00a26e5fd8eb672cf52cbb89c1463ba16e9') version('1.26.0', sha256='daf7c0ca363efa25b2cbb1e4bd925ac4287b664c3d1465f6a390359daa3f0cf1') - depends_on('python@2.7:', type=('build', 'run')) - depends_on('py-cython@0.19:', type=('build', 'run')) - depends_on('py-setuptools', type=('build')) + depends_on('pkgconfig', type='build') - def setup_build_environment(self, env): - site_packages_dir = os.path.join( - self.spec.prefix.lib, - 'python' + str(self.spec['python'].version.up_to(2)), - 'site-packages') - env.prepend_path('PYTHONPATH', site_packages_dir) - - @run_before('install') - def ensure_install_dir_exists(self): - site_packages_dir = os.path.join( - self.spec.prefix.lib, - 'python' + str(self.spec['python'].version.up_to(2)), - 'site-packages') - mkdirp(site_packages_dir) + def configure_args(self): + return [ + '--enable-lib-only', + '--with-libxml2=no', + '--with-jansson=no', + '--with-zlib=no', + '--with-libevent-openssl=no', + '--with-libcares=no', + '--with-openssl=no', + '--with-libev=no', + '--with-cunit=no', + '--with-jemalloc=no', + '--with-systemd=no', + '--with-mruby=no', + '--with-neverbleed=no', + '--with-boost=no' + ] diff --git a/var/spack/repos/builtin/packages/nix/package.py b/var/spack/repos/builtin/packages/nix/package.py index 1dbd50d2314..4abf655a1e2 100644 --- a/var/spack/repos/builtin/packages/nix/package.py +++ b/var/spack/repos/builtin/packages/nix/package.py @@ -9,7 +9,7 @@ class Nix(AutotoolsPackage): """Nix, the purely functional package manager""" - homepage = "http://nixos.org/nix" + homepage = "https://nixos.org/nix" url = "https://github.com/NixOS/nix/archive/2.2.1.zip" version('2.2.1', sha256='b591664dd1b04a8f197407d445799ece41140a3117bcbdf8e3c5e94cd3f59854') diff --git a/var/spack/repos/builtin/packages/nlohmann-json/package.py b/var/spack/repos/builtin/packages/nlohmann-json/package.py index a839bb18acf..6784b63ea6c 100644 --- a/var/spack/repos/builtin/packages/nlohmann-json/package.py +++ b/var/spack/repos/builtin/packages/nlohmann-json/package.py @@ -13,19 +13,21 @@ class NlohmannJson(CMakePackage): url = "https://github.com/nlohmann/json/archive/v3.1.2.tar.gz" maintainers = ['ax3l'] - version('3.9.1', sha256='4cf0df69731494668bdd6460ed8cb269b68de9c19ad8c27abc24cd72605b2d5b') - version('3.8.0', sha256='7d0edf65f2ac7390af5e5a0b323b31202a6c11d744a74b588dc30f5a8c9865ba') - version('3.7.2', sha256='914c4af3f14bb98ff084172685fba5d32e8ce4390ec8ba5da45c63daa305df4d') - version('3.7.0', sha256='d51a3a8d3efbb1139d7608e28782ea9efea7e7933157e8ff8184901efd8ee760') - version('3.6.1', sha256='80c45b090e40bf3d7a7f2a6e9f36206d3ff710acfa8d8cc1f8c763bb3075e22e') - version('3.5.0', sha256='e0b1fc6cc6ca05706cce99118a87aca5248bd9db3113e703023d23f044995c1d') - version('3.4.0', sha256='c377963a95989270c943d522bfefe7b889ef5ed0e1e15d535fd6f6f16ed70732') - version('3.3.0', sha256='2fd1d207b4669a7843296c41d3b6ac5b23d00dec48dba507ba051d14564aa801') - version('3.2.0', sha256='2de558ff3b3b32eebfb51cf2ceb835a0fa5170e6b8712b02be9c2c07fcfe52a1') - version('3.1.2', sha256='e8fffa6cbdb3c15ecdff32eebf958b6c686bc188da8ad5c6489462d16f83ae54') - version('3.1.1', sha256='9f3549824af3ca7e9707a2503959886362801fb4926b869789d6929098a79e47') + version('3.10.0', sha256='eb8b07806efa5f95b349766ccc7a8ec2348f3b2ee9975ad879259a371aea8084') + version('3.9.1', sha256='4cf0df69731494668bdd6460ed8cb269b68de9c19ad8c27abc24cd72605b2d5b') + version('3.9.0', sha256='9943db11eeaa5b23e58a88fbc26c453faccef7b546e55063ad00e7caaaf76d0b') + version('3.8.0', sha256='7d0edf65f2ac7390af5e5a0b323b31202a6c11d744a74b588dc30f5a8c9865ba') + version('3.7.2', sha256='914c4af3f14bb98ff084172685fba5d32e8ce4390ec8ba5da45c63daa305df4d') + version('3.7.0', sha256='d51a3a8d3efbb1139d7608e28782ea9efea7e7933157e8ff8184901efd8ee760') + version('3.6.1', sha256='80c45b090e40bf3d7a7f2a6e9f36206d3ff710acfa8d8cc1f8c763bb3075e22e') + version('3.5.0', sha256='e0b1fc6cc6ca05706cce99118a87aca5248bd9db3113e703023d23f044995c1d') + version('3.4.0', sha256='c377963a95989270c943d522bfefe7b889ef5ed0e1e15d535fd6f6f16ed70732') + version('3.3.0', sha256='2fd1d207b4669a7843296c41d3b6ac5b23d00dec48dba507ba051d14564aa801') + version('3.2.0', sha256='2de558ff3b3b32eebfb51cf2ceb835a0fa5170e6b8712b02be9c2c07fcfe52a1') + version('3.1.2', sha256='e8fffa6cbdb3c15ecdff32eebf958b6c686bc188da8ad5c6489462d16f83ae54') + version('3.1.1', sha256='9f3549824af3ca7e9707a2503959886362801fb4926b869789d6929098a79e47') - variant('single_header', default=True, + variant('multiple_headers', default=False, description='Use amalgamated single-header') depends_on('cmake@3.8:', type='build') @@ -39,12 +41,7 @@ class NlohmannJson(CMakePackage): conflicts('%pgi@:14') def cmake_args(self): - spec = self.spec - define = CMakePackage.define - - args = [ - define('JSON_MultipleHeaders', '~single_header' in spec), - define('BUILD_TESTING', self.run_tests), + return [ + self.define_from_variant('JSON_MultipleHeaders', 'multiple_headers'), + self.define('JSON_BuildTests', self.run_tests), ] - - return args diff --git a/var/spack/repos/builtin/packages/nspr/package.py b/var/spack/repos/builtin/packages/nspr/package.py index 995cc294993..33b58f3b166 100644 --- a/var/spack/repos/builtin/packages/nspr/package.py +++ b/var/spack/repos/builtin/packages/nspr/package.py @@ -10,7 +10,7 @@ class Nspr(AutotoolsPackage): """Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level and libc-like functions.""" - homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR" + homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Reference/NSPR_functions" url = "https://ftp.mozilla.org/pub/nspr/releases/v4.13.1/src/nspr-4.13.1.tar.gz" version('4.31', sha256='5729da87d5fbf1584b72840751e0c6f329b5d541850cacd1b61652c95015abc8') diff --git a/var/spack/repos/builtin/packages/numactl/package.py b/var/spack/repos/builtin/packages/numactl/package.py index 05f5bf4bd1c..6aae477c838 100644 --- a/var/spack/repos/builtin/packages/numactl/package.py +++ b/var/spack/repos/builtin/packages/numactl/package.py @@ -9,7 +9,7 @@ class Numactl(AutotoolsPackage): """NUMA support for Linux""" - homepage = "http://oss.sgi.com/projects/libnuma/" + homepage = "https://github.com/numactl/numactl" url = "https://github.com/numactl/numactl/archive/v2.0.11.tar.gz" force_autoreconf = True diff --git a/var/spack/repos/builtin/packages/nvhpc/package.py b/var/spack/repos/builtin/packages/nvhpc/package.py index cda878e4b62..fbf44692214 100644 --- a/var/spack/repos/builtin/packages/nvhpc/package.py +++ b/var/spack/repos/builtin/packages/nvhpc/package.py @@ -70,7 +70,7 @@ class Nvhpc(Package): and debugging tools simplify porting and optimization of HPC applications.""" - homepage = "http://developer.nvidia.com/hpc-sdk" + homepage = "https://developer.nvidia.com/hpc-sdk" maintainers = ['samcmill'] diff --git a/var/spack/repos/builtin/packages/nyancat/package.py b/var/spack/repos/builtin/packages/nyancat/package.py index a89ba0e9a26..6a6e843038c 100644 --- a/var/spack/repos/builtin/packages/nyancat/package.py +++ b/var/spack/repos/builtin/packages/nyancat/package.py @@ -8,7 +8,7 @@ class Nyancat(MakefilePackage): """Nyancat in your terminal, rendered through ANSI escape sequences.""" - homepage = "http://nyancat.dakko.us/" + homepage = "https://nyancat.dakko.us/" url = "https://github.com/klange/nyancat/archive/1.5.1.tar.gz" version('1.5.2', sha256='88cdcaa9c7134503dd0364a97fa860da3381a09cb555c3aae9918360827c2032') diff --git a/var/spack/repos/builtin/packages/ocaml/package.py b/var/spack/repos/builtin/packages/ocaml/package.py index 0ddebf55c29..e3aa2a4d144 100644 --- a/var/spack/repos/builtin/packages/ocaml/package.py +++ b/var/spack/repos/builtin/packages/ocaml/package.py @@ -10,7 +10,7 @@ class Ocaml(Package): """OCaml is an industrial strength programming language supporting functional, imperative and object-oriented styles""" - homepage = "http://ocaml.org/" + homepage = "https://ocaml.org/" url = "https://caml.inria.fr/pub/distrib/ocaml-4.06/ocaml-4.06.0.tar.gz" maintainers = ['scemama'] diff --git a/var/spack/repos/builtin/packages/occa/package.py b/var/spack/repos/builtin/packages/occa/package.py index 1868510c89f..688d24adf6f 100644 --- a/var/spack/repos/builtin/packages/occa/package.py +++ b/var/spack/repos/builtin/packages/occa/package.py @@ -16,7 +16,7 @@ class Occa(Package): using run-time compilation for device kernels. """ - homepage = "http://libocca.org" + homepage = "https://libocca.org" git = 'https://github.com/libocca/occa.git' maintainers = ['v-dobrev', 'dmed256'] diff --git a/var/spack/repos/builtin/packages/ocl-icd/package.py b/var/spack/repos/builtin/packages/ocl-icd/package.py index 501baf9e51d..247d201880d 100644 --- a/var/spack/repos/builtin/packages/ocl-icd/package.py +++ b/var/spack/repos/builtin/packages/ocl-icd/package.py @@ -12,7 +12,9 @@ class OclIcd(AutotoolsPackage): homepage = "https://github.com/OCL-dev/ocl-icd" url = "https://github.com/OCL-dev/ocl-icd/archive/v2.2.12.tar.gz" + maintainers = ['lorddavidiii'] + version('2.3.1', sha256='a32b67c2d52ffbaf490be9fc18b46428ab807ab11eff7664d7ff75e06cfafd6d') version('2.3.0', sha256='469f592ccd9b0547fb7212b17e1553b203d178634c20d3416640c0209e3ddd50') version('2.2.14', sha256='46df23608605ad548e80b11f4ba0e590cef6397a079d2f19adf707a7c2fbfe1b') version('2.2.13', sha256='f85d59f3e8327f15637b91e4ae8df0829e94daeff68c647b2927b8376b1f8d92') diff --git a/var/spack/repos/builtin/packages/oclint/package.py b/var/spack/repos/builtin/packages/oclint/package.py index c38dc863961..19bb29c34b6 100644 --- a/var/spack/repos/builtin/packages/oclint/package.py +++ b/var/spack/repos/builtin/packages/oclint/package.py @@ -13,7 +13,7 @@ class Oclint(Package): reducing defects by inspecting C, C++ and Objective-C code and looking for potential problems""" - homepage = "http://oclint.org/" + homepage = "https://oclint.org/" url = "https://github.com/oclint/oclint/archive/v0.13.tar.gz" version('0.13', sha256='a0fd188673863e6357d6585b9bb9c3affe737df134b9383a1a5ed021d09ed848') diff --git a/var/spack/repos/builtin/packages/oclock/package.py b/var/spack/repos/builtin/packages/oclock/package.py index 76fdb6a3825..ac8d9ec1341 100644 --- a/var/spack/repos/builtin/packages/oclock/package.py +++ b/var/spack/repos/builtin/packages/oclock/package.py @@ -10,7 +10,7 @@ class Oclock(AutotoolsPackage, XorgPackage): """oclock is a simple analog clock using the SHAPE extension to make a round (possibly transparent) window.""" - homepage = "http://cgit.freedesktop.org/xorg/app/oclock" + homepage = "https://cgit.freedesktop.org/xorg/app/oclock" xorg_mirror_path = "app/oclock-1.0.3.tar.gz" version('1.0.3', sha256='6628d1abe1612b87db9d0170cbe7f1cf4205cd764274f648c3c1bdb745bff877') diff --git a/var/spack/repos/builtin/packages/octopus/package.py b/var/spack/repos/builtin/packages/octopus/package.py index d5aa933ff37..20236119ad8 100644 --- a/var/spack/repos/builtin/packages/octopus/package.py +++ b/var/spack/repos/builtin/packages/octopus/package.py @@ -8,7 +8,7 @@ from spack import * -class Octopus(Package): +class Octopus(Package, CudaPackage): """A real-space finite-difference (time-dependent) density-functional theory code.""" @@ -114,10 +114,15 @@ def install(self, spec, prefix): '--with-scalapack=%s' % spec['scalapack'].libs ]) - # --with-etsf-io-prefix= - # --with-sparskit=${prefix}/lib/libskit.a - # --with-pfft-prefix=${prefix} --with-mpifftw-prefix=${prefix} - # --with-berkeleygw-prefix=${prefix} + if '+cuda' in spec: + args.extend([ + '--enable-cuda' + ]) + + # --with-etsf-io-prefix= + # --with-sparskit=${prefix}/lib/libskit.a + # --with-pfft-prefix=${prefix} --with-mpifftw-prefix=${prefix} + # --with-berkeleygw-prefix=${prefix} # When preprocessor expands macros (i.e. CFLAGS) defined as quoted # strings the result may be > 132 chars and is terminated. diff --git a/var/spack/repos/builtin/packages/of-precice/package.py b/var/spack/repos/builtin/packages/of-precice/package.py index f20427d8f5c..e1f1f839a00 100644 --- a/var/spack/repos/builtin/packages/of-precice/package.py +++ b/var/spack/repos/builtin/packages/of-precice/package.py @@ -14,7 +14,7 @@ class OfPrecice(Package): """preCICE adapter for OpenFOAM""" - homepage = 'https://www.precice.org' + homepage = 'https://precice.org/' git = 'https://github.com/precice/openfoam-adapter.git' # Currently develop only diff --git a/var/spack/repos/builtin/packages/ompss/package.py b/var/spack/repos/builtin/packages/ompss/package.py index dc74b656a35..96a946eab55 100644 --- a/var/spack/repos/builtin/packages/ompss/package.py +++ b/var/spack/repos/builtin/packages/ompss/package.py @@ -20,7 +20,7 @@ class Ompss(Package): Nanos++ runtime system. """ - homepage = "http://pm.bsc.es/" + homepage = "https://pm.bsc.es/" url = "http://pm.bsc.es/sites/default/files/ftp/ompss/releases/ompss-14.10.tar.gz" list_url = 'http://pm.bsc.es/ompss-downloads' diff --git a/var/spack/repos/builtin/packages/opa-psm2/package.py b/var/spack/repos/builtin/packages/opa-psm2/package.py index 9f9a248bdd9..5a9044bbd0a 100644 --- a/var/spack/repos/builtin/packages/opa-psm2/package.py +++ b/var/spack/repos/builtin/packages/opa-psm2/package.py @@ -9,7 +9,7 @@ class OpaPsm2(MakefilePackage): """ Omni-Path Performance Scaled Messaging 2 (PSM2) library""" - homepage = "http://github.com/cornelisnetworks/opa-psm2" + homepage = "https://github.com/cornelisnetworks/opa-psm2" url = "https://github.com/cornelisnetworks/opa-psm2/archive/PSM2_10.3-8.tar.gz" version('11.2.185', sha256='8c0446e989feb4a3822791e4a3687060916f7c4612d1e8e493879be66f10db09') diff --git a/var/spack/repos/builtin/packages/opari2/package.py b/var/spack/repos/builtin/packages/opari2/package.py index 56b5af5c21a..3202d9ed142 100644 --- a/var/spack/repos/builtin/packages/opari2/package.py +++ b/var/spack/repos/builtin/packages/opari2/package.py @@ -17,7 +17,7 @@ class Opari2(AutotoolsPackage): tied tasks. """ - homepage = "http://www.vi-hps.org/projects/score-p" + homepage = "https://www.vi-hps.org/projects/score-p" url = "https://www.vi-hps.org/cms/upload/packages/opari2/opari2-2.0.4.tar.gz" version('2.0.6', sha256='55972289ce66080bb48622110c3189a36e88a12917635f049b37685b9d3bbcb0', url='https://perftools.pages.jsc.fz-juelich.de/cicd/opari2/tags/opari2-2.0.6/opari2-2.0.6.tar.gz') diff --git a/var/spack/repos/builtin/packages/opencl-c-headers/package.py b/var/spack/repos/builtin/packages/opencl-c-headers/package.py index e850177c7f3..b47921723f4 100644 --- a/var/spack/repos/builtin/packages/opencl-c-headers/package.py +++ b/var/spack/repos/builtin/packages/opencl-c-headers/package.py @@ -14,7 +14,9 @@ class OpenclCHeaders(Package): homepage = "https://www.khronos.org/registry/OpenCL/" url = "https://github.com/KhronosGroup/OpenCL-Headers/archive/v2020.06.16.tar.gz" + maintainers = ['lorddavidiii'] + version('2021.06.30', sha256='6640d590c30d90f89351f5e3043ae6363feeb19ac5e64bc35f8cfa1a6cd5498e') version('2021.04.29', sha256='477e2b26125d99a9b2f20c68262f27ca3f3ca7899593a8af2b7fe077bdce18d1') version('2020.12.18', sha256='5dad6d436c0d7646ef62a39ef6cd1f3eba0a98fc9157808dfc1d808f3705ebc2') version('2020.06.16', sha256='2f5a60e5ac4b127650618c58a7e3b35a84dbf23c1a0ac72eb5e7baf221600e06') diff --git a/var/spack/repos/builtin/packages/opencl-clhpp/package.py b/var/spack/repos/builtin/packages/opencl-clhpp/package.py index 199674ac50b..d1edf87550d 100644 --- a/var/spack/repos/builtin/packages/opencl-clhpp/package.py +++ b/var/spack/repos/builtin/packages/opencl-clhpp/package.py @@ -14,7 +14,9 @@ class OpenclClhpp(CMakePackage): homepage = "https://www.khronos.org/registry/OpenCL/" url = "https://github.com/KhronosGroup/OpenCL-CLHPP/archive/v2.0.12.tar.gz" + maintainers = ['lorddavidiii'] + version('2.0.15', sha256='0175806508abc699586fc9a9387e01eb37bf812ca534e3b493ff3091ec2a9246') version('2.0.14', sha256='c8821a7638e57a2c4052631c941af720b581edda634db6ab0b59924c958d69b6') version('2.0.13', sha256='8ff0d0cd94d728edd30c876db546bf13e370ee7863629b4b9b5e2ef8e130d23c') version('2.0.12', sha256='20b28709ce74d3602f1a946d78a2024c1f6b0ef51358b9686612669897a58719') diff --git a/var/spack/repos/builtin/packages/openexr/package.py b/var/spack/repos/builtin/packages/openexr/package.py index db9f6a4b796..2eb651fe25e 100644 --- a/var/spack/repos/builtin/packages/openexr/package.py +++ b/var/spack/repos/builtin/packages/openexr/package.py @@ -9,7 +9,7 @@ class Openexr(AutotoolsPackage): """OpenEXR Graphics Tools (high dynamic-range image file format)""" - homepage = "http://www.openexr.com/" + homepage = "https://www.openexr.com/" url = "https://github.com/openexr/openexr/releases/download/v2.3.0/openexr-2.3.0.tar.gz" # New versions should come from github now diff --git a/var/spack/repos/builtin/packages/openfast/package.py b/var/spack/repos/builtin/packages/openfast/package.py index b368168aa22..bdd7d7b6d66 100644 --- a/var/spack/repos/builtin/packages/openfast/package.py +++ b/var/spack/repos/builtin/packages/openfast/package.py @@ -9,13 +9,21 @@ class Openfast(CMakePackage): """Wind turbine simulation package from NREL""" - homepage = "http://openfast.readthedocs.io/en/latest/" + homepage = "https://openfast.readthedocs.io/en/latest/" git = "https://github.com/OpenFAST/openfast.git" maintainers = ['jrood-nrel'] version('develop', branch='dev') version('master', branch='main') + version('2.6.0', tag='v2.6.0') + version('2.5.0', tag='v2.5.0') + version('2.4.0', tag='v2.4.0') + version('2.3.0', tag='v2.3.0') + version('2.2.0', tag='v2.2.0') + version('2.1.0', tag='v2.1.0') + version('2.0.0', tag='v2.0.0') + version('1.0.0', tag='v1.0.0') variant('shared', default=True, description="Build shared libraries") diff --git a/var/spack/repos/builtin/packages/openfoam-org/package.py b/var/spack/repos/builtin/packages/openfoam-org/package.py index 58714cbcb77..57b458e6ff5 100644 --- a/var/spack/repos/builtin/packages/openfoam-org/package.py +++ b/var/spack/repos/builtin/packages/openfoam-org/package.py @@ -61,7 +61,7 @@ class OpenfoamOrg(Package): and owner of the OPENFOAM trademark. """ - homepage = "http://www.openfoam.org/" + homepage = "https://www.openfoam.org/" baseurl = "https://github.com/OpenFOAM" url = "https://github.com/OpenFOAM/OpenFOAM-4.x/archive/version-4.1.tar.gz" git = "https://github.com/OpenFOAM/OpenFOAM-dev.git" diff --git a/var/spack/repos/builtin/packages/openfoam/package.py b/var/spack/repos/builtin/packages/openfoam/package.py index ce772f7e3cc..f7b0e0663f2 100644 --- a/var/spack/repos/builtin/packages/openfoam/package.py +++ b/var/spack/repos/builtin/packages/openfoam/package.py @@ -257,7 +257,7 @@ class Openfoam(Package): """ maintainers = ['olesenm'] - homepage = "http://www.openfoam.com/" + homepage = "https://www.openfoam.com/" url = "https://sourceforge.net/projects/openfoam/files/v1906/OpenFOAM-v1906.tgz" git = "https://develop.openfoam.com/Development/openfoam.git" list_url = "https://sourceforge.net/projects/openfoam/files/" diff --git a/var/spack/repos/builtin/packages/openimageio/package.py b/var/spack/repos/builtin/packages/openimageio/package.py index 551d50ade97..91f7881a978 100644 --- a/var/spack/repos/builtin/packages/openimageio/package.py +++ b/var/spack/repos/builtin/packages/openimageio/package.py @@ -10,7 +10,7 @@ class Openimageio(CMakePackage): """OpenImageIO is a library for reading and writing images, and a bunch of related classes, utilities, and applications.""" - homepage = "http://www.openimageio.org" + homepage = "https://www.openimageio.org" url = "https://github.com/OpenImageIO/oiio/archive/Release-1.8.15.tar.gz" version('2.2.7.0', sha256='857ac83798d6d2bda5d4d11a90618ff19486da2e5a4c4ff022c5976b5746fe8c') diff --git a/var/spack/repos/builtin/packages/openmm/package.py b/var/spack/repos/builtin/packages/openmm/package.py index ff545129cc4..e786f0b88ea 100644 --- a/var/spack/repos/builtin/packages/openmm/package.py +++ b/var/spack/repos/builtin/packages/openmm/package.py @@ -14,7 +14,7 @@ class Openmm(CMakePackage, CudaPackage): LGPL. Part of the Omnia suite of tools for predictive biomolecular simulation. """ - homepage = "http://openmm.org/" + homepage = "https://openmm.org/" url = "https://github.com/openmm/openmm/archive/7.4.1.tar.gz" version('7.5.0', sha256='516748b4f1ae936c4d70cc6401174fc9384244c65cd3aef27bc2c53eac6d6de5') diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py index d98d829c04b..10ccc3a11f4 100644 --- a/var/spack/repos/builtin/packages/openmpi/package.py +++ b/var/spack/repos/builtin/packages/openmpi/package.py @@ -176,7 +176,7 @@ class Openmpi(AutotoolsPackage): patch('nag_pthread/2.0.0_2.1.1.patch', when='@2.0.0:2.1.1%nag') patch('nag_pthread/1.10.4_1.10.999.patch', when='@1.10.4:1.10.999%nag') - patch('nvhpc-libtool.patch', when='@develop %nvhpc') + patch('nvhpc-libtool.patch', when='@master %nvhpc') patch('nvhpc-configure.patch', when='%nvhpc') # Fix MPI_Sizeof() in the "mpi" Fortran module for compilers that do not @@ -266,10 +266,11 @@ class Openmpi(AutotoolsPackage): if sys.platform != 'darwin': depends_on('numactl') - depends_on('autoconf', type='build', when='@develop') - depends_on('automake', type='build', when='@develop') - depends_on('libtool', type='build', when='@develop') - depends_on('m4', type='build', when='@develop') + depends_on('autoconf', type='build', when='@master') + depends_on('automake', type='build', when='@master') + depends_on('libtool', type='build', when='@master') + depends_on('m4', type='build', when='@master') + depends_on('pandoc', type='build', when='@master') depends_on('perl', type='build') depends_on('pkgconfig', type='build') diff --git a/var/spack/repos/builtin/packages/openpa/package.py b/var/spack/repos/builtin/packages/openpa/package.py index f159f0e5ec6..ddad783e786 100644 --- a/var/spack/repos/builtin/packages/openpa/package.py +++ b/var/spack/repos/builtin/packages/openpa/package.py @@ -9,7 +9,7 @@ class Openpa(AutotoolsPackage): """An open source, highly-portable library that provides atomic primitives (and related constructs) for high performance, concurrent software""" - homepage = 'https://trac.mpich.org/projects/openpa' + homepage = 'https://github.com/pmodels/openpa' url = 'https://github.com/pmodels/openpa/releases/download/v1.0.4/openpa-1.0.4.tar.gz' version('1.0.4', sha256='9e5904b3bbdcb24e8429c12d613422e716a3479f3e0aeefbd9ce546852899e3a') diff --git a/var/spack/repos/builtin/packages/openpbs/package.py b/var/spack/repos/builtin/packages/openpbs/package.py index f12685ef88e..7a45467d13e 100644 --- a/var/spack/repos/builtin/packages/openpbs/package.py +++ b/var/spack/repos/builtin/packages/openpbs/package.py @@ -9,17 +9,15 @@ class Openpbs(AutotoolsPackage): - """PBS Professional software optimizes job scheduling and workload + """OpenPBS software optimizes job scheduling and workload management in high-performance computing (HPC) environments - clusters, clouds, and supercomputers - improving system efficiency and people's productivity.""" - # TODO: update the description and the homepage url once the renaming is - # finished: http://community.pbspro.org/t/openpbs-and-version-20-0/2075 - - homepage = "https://www.pbspro.org" + homepage = "https://www.openpbs.org" url = "https://github.com/openpbs/openpbs/archive/v19.1.3.tar.gz" + version('20.0.1', sha256='685a4abcea92bf518df02b544d25e237ae8cef76f86525f7bf3554812e9f50fa') version('19.1.3', sha256='6e9d2614f839ff3d91d0ace3de04752b7c075da60c72fe6def76437aa05c9857') depends_on('autoconf', type='build') @@ -33,7 +31,8 @@ class Openpbs(AutotoolsPackage): depends_on('ssmtp', type=('build', 'run')) depends_on('xauth', type=('build', 'run')) - depends_on('python@2.6:2.7', type=('build', 'link', 'run')) + depends_on('python@3.5:3.9', type=('build', 'link', 'run'), when='@20:') + depends_on('python@2.6:2.7', type=('build', 'link', 'run'), when='@:19') depends_on('libx11') depends_on('libice') @@ -64,6 +63,9 @@ class Openpbs(AutotoolsPackage): # Link to the dynamic library of Python instead of the static one. patch('python.patch') + # Provides PBS functionality + provides('pbs') + def autoreconf(self, spec, prefix): Executable('./autogen.sh')() diff --git a/var/spack/repos/builtin/packages/openpmd-api/package.py b/var/spack/repos/builtin/packages/openpmd-api/package.py index 61f0cea5cab..37c166f7d38 100644 --- a/var/spack/repos/builtin/packages/openpmd-api/package.py +++ b/var/spack/repos/builtin/packages/openpmd-api/package.py @@ -9,7 +9,7 @@ class OpenpmdApi(CMakePackage): """C++ & Python API for Scientific I/O""" - homepage = "http://www.openPMD.org" + homepage = "https://www.openPMD.org" url = "https://github.com/openPMD/openPMD-api/archive/0.13.3.tar.gz" git = "https://github.com/openPMD/openPMD-api.git" @@ -17,6 +17,9 @@ class OpenpmdApi(CMakePackage): # C++14 up until here version('develop', branch='dev') + version('0.14.2', sha256='25c6b4bcd0ae1ba668b633b8514e66c402da54901c26861fc754fca55717c836') + version('0.14.1', sha256='172fd1d785627d01c77f1170adc5a18bd8a6302e804d0f271dc0d616a5156791') + version('0.14.0', sha256='7bb561c1a6f54e9a6a1b56aaf1d4d098bbe290d204f84ebe5a6f11b3cab2be6e') # temporary, pre 0.14.0 version for HiPACE++ version('hipace', commit='ac083025ee662469b8cad1adf93eef48cde35f58') version('0.13.4', sha256='46c013be5cda670f21969675ce839315d4f5ada0406a6546a91ec3441402cf5e') @@ -44,6 +47,7 @@ class OpenpmdApi(CMakePackage): depends_on('cmake@3.15.0:', type='build') depends_on('mpark-variant@1.4.0:') depends_on('catch2@2.6.1:', type='test') + depends_on('catch2@2.13.4:', type='test', when='@0.14.0:') depends_on('mpi@2.3:', when='+mpi') # might become MPI 3.0+ depends_on('hdf5@1.8.13:', when='+hdf5') depends_on('hdf5@1.8.13: ~mpi', when='~mpi +hdf5') @@ -53,10 +57,11 @@ class OpenpmdApi(CMakePackage): depends_on('adios@1.13.1: +mpi ~sz', when='+mpi +adios1') depends_on('adios2@2.5.0:', when='+adios2') depends_on('adios2@2.6.0:', when='+adios2 @0.12.0:') + depends_on('adios2@2.7.0:', when='+adios2 @0.14.0:') depends_on('adios2@2.5.0: ~mpi', when='~mpi +adios2') depends_on('adios2@2.5.0: +mpi', when='+mpi +adios2') depends_on('nlohmann-json@3.9.1:') - depends_on('py-pybind11@2.6.1:', when='+python', type='link') + depends_on('py-pybind11@2.6.2:', when='+python', type='link') depends_on('py-numpy@1.15.1:', when='+python', type=['test', 'run']) depends_on('py-mpi4py@2.1.0:', when='+python +mpi', type=['test', 'run']) depends_on('python@3.6:', when='+python', type=['link', 'test', 'run']) @@ -125,3 +130,23 @@ def setup_dependent_build_environment(self, env, dependent_spec): env.prepend_path('CMAKE_PREFIX_PATH', self.spec['mpark-variant'].prefix) env.prepend_path('CPATH', self.spec['mpark-variant'].prefix.include) + + def check(self): + """CTest checks after the build phase""" + # note: for MPI-parallel tests, you can overwrite the standard CMake + # option -DMPIEXEC_EXECUTABLE=$(which jsrun) for jsrun or srun, + # etc.. Alternatively, you can also use -E to exclude + # parallel and MPI tests + with working_dir(self.build_directory): + # -j1 because individual tests create files that are read again by + # later tests + ctest('--output-on-failure', '-j1') + + def test(self): + """Perform smoke tests on the installed package.""" + exes = ['openpmd-ls'] # in 0.11.1+ + for exe in exes: + spec_vers_str = '{0}'.format(self.spec.version) + reason = 'test version of {0} is {1}'.format(exe, spec_vers_str) + self.run_test(exe, ['--version'], [spec_vers_str], + installed=True, purpose=reason, skip_missing=False) diff --git a/var/spack/repos/builtin/packages/openslide/package.py b/var/spack/repos/builtin/packages/openslide/package.py index af1b19e6a3d..38456d83de5 100644 --- a/var/spack/repos/builtin/packages/openslide/package.py +++ b/var/spack/repos/builtin/packages/openslide/package.py @@ -9,7 +9,7 @@ class Openslide(AutotoolsPackage): """OpenSlide reads whole slide image files.""" - homepage = "http://openslide.org/" + homepage = "https://openslide.org/" url = "https://github.com/openslide/openslide/releases/download/v3.4.1/openslide-3.4.1.tar.xz" version('3.4.1', sha256='9938034dba7f48fadc90a2cdf8cfe94c5613b04098d1348a5ff19da95b990564') diff --git a/var/spack/repos/builtin/packages/openssh/package.py b/var/spack/repos/builtin/packages/openssh/package.py index e97e44a18fc..083cce47a3e 100644 --- a/var/spack/repos/builtin/packages/openssh/package.py +++ b/var/spack/repos/builtin/packages/openssh/package.py @@ -20,6 +20,7 @@ class Openssh(AutotoolsPackage): homepage = "https://www.openssh.com/" url = "https://mirrors.sonic.net/pub/OpenBSD/OpenSSH/portable/openssh-7.6p1.tar.gz" + version('8.6p1', sha256='c3e6e4da1621762c850d03b47eed1e48dff4cc9608ddeb547202a234df8ed7ae') version('8.5p1', sha256='f52f3f41d429aa9918e38cf200af225ccdd8e66f052da572870c89737646ec25') version('8.4p1', sha256='5a01d22e407eb1c05ba8a8f7c654d388a13e9f226e4ed33bd38748dafa1d2b24') version('8.3p1', sha256='f2befbe0472fe7eb75d23340eb17531cb6b3aac24075e2066b41f814e12387b2') diff --git a/var/spack/repos/builtin/packages/openssl/package.py b/var/spack/repos/builtin/packages/openssl/package.py index f8455e10e8d..3151fb4c913 100644 --- a/var/spack/repos/builtin/packages/openssl/package.py +++ b/var/spack/repos/builtin/packages/openssl/package.py @@ -16,7 +16,7 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library.""" - homepage = "http://www.openssl.org" + homepage = "https://www.openssl.org" # URL must remain http:// so Spack can bootstrap curl url = "http://www.openssl.org/source/openssl-1.1.1d.tar.gz" @@ -27,7 +27,8 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package # The latest stable version is the 1.1.1 series. This is also our Long Term # Support (LTS) version, supported until 11th September 2023. - version('1.1.1k', sha256='892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5') + version('1.1.1l', sha256='0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1') + version('1.1.1k', sha256='892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5', deprecated=True) version('1.1.1j', sha256='aaf2fcb575cdf6491b98ab4829abf78a3dec8402b8b81efc8f23c00d443981bf', deprecated=True) version('1.1.1i', sha256='e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242', deprecated=True) version('1.1.1h', sha256='5c9ca8774bd7b03e5784f26ae9e9e6d749c9da2438545077e6b3d755a06595d9', deprecated=True) diff --git a/var/spack/repos/builtin/packages/opensubdiv/package.py b/var/spack/repos/builtin/packages/opensubdiv/package.py index 85f1856dd40..bc1a7ccc963 100644 --- a/var/spack/repos/builtin/packages/opensubdiv/package.py +++ b/var/spack/repos/builtin/packages/opensubdiv/package.py @@ -14,7 +14,7 @@ class Opensubdiv(CMakePackage, CudaPackage): This code path is optimized for drawing deforming surfaces with static topology at interactive framerates.""" - homepage = "http://graphics.pixar.com/opensubdiv/docs/intro.html" + homepage = "https://graphics.pixar.com/opensubdiv/docs/intro.html" url = "https://github.com/PixarAnimationStudios/OpenSubdiv/archive/v3_4_0.tar.gz" git = "https://github.com/PixarAnimationStudios/OpenSubdiv" diff --git a/var/spack/repos/builtin/packages/opium/package.py b/var/spack/repos/builtin/packages/opium/package.py index df8d1a71666..88e3791a108 100644 --- a/var/spack/repos/builtin/packages/opium/package.py +++ b/var/spack/repos/builtin/packages/opium/package.py @@ -9,28 +9,33 @@ class Opium(AutotoolsPackage): """DFT pseudopotential generation project""" - homepage = "https://opium.sourceforge.net/index.html" + homepage = "http://opium.sourceforge.net" url = "https://downloads.sourceforge.net/project/opium/opium/opium-v3.8/opium-v3.8-src.tgz" + version('4.1', sha256='e5a102b52601ad037d8a7b3e2dbd295baad23b8c1e4908b9014df2e432c23c60') version('3.8', sha256='edee6606519330aecaee436ee8cfb0a33788b5677861d59e38aba936e87d5ad3') - depends_on('blas') - depends_on('lapack') + variant('external-lapack', default=False, + description='Links to externally installed LAPACK') + + depends_on('lapack', when='+external-lapack') + + parallel = False + + def patch(self): + if '+external-lapack' in self.spec: + with working_dir('src'): + filter_file(r'(^subdirs=.*) lapack', r'\1', 'Makefile') def configure_args(self): - spec = self.spec options = [] - libs = spec['lapack'].libs + spec['blas'].libs - options.append('LDFLAGS=%s' % libs.ld_flags) + if '+external-lapack' in self.spec: + options.append('LDFLAGS={0}'.format(self.spec['lapack'].libs.ld_flags)) + return options - def build(self, spec, prefix): - with working_dir("src", create=False): - make("all-subdirs") - make("opium") - def install(self, spec, prefix): - # opium not have a make install :-(( + # opium does not have a make install target :-(( mkdirp(self.prefix.bin) install(join_path(self.stage.source_path, 'opium'), self.prefix.bin) diff --git a/var/spack/repos/builtin/packages/opus/package.py b/var/spack/repos/builtin/packages/opus/package.py index 5fa86aa5293..d888977fa1f 100644 --- a/var/spack/repos/builtin/packages/opus/package.py +++ b/var/spack/repos/builtin/packages/opus/package.py @@ -9,7 +9,7 @@ class Opus(AutotoolsPackage): """Opus is a totally open, royalty-free, highly versatile audio codec.""" - homepage = "http://opus-codec.org/" + homepage = "https://opus-codec.org/" url = "http://downloads.xiph.org/releases/opus/opus-1.1.4.tar.gz" version('1.3.1', sha256='65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d') diff --git a/var/spack/repos/builtin/packages/orientdb/package.py b/var/spack/repos/builtin/packages/orientdb/package.py index 2f7645a01d5..7bc623e0889 100644 --- a/var/spack/repos/builtin/packages/orientdb/package.py +++ b/var/spack/repos/builtin/packages/orientdb/package.py @@ -11,7 +11,7 @@ class Orientdb(MavenPackage): of Native Graphs, Documents Full-Text, Reactivity, Geo-Spatial and Object Oriented concepts. It's written in Java and it's amazingly fast.""" - homepage = "https://orientdb.com/" + homepage = "https://orientdb.org" url = "https://github.com/orientechnologies/orientdb/archive/3.1.2.tar.gz" version('3.1.2', sha256='3c8e1f55de9e1a6c3cd714832deb7369f50096e85f1e048f0c0328e611970850') diff --git a/var/spack/repos/builtin/packages/orthomcl/package.py b/var/spack/repos/builtin/packages/orthomcl/package.py index 5651124ec0e..b3cd6ef889e 100644 --- a/var/spack/repos/builtin/packages/orthomcl/package.py +++ b/var/spack/repos/builtin/packages/orthomcl/package.py @@ -10,7 +10,7 @@ class Orthomcl(Package): """OrthoMCL is a genome-scale algorithm for grouping orthologous protein sequences.""" - homepage = "http://orthomcl.org/orthomcl/" + homepage = "https://orthomcl.org/orthomcl/" url = "http://orthomcl.org/common/downloads/software/v2.0/orthomclSoftware-v2.0.9.tar.gz" version('2.0.9', sha256='5f96d23ff255778535c4926d75b19f059db0c01be1ac599289d2431115d68640') diff --git a/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py b/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py index d28a5bf3c5f..9faf3ec533b 100644 --- a/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py +++ b/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py @@ -15,7 +15,7 @@ class OsuMicroBenchmarks(AutotoolsPackage): performance measures such as latency, bandwidth and host overhead and can be used for both traditional and GPU-enhanced nodes.""" - homepage = "http://mvapich.cse.ohio-state.edu/benchmarks/" + homepage = "https://mvapich.cse.ohio-state.edu/benchmarks/" url = "http://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-5.6.3.tar.gz" version('5.7.1', sha256='cb5ce4e2e68ed012d9952e96ef880a802058c87a1d840a2093b19bddc7faa165') diff --git a/var/spack/repos/builtin/packages/otf2/package.py b/var/spack/repos/builtin/packages/otf2/package.py index 0fed25f9200..6079b84a20f 100644 --- a/var/spack/repos/builtin/packages/otf2/package.py +++ b/var/spack/repos/builtin/packages/otf2/package.py @@ -12,7 +12,7 @@ class Otf2(AutotoolsPackage): trace data format plus support library. """ - homepage = "http://www.vi-hps.org/projects/score-p" + homepage = "https://www.vi-hps.org/projects/score-p" url = "https://www.vi-hps.org/cms/upload/packages/otf2/otf2-2.1.1.tar.gz" version('2.3', sha256='36957428d37c40d35b6b45208f050fb5cfe23c54e874189778a24b0e9219c7e3', url='https://perftools.pages.jsc.fz-juelich.de/cicd/otf2/tags/otf2-2.3/otf2-2.3.tar.gz') diff --git a/var/spack/repos/builtin/packages/p7zip/package.py b/var/spack/repos/builtin/packages/p7zip/package.py index 74397233163..3de83333502 100644 --- a/var/spack/repos/builtin/packages/p7zip/package.py +++ b/var/spack/repos/builtin/packages/p7zip/package.py @@ -7,11 +7,13 @@ class P7zip(MakefilePackage): """A Unix port of the 7z file archiver""" + maintainers = ['vmiheer'] homepage = "http://p7zip.sourceforge.net" url = "https://downloads.sourceforge.net/project/p7zip/p7zip/16.02/p7zip_16.02_src_all.tar.bz2" version('16.02', sha256='5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6e2341f') + conflicts('%gcc@10:') # all3 includes 7z, 7za, and 7zr build_targets = ['all3'] diff --git a/var/spack/repos/builtin/packages/packmol/package.py b/var/spack/repos/builtin/packages/packmol/package.py index 7bc1a415d1a..1c7a71ddce7 100644 --- a/var/spack/repos/builtin/packages/packmol/package.py +++ b/var/spack/repos/builtin/packages/packmol/package.py @@ -10,7 +10,7 @@ class Packmol(CMakePackage): """Packmol creates an initial point for molecular dynamics simulations by packing molecules in defined regions of space.""" - homepage = "http://m3g.iqm.unicamp.br/packmol/home.shtml" + homepage = "https://m3g.iqm.unicamp.br/packmol/home.shtml" url = "https://github.com/mcubeg/packmol/archive/18.169.tar.gz" version('18.169', sha256='8acf2cbc742a609e763eb00cae55aecd09af2edb4cc4e931706e2f06ac380de9') diff --git a/var/spack/repos/builtin/packages/pacparser/package.py b/var/spack/repos/builtin/packages/pacparser/package.py index 6f8a03f736c..fc59419c616 100644 --- a/var/spack/repos/builtin/packages/pacparser/package.py +++ b/var/spack/repos/builtin/packages/pacparser/package.py @@ -9,7 +9,7 @@ class Pacparser(MakefilePackage): """pacparser is a library to parse proxy auto-config (PAC) files.""" - homepage = "http://pacparser.github.io/" + homepage = "https://pacparser.github.io/" url = "https://github.com/manugarg/pacparser/releases/download/1.3.7/pacparser-1.3.7.tar.gz" version('1.3.7', sha256='eb48ec2fc202d12a4b882133048c7590329849f32c2285bc4dbe418f29aad249') diff --git a/var/spack/repos/builtin/packages/pagit/package.py b/var/spack/repos/builtin/packages/pagit/package.py index 3d1ffa1d697..86e8223f99c 100644 --- a/var/spack/repos/builtin/packages/pagit/package.py +++ b/var/spack/repos/builtin/packages/pagit/package.py @@ -10,7 +10,7 @@ class Pagit(Package): """PAGIT addresses the need for software to generate high quality draft genomes.""" - homepage = "http://www.sanger.ac.uk/science/tools/pagit" + homepage = "https://www.sanger.ac.uk/science/tools/pagit" url = "ftp://ftp.sanger.ac.uk/pub/resources/software/pagit/PAGIT.V1.01.64bit.tgz" version('1.01', sha256='8069c1d236804cf4ea782495adcc50d18561ef466af06b21946b980b3c37ad55') diff --git a/var/spack/repos/builtin/packages/pango/package.py b/var/spack/repos/builtin/packages/pango/package.py index e7c5d6d297b..e8bbb2cd161 100644 --- a/var/spack/repos/builtin/packages/pango/package.py +++ b/var/spack/repos/builtin/packages/pango/package.py @@ -11,11 +11,18 @@ class Pango(AutotoolsPackage): an emphasis on internationalization. It can be used anywhere that text layout is needed, though most of the work on Pango so far has been done in the context of the GTK+ widget toolkit.""" - homepage = "http://www.pango.org" + homepage = "https://www.pango.org" url = "http://ftp.gnome.org/pub/GNOME/sources/pango/1.40/pango-1.40.3.tar.xz" list_url = "http://ftp.gnome.org/pub/gnome/sources/pango/" list_depth = 1 + version('1.48.0', sha256='391f26f3341c2d7053e0fb26a956bd42360dadd825efe7088b1e9340a65e74e6') + version('1.47.0', sha256='730db8652fc43188e03218c3374db9d152351f51fc7011b9acae6d0a6c92c367') + version('1.46.0', sha256='9a81572ebb946187fbdd69d5ffc57e2f7a1f768cd8d2fd89dbb03fb9002a99b5') + version('1.45.0', sha256='381347c6f7696e64d5a7e29c93867c804ae556092b45778310b368066e089015') + version('1.44.0', sha256='004fffebb2ab4f89b375f4720c54b285d569526969ba791dfa20757a7f2f1d1b') + version('1.43.0', sha256='d2c0c253a5328a0eccb00cdd66ce2c8713fabd2c9836000b6e22a8b06ba3ddd2') + version('1.42.0', sha256='9924d88a3dcedff753f0763814a1605307c5c9c931413b8b47ea7267d1b19446') version('1.41.0', sha256='1f76ef95953dc58ee5d6a53e5f1cb6db913f3e0eb489713ee9266695cae580ba') version('1.40.3', sha256='abba8b5ce728520c3a0f1535eab19eac3c14aeef7faa5aded90017ceac2711d3') version('1.40.1', sha256='e27af54172c72b3ac6be53c9a4c67053e16c905e02addcf3a603ceb2005c1a40') @@ -33,6 +40,7 @@ class Pango(AutotoolsPackage): depends_on('gobject-introspection') depends_on('fontconfig') depends_on('freetype@2:') + depends_on('fribidi', when='@1.42:') depends_on('libffi') depends_on('harfbuzz@1.2.3:', when='@1.41.0') diff --git a/var/spack/repos/builtin/packages/pangomm/package.py b/var/spack/repos/builtin/packages/pangomm/package.py index 49c05abbdfb..9eebf07fd10 100644 --- a/var/spack/repos/builtin/packages/pangomm/package.py +++ b/var/spack/repos/builtin/packages/pangomm/package.py @@ -9,7 +9,7 @@ class Pangomm(AutotoolsPackage): """Pangomm is a C++ interface to Pango.""" - homepage = "http://www.pango.org/" + homepage = "https://www.pango.org/" url = "https://ftp.gnome.org/pub/GNOME/sources/pangomm/2.14/pangomm-2.14.1.tar.gz" version('2.43.1', sha256='00483967b4ed0869da09dc0617de45625b9ab846c7b07aa25dfc940a4fc540a4') diff --git a/var/spack/repos/builtin/packages/papi/package.py b/var/spack/repos/builtin/packages/papi/package.py index 5f3c96cbdc1..f7a4e40e80c 100644 --- a/var/spack/repos/builtin/packages/papi/package.py +++ b/var/spack/repos/builtin/packages/papi/package.py @@ -19,10 +19,13 @@ class Papi(AutotoolsPackage): addition Component PAPI provides access to a collection of components that expose performance measurement opportunities across the hardware and software stack.""" - homepage = "http://icl.cs.utk.edu/papi/index.html" + homepage = "https://icl.cs.utk.edu/papi/index.html" maintainers = ['G-Ragghianti'] url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.4.1.tar.gz" + git = "https://bitbucket.org/icl/papi/src/master/" + + version('master', branch='master') version('6.0.0.1', sha256='3cd7ed50c65b0d21d66e46d0ba34cd171178af4bbf9d94e693915c1aca1e287f') version('6.0.0', sha256='3442709dae3405c2845b304c06a8b15395ecf4f3899a89ceb4d715103cb4055f') version('5.7.0', sha256='d1a3bb848e292c805bc9f29e09c27870e2ff4cda6c2fba3b7da8b4bba6547589') diff --git a/var/spack/repos/builtin/packages/papyrus/package.py b/var/spack/repos/builtin/packages/papyrus/package.py index b2d3688df54..e5f17e65627 100644 --- a/var/spack/repos/builtin/packages/papyrus/package.py +++ b/var/spack/repos/builtin/packages/papyrus/package.py @@ -22,6 +22,8 @@ class Papyrus(CMakePackage): depends_on('mpi') + test_requires_compiler = True + def setup_run_environment(self, env): if os.path.isdir(self.prefix.lib64): lib_dir = self.prefix.lib64 @@ -31,3 +33,54 @@ def setup_run_environment(self, env): env.prepend_path('CPATH', self.prefix.include) env.prepend_path('LIBRARY_PATH', lib_dir) env.prepend_path('LD_LIBRARY_PATH', lib_dir) + + @run_after('install') + def cache_test_sources(self): + """Copy the example source files after the package is installed to an + install test subdirectory for use during `spack test run`.""" + self.cache_extra_test_sources([join_path('kv', 'tests')]) + + def run_example_tests(self): + """Run all c & c++ stand alone test""" + + example_dir = join_path(self.test_suite.current_test_cache_dir, 'kv', 'tests') + + if not os.path.exists(example_dir): + print('Skipping all test') + return + + if os.path.isdir(self.prefix.lib64): + lib_dir = self.prefix.lib64 + else: + lib_dir = self.prefix.lib + + example_list = ['01_open_close', '02_put_get', '03_barrier', + '04_delete', '05_fence', '06_signal', + '07_consistency', '08_protect', '09_cache', + '10_checkpoint', '11_restart', '12_free'] + + for example in example_list: + + test_dir = join_path(self.test_suite.current_test_cache_dir, + 'kv', 'tests', example) + test_example = 'test{0}.c'.format(example) + + if not os.path.exists(test_dir): + print('Skipping {0} test'.format(example)) + continue + + self.run_test(self.spec['mpi'].mpicxx, + options=['{0}'.format(join_path(test_dir, test_example)), + '-I{0}'.format(join_path(self.prefix, 'include')), + '-L{0}'.format(lib_dir), '-lpapyruskv', '-g', '-o', + example, '-lpthread', '-lm'], + purpose='test: compile {0} example'.format(example), + work_dir=test_dir) + + self.run_test(self.spec['mpi'].prefix.bin.mpirun, + options=['-np', '4', example], + purpose='test: run {0} example'.format(example), + work_dir=test_dir) + + def test(self): + self.run_example_tests() diff --git a/var/spack/repos/builtin/packages/paradiseo/package.py b/var/spack/repos/builtin/packages/paradiseo/package.py index 8e97a791000..206a920cb59 100644 --- a/var/spack/repos/builtin/packages/paradiseo/package.py +++ b/var/spack/repos/builtin/packages/paradiseo/package.py @@ -10,7 +10,7 @@ class Paradiseo(CMakePackage): """A C++ white-box object-oriented framework dedicated to the reusable design of metaheuristics.""" - homepage = "http://paradiseo.gforge.inria.fr/" + homepage = "https://paradiseo.gforge.inria.fr/" git = "https://gforge.inria.fr/git/paradiseo/paradiseo.git" # Installing from the development version is a better option at this diff --git a/var/spack/repos/builtin/packages/parallel/package.py b/var/spack/repos/builtin/packages/parallel/package.py index deb86860270..28d28a2d56e 100644 --- a/var/spack/repos/builtin/packages/parallel/package.py +++ b/var/spack/repos/builtin/packages/parallel/package.py @@ -12,7 +12,7 @@ class Parallel(AutotoolsPackage, GNUMirrorPackage): script that has to be run for each of the lines in the input. """ - homepage = "http://www.gnu.org/software/parallel/" + homepage = "https://www.gnu.org/software/parallel/" gnu_mirror_path = "parallel/parallel-20170122.tar.bz2" version('20200822', sha256='9654226a808392c365b1e7b8dea91bf4870bc4f306228d853eb700679e21be09') diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py index ad321736d31..f93848c9134 100644 --- a/var/spack/repos/builtin/packages/paraview/package.py +++ b/var/spack/repos/builtin/packages/paraview/package.py @@ -3,6 +3,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import itertools import os from spack import * @@ -53,10 +54,7 @@ class Paraview(CMakePackage, CudaPackage): description='Builds a shared version of the library') variant('kits', default=True, description='Use module kits') - variant('cuda_arch', default='native', multi=False, - values=('native', 'fermi', 'kepler', 'maxwell', - 'pascal', 'volta', 'turing', 'ampere', 'all', 'none'), - description='CUDA architecture') + variant('advanced_debug', default=False, description="Enable all other debug flags beside build_type, such as VTK_DEBUG_LEAK") conflicts('+python', when='+python3') @@ -68,6 +66,17 @@ class Paraview(CMakePackage, CudaPackage): # See commit: https://gitlab.kitware.com/paraview/paraview/-/commit/798d328c conflicts('~opengl2', when='@5.5:') + # 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' + ) + + for _arch in range(10, 14): + conflicts('cuda_arch=%d' % _arch, when="+cuda", msg='ParaView requires cuda_arch >= 20') + depends_on('cmake@3.3:', type='build') # Workaround for @@ -274,7 +283,10 @@ def nvariant_bool(feature): '-DOpenGL_GL_PREFERENCE:STRING=LEGACY'] if spec.satisfies('@5.10:'): - cmake_args.append('-DVTK_MODULE_USE_EXTERNAL_ParaView_vtkcatalyst:BOOL=OFF') + cmake_args.extend([ + '-DVTK_MODULE_USE_EXTERNAL_ParaView_vtkcatalyst:BOOL=OFF', + '-DVTK_MODULE_USE_EXTERNAL_VTK_ioss:BOOL=OFF' + ]) if spec.satisfies('@:5.7') and spec['cmake'].satisfies('@3.17:'): cmake_args.append('-DFPHSA_NAME_MISMATCHED:BOOL=ON') @@ -363,9 +375,42 @@ def nvariant_bool(feature): else: cmake_args.append('-DVTKm_ENABLE_CUDA:BOOL=%s' % variant_bool('+cuda')) - if spec.satisfies('+cuda') and not spec.satisfies('cuda_arch=native'): - cmake_args.append('-DVTKm_CUDA_Architecture=%s' % - spec.variants['cuda_arch'].value) + + # VTK-m expects cuda_arch to be the arch name vs. the arch version. + if spec.satisfies('+cuda'): + supported_cuda_archs = { + + # VTK-m and transitively ParaView does not support Tesla Arch + '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', + } + + cuda_arch_value = 'native' + requested_arch = spec.variants['cuda_arch'].value + + # ParaView/VTK-m only accepts one arch, default to first element + if requested_arch[0] != 'none': + try: + cuda_arch_value = supported_cuda_archs[requested_arch[0]] + except KeyError: + raise InstallError("Incompatible cuda_arch=" + requested_arch[0]) + + cmake_args.append(self.define('VTKm_CUDA_Architecture', cuda_arch_value)) if 'darwin' in spec.architecture: cmake_args.extend([ diff --git a/var/spack/repos/builtin/packages/parmgridgen/package.py b/var/spack/repos/builtin/packages/parmgridgen/package.py index 97dd2144cb8..8833afa8156 100644 --- a/var/spack/repos/builtin/packages/parmgridgen/package.py +++ b/var/spack/repos/builtin/packages/parmgridgen/package.py @@ -15,7 +15,7 @@ class Parmgridgen(Package): ParMGridGen is the parallel version of MGridGen. """ - homepage = "http://www-users.cs.umn.edu/~moulitsa/software.html" + homepage = "https://github.com/mrklein/ParMGridGen" url = "http://www.stasyan.com/devel/distfiles/ParMGridGen-1.0.tar.gz" version('1.0', sha256='62cdb6e48cfc59124e5d5d360c2841e0fc2feecafe65bda110b74e942740b395') diff --git a/var/spack/repos/builtin/packages/parmmg/package.py b/var/spack/repos/builtin/packages/parmmg/package.py new file mode 100644 index 00000000000..aa151d9cff3 --- /dev/null +++ b/var/spack/repos/builtin/packages/parmmg/package.py @@ -0,0 +1,35 @@ +# Copyright 2013-2021 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 import * + + +class Parmmg(CMakePackage): + """ParMMG is a parallel remesher based on MMG""" + + homepage = "https://www.mmgtools.org" + url = "https://github.com/MmgTools/ParMmg/archive/refs/tags/v1.3.0.tar.gz" + + maintainers = ['corentin-dev'] + + version('1.3.0', sha256='d43b73a73b62545b5a31bbe25562f69c9e63ad8a6d416bd459781203e37427cf') + version('1.2.0', sha256='99729cc292dcb59c87e3f25d4cabf5a64841e83b624d383e1fd3fb7f960df672') + version('1.1.0', sha256='a5904f1f56b7809ab9ec2f6118b03a082ec2b5564355a73c74fc55426cc69600') + version('1.0.0', sha256='614feb815ff6cdfc9bced30e8105994f0bf3a812243619d3349203ec1851cf6d') + + depends_on('mmg') + depends_on('metis') + depends_on('vtk') + depends_on('mpi') + + variant('pic', default=True, + description='Build with position independent code') + + def cmake_args(self): + args = [ + self.define_from_variant('CMAKE_POSITION_INDEPENDENT_CODE', 'pic'), + ] + + return args diff --git a/var/spack/repos/builtin/packages/parsec/package.py b/var/spack/repos/builtin/packages/parsec/package.py index ab154e71b6b..014b8e02561 100644 --- a/var/spack/repos/builtin/packages/parsec/package.py +++ b/var/spack/repos/builtin/packages/parsec/package.py @@ -39,6 +39,8 @@ class Parsec(CMakePackage, CudaPackage): depends_on('cmake@3.16:', 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('papi', when='+profile') diff --git a/var/spack/repos/builtin/packages/patch/package.py b/var/spack/repos/builtin/packages/patch/package.py index 673f49b5d8a..37b4ec0f3e2 100644 --- a/var/spack/repos/builtin/packages/patch/package.py +++ b/var/spack/repos/builtin/packages/patch/package.py @@ -12,7 +12,7 @@ class Patch(AutotoolsPackage, GNUMirrorPackage): original files, producing patched versions. """ - homepage = "http://savannah.gnu.org/projects/patch/" + homepage = "https://savannah.gnu.org/projects/patch/" gnu_mirror_path = "patch/patch-2.7.6.tar.xz" version('2.7.6', sha256='ac610bda97abe0d9f6b7c963255a11dcb196c25e337c61f94e4778d632f1d8fd') diff --git a/var/spack/repos/builtin/packages/patchelf/package.py b/var/spack/repos/builtin/packages/patchelf/package.py index 46c8bd1a4d6..6a28465031b 100644 --- a/var/spack/repos/builtin/packages/patchelf/package.py +++ b/var/spack/repos/builtin/packages/patchelf/package.py @@ -16,6 +16,7 @@ class Patchelf(AutotoolsPackage): list_url = "https://nixos.org/releases/patchelf/" list_depth = 1 + version('0.13', sha256='4c7ed4bcfc1a114d6286e4a0d3c1a90db147a4c3adda1814ee0eee0f9ee917ed') version('0.12', sha256='699a31cf52211cf5ad6e35a8801eb637bc7f3c43117140426400d67b7babd792') version('0.11', sha256='e52378cc2f9379c6e84a04ac100a3589145533a7b0cd26ef23c79dfd8a9038f9') version('0.10', sha256='b2deabce05c34ce98558c0efb965f209de592197b2c88e930298d740ead09019') diff --git a/var/spack/repos/builtin/packages/pbmpi/package.py b/var/spack/repos/builtin/packages/pbmpi/package.py index 7dd8f14d5c2..d52148d5b59 100644 --- a/var/spack/repos/builtin/packages/pbmpi/package.py +++ b/var/spack/repos/builtin/packages/pbmpi/package.py @@ -10,7 +10,7 @@ class Pbmpi(MakefilePackage): """A Bayesian software for phylogenetic reconstruction using mixture models """ - homepage = "http://megasun.bch.umontreal.ca/People/lartillot/www/index.htm" + homepage = "https://megasun.bch.umontreal.ca/People/lartillot/www/index.htm" git = "https://github.com/bayesiancook/pbmpi.git" version('partition', branch='partition') diff --git a/var/spack/repos/builtin/packages/pcre/package.py b/var/spack/repos/builtin/packages/pcre/package.py index 0d2ee335229..67cc84084f6 100644 --- a/var/spack/repos/builtin/packages/pcre/package.py +++ b/var/spack/repos/builtin/packages/pcre/package.py @@ -11,7 +11,7 @@ class Pcre(AutotoolsPackage): libraries. These are useful for implementing regular expression pattern matching using the same syntax and semantics as Perl 5.""" - homepage = "http://www.pcre.org" + homepage = "https://www.pcre.org" url = "https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.bz2" version('8.44', sha256='19108658b23b3ec5058edc9f66ac545ea19f9537234be1ec62b714c84399366d') diff --git a/var/spack/repos/builtin/packages/pcre2/package.py b/var/spack/repos/builtin/packages/pcre2/package.py index 33d75bb9c9c..4f4dfa6a4f5 100644 --- a/var/spack/repos/builtin/packages/pcre2/package.py +++ b/var/spack/repos/builtin/packages/pcre2/package.py @@ -11,7 +11,7 @@ class Pcre2(AutotoolsPackage): libraries. These are useful for implementing regular expression pattern matching using the same syntax and semantics as Perl 5.""" - homepage = "http://www.pcre.org" + homepage = "https://www.pcre.org" url = "https://ftp.pcre.org/pub/pcre/pcre2-10.31.tar.bz2" version('10.36', sha256='a9ef39278113542968c7c73a31cfcb81aca1faa64690f400b907e8ab6b4a665c') diff --git a/var/spack/repos/builtin/packages/pdt/package.py b/var/spack/repos/builtin/packages/pdt/package.py index 86a10b92b4c..e5c3c4c1edc 100644 --- a/var/spack/repos/builtin/packages/pdt/package.py +++ b/var/spack/repos/builtin/packages/pdt/package.py @@ -17,6 +17,7 @@ class Pdt(AutotoolsPackage): through a class library supporting common PDB operations. """ + maintainers = ['wspear', 'eugeneswalker', 'khuck', 'sameershende'] homepage = "https://www.cs.uoregon.edu/research/pdt/home.php" url = "http://www.cs.uoregon.edu/research/paracomp/pdtoolkit/Download/pdtoolkit-3.25.1.tar.gz" @@ -45,7 +46,7 @@ def configure(self, spec, prefix): options = ['-prefix=%s' % prefix] if self.compiler.name == 'xl': options.append('-XLC') - elif self.compiler.name == 'intel': + elif self.compiler.name == 'intel' or self.compiler.name == 'oneapi': options.append('-icpc') elif self.compiler.name == 'pgi': options.append('-pgCC') diff --git a/var/spack/repos/builtin/packages/percept/package.py b/var/spack/repos/builtin/packages/percept/package.py index 99e204a7d29..13c4e1a667e 100644 --- a/var/spack/repos/builtin/packages/percept/package.py +++ b/var/spack/repos/builtin/packages/percept/package.py @@ -25,7 +25,7 @@ class Percept(CMakePackage): depends_on('opennurbs@percept') depends_on('boost+graph+mpi') depends_on('yaml-cpp+pic~shared@0.5.3:') - depends_on('trilinos~shared+exodus+netcdf+mpi+tpetra+epetra+epetraext+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+pnetcdf+aztec+sacado~openmp+shards+intrepid+cgns@master,12.14.1:') + depends_on('trilinos~shared+exodus+mpi+tpetra+epetra+epetraext+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+aztec+sacado~openmp+shards+intrepid@master,12.14.1:') def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/perl-algorithm-diff/package.py b/var/spack/repos/builtin/packages/perl-algorithm-diff/package.py index f68efc3fad6..ceb700c2bc5 100644 --- a/var/spack/repos/builtin/packages/perl-algorithm-diff/package.py +++ b/var/spack/repos/builtin/packages/perl-algorithm-diff/package.py @@ -9,7 +9,7 @@ class PerlAlgorithmDiff(PerlPackage): """Compute 'intelligent' differences between two files / lists""" - homepage = "http://search.cpan.org/~tyemq/Algorithm-Diff-1.1903/lib/Algorithm/Diff.pm" + homepage = "https://metacpan.org/pod/Algorithm::Diff" url = "http://search.cpan.org/CPAN/authors/id/T/TY/TYEMQ/Algorithm-Diff-1.1903.tar.gz" version('1.1903', sha256='30e84ac4b31d40b66293f7b1221331c5a50561a39d580d85004d9c1fff991751') diff --git a/var/spack/repos/builtin/packages/perl-app-cmd/package.py b/var/spack/repos/builtin/packages/perl-app-cmd/package.py index 94e3eb27c71..d2937ef06de 100644 --- a/var/spack/repos/builtin/packages/perl-app-cmd/package.py +++ b/var/spack/repos/builtin/packages/perl-app-cmd/package.py @@ -9,7 +9,7 @@ class PerlAppCmd(PerlPackage): """Write command line apps with less suffering""" - homepage = "http://search.cpan.org/~rjbs/App-Cmd/lib/App/Cmd.pm" + homepage = "https://metacpan.org/pod/App::Cmd" url = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/App-Cmd-0.331.tar.gz" version('0.331', sha256='4a5d3df0006bd278880d01f4957aaa652a8f91fe8f66e93adf70fba0c3ecb680') diff --git a/var/spack/repos/builtin/packages/perl-array-utils/package.py b/var/spack/repos/builtin/packages/perl-array-utils/package.py index 4a1dd58ddb4..8b3e862372c 100644 --- a/var/spack/repos/builtin/packages/perl-array-utils/package.py +++ b/var/spack/repos/builtin/packages/perl-array-utils/package.py @@ -9,7 +9,7 @@ class PerlArrayUtils(PerlPackage): """Small utils for array manipulation""" - homepage = "http://search.cpan.org/~zmij/Array-Utils/Utils.pm" + homepage = "https://metacpan.org/pod/Array::Utils" url = "http://search.cpan.org/CPAN/authors/id/Z/ZM/ZMIJ/Array/Array-Utils-0.5.tar.gz" version('0.5', sha256='89dd1b7fcd9b4379492a3a77496e39fe6cd379b773fd03a6b160dd26ede63770') diff --git a/var/spack/repos/builtin/packages/perl-b-hooks-endofscope/package.py b/var/spack/repos/builtin/packages/perl-b-hooks-endofscope/package.py index 3f182d7caf4..bc250679984 100644 --- a/var/spack/repos/builtin/packages/perl-b-hooks-endofscope/package.py +++ b/var/spack/repos/builtin/packages/perl-b-hooks-endofscope/package.py @@ -9,7 +9,7 @@ class PerlBHooksEndofscope(PerlPackage): """Execute code after a scope finished compilation.""" - homepage = "http://search.cpan.org/~ether/B-Hooks-EndOfScope-0.21/lib/B/Hooks/EndOfScope.pm" + homepage = "https://metacpan.org/pod/B::Hooks::EndOfScope" url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/B-Hooks-EndOfScope-0.21.tar.gz" version('0.21', sha256='90f3580880f1d68b843c142cc86f58bead1f3e03634c63868ac9eba5eedae02c') diff --git a/var/spack/repos/builtin/packages/perl-bit-vector/package.py b/var/spack/repos/builtin/packages/perl-bit-vector/package.py index ad8e0ff50fa..2389a337ec1 100644 --- a/var/spack/repos/builtin/packages/perl-bit-vector/package.py +++ b/var/spack/repos/builtin/packages/perl-bit-vector/package.py @@ -9,7 +9,7 @@ class PerlBitVector(PerlPackage): """Efficient bit vector, set of integers and "big int" math library""" - homepage = "http://search.cpan.org/~stbey/Bit-Vector-7.4/Vector.pod" + homepage = "https://metacpan.org/dist/Bit-Vector/view/Vector.pod" url = "http://search.cpan.org/CPAN/authors/id/S/ST/STBEY/Bit-Vector-7.4.tar.gz" version('7.4', sha256='3c6daa671fecfbc35f92a9385b563d65f50dfc6bdc8b4805f9ef46c0d035a926') diff --git a/var/spack/repos/builtin/packages/perl-cairo/package.py b/var/spack/repos/builtin/packages/perl-cairo/package.py index 310dc5725c4..ed83ef02fda 100644 --- a/var/spack/repos/builtin/packages/perl-cairo/package.py +++ b/var/spack/repos/builtin/packages/perl-cairo/package.py @@ -9,7 +9,7 @@ class PerlCairo(PerlPackage): """Perl interface to the cairo 2d vector graphics library""" - homepage = "http://search.cpan.org/~xaoc/Cairo/lib/Cairo.pm" + homepage = "https://metacpan.org/pod/Cairo" url = "http://search.cpan.org/CPAN/authors/id/X/XA/XAOC/Cairo-1.106.tar.gz" version('1.106', sha256='e64803018bc7cba49e73e258547f5378cc4249797beafec524852140f49c45c4') diff --git a/var/spack/repos/builtin/packages/perl-capture-tiny/package.py b/var/spack/repos/builtin/packages/perl-capture-tiny/package.py index 8ec29b20400..81ea39a7dc4 100644 --- a/var/spack/repos/builtin/packages/perl-capture-tiny/package.py +++ b/var/spack/repos/builtin/packages/perl-capture-tiny/package.py @@ -9,7 +9,7 @@ class PerlCaptureTiny(PerlPackage): """Capture STDOUT and STDERR from Perl, XS or external programs""" - homepage = "http://search.cpan.org/~dagolden/Capture-Tiny-0.46/lib/Capture/Tiny.pm" + homepage = "https://metacpan.org/pod/Capture::Tiny" url = "http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/Capture-Tiny-0.46.tar.gz" version('0.46', sha256='5d7a6a830cf7f2b2960bf8b8afaac16a537ede64f3023827acea5bd24ca77015') diff --git a/var/spack/repos/builtin/packages/perl-carp-clan/package.py b/var/spack/repos/builtin/packages/perl-carp-clan/package.py index 23a44b6144f..8ceef456701 100644 --- a/var/spack/repos/builtin/packages/perl-carp-clan/package.py +++ b/var/spack/repos/builtin/packages/perl-carp-clan/package.py @@ -9,7 +9,7 @@ class PerlCarpClan(PerlPackage): """Report errors from perspective of caller of a "clan" of modules""" - homepage = "http://search.cpan.org/~kentnl/Carp-Clan-6.06/lib/Carp/Clan.pod" + homepage = "https://metacpan.org/pod/Carp::Clan" url = "http://search.cpan.org/CPAN/authors/id/K/KE/KENTNL/Carp-Clan-6.06.tar.gz" version('6.06', sha256='ea4ac8f611354756d43cb369880032901e9cc4cc7e0bebb7b647186dac00c9d4') diff --git a/var/spack/repos/builtin/packages/perl-class-data-inheritable/package.py b/var/spack/repos/builtin/packages/perl-class-data-inheritable/package.py index ec64e55ec67..4bc50c22e42 100644 --- a/var/spack/repos/builtin/packages/perl-class-data-inheritable/package.py +++ b/var/spack/repos/builtin/packages/perl-class-data-inheritable/package.py @@ -9,7 +9,7 @@ class PerlClassDataInheritable(PerlPackage): """For creating accessor/mutators to class data.""" - homepage = "http://search.cpan.org/~tmtm/Class-Data-Inheritable-0.08/lib/Class/Data/Inheritable.pm" + homepage = "https://metacpan.org/pod/Class::Data::Inheritable" url = "http://search.cpan.org/CPAN/authors/id/T/TM/TMTM/Class-Data-Inheritable-0.08.tar.gz" version('0.08', sha256='9967feceea15227e442ec818723163eb6d73b8947e31f16ab806f6e2391af14a') diff --git a/var/spack/repos/builtin/packages/perl-class-inspector/package.py b/var/spack/repos/builtin/packages/perl-class-inspector/package.py index 7085b8b9a18..32dfa6fa9f3 100644 --- a/var/spack/repos/builtin/packages/perl-class-inspector/package.py +++ b/var/spack/repos/builtin/packages/perl-class-inspector/package.py @@ -9,7 +9,7 @@ class PerlClassInspector(PerlPackage): """Get information about a class and its structure""" - homepage = "http://search.cpan.org/~plicease/Class-Inspector-1.32/lib/Class/Inspector.pm" + homepage = "https://metacpan.org/pod/Class::Inspector" url = "http://search.cpan.org/CPAN/authors/id/P/PL/PLICEASE/Class-Inspector-1.32.tar.gz" version('1.32', sha256='cefadc8b5338e43e570bc43f583e7c98d535c17b196bcf9084bb41d561cc0535') diff --git a/var/spack/repos/builtin/packages/perl-class-load-xs/package.py b/var/spack/repos/builtin/packages/perl-class-load-xs/package.py index dd402bdb586..cfbf858ac57 100644 --- a/var/spack/repos/builtin/packages/perl-class-load-xs/package.py +++ b/var/spack/repos/builtin/packages/perl-class-load-xs/package.py @@ -10,7 +10,7 @@ class PerlClassLoadXs(PerlPackage): """This module provides an XS implementation for portions of Class::Load.""" - homepage = "http://search.cpan.org/~ether/Class-Load-XS-0.10/lib/Class/Load/XS.pm" + homepage = "https://metacpan.org/pod/Class::Load::XS" url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/Class-Load-XS-0.10.tar.gz" version('0.10', sha256='5bc22cf536ebfd2564c5bdaf42f0d8a4cee3d1930fc8b44b7d4a42038622add1') diff --git a/var/spack/repos/builtin/packages/perl-class-load/package.py b/var/spack/repos/builtin/packages/perl-class-load/package.py index 2717be5ee04..48d4db5667f 100644 --- a/var/spack/repos/builtin/packages/perl-class-load/package.py +++ b/var/spack/repos/builtin/packages/perl-class-load/package.py @@ -9,7 +9,7 @@ class PerlClassLoad(PerlPackage): """A working (require "Class::Name") and more""" - homepage = "http://search.cpan.org/~ether/Class-Load-0.24/lib/Class/Load.pm" + homepage = "https://metacpan.org/pod/Class::Load" url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/Class-Load-0.24.tar.gz" version('0.24', sha256='0bb983da46c146534fc77a556d6e40d925142f2eb43103534025ee545265ca36') diff --git a/var/spack/repos/builtin/packages/perl-compress-raw-bzip2/package.py b/var/spack/repos/builtin/packages/perl-compress-raw-bzip2/package.py index 7ede37807d9..b780bb8a62b 100644 --- a/var/spack/repos/builtin/packages/perl-compress-raw-bzip2/package.py +++ b/var/spack/repos/builtin/packages/perl-compress-raw-bzip2/package.py @@ -9,7 +9,7 @@ class PerlCompressRawBzip2(PerlPackage): """A low-Level Interface to bzip2 compression library.""" - homepage = "http://search.cpan.org/~pmqs/Compress-Raw-Bzip2-2.081/lib/Compress/Raw/Bzip2.pm" + homepage = "https://metacpan.org/pod/Compress::Raw::Bzip2" url = "http://search.cpan.org/CPAN/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-2.081.tar.gz" version('2.081', sha256='8692b5c9db91954408e24e805fbfda222879da80d89d9410791421e3e5bc3520') diff --git a/var/spack/repos/builtin/packages/perl-compress-raw-zlib/package.py b/var/spack/repos/builtin/packages/perl-compress-raw-zlib/package.py index e67a7aa9c42..cde59db80c5 100644 --- a/var/spack/repos/builtin/packages/perl-compress-raw-zlib/package.py +++ b/var/spack/repos/builtin/packages/perl-compress-raw-zlib/package.py @@ -9,7 +9,7 @@ class PerlCompressRawZlib(PerlPackage): """A low-Level Interface to zlib compression library.""" - homepage = "http://search.cpan.org/~pmqs/Compress-Raw-Zlib-2.081/lib/Compress/Raw/Zlib.pm" + homepage = "https://metacpan.org/pod/Compress::Raw::Zlib" url = "https://cpan.metacpan.org/authors/id/P/PM/PMQS/Compress-Raw-Zlib-2.081.tar.gz" version('2.081', sha256='e156de345bd224bbdabfcab0eeb3f678a3099a4e86c9d1b6771d880b55aa3a1b') diff --git a/var/spack/repos/builtin/packages/perl-contextual-return/package.py b/var/spack/repos/builtin/packages/perl-contextual-return/package.py index 1568eff405a..a3f29f9fc40 100644 --- a/var/spack/repos/builtin/packages/perl-contextual-return/package.py +++ b/var/spack/repos/builtin/packages/perl-contextual-return/package.py @@ -9,7 +9,7 @@ class PerlContextualReturn(PerlPackage): """Create context-sensitive return values""" - homepage = "http://search.cpan.org/~dconway/Contextual-Return/lib/Contextual/Return.pm" + homepage = "https://metacpan.org/pod/Contextual::Return" url = "http://search.cpan.org/CPAN/authors/id/D/DC/DCONWAY/Contextual-Return-0.004014.tar.gz" version('0.004014', sha256='09fe1415e16e49a69e13c0ef6e6a4a3fd8b856f389d3f3e624d7ab3b71719f78') diff --git a/var/spack/repos/builtin/packages/perl-cpan-meta-check/package.py b/var/spack/repos/builtin/packages/perl-cpan-meta-check/package.py index 0b0a1c1fe80..6ad071a2968 100644 --- a/var/spack/repos/builtin/packages/perl-cpan-meta-check/package.py +++ b/var/spack/repos/builtin/packages/perl-cpan-meta-check/package.py @@ -10,7 +10,7 @@ class PerlCpanMetaCheck(PerlPackage): """This module verifies if requirements described in a CPAN::Meta object are present..""" - homepage = "http://search.cpan.org/~leont/CPAN-Meta-Check-0.014/lib/CPAN/Meta/Check.pm" + homepage = "https://metacpan.org/pod/CPAN::Meta::Check" url = "http://search.cpan.org/CPAN/authors/id/L/LE/LEONT/CPAN-Meta-Check-0.014.tar.gz" version('0.014', sha256='28a0572bfc1c0678d9ce7da48cf521097ada230f96eb3d063fcbae1cfe6a351f') diff --git a/var/spack/repos/builtin/packages/perl-data-dumper/package.py b/var/spack/repos/builtin/packages/perl-data-dumper/package.py index 8e09ebdf5c3..69897c676ec 100644 --- a/var/spack/repos/builtin/packages/perl-data-dumper/package.py +++ b/var/spack/repos/builtin/packages/perl-data-dumper/package.py @@ -9,7 +9,7 @@ class PerlDataDumper(PerlPackage): """Stringified perl data structures, suitable for both printing and eval""" - homepage = "http://search.cpan.org/dist/Data-Dumper/Dumper.pm" + homepage = "https://metacpan.org/pod/Data::Dumper" url = "https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX/Data-Dumper-2.173.tar.gz" version('2.173', sha256='697608b39330988e519131be667ff47168aaaaf99f06bd2095d5b46ad05d76fa') diff --git a/var/spack/repos/builtin/packages/perl-data-optlist/package.py b/var/spack/repos/builtin/packages/perl-data-optlist/package.py index f125cb9cd10..5b1b7417c03 100644 --- a/var/spack/repos/builtin/packages/perl-data-optlist/package.py +++ b/var/spack/repos/builtin/packages/perl-data-optlist/package.py @@ -9,7 +9,7 @@ class PerlDataOptlist(PerlPackage): """Parse and validate simple name/value option pairs""" - homepage = "http://search.cpan.org/~rjbs/Data-OptList-0.110/lib/Data/OptList.pm" + homepage = "https://metacpan.org/pod/Data::OptList" url = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Data-OptList-0.110.tar.gz" version('0.110', sha256='366117cb2966473f2559f2f4575ff6ae69e84c69a0f30a0773e1b51a457ef5c3') diff --git a/var/spack/repos/builtin/packages/perl-data-stag/package.py b/var/spack/repos/builtin/packages/perl-data-stag/package.py index 724a406a7f2..d5f29dbf0b9 100644 --- a/var/spack/repos/builtin/packages/perl-data-stag/package.py +++ b/var/spack/repos/builtin/packages/perl-data-stag/package.py @@ -9,7 +9,7 @@ class PerlDataStag(PerlPackage): """Structured Tags datastructures""" - homepage = "http://search.cpan.org/~cmungall/Data-Stag-0.14/Data/Stag.pm" + homepage = "https://metacpan.org/pod/Data::Stag" url = "http://search.cpan.org/CPAN/authors/id/C/CM/CMUNGALL/Data-Stag-0.14.tar.gz" version('0.14', sha256='4ab122508d2fb86d171a15f4006e5cf896d5facfa65219c0b243a89906258e59') diff --git a/var/spack/repos/builtin/packages/perl-dbd-mysql/package.py b/var/spack/repos/builtin/packages/perl-dbd-mysql/package.py index 22001616e16..d968942c099 100644 --- a/var/spack/repos/builtin/packages/perl-dbd-mysql/package.py +++ b/var/spack/repos/builtin/packages/perl-dbd-mysql/package.py @@ -9,7 +9,7 @@ class PerlDbdMysql(PerlPackage): """MySQL driver for the Perl5 Database Interface (DBI)""" - homepage = "http://search.cpan.org/~michielb/DBD-mysql-4.043/lib/DBD/mysql.pm" + homepage = "https://metacpan.org/pod/DBD::mysql" url = "http://search.cpan.org/CPAN/authors/id/M/MI/MICHIELB/DBD-mysql-4.043.tar.gz" version('4.043', sha256='629f865e8317f52602b2f2efd2b688002903d2e4bbcba5427cb6188b043d6f99') diff --git a/var/spack/repos/builtin/packages/perl-devel-cycle/package.py b/var/spack/repos/builtin/packages/perl-devel-cycle/package.py index a0d35cf8b6d..0cf20235e5d 100644 --- a/var/spack/repos/builtin/packages/perl-devel-cycle/package.py +++ b/var/spack/repos/builtin/packages/perl-devel-cycle/package.py @@ -9,7 +9,7 @@ class PerlDevelCycle(PerlPackage): """Find memory cycles in objects""" - homepage = "http://search.cpan.org/~lds/Devel-Cycle-1.12/lib/Devel/Cycle.pm" + homepage = "https://metacpan.org/pod/Devel::Cycle" url = "http://search.cpan.org/CPAN/authors/id/L/LD/LDS/Devel-Cycle-1.12.tar.gz" version('1.12', sha256='fd3365c4d898b2b2bddbb78a46d507a18cca8490a290199547dab7f1e7390bc2') diff --git a/var/spack/repos/builtin/packages/perl-devel-globaldestruction/package.py b/var/spack/repos/builtin/packages/perl-devel-globaldestruction/package.py index 6e79016d0d9..e780b3e0e1f 100644 --- a/var/spack/repos/builtin/packages/perl-devel-globaldestruction/package.py +++ b/var/spack/repos/builtin/packages/perl-devel-globaldestruction/package.py @@ -9,7 +9,7 @@ class PerlDevelGlobaldestruction(PerlPackage): """Makes Perl's global destruction less tricky to deal with""" - homepage = "http://search.cpan.org/~haarg/Devel-GlobalDestruction-0.14/lib/Devel/GlobalDestruction.pm" + homepage = "https://metacpan.org/pod/Devel::GlobalDestruction" url = "http://search.cpan.org/CPAN/authors/id/H/HA/HAARG/Devel-GlobalDestruction-0.14.tar.gz" version('0.14', sha256='34b8a5f29991311468fe6913cadaba75fd5d2b0b3ee3bb41fe5b53efab9154ab') diff --git a/var/spack/repos/builtin/packages/perl-devel-overloadinfo/package.py b/var/spack/repos/builtin/packages/perl-devel-overloadinfo/package.py index 197b19d2815..de6d0e0ae37 100644 --- a/var/spack/repos/builtin/packages/perl-devel-overloadinfo/package.py +++ b/var/spack/repos/builtin/packages/perl-devel-overloadinfo/package.py @@ -9,7 +9,7 @@ class PerlDevelOverloadinfo(PerlPackage): """Returns information about overloaded operators for a given class""" - homepage = "http://search.cpan.org/~ilmari/Devel-OverloadInfo-0.004/lib/Devel/OverloadInfo.pm" + homepage = "https://metacpan.org/pod/Devel::OverloadInfo" url = "http://search.cpan.org/CPAN/authors/id/I/IL/ILMARI/Devel-OverloadInfo-0.004.tar.gz" version('0.005', sha256='8bfde2ffa47c9946f8adc8cfc445c2f97b8d1cdd678111bee9f444e82f7aa6e7') diff --git a/var/spack/repos/builtin/packages/perl-devel-stacktrace/package.py b/var/spack/repos/builtin/packages/perl-devel-stacktrace/package.py index 56886ec65ad..d44ae7f80f1 100644 --- a/var/spack/repos/builtin/packages/perl-devel-stacktrace/package.py +++ b/var/spack/repos/builtin/packages/perl-devel-stacktrace/package.py @@ -9,7 +9,7 @@ class PerlDevelStacktrace(PerlPackage): """An object representing a stack trace.""" - homepage = "http://search.cpan.org/~drolsky/Devel-StackTrace-2.02/lib/Devel/StackTrace.pm" + homepage = "https://metacpan.org/pod/Devel::StackTrace" url = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Devel-StackTrace-2.02.tar.gz" version('2.02', sha256='cbbd96db0ecf194ed140198090eaea0e327d9a378a4aa15f9a34b3138a91931f') diff --git a/var/spack/repos/builtin/packages/perl-digest-md5/package.py b/var/spack/repos/builtin/packages/perl-digest-md5/package.py index 0d08f863ea1..8149b39c2f8 100644 --- a/var/spack/repos/builtin/packages/perl-digest-md5/package.py +++ b/var/spack/repos/builtin/packages/perl-digest-md5/package.py @@ -9,7 +9,7 @@ class PerlDigestMd5(PerlPackage): """Perl interface to the MD5 Algorithm""" - homepage = "http://search.cpan.org/dist/Digest-MD5/MD5.pm" + homepage = "https://metacpan.org/pod/Digest::MD5" url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-MD5-2.55.tar.gz" version('2.55', sha256='03b198a2d14425d951e5e50a885d3818c3162c8fe4c21e18d7798a9a179d0e3c') diff --git a/var/spack/repos/builtin/packages/perl-dist-checkconflicts/package.py b/var/spack/repos/builtin/packages/perl-dist-checkconflicts/package.py index f7bf21d68d4..3d3e5b3760b 100644 --- a/var/spack/repos/builtin/packages/perl-dist-checkconflicts/package.py +++ b/var/spack/repos/builtin/packages/perl-dist-checkconflicts/package.py @@ -9,7 +9,7 @@ class PerlDistCheckconflicts(PerlPackage): """Declare version conflicts for your dist""" - homepage = "http://search.cpan.org/~doy/Dist-CheckConflicts-0.11/lib/Dist/CheckConflicts.pm" + homepage = "https://metacpan.org/pod/Dist::CheckConflicts" url = "http://search.cpan.org/CPAN/authors/id/D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz" version('0.11', sha256='ea844b9686c94d666d9d444321d764490b2cde2f985c4165b4c2c77665caedc4') diff --git a/var/spack/repos/builtin/packages/perl-encode-locale/package.py b/var/spack/repos/builtin/packages/perl-encode-locale/package.py index 23b812c4b08..d2875458954 100644 --- a/var/spack/repos/builtin/packages/perl-encode-locale/package.py +++ b/var/spack/repos/builtin/packages/perl-encode-locale/package.py @@ -9,7 +9,7 @@ class PerlEncodeLocale(PerlPackage): """Determine the locale encoding""" - homepage = "http://search.cpan.org/~gaas/Encode-Locale-1.05/lib/Encode/Locale.pm" + homepage = "https://metacpan.org/pod/Encode::Locale" url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Encode-Locale-1.05.tar.gz" version('1.05', sha256='176fa02771f542a4efb1dbc2a4c928e8f4391bf4078473bd6040d8f11adb0ec1') diff --git a/var/spack/repos/builtin/packages/perl-eval-closure/package.py b/var/spack/repos/builtin/packages/perl-eval-closure/package.py index c891a0fd5da..7d041b50d1e 100644 --- a/var/spack/repos/builtin/packages/perl-eval-closure/package.py +++ b/var/spack/repos/builtin/packages/perl-eval-closure/package.py @@ -9,7 +9,7 @@ class PerlEvalClosure(PerlPackage): """Safely and cleanly create closures via string eval""" - homepage = "http://search.cpan.org/~doy/Eval-Closure-0.14/lib/Eval/Closure.pm" + homepage = "https://metacpan.org/pod/Eval::Closure" url = "http://search.cpan.org/CPAN/authors/id/D/DO/DOY/Eval-Closure-0.14.tar.gz" version('0.14', sha256='ea0944f2f5ec98d895bef6d503e6e4a376fea6383a6bc64c7670d46ff2218cad') diff --git a/var/spack/repos/builtin/packages/perl-exception-class/package.py b/var/spack/repos/builtin/packages/perl-exception-class/package.py index bbeb153d85d..4d82e6b1b12 100644 --- a/var/spack/repos/builtin/packages/perl-exception-class/package.py +++ b/var/spack/repos/builtin/packages/perl-exception-class/package.py @@ -9,7 +9,7 @@ class PerlExceptionClass(PerlPackage): """A module that allows you to declare real exception classes in Perl""" - homepage = "http://search.cpan.org/~drolsky/Exception-Class-1.43/lib/Exception/Class.pm" + homepage = "https://metacpan.org/pod/Exception::Class" url = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Exception-Class-1.43.tar.gz" version('1.43', sha256='ff3b4b3f706e84aaa87ab0dee5cec6bd7a8fc9f72cf76d115212541fa0a13760') diff --git a/var/spack/repos/builtin/packages/perl-exporter-lite/package.py b/var/spack/repos/builtin/packages/perl-exporter-lite/package.py new file mode 100644 index 00000000000..48b25d3e5fa --- /dev/null +++ b/var/spack/repos/builtin/packages/perl-exporter-lite/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2021 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 import * + + +class PerlExporterLite(PerlPackage): + """Exporter::Lite is an alternative to Exporter, intended to provide a + lightweight subset of the most commonly-used functionality. It supports + import(), @EXPORT and @EXPORT_OK and not a whole lot else.""" + homepage = "https://metacpan.org/pod/Exporter::Lite" + url = "https://cpan.metacpan.org/authors/id/N/NE/NEILB/Exporter-Lite-0.08.tar.gz" + + version('0.08', sha256='c05b3909af4cb86f36495e94a599d23ebab42be7a18efd0d141fc1586309dac2') diff --git a/var/spack/repos/builtin/packages/perl-exporter-tiny/package.py b/var/spack/repos/builtin/packages/perl-exporter-tiny/package.py index e8a3f7916b0..7b8df5c1718 100644 --- a/var/spack/repos/builtin/packages/perl-exporter-tiny/package.py +++ b/var/spack/repos/builtin/packages/perl-exporter-tiny/package.py @@ -10,7 +10,7 @@ class PerlExporterTiny(PerlPackage): """An exporter with the features of Sub::Exporter but only core dependencies""" - homepage = "http://search.cpan.org/~tobyink/Exporter-Tiny/lib/Exporter/Tiny.pm" + homepage = "https://metacpan.org/pod/Exporter::Tiny" url = "http://search.cpan.org/CPAN/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.000000.tar.gz" version('1.000000', sha256='ffdd77d57de099e8f64dd942ef12a00a3f4313c2531f342339eeed2d366ad078') diff --git a/var/spack/repos/builtin/packages/perl-extutils-depends/package.py b/var/spack/repos/builtin/packages/perl-extutils-depends/package.py index 4eb726d5369..c49c6771757 100644 --- a/var/spack/repos/builtin/packages/perl-extutils-depends/package.py +++ b/var/spack/repos/builtin/packages/perl-extutils-depends/package.py @@ -9,7 +9,7 @@ class PerlExtutilsDepends(PerlPackage): """Easily build XS extensions that depend on XS extensions""" - homepage = "http://search.cpan.org/~xaoc/ExtUtils-Depends/lib/ExtUtils/Depends.pm" + homepage = "https://metacpan.org/pod/ExtUtils::Depends" url = "http://search.cpan.org/CPAN/authors/id/X/XA/XAOC/ExtUtils-Depends-0.405.tar.gz" version('0.405', sha256='8ad6401ad7559b03ceda1fe4b191c95f417bdec7c542a984761a4656715a8a2c') diff --git a/var/spack/repos/builtin/packages/perl-extutils-pkgconfig/package.py b/var/spack/repos/builtin/packages/perl-extutils-pkgconfig/package.py index 41a22808b75..774a91ccedd 100644 --- a/var/spack/repos/builtin/packages/perl-extutils-pkgconfig/package.py +++ b/var/spack/repos/builtin/packages/perl-extutils-pkgconfig/package.py @@ -9,7 +9,7 @@ class PerlExtutilsPkgconfig(PerlPackage): """simplistic interface to pkg-config""" - homepage = "http://search.cpan.org/~xaoc/ExtUtils-PkgConfig-1.16/lib/ExtUtils/PkgConfig.pm" + homepage = "https://metacpan.org/pod/ExtUtils::PkgConfig" url = "http://search.cpan.org/CPAN/authors/id/X/XA/XAOC/ExtUtils-PkgConfig-1.16.tar.gz" version('1.16', sha256='bbeaced995d7d8d10cfc51a3a5a66da41ceb2bc04fedcab50e10e6300e801c6e') diff --git a/var/spack/repos/builtin/packages/perl-file-copy-recursive/package.py b/var/spack/repos/builtin/packages/perl-file-copy-recursive/package.py index fc90dc89e2c..a323f4d6cdb 100644 --- a/var/spack/repos/builtin/packages/perl-file-copy-recursive/package.py +++ b/var/spack/repos/builtin/packages/perl-file-copy-recursive/package.py @@ -9,7 +9,7 @@ class PerlFileCopyRecursive(PerlPackage): """Perl extension for recursively copying files and directories""" - homepage = "http://search.cpan.org/~dmuey/File-Copy-Recursive-0.38/Recursive.pm" + homepage = "https://metacpan.org/pod/File::Copy::Recursive" url = "http://search.cpan.org/CPAN/authors/id/D/DM/DMUEY/File-Copy-Recursive-0.38.tar.gz" version('0.40', sha256='e8b8923b930ef7bcb59d4a97456d0e149b8487597cd1550f836451d936ce55a1') diff --git a/var/spack/repos/builtin/packages/perl-file-listing/package.py b/var/spack/repos/builtin/packages/perl-file-listing/package.py index df8e5d71e74..0159ad822fa 100644 --- a/var/spack/repos/builtin/packages/perl-file-listing/package.py +++ b/var/spack/repos/builtin/packages/perl-file-listing/package.py @@ -9,7 +9,7 @@ class PerlFileListing(PerlPackage): """Parse directory listing""" - homepage = "http://search.cpan.org/~gaas/File-Listing-6.04/lib/File/Listing.pm" + homepage = "https://metacpan.org/pod/File::Listing" url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/File-Listing-6.04.tar.gz" version('6.04', sha256='1e0050fcd6789a2179ec0db282bf1e90fb92be35d1171588bd9c47d52d959cf5') diff --git a/var/spack/repos/builtin/packages/perl-file-pushd/package.py b/var/spack/repos/builtin/packages/perl-file-pushd/package.py index 5cbb81b548f..24f16ed4fa1 100644 --- a/var/spack/repos/builtin/packages/perl-file-pushd/package.py +++ b/var/spack/repos/builtin/packages/perl-file-pushd/package.py @@ -9,7 +9,7 @@ class PerlFilePushd(PerlPackage): """Change directory temporarily for a limited scope""" - homepage = "http://search.cpan.org/~dagolden/File-pushd-1.014/lib/File/pushd.pm" + homepage = "https://metacpan.org/pod/File::pushd" url = "http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/File-pushd-1.014.tar.gz" version('1.014', sha256='b5ab37ffe3acbec53efb7c77b4423a2c79afa30a48298e751b9ebee3fdc6340b') diff --git a/var/spack/repos/builtin/packages/perl-file-sharedir-install/package.py b/var/spack/repos/builtin/packages/perl-file-sharedir-install/package.py index 99def42f307..63c84b2d598 100644 --- a/var/spack/repos/builtin/packages/perl-file-sharedir-install/package.py +++ b/var/spack/repos/builtin/packages/perl-file-sharedir-install/package.py @@ -9,7 +9,7 @@ class PerlFileSharedirInstall(PerlPackage): """Install shared files""" - homepage = "http://search.cpan.org/~ether/File-ShareDir-Install-0.11/lib/File/ShareDir/Install.pm" + homepage = "https://metacpan.org/pod/File::ShareDir::Install" url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/File-ShareDir-Install-0.11.tar.gz" version('0.11', sha256='32bf8772e9fea60866074b27ff31ab5bc3f88972d61915e84cbbb98455e00cc8') diff --git a/var/spack/repos/builtin/packages/perl-file-slurp-tiny/package.py b/var/spack/repos/builtin/packages/perl-file-slurp-tiny/package.py index db0445b863b..bc6e2c92b0b 100644 --- a/var/spack/repos/builtin/packages/perl-file-slurp-tiny/package.py +++ b/var/spack/repos/builtin/packages/perl-file-slurp-tiny/package.py @@ -9,7 +9,7 @@ class PerlFileSlurpTiny(PerlPackage): """A simple, sane and efficient file slurper""" - homepage = "http://search.cpan.org/~leont/File-Slurp-Tiny-0.004/lib/File/Slurp/Tiny.pm" + homepage = "https://metacpan.org/pod/File::Slurp::Tiny" url = "http://search.cpan.org/CPAN/authors/id/L/LE/LEONT/File-Slurp-Tiny-0.004.tar.gz" version('0.004', sha256='452995beeabf0e923e65fdc627a725dbb12c9e10c00d8018c16d10ba62757f1e') diff --git a/var/spack/repos/builtin/packages/perl-file-slurper/package.py b/var/spack/repos/builtin/packages/perl-file-slurper/package.py index 5498db5738e..f7a11cdc7f7 100644 --- a/var/spack/repos/builtin/packages/perl-file-slurper/package.py +++ b/var/spack/repos/builtin/packages/perl-file-slurper/package.py @@ -9,7 +9,7 @@ class PerlFileSlurper(PerlPackage): """A simple, sane and efficient module to slurp a file""" - homepage = "http://search.cpan.org/~leont/File-Slurper/lib/File/Slurper.pm" + homepage = "https://metacpan.org/pod/File::Slurper" url = "http://search.cpan.org/CPAN/authors/id/L/LE/LEONT/File-Slurper-0.011.tar.gz" version('0.011', sha256='f6494844b9759b3d1dd8fc4ffa790f8e6e493c4eb58e88831a51e085f2e76010') diff --git a/var/spack/repos/builtin/packages/perl-font-ttf/package.py b/var/spack/repos/builtin/packages/perl-font-ttf/package.py index b5649447445..201b8b86a98 100644 --- a/var/spack/repos/builtin/packages/perl-font-ttf/package.py +++ b/var/spack/repos/builtin/packages/perl-font-ttf/package.py @@ -9,7 +9,7 @@ class PerlFontTtf(PerlPackage): """Perl module for TrueType Font hacking""" - homepage = "http://search.cpan.org/~bhallissy/Font-TTF-1.06/lib/Font/TTF.pm" + homepage = "https://metacpan.org/pod/Font::TTF" url = "http://search.cpan.org/CPAN/authors/id/B/BH/BHALLISSY/Font-TTF-1.06.tar.gz" version('1.06', sha256='4b697d444259759ea02d2c442c9bffe5ffe14c9214084a01f743693a944cc293') diff --git a/var/spack/repos/builtin/packages/perl-fth/fth-shebang.patch b/var/spack/repos/builtin/packages/perl-fth/fth-shebang.patch new file mode 100644 index 00000000000..dbb38f7fc52 --- /dev/null +++ b/var/spack/repos/builtin/packages/perl-fth/fth-shebang.patch @@ -0,0 +1,10 @@ +diff --git a/bin/fth.pl b/bin/fth.pl +--- a/bin/fth.pl ++++ b/bin/fth.pl +@@ -1,6 +1,3 @@ +-#!/bin/ksh +-eval 'exec perl -x -S $0 ${1+"$@"}' +- if $running_under_some_shell; + #!/usr/bin/perl -w + # -*- Mode: cperl -*- + #|######################################################################## diff --git a/var/spack/repos/builtin/packages/perl-fth/fth-shebang2.patch b/var/spack/repos/builtin/packages/perl-fth/fth-shebang2.patch new file mode 100644 index 00000000000..74003eae2a4 --- /dev/null +++ b/var/spack/repos/builtin/packages/perl-fth/fth-shebang2.patch @@ -0,0 +1,10 @@ +diff --git a/bin/initmak.pl b/bin/initmak.pl +--- a/bin/initmak.pl ++++ b/bin/initmak.pl +@@ -1,6 +1,3 @@ +-#!/bin/ksh +-eval 'exec perl -x -S $0 ${1+"$@"}' +- if $running_under_some_shell; + #!/usr/bin/perl + # -*- Mode: cperl -*- + ############################################################################ diff --git a/var/spack/repos/builtin/packages/perl-fth/package.py b/var/spack/repos/builtin/packages/perl-fth/package.py new file mode 100644 index 00000000000..33759442854 --- /dev/null +++ b/var/spack/repos/builtin/packages/perl-fth/package.py @@ -0,0 +1,120 @@ +# Copyright 2013-2021 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 import * + + +class PerlFth(Package): + """Ftagshtml is a Fortran (and simple C) to HTML browsing, + resolves static interface overload. + It can handle some LaTeX comments inside the source files. + It only needs to be put somewhere into your disk since it uses Perl. + It also provides javatex2.pl initmak.pl getin.pl tex3ht.pl and view.pl: + (1) javatex2 complements latex2html to make nice browsing, + (2) initmak makes fortran 90 dependencies, either full deps or partial + (when interface is not modified it is silly to recompile everything) + (3) getin is an advanced search tool for Fortran variables and calls, + (4) view.pl is used for CGI search when source is on http server. + """ + + homepage = "https://sourceforge.net/projects/ftagshtml/" + url = "https://downloads.sourceforge.net/project/ftagshtml/ftagshtml-0.524.tgz" + + maintainers = ['cessenat'] + + version('0.525', sha256='378116febeb20f4b0c1e298de90305e8494335949d853c7e390d1b6386c1326a') + version('0.524', sha256='2f378e969d1dd267985342f7fb1b3a0b9fd73334627cbc7ab17d61717bcd3c29') + version('0.523', sha256='d5d3fbd3caca30eee9de45baa46612841d55b2960db8e11411af6db76cf214ad') + version('0.522', sha256='acb73eb2c05b1ed7b75f86fbd9656c00158519b3d11d89a082117004deb0fb9e') + version('0.521', sha256='f980c9cc1ce644340a9e9630ef252f92bc89a411ea0a661fcb80cdae07f0731c') + version('0.520', sha256='0ac509a7416d67f5ddc4ad9f629cb0443e1ce515cf9eb92f4272eb6b545a4c50') + version('0.519', sha256='7a440ca08a18edbc57a4a5da7c90c98551ae1adaa303c9f984e5712e1cd54ffb') + version('0.518', sha256='7aed7c831270bb1935d4ccd090ef1360ec9446dd773c10350645985047f8879b') + version('0.517', sha256='e24488a7edbfa764060f007693329d5ee3154e1ce49a627ec109c41a9d7abcbe') + + variant('hevea', default=False, + description="Use hevea when inputting LaTeX files (fth.pl -hevea)") + variant('pdflatex', default=False, + description="Use pdflatex to make a LaTeX index file (fth.pl -latexindex)") + + depends_on('perl', type='run') + depends_on('perl-cgi', type='run') + # Actual dependency was on etags only, but no longer in recent releases: + depends_on('emacs', type='run', when='@:0.520') + # For fth.pl -hevea option + depends_on('hevea', when='+hevea', type='run') + # Actual dependency is on pdflatex only for fth.pl -latexindex option + depends_on('texlive', when='+pdflatex', type='run') + # initmak.pl uses md5sum provided by coreutils + depends_on('coreutils', type='run') + depends_on('dos2unix', type='build') + + # Patches to remove the ancient ksh shebang for fth.pl and initmak.pl. + # git diff a/bin/fth.pl b/bin/fth.pl + patch('fth-shebang.patch', when='@0.517:0.522', sha256='3e82d34c8ae1709e5480fac87db387c1c2e219d7b7d596c8a9d62f0da2439ab3') + patch('fth-shebang2.patch', when='@0.517:0.522', sha256='839be7c0efad752ae341379c81ee1df4a3a81f608f802998c6b4ebc4bae8e167') + + def _make_executable(self, name): + return Executable(join_path(self.prefix.bin, name + '.pl')) + + def setup_dependent_package(self, module, dependent_spec): + # https://spack-tutorial.readthedocs.io/en/latest/tutorial_advanced_packaging.html + checks = ['fth', 'getin', 'view', 'javatex2', 'tex3ht', 'initmak'] + for name in checks: + setattr(module, name, self._make_executable(name)) + + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('JAVATEX_DIR', self.prefix) + env.set('FTAGSHTML_DIR', self.prefix) + env.set('FTAGSHTML_DOC', join_path(self.prefix, 'doc')) + + def setup_run_environment(self, env): + # https://github.com/spack/spack/discussions/13926 + # Let us set the adequate environment when loading perl-fth + env.set('JAVATEX_DIR', self.prefix) + env.set('FTAGSHTML_DIR', self.prefix) + env.set('FTAGSHTML_DOC', join_path(self.prefix, 'doc')) + + def install(self, spec, prefix): + # Remove the perl shebang with the local perl + # (since ftagshtml has no Makefile.PL to do it). + checks = ['fth', 'getin', 'view', 'javatex2', 'tex3ht', 'initmak'] + # mstr = '#!' + join_path(spec['perl'].prefix.bin, 'perl') + mstr = '#!' + spec['perl'].command.path + with working_dir('bin'): + for exe in checks: + fic = exe + '.pl' + if os.path.exists(fic): + dos2unix = which('dos2unix') + dos2unix(fic) + fthfile = FileFilter(fic) + fthfile.filter('#!/usr/bin/perl', mstr, backup=False) + fthfile.filter('#!/usr/bin/env perl', mstr, backup=False) + + # Adds a Makefile with an rsync rule + makefile_inc = [ + 'RSYNC_OPTS = -avuzL', + 'RSYNC = rsync', + ] + makefile_inc.append('install:') + makefile_inc.append('\t$(RSYNC) $(RSYNC_OPTS) . %s' % prefix) + makefile_inc.append('') + with working_dir('.'): + with open('Makefile', 'a') as fh: + fh.write('\n'.join(makefile_inc)) + + # Remove obsolete ftagshtml files, if they exist: + with working_dir('bin'): + if os.path.exists("ftagshtml"): + os.remove("ftagshtml") + if os.path.exists("tata.pl"): + os.remove("tata.pl") + if os.path.exists("truc.pl"): + os.remove("truc.pl") + + # Install the full directory structure + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/perl-gd/package.py b/var/spack/repos/builtin/packages/perl-gd/package.py index dca605fab06..009cd7189ab 100644 --- a/var/spack/repos/builtin/packages/perl-gd/package.py +++ b/var/spack/repos/builtin/packages/perl-gd/package.py @@ -9,7 +9,7 @@ class PerlGd(PerlPackage): """Interface to Gd Graphics Library""" - homepage = "http://search.cpan.org/~lds/GD-2.53/GD.pm" + homepage = "https://metacpan.org/pod/GD" url = "http://search.cpan.org/CPAN/authors/id/L/LD/LDS/GD-2.53.tar.gz" version('2.53', sha256='d05d01fe95e581adb3468cf05ab5d405db7497c0fb3ec7ecf23d023705fab7aa') diff --git a/var/spack/repos/builtin/packages/perl-gdgraph/package.py b/var/spack/repos/builtin/packages/perl-gdgraph/package.py index cc97f0f0700..5bceb2473fd 100644 --- a/var/spack/repos/builtin/packages/perl-gdgraph/package.py +++ b/var/spack/repos/builtin/packages/perl-gdgraph/package.py @@ -9,7 +9,7 @@ class PerlGdgraph(PerlPackage): """Graph Plotting Module for Perl 5""" - homepage = "http://search.cpan.org/~bwarfield/GDGraph/Graph.pm" + homepage = "https://metacpan.org/pod/GD::Graph" url = "http://search.cpan.org/CPAN/authors/id/B/BW/BWARFIELD/GDGraph-1.4308.tar.gz" version('1.4308', sha256='75b3c7e280431404ed096c6e120d552cc39052a8610787149515e94b9ba237cb') diff --git a/var/spack/repos/builtin/packages/perl-gdtextutil/package.py b/var/spack/repos/builtin/packages/perl-gdtextutil/package.py index a668049df5f..5d19d380925 100644 --- a/var/spack/repos/builtin/packages/perl-gdtextutil/package.py +++ b/var/spack/repos/builtin/packages/perl-gdtextutil/package.py @@ -9,7 +9,7 @@ class PerlGdtextutil(PerlPackage): """Text utilities for use with GD""" - homepage = "http://search.cpan.org/~mverb/GDTextUtil-0.86/Text.pm" + homepage = "https://metacpan.org/pod/GD::Text" url = "http://search.cpan.org/CPAN/authors/id/M/MV/MVERB/GDTextUtil-0.86.tar.gz" version('0.86', sha256='886ecbf85cfe94f4135ee5689c4847a9ae783ecb99e6759e12c734f2dd6116bc') diff --git a/var/spack/repos/builtin/packages/perl-getopt-tabular/package.py b/var/spack/repos/builtin/packages/perl-getopt-tabular/package.py new file mode 100644 index 00000000000..094d5f801c2 --- /dev/null +++ b/var/spack/repos/builtin/packages/perl-getopt-tabular/package.py @@ -0,0 +1,15 @@ +# Copyright 2013-2021 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 import * + + +class PerlGetoptTabular(PerlPackage): + """Getopt::Tabular is a Perl 5 module for table-driven argument parsing, + vaguely inspired by John Ousterhout's Tk_ParseArgv.""" + homepage = "https://metacpan.org/pod/Getopt::Tabular" + url = "https://cpan.metacpan.org/authors/id/G/GW/GWARD/Getopt-Tabular-0.3.tar.gz" + + version('0.3', sha256='9bdf067633b5913127820f4e8035edc53d08372faace56ba6bfa00c968a25377') diff --git a/var/spack/repos/builtin/packages/perl-graph-readwrite/package.py b/var/spack/repos/builtin/packages/perl-graph-readwrite/package.py index ec811a895c1..589bea03bf3 100644 --- a/var/spack/repos/builtin/packages/perl-graph-readwrite/package.py +++ b/var/spack/repos/builtin/packages/perl-graph-readwrite/package.py @@ -9,7 +9,7 @@ class PerlGraphReadwrite(PerlPackage): """Write out directed graph in Dot format""" - homepage = "http://search.cpan.org/~neilb/Graph-ReadWrite/lib/Graph/Writer/Dot.pm" + homepage = "https://metacpan.org/pod/Graph::ReadWrite" url = "http://search.cpan.org/CPAN/authors/id/N/NE/NEILB/Graph-ReadWrite-2.09.tar.gz" version('2.09', sha256='b01ef06ce922eea12d5ce614d63ddc5f3ee7ad0d05f9577051d3f87a89799a4a') diff --git a/var/spack/repos/builtin/packages/perl-graph/package.py b/var/spack/repos/builtin/packages/perl-graph/package.py index 2e4df81f770..e609ba83097 100644 --- a/var/spack/repos/builtin/packages/perl-graph/package.py +++ b/var/spack/repos/builtin/packages/perl-graph/package.py @@ -9,7 +9,7 @@ class PerlGraph(PerlPackage): """Graph data structures and algorithms""" - homepage = "http://search.cpan.org/~jhi/Graph/lib/Graph.pod" + homepage = "https://metacpan.org/pod/Graph" url = "http://search.cpan.org/CPAN/authors/id/J/JH/JHI/Graph-0.9704.tar.gz" version('0.9704', sha256='325e8eb07be2d09a909e450c13d3a42dcb2a2e96cc3ac780fe4572a0d80b2a25') diff --git a/var/spack/repos/builtin/packages/perl-html-parser/package.py b/var/spack/repos/builtin/packages/perl-html-parser/package.py index 410711077f1..1d7422ac9db 100644 --- a/var/spack/repos/builtin/packages/perl-html-parser/package.py +++ b/var/spack/repos/builtin/packages/perl-html-parser/package.py @@ -9,7 +9,7 @@ class PerlHtmlParser(PerlPackage): """HTML parser class""" - homepage = "http://search.cpan.org/~gaas/HTML-Parser-3.72/Parser.pm" + homepage = "https://metacpan.org/pod/HTML::Parser" url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-3.72.tar.gz" version('3.72', sha256='ec28c7e1d9e67c45eca197077f7cdc41ead1bb4c538c7f02a3296a4bb92f608b') diff --git a/var/spack/repos/builtin/packages/perl-html-tagset/package.py b/var/spack/repos/builtin/packages/perl-html-tagset/package.py index 53e04ef83ca..c4337d5a94f 100644 --- a/var/spack/repos/builtin/packages/perl-html-tagset/package.py +++ b/var/spack/repos/builtin/packages/perl-html-tagset/package.py @@ -9,7 +9,7 @@ class PerlHtmlTagset(PerlPackage): """Data tables useful in parsing HTML""" - homepage = "http://search.cpan.org/~petdance/HTML-Tagset-3.20/Tagset.pm" + homepage = "https://metacpan.org/pod/HTML::Tagset" url = "http://search.cpan.org/CPAN/authors/id/P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz" version('3.20', sha256='adb17dac9e36cd011f5243881c9739417fd102fce760f8de4e9be4c7131108e2') diff --git a/var/spack/repos/builtin/packages/perl-http-cookies/package.py b/var/spack/repos/builtin/packages/perl-http-cookies/package.py index 73440f10447..df39fa0cf06 100644 --- a/var/spack/repos/builtin/packages/perl-http-cookies/package.py +++ b/var/spack/repos/builtin/packages/perl-http-cookies/package.py @@ -9,7 +9,7 @@ class PerlHttpCookies(PerlPackage): """HTTP cookie jars""" - homepage = "http://search.cpan.org/~oalders/HTTP-Cookies-6.04/lib/HTTP/Cookies.pm" + homepage = "https://metacpan.org/pod/HTTP::Cookies" url = "http://search.cpan.org/CPAN/authors/id/O/OA/OALDERS/HTTP-Cookies-6.04.tar.gz" version('6.04', sha256='0cc7f079079dcad8293fea36875ef58dd1bfd75ce1a6c244cd73ed9523eb13d4') diff --git a/var/spack/repos/builtin/packages/perl-http-daemon/package.py b/var/spack/repos/builtin/packages/perl-http-daemon/package.py index 00ac9d0226a..a4bdf339218 100644 --- a/var/spack/repos/builtin/packages/perl-http-daemon/package.py +++ b/var/spack/repos/builtin/packages/perl-http-daemon/package.py @@ -9,7 +9,7 @@ class PerlHttpDaemon(PerlPackage): """A simple http server class""" - homepage = "http://search.cpan.org/~gaas/HTTP-Daemon-6.01/lib/HTTP/Daemon.pm" + homepage = "https://metacpan.org/pod/HTTP::Daemon" url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTTP-Daemon-6.01.tar.gz" version('6.01', sha256='43fd867742701a3f9fcc7bd59838ab72c6490c0ebaf66901068ec6997514adc2') diff --git a/var/spack/repos/builtin/packages/perl-http-date/package.py b/var/spack/repos/builtin/packages/perl-http-date/package.py index 08b3734b4e0..614ae761aee 100644 --- a/var/spack/repos/builtin/packages/perl-http-date/package.py +++ b/var/spack/repos/builtin/packages/perl-http-date/package.py @@ -9,7 +9,7 @@ class PerlHttpDate(PerlPackage): """Date conversion routines""" - homepage = "http://search.cpan.org/~gaas/HTTP-Date-6.02/lib/HTTP/Date.pm" + homepage = "https://metacpan.org/pod/HTTP::Date" url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTTP-Date-6.02.tar.gz" version('6.02', sha256='e8b9941da0f9f0c9c01068401a5e81341f0e3707d1c754f8e11f42a7e629e333') diff --git a/var/spack/repos/builtin/packages/perl-http-message/package.py b/var/spack/repos/builtin/packages/perl-http-message/package.py index 1d5cefccc48..d03964b9012 100644 --- a/var/spack/repos/builtin/packages/perl-http-message/package.py +++ b/var/spack/repos/builtin/packages/perl-http-message/package.py @@ -9,7 +9,7 @@ class PerlHttpMessage(PerlPackage): """HTTP style message (base class)""" - homepage = "http://search.cpan.org/~oalders/HTTP-Message-6.13/lib/HTTP/Status.pm" + homepage = "https://metacpan.org/pod/HTTP::Message" url = "http://search.cpan.org/CPAN/authors/id/O/OA/OALDERS/HTTP-Message-6.13.tar.gz" version('6.13', sha256='f25f38428de851e5661e72f124476494852eb30812358b07f1c3a289f6f5eded') diff --git a/var/spack/repos/builtin/packages/perl-http-negotiate/package.py b/var/spack/repos/builtin/packages/perl-http-negotiate/package.py index 218f3009011..e3e186260bd 100644 --- a/var/spack/repos/builtin/packages/perl-http-negotiate/package.py +++ b/var/spack/repos/builtin/packages/perl-http-negotiate/package.py @@ -9,7 +9,7 @@ class PerlHttpNegotiate(PerlPackage): """Choose a variant to serve""" - homepage = "http://search.cpan.org/~gaas/HTTP-Negotiate-6.01/lib/HTTP/Negotiate.pm" + homepage = "https://metacpan.org/pod/HTTP::Negotiate" url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTTP-Negotiate-6.01.tar.gz" version('6.01', sha256='1c729c1ea63100e878405cda7d66f9adfd3ed4f1d6cacaca0ee9152df728e016') diff --git a/var/spack/repos/builtin/packages/perl-inline-c/package.py b/var/spack/repos/builtin/packages/perl-inline-c/package.py index 44cb397d07d..cf10b0821a3 100644 --- a/var/spack/repos/builtin/packages/perl-inline-c/package.py +++ b/var/spack/repos/builtin/packages/perl-inline-c/package.py @@ -9,7 +9,7 @@ class PerlInlineC(PerlPackage): """C Language Support for Inline""" - homepage = "http://search.cpan.org/~tinita/Inline-C-0.78/lib/Inline/C.pod" + homepage = "https://metacpan.org/pod/Inline::C" url = "http://search.cpan.org/CPAN/authors/id/T/TI/TINITA/Inline-C-0.78.tar.gz" version('0.78', sha256='9a7804d85c01a386073d2176582b0262b6374c5c0341049da3ef84c6f53efbc7') diff --git a/var/spack/repos/builtin/packages/perl-inline/package.py b/var/spack/repos/builtin/packages/perl-inline/package.py index 91cc7648cfd..acba6d1894c 100644 --- a/var/spack/repos/builtin/packages/perl-inline/package.py +++ b/var/spack/repos/builtin/packages/perl-inline/package.py @@ -9,7 +9,7 @@ class PerlInline(PerlPackage): """Write Perl Subroutines in Other Programming Languages""" - homepage = "http://search.cpan.org/~ingy/Inline-0.80/lib/Inline.pod" + homepage = "https://metacpan.org/pod/Inline" url = "http://search.cpan.org/CPAN/authors/id/I/IN/INGY/Inline-0.80.tar.gz" version('0.80', sha256='7e2bd984b1ebd43e336b937896463f2c6cb682c956cbd2c311a464363d2ccef6') diff --git a/var/spack/repos/builtin/packages/perl-io-compress/package.py b/var/spack/repos/builtin/packages/perl-io-compress/package.py index bd850ce9811..b1c2b45e17a 100644 --- a/var/spack/repos/builtin/packages/perl-io-compress/package.py +++ b/var/spack/repos/builtin/packages/perl-io-compress/package.py @@ -10,7 +10,7 @@ class PerlIoCompress(PerlPackage): """A perl library for uncompressing gzip, zip, bzip2 or lzop file/buffer.""" - homepage = "http://search.cpan.org/~pmqs/IO-Compress-2.070/lib/IO/Uncompress/AnyUncompress.pm" + homepage = "https://metacpan.org/pod/IO::Uncompress::AnyUncompress" url = "http://search.cpan.org/CPAN/authors/id/P/PM/PMQS/IO-Compress-2.081.tar.gz" version('2.081', sha256='5211c775544dc8c511af08edfb1c0c22734daa2789149c2a88d68e17b43546d9') diff --git a/var/spack/repos/builtin/packages/perl-io-html/package.py b/var/spack/repos/builtin/packages/perl-io-html/package.py index 9de028a96cb..51a99aa6881 100644 --- a/var/spack/repos/builtin/packages/perl-io-html/package.py +++ b/var/spack/repos/builtin/packages/perl-io-html/package.py @@ -9,7 +9,7 @@ class PerlIoHtml(PerlPackage): """Open an HTML file with automatic charset detection.""" - homepage = "http://search.cpan.org/~cjm/IO-HTML-1.001/lib/IO/HTML.pm" + homepage = "https://metacpan.org/pod/IO::HTML" url = "http://search.cpan.org/CPAN/authors/id/C/CJ/CJM/IO-HTML-1.001.tar.gz" version('1.001', sha256='ea78d2d743794adc028bc9589538eb867174b4e165d7d8b5f63486e6b828e7e0') diff --git a/var/spack/repos/builtin/packages/perl-io-sessiondata/package.py b/var/spack/repos/builtin/packages/perl-io-sessiondata/package.py index 24c05ac63ae..d78449423f1 100644 --- a/var/spack/repos/builtin/packages/perl-io-sessiondata/package.py +++ b/var/spack/repos/builtin/packages/perl-io-sessiondata/package.py @@ -9,7 +9,7 @@ class PerlIoSessiondata(PerlPackage): """A wrapper around a single IO::Socket object""" - homepage = "http://search.cpan.org/~phred/IO-SessionData-1.03/" + homepage = "https://metacpan.org/release/PHRED/IO-SessionData-1.03/source/lib/IO/SessionData.pm#PIO::SessionData" url = "http://search.cpan.org/CPAN/authors/id/P/PH/PHRED/IO-SessionData-1.03.tar.gz" version('1.03', sha256='64a4712a3edbb3fd10230db296c29c8c66f066adfbc0c3df6a48258fef392ddd') diff --git a/var/spack/repos/builtin/packages/perl-io-socket-ssl/package.py b/var/spack/repos/builtin/packages/perl-io-socket-ssl/package.py index e452762cabe..19a3b2b2812 100644 --- a/var/spack/repos/builtin/packages/perl-io-socket-ssl/package.py +++ b/var/spack/repos/builtin/packages/perl-io-socket-ssl/package.py @@ -11,7 +11,7 @@ class PerlIoSocketSsl(PerlPackage): """SSL sockets with IO::Socket interface""" - homepage = "http://search.cpan.org/~sullr/IO-Socket-SSL-2.052/lib/IO/Socket/SSL.pod" + homepage = "https://metacpan.org/dist/IO-Socket-SSL/view/lib/IO/Socket/SSL.pod" url = "http://search.cpan.org/CPAN/authors/id/S/SU/SULLR/IO-Socket-SSL-2.052.tar.gz" version('2.052', sha256='e4897a9b17cb18a3c44aa683980d52cef534cdfcb8063d6877c879bfa2f26673') diff --git a/var/spack/repos/builtin/packages/perl-io-string/package.py b/var/spack/repos/builtin/packages/perl-io-string/package.py index 5a776ebde9f..9879766b9b6 100644 --- a/var/spack/repos/builtin/packages/perl-io-string/package.py +++ b/var/spack/repos/builtin/packages/perl-io-string/package.py @@ -9,7 +9,7 @@ class PerlIoString(PerlPackage): """Emulate file interface for in-core strings""" - homepage = "http://search.cpan.org/~gaas/IO-String-1.08/String.pm" + homepage = "https://metacpan.org/pod/IO::String" url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/IO-String-1.08.tar.gz" version('1.08', sha256='2a3f4ad8442d9070780e58ef43722d19d1ee21a803bf7c8206877a10482de5a0') diff --git a/var/spack/repos/builtin/packages/perl-json/package.py b/var/spack/repos/builtin/packages/perl-json/package.py index a897682965c..e9aff716f33 100644 --- a/var/spack/repos/builtin/packages/perl-json/package.py +++ b/var/spack/repos/builtin/packages/perl-json/package.py @@ -9,7 +9,7 @@ class PerlJson(PerlPackage): """JSON (JavaScript Object Notation) encoder/decoder""" - homepage = "http://search.cpan.org/~ishigaki/JSON/lib/JSON.pm" + homepage = "https://metacpan.org/pod/JSON" url = "http://search.cpan.org/CPAN/authors/id/I/IS/ISHIGAKI/JSON-2.97001.tar.gz" version('2.97001', sha256='e277d9385633574923f48c297e1b8acad3170c69fa590e31fa466040fc6f8f5a') diff --git a/var/spack/repos/builtin/packages/perl-list-moreutils/package.py b/var/spack/repos/builtin/packages/perl-list-moreutils/package.py index 0ef9f257250..45c320eccb6 100644 --- a/var/spack/repos/builtin/packages/perl-list-moreutils/package.py +++ b/var/spack/repos/builtin/packages/perl-list-moreutils/package.py @@ -9,7 +9,7 @@ class PerlListMoreutils(PerlPackage): """Provide the stuff missing in List::Util""" - homepage = "http://search.cpan.org/~rehsack/List-MoreUtils/lib/List/MoreUtils.pm" + homepage = "https://metacpan.org/pod/List::MoreUtils" url = "http://search.cpan.org/CPAN/authors/id/R/RE/REHSACK/List-MoreUtils-0.428.tar.gz" version('0.428', sha256='713e0945d5f16e62d81d5f3da2b6a7b14a4ce439f6d3a7de74df1fd166476cc2') diff --git a/var/spack/repos/builtin/packages/perl-log-log4perl/package.py b/var/spack/repos/builtin/packages/perl-log-log4perl/package.py index 0db77d2a3ca..2eec7b72c02 100644 --- a/var/spack/repos/builtin/packages/perl-log-log4perl/package.py +++ b/var/spack/repos/builtin/packages/perl-log-log4perl/package.py @@ -9,7 +9,7 @@ class PerlLogLog4perl(PerlPackage): """Log4j implementation for Perl""" - homepage = "http://search.cpan.org/~mschilli/Log-Log4perl-1.44/lib/Log/Log4perl.pm" + homepage = "https://metacpan.org/pod/Log::Log4perl" url = "https://cpan.metacpan.org/authors/id/M/MS/MSCHILLI/Log-Log4perl-1.46.tar.gz" version('1.46', sha256='31011a17c04e78016e73eaa4865d0481d2ffc3dc22813c61065d90ad73c64e6f') diff --git a/var/spack/repos/builtin/packages/perl-lwp-mediatypes/package.py b/var/spack/repos/builtin/packages/perl-lwp-mediatypes/package.py index 73de57f933a..d65185e94bc 100644 --- a/var/spack/repos/builtin/packages/perl-lwp-mediatypes/package.py +++ b/var/spack/repos/builtin/packages/perl-lwp-mediatypes/package.py @@ -9,7 +9,7 @@ class PerlLwpMediatypes(PerlPackage): """Guess media type for a file or a URL""" - homepage = "http://search.cpan.org/~gaas/LWP-MediaTypes-6.02/lib/LWP/MediaTypes.pm" + homepage = "https://metacpan.org/pod/LWP::MediaTypes" url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/LWP-MediaTypes-6.02.tar.gz" version('6.02', sha256='18790b0cc5f0a51468495c3847b16738f785a2d460403595001e0b932e5db676') diff --git a/var/spack/repos/builtin/packages/perl-lwp-protocol-https/package.py b/var/spack/repos/builtin/packages/perl-lwp-protocol-https/package.py index 94ebb174943..0e28fb13e14 100644 --- a/var/spack/repos/builtin/packages/perl-lwp-protocol-https/package.py +++ b/var/spack/repos/builtin/packages/perl-lwp-protocol-https/package.py @@ -9,7 +9,7 @@ class PerlLwpProtocolHttps(PerlPackage): """ Provide https support for LWP::UserAgent""" - homepage = "http://search.cpan.org/~gaas/LWP-Protocol-https-6.04/lib/LWP/Protocol/https.pm" + homepage = "https://metacpan.org/pod/LWP::Protocol::https" url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/LWP-Protocol-https-6.04.tar.gz" version('6.04', sha256='1ef67750ee363525cf729b59afde805ac4dc80eaf8d36ca01082a4d78a7af629') diff --git a/var/spack/repos/builtin/packages/perl-math-cdf/package.py b/var/spack/repos/builtin/packages/perl-math-cdf/package.py index a168161b006..24761d87038 100644 --- a/var/spack/repos/builtin/packages/perl-math-cdf/package.py +++ b/var/spack/repos/builtin/packages/perl-math-cdf/package.py @@ -10,7 +10,7 @@ class PerlMathCdf(PerlPackage): """Generate probabilities and quantiles from several statistical probability functions""" - homepage = "http://search.cpan.org/~callahan/Math-CDF-0.1/CDF.pm" + homepage = "https://metacpan.org/pod/Math::CDF" url = "http://search.cpan.org/CPAN/authors/id/C/CA/CALLAHAN/Math-CDF-0.1.tar.gz" version('0.1', sha256='7896bf250835ce47dcc813cb8cf9dc576c5455de42e822dcd7d8d3fef2125565') diff --git a/var/spack/repos/builtin/packages/perl-math-cephes/package.py b/var/spack/repos/builtin/packages/perl-math-cephes/package.py index 4919114bafb..6dda7c94051 100644 --- a/var/spack/repos/builtin/packages/perl-math-cephes/package.py +++ b/var/spack/repos/builtin/packages/perl-math-cephes/package.py @@ -10,7 +10,7 @@ class PerlMathCephes(PerlPackage): """This module provides an interface to over 150 functions of the cephes math library of Stephen Moshier.""" - homepage = "http://search.cpan.org/~shlomif/Math-Cephes/lib/Math/Cephes.pod" + homepage = "https://metacpan.org/pod/Math::Cephes" url = "http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/Math-Cephes-0.5305.tar.gz" version('0.5305', sha256='561a800a4822e748d2befc366baa4b21e879a40cc00c22293c7b8736caeb83a1') diff --git a/var/spack/repos/builtin/packages/perl-math-matrixreal/package.py b/var/spack/repos/builtin/packages/perl-math-matrixreal/package.py index 7cd9098c9b3..c19f50082ec 100644 --- a/var/spack/repos/builtin/packages/perl-math-matrixreal/package.py +++ b/var/spack/repos/builtin/packages/perl-math-matrixreal/package.py @@ -10,7 +10,7 @@ class PerlMathMatrixreal(PerlPackage): """Implements the data type "matrix of real numbers" (and consequently also "vector of real numbers").""" - homepage = "http://search.cpan.org/~leto/Math-MatrixReal/lib/Math/MatrixReal.pm" + homepage = "https://metacpan.org/pod/Math::MatrixReal" url = "http://search.cpan.org/CPAN/authors/id/L/LE/LETO/Math-MatrixReal-2.13.tar.gz" version('2.13', sha256='4f9fa1a46dd34d2225de461d9a4ed86932cdd821c121fa501a15a6d4302fb4b2') diff --git a/var/spack/repos/builtin/packages/perl-module-build/package.py b/var/spack/repos/builtin/packages/perl-module-build/package.py index b9a4cac078d..2d2066f88de 100644 --- a/var/spack/repos/builtin/packages/perl-module-build/package.py +++ b/var/spack/repos/builtin/packages/perl-module-build/package.py @@ -16,7 +16,7 @@ class PerlModuleBuild(PerlPackage): pure-perl and written in a very cross-platform way. """ - homepage = "http://search.cpan.org/perldoc/Module::Build" + homepage = "https://metacpan.org/pod/Module::Build" url = "http://search.cpan.org/CPAN/authors/id/L/LE/LEONT/Module-Build-0.4224.tar.gz" version('0.4224', sha256='a6ca15d78244a7b50fdbf27f85c85f4035aa799ce7dd018a0d98b358ef7bc782') diff --git a/var/spack/repos/builtin/packages/perl-module-implementation/package.py b/var/spack/repos/builtin/packages/perl-module-implementation/package.py index ee0aa1a7ad8..b8af2e0062b 100644 --- a/var/spack/repos/builtin/packages/perl-module-implementation/package.py +++ b/var/spack/repos/builtin/packages/perl-module-implementation/package.py @@ -10,7 +10,7 @@ class PerlModuleImplementation(PerlPackage): """Loads one of several alternate underlying implementations for a module""" - homepage = "http://search.cpan.org/~drolsky/Module-Implementation/lib/Module/Implementation.pm" + homepage = "https://metacpan.org/pod/Module::Implementation" url = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Module-Implementation-0.09.tar.gz" version('0.09', sha256='c15f1a12f0c2130c9efff3c2e1afe5887b08ccd033bd132186d1e7d5087fd66d') diff --git a/var/spack/repos/builtin/packages/perl-module-runtime-conflicts/package.py b/var/spack/repos/builtin/packages/perl-module-runtime-conflicts/package.py index 8fdd43653d5..518ab7696e5 100644 --- a/var/spack/repos/builtin/packages/perl-module-runtime-conflicts/package.py +++ b/var/spack/repos/builtin/packages/perl-module-runtime-conflicts/package.py @@ -9,7 +9,7 @@ class PerlModuleRuntimeConflicts(PerlPackage): """Provide information on conflicts for Module::Runtime""" - homepage = "http://search.cpan.org/~ether/Module-Runtime-Conflicts-0.003/lib/Module/Runtime/Conflicts.pm" + homepage = "https://metacpan.org/pod/Module::Runtime::Conflicts" url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/Module-Runtime-Conflicts-0.003.tar.gz" version('0.003', sha256='707cdc75038c70fe91779b888ac050f128565d3967ba96680e1b1c7cc9733875') diff --git a/var/spack/repos/builtin/packages/perl-module-runtime/package.py b/var/spack/repos/builtin/packages/perl-module-runtime/package.py index 28cfcc4bbc6..0388efe9a0d 100644 --- a/var/spack/repos/builtin/packages/perl-module-runtime/package.py +++ b/var/spack/repos/builtin/packages/perl-module-runtime/package.py @@ -9,7 +9,7 @@ class PerlModuleRuntime(PerlPackage): """Runtime module handling""" - homepage = "http://search.cpan.org/~zefram/Module-Runtime/lib/Module/Runtime.pm" + homepage = "https://metacpan.org/pod/Module::Runtime" url = "http://search.cpan.org/CPAN/authors/id/Z/ZE/ZEFRAM/Module-Runtime-0.016.tar.gz" version('0.016', sha256='68302ec646833547d410be28e09676db75006f4aa58a11f3bdb44ffe99f0f024') diff --git a/var/spack/repos/builtin/packages/perl-moose/package.py b/var/spack/repos/builtin/packages/perl-moose/package.py index e6c20e5953d..fa0885bb2ff 100644 --- a/var/spack/repos/builtin/packages/perl-moose/package.py +++ b/var/spack/repos/builtin/packages/perl-moose/package.py @@ -9,7 +9,7 @@ class PerlMoose(PerlPackage): """A postmodern object system for Perl 5""" - homepage = "http://search.cpan.org/~ether/Moose-2.2006/lib/Moose.pm" + homepage = "https://metacpan.org/pod/Moose" url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/Moose-2.2006.tar.gz" version('2.2010', sha256='af0905b69f18c27de1177c9bc7778ee495d4ec91be1f223e8ca8333af4de08c5') diff --git a/var/spack/repos/builtin/packages/perl-mozilla-ca/package.py b/var/spack/repos/builtin/packages/perl-mozilla-ca/package.py index 50a4c280602..db1b539aaf9 100644 --- a/var/spack/repos/builtin/packages/perl-mozilla-ca/package.py +++ b/var/spack/repos/builtin/packages/perl-mozilla-ca/package.py @@ -9,7 +9,7 @@ class PerlMozillaCa(PerlPackage): """Mozilla's CA cert bundle in PEM format""" - homepage = "http://search.cpan.org/~abh/Mozilla-CA-20160104/lib/Mozilla/CA.pm" + homepage = "https://metacpan.org/pod/Mozilla::CA" url = "http://search.cpan.org/CPAN/authors/id/A/AB/ABH/Mozilla-CA-20160104.tar.gz" version('20160104', sha256='27a7069a243162b65ada4194ff9d21b6ebc304af723eb5d3972fb74c11b03f2a') diff --git a/var/spack/repos/builtin/packages/perl-mro-compat/package.py b/var/spack/repos/builtin/packages/perl-mro-compat/package.py index 1d72a34b289..96c576cd737 100644 --- a/var/spack/repos/builtin/packages/perl-mro-compat/package.py +++ b/var/spack/repos/builtin/packages/perl-mro-compat/package.py @@ -9,7 +9,7 @@ class PerlMroCompat(PerlPackage): """Provides several utilities for dealing with method resolution order.""" - homepage = "http://search.cpan.org/~haarg/MRO-Compat-0.13/lib/MRO/Compat.pm" + homepage = "https://metacpan.org/pod/MRO::Compat" url = "http://search.cpan.org/CPAN/authors/id/H/HA/HAARG/MRO-Compat-0.13.tar.gz" version('0.13', sha256='8a2c3b6ccc19328d5579d02a7d91285e2afd85d801f49d423a8eb16f323da4f8') diff --git a/var/spack/repos/builtin/packages/perl-namespace-clean/package.py b/var/spack/repos/builtin/packages/perl-namespace-clean/package.py index bfcecb5a9a2..3fca3222e35 100644 --- a/var/spack/repos/builtin/packages/perl-namespace-clean/package.py +++ b/var/spack/repos/builtin/packages/perl-namespace-clean/package.py @@ -9,7 +9,7 @@ class PerlNamespaceClean(PerlPackage): """Keep imports and functions out of your namespace.""" - homepage = "http://search.cpan.org/~ribasushi/namespace-clean-0.27/lib/namespace/clean.pm" + homepage = "https://metacpan.org/pod/namespace::clean" url = "http://search.cpan.org/CPAN/authors/id/R/RI/RIBASUSHI/namespace-clean-0.27.tar.gz" version('0.27', sha256='8a10a83c3e183dc78f9e7b7aa4d09b47c11fb4e7d3a33b9a12912fd22e31af9d') diff --git a/var/spack/repos/builtin/packages/perl-net-http/package.py b/var/spack/repos/builtin/packages/perl-net-http/package.py index 986eb30313a..2837c8bbba7 100644 --- a/var/spack/repos/builtin/packages/perl-net-http/package.py +++ b/var/spack/repos/builtin/packages/perl-net-http/package.py @@ -9,7 +9,7 @@ class PerlNetHttp(PerlPackage): """Low-level HTTP connection (client)""" - homepage = "http://search.cpan.org/~oalders/Net-HTTP-6.17/lib/Net/HTTP.pm" + homepage = "https://metacpan.org/pod/Net::HTTP" url = "http://search.cpan.org/CPAN/authors/id/O/OA/OALDERS/Net-HTTP-6.17.tar.gz" version('6.17', sha256='1e8624b1618dc6f7f605f5545643ebb9b833930f4d7485d4124aa2f2f26d1611') diff --git a/var/spack/repos/builtin/packages/perl-net-scp-expect/package.py b/var/spack/repos/builtin/packages/perl-net-scp-expect/package.py index d7329e91492..cb508ebc3c5 100644 --- a/var/spack/repos/builtin/packages/perl-net-scp-expect/package.py +++ b/var/spack/repos/builtin/packages/perl-net-scp-expect/package.py @@ -9,7 +9,7 @@ class PerlNetScpExpect(PerlPackage): """Wrapper for scp that allows passwords via Expect.""" - homepage = "http://search.cpan.org/~rybskej/Net-SCP-Expect/Expect.pm" + homepage = "https://metacpan.org/pod/Net::SCP::Expect" url = "http://search.cpan.org/CPAN/authors/id/R/RY/RYBSKEJ/Net-SCP-Expect-0.16.tar.gz" version('0.16', sha256='97586e0ee0d61c987a7efaaffbfa551b95c426b3ef3625e046dc456fe9170591') diff --git a/var/spack/repos/builtin/packages/perl-net-ssleay/package.py b/var/spack/repos/builtin/packages/perl-net-ssleay/package.py index da18b494d79..81f78a9f6c3 100644 --- a/var/spack/repos/builtin/packages/perl-net-ssleay/package.py +++ b/var/spack/repos/builtin/packages/perl-net-ssleay/package.py @@ -11,7 +11,7 @@ class PerlNetSsleay(PerlPackage): """Perl extension for using OpenSSL""" - homepage = "http://search.cpan.org/~mikem/Net-SSLeay-1.82/lib/Net/SSLeay.pod" + homepage = "https://metacpan.org/pod/Net::SSLeay" url = "http://search.cpan.org/CPAN/authors/id/M/MI/MIKEM/Net-SSLeay-1.82.tar.gz" version('1.85', sha256='9d8188b9fb1cae3bd791979c20554925d5e94a138d00414f1a6814549927b0c8') diff --git a/var/spack/repos/builtin/packages/perl-package-deprecationmanager/package.py b/var/spack/repos/builtin/packages/perl-package-deprecationmanager/package.py index f986fbfeeac..18cd35c285c 100644 --- a/var/spack/repos/builtin/packages/perl-package-deprecationmanager/package.py +++ b/var/spack/repos/builtin/packages/perl-package-deprecationmanager/package.py @@ -9,7 +9,7 @@ class PerlPackageDeprecationmanager(PerlPackage): """Manage deprecation warnings for your distribution""" - homepage = "http://search.cpan.org/~drolsky/Package-DeprecationManager-0.17/lib/Package/DeprecationManager.pm" + homepage = "https://metacpan.org/pod/Package::DeprecationManager" url = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Package-DeprecationManager-0.17.tar.gz" version('0.17', sha256='1d743ada482b5c9871d894966e87d4c20edc96931bb949fb2638b000ddd6684b') diff --git a/var/spack/repos/builtin/packages/perl-package-stash-xs/package.py b/var/spack/repos/builtin/packages/perl-package-stash-xs/package.py index defb35fbdea..46465e0a099 100644 --- a/var/spack/repos/builtin/packages/perl-package-stash-xs/package.py +++ b/var/spack/repos/builtin/packages/perl-package-stash-xs/package.py @@ -9,7 +9,7 @@ class PerlPackageStashXs(PerlPackage): """Faster and more correct implementation of the Package::Stash API""" - homepage = "http://search.cpan.org/~doy/Package-Stash-XS-0.28/lib/Package/Stash/XS.pm" + homepage = "https://metacpan.org/pod/Package::Stash::XS" url = "http://search.cpan.org/CPAN/authors/id/D/DO/DOY/Package-Stash-XS-0.28.tar.gz" version('0.28', sha256='23d8c5c25768ef1dc0ce53b975796762df0d6e244445d06e48d794886c32d486') diff --git a/var/spack/repos/builtin/packages/perl-package-stash/package.py b/var/spack/repos/builtin/packages/perl-package-stash/package.py index e862255e206..161d0a71f9e 100644 --- a/var/spack/repos/builtin/packages/perl-package-stash/package.py +++ b/var/spack/repos/builtin/packages/perl-package-stash/package.py @@ -9,7 +9,7 @@ class PerlPackageStash(PerlPackage): """Routines for manipulating stashes""" - homepage = "http://search.cpan.org/~doy/Package-Stash-0.37/lib/Package/Stash.pm" + homepage = "https://metacpan.org/pod/Package::Stash" url = "http://search.cpan.org/CPAN/authors/id/D/DO/DOY/Package-Stash-0.37.tar.gz" version('0.37', sha256='06ab05388f9130cd377c0e1d3e3bafeed6ef6a1e22104571a9e1d7bfac787b2c') diff --git a/var/spack/repos/builtin/packages/perl-padwalker/package.py b/var/spack/repos/builtin/packages/perl-padwalker/package.py index 824a6440679..195b0bb0e30 100644 --- a/var/spack/repos/builtin/packages/perl-padwalker/package.py +++ b/var/spack/repos/builtin/packages/perl-padwalker/package.py @@ -9,7 +9,7 @@ class PerlPadwalker(PerlPackage): """play with other peoples' lexical variables""" - homepage = "http://search.cpan.org/~robin/PadWalker-2.2/PadWalker.pm" + homepage = "https://metacpan.org/pod/PadWalker" url = "http://search.cpan.org/CPAN/authors/id/R/RO/ROBIN/PadWalker-2.2.tar.gz" version('2.2', sha256='fc1df2084522e29e892da393f3719d2c1be0da022fdd89cff4b814167aecfea3') diff --git a/var/spack/repos/builtin/packages/perl-parallel-forkmanager/package.py b/var/spack/repos/builtin/packages/perl-parallel-forkmanager/package.py index 75793707a6c..3b3bd531b51 100644 --- a/var/spack/repos/builtin/packages/perl-parallel-forkmanager/package.py +++ b/var/spack/repos/builtin/packages/perl-parallel-forkmanager/package.py @@ -9,7 +9,7 @@ class PerlParallelForkmanager(PerlPackage): """A simple parallel processing fork manager""" - homepage = "http://search.cpan.org/~yanick/Parallel-ForkManager/lib/Parallel/ForkManager.pm" + homepage = "https://metacpan.org/pod/Parallel::ForkManager" url = "http://search.cpan.org/CPAN/authors/id/Y/YA/YANICK/Parallel-ForkManager-1.19.tar.gz" version('1.19', sha256='f1de2e9875eeb77d65f80338905dedd522f3913822502982f805aa71cde5a472') diff --git a/var/spack/repos/builtin/packages/perl-params-util/package.py b/var/spack/repos/builtin/packages/perl-params-util/package.py index 650a67ea28a..dd3f0b85f00 100644 --- a/var/spack/repos/builtin/packages/perl-params-util/package.py +++ b/var/spack/repos/builtin/packages/perl-params-util/package.py @@ -9,7 +9,7 @@ class PerlParamsUtil(PerlPackage): """Simple, compact and correct param-checking functions""" - homepage = "http://search.cpan.org/~adamk/Params-Util-1.07/lib/Params/Util.pm" + homepage = "https://metacpan.org/pod/Params::Util" url = "http://search.cpan.org/CPAN/authors/id/A/AD/ADAMK/Params-Util-1.07.tar.gz" version('1.07', sha256='30f1ec3f2cf9ff66ae96f973333f23c5f558915bb6266881eac7423f52d7c76c') diff --git a/var/spack/repos/builtin/packages/perl-parse-recdescent/package.py b/var/spack/repos/builtin/packages/perl-parse-recdescent/package.py index 570edfd8ffd..a3ebe0fafe6 100644 --- a/var/spack/repos/builtin/packages/perl-parse-recdescent/package.py +++ b/var/spack/repos/builtin/packages/perl-parse-recdescent/package.py @@ -9,7 +9,7 @@ class PerlParseRecdescent(PerlPackage): """Generate Recursive-Descent Parsers""" - homepage = "http://search.cpan.org/~jtbraun/Parse-RecDescent-1.967015/lib/Parse/RecDescent.pm" + homepage = "https://metacpan.org/pod/Parse::RecDescent" url = "http://search.cpan.org/CPAN/authors/id/J/JT/JTBRAUN/Parse-RecDescent-1.967015.tar.gz" version('1.967015', sha256='1943336a4cb54f1788a733f0827c0c55db4310d5eae15e542639c9dd85656e37') diff --git a/var/spack/repos/builtin/packages/perl-pdf-api2/package.py b/var/spack/repos/builtin/packages/perl-pdf-api2/package.py index 3cd836b07d7..3511278af7c 100644 --- a/var/spack/repos/builtin/packages/perl-pdf-api2/package.py +++ b/var/spack/repos/builtin/packages/perl-pdf-api2/package.py @@ -9,7 +9,7 @@ class PerlPdfApi2(PerlPackage): """Facilitates the creation and modification of PDF files""" - homepage = "http://search.cpan.org/~ssimms/PDF-API2-2.033/lib/PDF/API2.pm" + homepage = "https://metacpan.org/pod/PDF::API2" url = "http://search.cpan.org/CPAN/authors/id/S/SS/SSIMMS/PDF-API2-2.033.tar.gz" version('2.033', sha256='9c0866ec1a3053f73afaca5f5cdbe6925903b4ce606f4bf4ac317731a69d27a0') diff --git a/var/spack/repos/builtin/packages/perl-pegex/package.py b/var/spack/repos/builtin/packages/perl-pegex/package.py index d8916ea5a22..add63e06998 100644 --- a/var/spack/repos/builtin/packages/perl-pegex/package.py +++ b/var/spack/repos/builtin/packages/perl-pegex/package.py @@ -9,7 +9,7 @@ class PerlPegex(PerlPackage): """Acmeist PEG Parser Framework""" - homepage = "http://search.cpan.org/~ingy/Pegex-0.64/lib/Pegex.pod" + homepage = "https://metacpan.org/pod/Pegex" url = "http://search.cpan.org/CPAN/authors/id/I/IN/INGY/Pegex-0.64.tar.gz" version('0.64', sha256='27e00264bdafb9c2109212b9654542032617fecf7b7814915d2bdac198f067cd') diff --git a/var/spack/repos/builtin/packages/perl-perl-version/package.py b/var/spack/repos/builtin/packages/perl-perl-version/package.py index 2877516e38c..b5aacdf59e9 100644 --- a/var/spack/repos/builtin/packages/perl-perl-version/package.py +++ b/var/spack/repos/builtin/packages/perl-perl-version/package.py @@ -9,7 +9,7 @@ class PerlPerlVersion(PerlPackage): """Parse and manipulate Perl version strings""" - homepage = "http://search.cpan.org/~bdfoy/Perl-Version-1.013/lib/Perl/Version.pm" + homepage = "https://metacpan.org/pod/Perl::Version" url = "http://search.cpan.org/CPAN/authors/id/B/BD/BDFOY/Perl-Version-1.013_03.tar.gz" version('1.013_03', sha256='6b5978f598dcdf8a304500c1b7bcdce967ca05e7b38673cebfdb4237531c2ff9') diff --git a/var/spack/repos/builtin/packages/perl-perl6-slurp/package.py b/var/spack/repos/builtin/packages/perl-perl6-slurp/package.py index 75f730cb0e6..3b37c51c6f9 100644 --- a/var/spack/repos/builtin/packages/perl-perl6-slurp/package.py +++ b/var/spack/repos/builtin/packages/perl-perl6-slurp/package.py @@ -9,7 +9,7 @@ class PerlPerl6Slurp(PerlPackage): """Perl6::Slurp - Implements the Perl 6 'slurp' built-in""" - homepage = "http://search.cpan.org/~dconway/Perl6-Slurp-0.051005/lib/Perl6/Slurp.pm" + homepage = "https://metacpan.org/pod/Perl6::Slurp" url = "http://search.cpan.org/CPAN/authors/id/D/DC/DCONWAY/Perl6-Slurp-0.051005.tar.gz" version('0.051005', sha256='0e0ceb30495ecf64dc6cacd12113d604871104c0cfe153487b8d68bc9393d78f') diff --git a/var/spack/repos/builtin/packages/perl-perlio-gzip/package.py b/var/spack/repos/builtin/packages/perl-perlio-gzip/package.py index 832369692ba..b70a2d25468 100644 --- a/var/spack/repos/builtin/packages/perl-perlio-gzip/package.py +++ b/var/spack/repos/builtin/packages/perl-perlio-gzip/package.py @@ -9,7 +9,7 @@ class PerlPerlioGzip(PerlPackage): """Perl extension to provide a PerlIO layer to gzip/gunzip""" - homepage = "http://search.cpan.org/~nwclark/PerlIO-gzip/gzip.pm" + homepage = "https://metacpan.org/pod/PerlIO::gzip" url = "http://search.cpan.org/CPAN/authors/id/N/NW/NWCLARK/PerlIO-gzip-0.19.tar.gz" version('0.20', sha256='4848679a3f201e3f3b0c5f6f9526e602af52923ffa471a2a3657db786bd3bdc5') diff --git a/var/spack/repos/builtin/packages/perl-perlio-utf8-strict/package.py b/var/spack/repos/builtin/packages/perl-perlio-utf8-strict/package.py index fa5e76c5753..b34da3382ed 100644 --- a/var/spack/repos/builtin/packages/perl-perlio-utf8-strict/package.py +++ b/var/spack/repos/builtin/packages/perl-perlio-utf8-strict/package.py @@ -9,7 +9,7 @@ class PerlPerlioUtf8Strict(PerlPackage): """This module provides a fast and correct UTF-8 PerlIO layer.""" - homepage = "http://search.cpan.org/~leont/PerlIO-utf8_strict/lib/PerlIO/utf8_strict.pm" + homepage = "https://metacpan.org/pod/PerlIO::utf8_strict" url = "http://search.cpan.org/CPAN/authors/id/L/LE/LEONT/PerlIO-utf8_strict-0.002.tar.gz" version('0.002', sha256='6e3163f8a2f1d276c975f21789d7a07843586d69e3e6156ffb67ef6680ceb75f') diff --git a/var/spack/repos/builtin/packages/perl-soap-lite/package.py b/var/spack/repos/builtin/packages/perl-soap-lite/package.py index d06513d1545..291653a5d8d 100644 --- a/var/spack/repos/builtin/packages/perl-soap-lite/package.py +++ b/var/spack/repos/builtin/packages/perl-soap-lite/package.py @@ -9,7 +9,7 @@ class PerlSoapLite(PerlPackage): """Perl's Web Services Toolkit""" - homepage = "http://search.cpan.org/~phred/SOAP-Lite-1.20/lib/SOAP/Lite.pm" + homepage = "https://metacpan.org/pod/SOAP::Lite" url = "http://search.cpan.org/CPAN/authors/id/P/PH/PHRED/SOAP-Lite-1.22.tar.gz" version('1.22', sha256='92f492f8722cb3002cd1dce11238cee5599bb5bd451a062966df45223d33693a') diff --git a/var/spack/repos/builtin/packages/perl-statistics-descriptive/package.py b/var/spack/repos/builtin/packages/perl-statistics-descriptive/package.py index d381790ded5..df5791e373b 100644 --- a/var/spack/repos/builtin/packages/perl-statistics-descriptive/package.py +++ b/var/spack/repos/builtin/packages/perl-statistics-descriptive/package.py @@ -9,7 +9,7 @@ class PerlStatisticsDescriptive(PerlPackage): """Module of basic descriptive statistical functions.""" - homepage = "http://search.cpan.org/~shlomif/Statistics-Descriptive-3.0612/lib/Statistics/Descriptive.pm" + homepage = "https://metacpan.org/pod/Statistics::Descriptive" url = "http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/Statistics-Descriptive-3.0612.tar.gz" version('3.0612', sha256='772413148e5e00efb32f277c4254aa78b9112490a896208dcd0025813afdbf7a') diff --git a/var/spack/repos/builtin/packages/perl-statistics-pca/package.py b/var/spack/repos/builtin/packages/perl-statistics-pca/package.py index ac8ccbdfdd2..6ab05b18d68 100644 --- a/var/spack/repos/builtin/packages/perl-statistics-pca/package.py +++ b/var/spack/repos/builtin/packages/perl-statistics-pca/package.py @@ -9,7 +9,7 @@ class PerlStatisticsPca(PerlPackage): """A simple Perl implementation of Principal Component Analysis.""" - homepage = "http://search.cpan.org/~dsth/Statistics-PCA/lib/Statistics/PCA.pm" + homepage = "https://metacpan.org/pod/Statistics::PCA" url = "http://search.cpan.org/CPAN/authors/id/D/DS/DSTH/Statistics-PCA-0.0.1.tar.gz" version('0.0.1', sha256='f8adb10b00232123d103a5b49161ad46370f47fe0f752e5462a4dc15f9d46bc4') diff --git a/var/spack/repos/builtin/packages/perl-sub-exporter-progressive/package.py b/var/spack/repos/builtin/packages/perl-sub-exporter-progressive/package.py index 4215970423d..3b8f7e44bec 100644 --- a/var/spack/repos/builtin/packages/perl-sub-exporter-progressive/package.py +++ b/var/spack/repos/builtin/packages/perl-sub-exporter-progressive/package.py @@ -9,7 +9,7 @@ class PerlSubExporterProgressive(PerlPackage): """Progressive Sub::Exporter""" - homepage = "http://search.cpan.org/~frew/Sub-Exporter-Progressive-0.001013/lib/Sub/Exporter/Progressive.pm" + homepage = "https://metacpan.org/pod/Sub::Exporter::Progressive" url = "http://search.cpan.org/CPAN/authors/id/F/FR/FREW/Sub-Exporter-Progressive-0.001013.tar.gz" version('0.001013', sha256='d535b7954d64da1ac1305b1fadf98202769e3599376854b2ced90c382beac056') diff --git a/var/spack/repos/builtin/packages/perl-sub-exporter/package.py b/var/spack/repos/builtin/packages/perl-sub-exporter/package.py index b9395cb3c7a..dc9d007a2d7 100644 --- a/var/spack/repos/builtin/packages/perl-sub-exporter/package.py +++ b/var/spack/repos/builtin/packages/perl-sub-exporter/package.py @@ -9,7 +9,7 @@ class PerlSubExporter(PerlPackage): """A sophisticated exporter for custom-built routines""" - homepage = "http://search.cpan.org/~rjbs/Sub-Exporter-0.987/lib/Sub/Exporter.pm" + homepage = "https://metacpan.org/pod/Sub::Exporter" url = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Sub-Exporter-0.987.tar.gz" version('0.987', sha256='543cb2e803ab913d44272c7da6a70bb62c19e467f3b12aaac4c9523259b083d6') diff --git a/var/spack/repos/builtin/packages/perl-sub-identify/package.py b/var/spack/repos/builtin/packages/perl-sub-identify/package.py index fb2b283358b..e7aa6f259c6 100644 --- a/var/spack/repos/builtin/packages/perl-sub-identify/package.py +++ b/var/spack/repos/builtin/packages/perl-sub-identify/package.py @@ -9,7 +9,7 @@ class PerlSubIdentify(PerlPackage): """Retrieve names of code references""" - homepage = "http://search.cpan.org/~rgarcia/Sub-Identify-0.14/lib/Sub/Identify.pm" + homepage = "https://metacpan.org/pod/Sub::Identify" url = "http://search.cpan.org/CPAN/authors/id/R/RG/RGARCIA/Sub-Identify-0.14.tar.gz" version('0.14', sha256='068d272086514dd1e842b6a40b1bedbafee63900e5b08890ef6700039defad6f') diff --git a/var/spack/repos/builtin/packages/perl-sub-install/package.py b/var/spack/repos/builtin/packages/perl-sub-install/package.py index 4a3fddf2454..a1fdae95685 100644 --- a/var/spack/repos/builtin/packages/perl-sub-install/package.py +++ b/var/spack/repos/builtin/packages/perl-sub-install/package.py @@ -9,7 +9,7 @@ class PerlSubInstall(PerlPackage): """Install subroutines into packages easily""" - homepage = "http://search.cpan.org/~rjbs/Sub-Install-0.928/lib/Sub/Install.pm" + homepage = "https://metacpan.org/pod/Sub::Install" url = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Sub-Install-0.928.tar.gz" version('0.928', sha256='61e567a7679588887b7b86d427bc476ea6d77fffe7e0d17d640f89007d98ef0f') diff --git a/var/spack/repos/builtin/packages/perl-sub-name/package.py b/var/spack/repos/builtin/packages/perl-sub-name/package.py index 424b015779a..5aad046d07c 100644 --- a/var/spack/repos/builtin/packages/perl-sub-name/package.py +++ b/var/spack/repos/builtin/packages/perl-sub-name/package.py @@ -9,7 +9,7 @@ class PerlSubName(PerlPackage): """Name or rename a sub""" - homepage = "http://search.cpan.org/~ether/Sub-Name-0.21/lib/Sub/Name.pm" + homepage = "https://metacpan.org/pod/Sub::Name" url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/Sub-Name-0.21.tar.gz" version('0.21', sha256='bd32e9dee07047c10ae474c9f17d458b6e9885a6db69474c7a494ccc34c27117') diff --git a/var/spack/repos/builtin/packages/perl-sub-uplevel/package.py b/var/spack/repos/builtin/packages/perl-sub-uplevel/package.py index 969816a1d49..f7df9b47447 100644 --- a/var/spack/repos/builtin/packages/perl-sub-uplevel/package.py +++ b/var/spack/repos/builtin/packages/perl-sub-uplevel/package.py @@ -9,7 +9,7 @@ class PerlSubUplevel(PerlPackage): """apparently run a function in a higher stack frame""" - homepage = "http://search.cpan.org/~dagolden/Sub-Uplevel-0.2800/lib/Sub/Uplevel.pm" + homepage = "https://metacpan.org/pod/Sub::Uplevel" url = "http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.2800.tar.gz" version('0.2800', sha256='b4f3f63b80f680a421332d8851ddbe5a8e72fcaa74d5d1d98f3c8cc4a3ece293') diff --git a/var/spack/repos/builtin/packages/perl-svg/package.py b/var/spack/repos/builtin/packages/perl-svg/package.py index 4e10bdba775..33d02ad1422 100644 --- a/var/spack/repos/builtin/packages/perl-svg/package.py +++ b/var/spack/repos/builtin/packages/perl-svg/package.py @@ -10,7 +10,7 @@ class PerlSvg(PerlPackage): """Perl extension for generating Scalable Vector Graphics (SVG) documents. """ - homepage = "http://search.cpan.org/~manwar/SVG-2.78/lib/SVG.pm" + homepage = "https://metacpan.org/pod/SVG" url = "http://search.cpan.org/CPAN/authors/id/M/MA/MANWAR/SVG-2.78.tar.gz" version('2.78', sha256='a665c1f18c0529f3da0f4b631976eb47e0f71f6d6784ef3f44d32fd76643d6bb') diff --git a/var/spack/repos/builtin/packages/perl-task-weaken/package.py b/var/spack/repos/builtin/packages/perl-task-weaken/package.py index 4822c777e17..8accfc2dbef 100644 --- a/var/spack/repos/builtin/packages/perl-task-weaken/package.py +++ b/var/spack/repos/builtin/packages/perl-task-weaken/package.py @@ -9,7 +9,7 @@ class PerlTaskWeaken(PerlPackage): """Ensure that a platform has weaken support""" - homepage = "http://search.cpan.org/~adamk/Task-Weaken-1.04/lib/Task/Weaken.pm" + homepage = "https://metacpan.org/pod/Task::Weaken" url = "http://search.cpan.org/CPAN/authors/id/A/AD/ADAMK/Task-Weaken-1.04.tar.gz" version('1.04', sha256='67e271c55900fe7889584f911daa946e177bb60c8af44c32f4584b87766af3c4') diff --git a/var/spack/repos/builtin/packages/perl-termreadkey/package.py b/var/spack/repos/builtin/packages/perl-termreadkey/package.py index 2ea2d24a76e..92f20181733 100644 --- a/var/spack/repos/builtin/packages/perl-termreadkey/package.py +++ b/var/spack/repos/builtin/packages/perl-termreadkey/package.py @@ -15,7 +15,7 @@ class PerlTermreadkey(PerlPackage): "use Term::ReadKey" on any architecture and have a good likelihood of it working.""" - homepage = "http://search.cpan.org/perldoc/Term::ReadKey" + homepage = "https://metacpan.org/pod/Term::ReadKey" url = "http://www.cpan.org/authors/id/J/JS/JSTOWE/TermReadKey-2.37.tar.gz" version('2.38', sha256='5a645878dc570ac33661581fbb090ff24ebce17d43ea53fd22e105a856a47290') diff --git a/var/spack/repos/builtin/packages/perl-test-cleannamespaces/package.py b/var/spack/repos/builtin/packages/perl-test-cleannamespaces/package.py index 397f21f23d2..66ef54aa70f 100644 --- a/var/spack/repos/builtin/packages/perl-test-cleannamespaces/package.py +++ b/var/spack/repos/builtin/packages/perl-test-cleannamespaces/package.py @@ -10,7 +10,7 @@ class PerlTestCleannamespaces(PerlPackage): """This module lets you check your module's namespaces for imported functions you might have forgotten to remove""" - homepage = "http://search.cpan.org/~ether/Test-CleanNamespaces-0.22/lib/Test/CleanNamespaces.pm" + homepage = "https://metacpan.org/pod/Test::CleanNamespaces" url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/Test-CleanNamespaces-0.22.tar.gz" version('0.22', sha256='862a221994dd413b2f350450f22c96f57cac78784b1aca1a8fc763fc5449aaca') diff --git a/var/spack/repos/builtin/packages/perl-test-deep/package.py b/var/spack/repos/builtin/packages/perl-test-deep/package.py index ab781859ebb..0eae96921f1 100644 --- a/var/spack/repos/builtin/packages/perl-test-deep/package.py +++ b/var/spack/repos/builtin/packages/perl-test-deep/package.py @@ -9,7 +9,7 @@ class PerlTestDeep(PerlPackage): """Extremely flexible deep comparison""" - homepage = "http://search.cpan.org/~rjbs/Test-Deep-1.127/lib/Test/Deep.pm" + homepage = "https://metacpan.org/pod/Test::Deep" url = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Test-Deep-1.127.tar.gz" version('1.127', sha256='b78cfc59c41ba91f47281e2c1d2bfc4b3b1b42bfb76b4378bc88cc37b7af7268') diff --git a/var/spack/repos/builtin/packages/perl-test-differences/package.py b/var/spack/repos/builtin/packages/perl-test-differences/package.py index 3c9d4282d3c..e54a55a3200 100644 --- a/var/spack/repos/builtin/packages/perl-test-differences/package.py +++ b/var/spack/repos/builtin/packages/perl-test-differences/package.py @@ -9,7 +9,7 @@ class PerlTestDifferences(PerlPackage): """Test strings and data structures and show differences if not ok""" - homepage = "http://search.cpan.org/~dcantrell/Test-Differences-0.64/lib/Test/Differences.pm" + homepage = "https://metacpan.org/pod/Test::Differences" url = "http://search.cpan.org/CPAN/authors/id/D/DC/DCANTRELL/Test-Differences-0.64.tar.gz" version('0.64', sha256='9f459dd9c2302a0a73e2f5528a0ce7d09d6766f073187ae2c69e603adf2eb276') diff --git a/var/spack/repos/builtin/packages/perl-test-exception/package.py b/var/spack/repos/builtin/packages/perl-test-exception/package.py index 41078facc3c..61ebd801646 100644 --- a/var/spack/repos/builtin/packages/perl-test-exception/package.py +++ b/var/spack/repos/builtin/packages/perl-test-exception/package.py @@ -9,7 +9,7 @@ class PerlTestException(PerlPackage): """Test exception-based code""" - homepage = "http://search.cpan.org/~exodist/Test-Exception-0.43/lib/Test/Exception.pm" + homepage = "https://metacpan.org/pod/Test::Exception" url = "http://search.cpan.org/CPAN/authors/id/E/EX/EXODIST/Test-Exception-0.43.tar.gz" version('0.43', sha256='156b13f07764f766d8b45a43728f2439af81a3512625438deab783b7883eb533') diff --git a/var/spack/repos/builtin/packages/perl-test-fatal/package.py b/var/spack/repos/builtin/packages/perl-test-fatal/package.py index 8fbc58eb490..fa927519843 100644 --- a/var/spack/repos/builtin/packages/perl-test-fatal/package.py +++ b/var/spack/repos/builtin/packages/perl-test-fatal/package.py @@ -9,7 +9,7 @@ class PerlTestFatal(PerlPackage): """Incredibly simple helpers for testing code with exceptions""" - homepage = "http://search.cpan.org/~rjbs/Test-Fatal-0.014/lib/Test/Fatal.pm" + homepage = "https://metacpan.org/pod/Test::Fatal" url = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Test-Fatal-0.014.tar.gz" version('0.014', sha256='bcdcef5c7b2790a187ebca810b0a08221a63256062cfab3c3b98685d91d1cbb0') diff --git a/var/spack/repos/builtin/packages/perl-test-memory-cycle/package.py b/var/spack/repos/builtin/packages/perl-test-memory-cycle/package.py index 9675d19eca6..138d60dc583 100644 --- a/var/spack/repos/builtin/packages/perl-test-memory-cycle/package.py +++ b/var/spack/repos/builtin/packages/perl-test-memory-cycle/package.py @@ -9,7 +9,7 @@ class PerlTestMemoryCycle(PerlPackage): """Check for memory leaks and circular memory references""" - homepage = "http://search.cpan.org/~petdance/Test-Memory-Cycle-1.06/Cycle.pm" + homepage = "https://metacpan.org/pod/Test::Memory::Cycle" url = "http://search.cpan.org/CPAN/authors/id/P/PE/PETDANCE/Test-Memory-Cycle-1.06.tar.gz" version('1.06', sha256='9d53ddfdc964cd8454cb0da4c695b6a3ae47b45839291c34cb9d8d1cfaab3202') diff --git a/var/spack/repos/builtin/packages/perl-test-most/package.py b/var/spack/repos/builtin/packages/perl-test-most/package.py index f0057b9d341..e8caaae4d0e 100644 --- a/var/spack/repos/builtin/packages/perl-test-most/package.py +++ b/var/spack/repos/builtin/packages/perl-test-most/package.py @@ -9,7 +9,7 @@ class PerlTestMost(PerlPackage): """Most commonly needed test functions and features.""" - homepage = "http://search.cpan.org/~ovid/Test-Most-0.35/lib/Test/Most.pm" + homepage = "https://metacpan.org/pod/Test::Most" url = "http://search.cpan.org/CPAN/authors/id/O/OV/OVID/Test-Most-0.35.tar.gz" version('0.35', sha256='9897a6f4d751598d2ed1047e01c1554b01d0f8c96c45e7e845229782bf6f657f') diff --git a/var/spack/repos/builtin/packages/perl-test-needs/package.py b/var/spack/repos/builtin/packages/perl-test-needs/package.py index 11d46af928e..9b27efef23b 100644 --- a/var/spack/repos/builtin/packages/perl-test-needs/package.py +++ b/var/spack/repos/builtin/packages/perl-test-needs/package.py @@ -9,7 +9,7 @@ class PerlTestNeeds(PerlPackage): """Skip tests when modules not available.""" - homepage = "http://search.cpan.org/~haarg/Test-Needs-0.002005/lib/Test/Needs.pm" + homepage = "https://metacpan.org/pod/Test::Needs" url = "http://search.cpan.org/CPAN/authors/id/H/HA/HAARG/Test-Needs-0.002005.tar.gz" version('0.002005', sha256='5a4f33983586edacdbe00a3b429a9834190140190dab28d0f873c394eb7df399') diff --git a/var/spack/repos/builtin/packages/perl-test-requires/package.py b/var/spack/repos/builtin/packages/perl-test-requires/package.py index 6a3a6157dcf..69e5c214430 100644 --- a/var/spack/repos/builtin/packages/perl-test-requires/package.py +++ b/var/spack/repos/builtin/packages/perl-test-requires/package.py @@ -9,7 +9,7 @@ class PerlTestRequires(PerlPackage): """Checks to see if the module can be loaded.""" - homepage = "http://search.cpan.org/~tokuhirom/Test-Requires-0.10/lib/Test/Requires.pm" + homepage = "https://metacpan.org/pod/Test::Requires" url = "http://search.cpan.org/CPAN/authors/id/T/TO/TOKUHIROM/Test-Requires-0.10.tar.gz" version('0.10', sha256='2768a391d50ab94b95cefe540b9232d7046c13ee86d01859e04c044903222eb5') diff --git a/var/spack/repos/builtin/packages/perl-test-requiresinternet/package.py b/var/spack/repos/builtin/packages/perl-test-requiresinternet/package.py index 6fd9f909206..cdf26452635 100644 --- a/var/spack/repos/builtin/packages/perl-test-requiresinternet/package.py +++ b/var/spack/repos/builtin/packages/perl-test-requiresinternet/package.py @@ -9,7 +9,7 @@ class PerlTestRequiresinternet(PerlPackage): """Easily test network connectivity""" - homepage = "http://search.cpan.org/~mallen/Test-RequiresInternet-0.05/lib/Test/RequiresInternet.pm" + homepage = "https://metacpan.org/pod/Test::RequiresInternet" url = "http://search.cpan.org/CPAN/authors/id/M/MA/MALLEN/Test-RequiresInternet-0.05.tar.gz" version('0.05', sha256='bba7b32a1cc0d58ce2ec20b200a7347c69631641e8cae8ff4567ad24ef1e833e') diff --git a/var/spack/repos/builtin/packages/perl-test-warn/package.py b/var/spack/repos/builtin/packages/perl-test-warn/package.py index c93c285def3..7fa8292fdba 100644 --- a/var/spack/repos/builtin/packages/perl-test-warn/package.py +++ b/var/spack/repos/builtin/packages/perl-test-warn/package.py @@ -9,7 +9,7 @@ class PerlTestWarn(PerlPackage): """Perl extension to test methods for warnings""" - homepage = "http://search.cpan.org/~chorny/Test-Warn-0.30/Warn.pm" + homepage = "https://metacpan.org/pod/Test::Warn" url = "http://search.cpan.org/CPAN/authors/id/C/CH/CHORNY/Test-Warn-0.30.tar.gz" version('0.30', sha256='8197555b94189d919349a03f7058f83861f145af9bee59f505bfe47562144e41') diff --git a/var/spack/repos/builtin/packages/perl-text-csv/package.py b/var/spack/repos/builtin/packages/perl-text-csv/package.py index fb9db890a65..2a3b46b6a47 100644 --- a/var/spack/repos/builtin/packages/perl-text-csv/package.py +++ b/var/spack/repos/builtin/packages/perl-text-csv/package.py @@ -9,7 +9,7 @@ class PerlTextCsv(PerlPackage): """Comma-separated values manipulator (using XS or PurePerl)""" - homepage = "http://search.cpan.org/~ishigaki/Text-CSV/lib/Text/CSV.pm" + homepage = "https://metacpan.org/pod/Text::CSV" url = "http://search.cpan.org/CPAN/authors/id/I/IS/ISHIGAKI/Text-CSV-1.95.tar.gz" version('1.95', sha256='7e0a11d9c1129a55b68a26aa4b37c894279df255aa63ec8341d514ab848dbf61') diff --git a/var/spack/repos/builtin/packages/perl-text-diff/package.py b/var/spack/repos/builtin/packages/perl-text-diff/package.py index b06e68be4bf..4a6ebbf20b5 100644 --- a/var/spack/repos/builtin/packages/perl-text-diff/package.py +++ b/var/spack/repos/builtin/packages/perl-text-diff/package.py @@ -9,7 +9,7 @@ class PerlTextDiff(PerlPackage): """Provides a basic set of services akin to the GNU diff utility.""" - homepage = "http://search.cpan.org/~neilb/Text-Diff-1.45/lib/Text/Diff.pm" + homepage = "https://metacpan.org/pod/Text::Diff" url = "http://search.cpan.org/CPAN/authors/id/N/NE/NEILB/Text-Diff-1.45.tar.gz" version('1.45', sha256='e8baa07b1b3f53e00af3636898bbf73aec9a0ff38f94536ede1dbe96ef086f04') diff --git a/var/spack/repos/builtin/packages/perl-text-simpletable/package.py b/var/spack/repos/builtin/packages/perl-text-simpletable/package.py index 4f679940284..f417a1705b4 100644 --- a/var/spack/repos/builtin/packages/perl-text-simpletable/package.py +++ b/var/spack/repos/builtin/packages/perl-text-simpletable/package.py @@ -9,7 +9,7 @@ class PerlTextSimpletable(PerlPackage): """Simple Eyecandy ASCII Tables""" - homepage = "http://search.cpan.org/~mramberg/Text-SimpleTable/lib/Text/SimpleTable.pm" + homepage = "https://metacpan.org/pod/Text::SimpleTable" url = "http://search.cpan.org/CPAN/authors/id/M/MR/MRAMBERG/Text-SimpleTable-2.04.tar.gz" version('2.04', sha256='8d82f3140b1453b962956b7855ba288d435e7f656c3c40ced4e3e8e359ab5293') diff --git a/var/spack/repos/builtin/packages/perl-text-soundex/package.py b/var/spack/repos/builtin/packages/perl-text-soundex/package.py index 666097d7e04..2e2d673257c 100644 --- a/var/spack/repos/builtin/packages/perl-text-soundex/package.py +++ b/var/spack/repos/builtin/packages/perl-text-soundex/package.py @@ -12,7 +12,7 @@ class PerlTextSoundex(PerlPackage): pronunciation to be encoded to the same representation so that they can be matched despite minor differences in spelling""" - homepage = "http://search.cpan.org/~rjbs/Text-Soundex-3.05/Soundex.pm" + homepage = "https://metacpan.org/pod/Text::Soundex" url = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Text-Soundex-3.05.tar.gz" version('3.05', sha256='f6dd55b4280b25dea978221839864382560074e1d6933395faee2510c2db60ed') diff --git a/var/spack/repos/builtin/packages/perl-text-unidecode/package.py b/var/spack/repos/builtin/packages/perl-text-unidecode/package.py index f4efc023c6a..d39e82d25be 100644 --- a/var/spack/repos/builtin/packages/perl-text-unidecode/package.py +++ b/var/spack/repos/builtin/packages/perl-text-unidecode/package.py @@ -9,7 +9,7 @@ class PerlTextUnidecode(PerlPackage): """plain ASCII transliterations of Unicode text""" - homepage = "http://search.cpan.org/~sburke/Text-Unidecode/lib/Text/Unidecode.pm" + homepage = "https://metacpan.org/pod/Text::Unidecode" url = "http://search.cpan.org/CPAN/authors/id/S/SB/SBURKE/Text-Unidecode-1.30.tar.gz" version('1.30', sha256='6c24f14ddc1d20e26161c207b73ca184eed2ef57f08b5fb2ee196e6e2e88b1c6') diff --git a/var/spack/repos/builtin/packages/perl-time-hires/package.py b/var/spack/repos/builtin/packages/perl-time-hires/package.py index b7b4737d89e..8aeb3839a60 100644 --- a/var/spack/repos/builtin/packages/perl-time-hires/package.py +++ b/var/spack/repos/builtin/packages/perl-time-hires/package.py @@ -9,7 +9,7 @@ class PerlTimeHires(PerlPackage): """High resolution alarm, sleep, gettimeofday, interval timers""" - homepage = "http://search.cpan.org/~jhi/Time-HiRes-1.9746/HiRes.pm" + homepage = "https://metacpan.org/pod/Time::HiRes" url = "http://search.cpan.org/CPAN/authors/id/J/JH/JHI/Time-HiRes-1.9746.tar.gz" version('1.9746', sha256='89408c81bb827bc908c98eec50071e6e1158f38fa462865ecc3dc03aebf5f596') diff --git a/var/spack/repos/builtin/packages/perl-time-piece/package.py b/var/spack/repos/builtin/packages/perl-time-piece/package.py index e8f346340d3..883dba269cc 100644 --- a/var/spack/repos/builtin/packages/perl-time-piece/package.py +++ b/var/spack/repos/builtin/packages/perl-time-piece/package.py @@ -9,7 +9,7 @@ class PerlTimePiece(PerlPackage): """Object Oriented time objects""" - homepage = "http://search.cpan.org/~esaym/Time-Piece/Piece.pm" + homepage = "https://metacpan.org/pod/Time::Piece" url = "http://search.cpan.org/CPAN/authors/id/E/ES/ESAYM/Time-Piece-1.3203.tar.gz" version('1.3203', sha256='6971faf6476e4f715a5b5336f0a97317f36e7880fcca6c4db7c3e38e764a6f41') diff --git a/var/spack/repos/builtin/packages/perl-try-tiny/package.py b/var/spack/repos/builtin/packages/perl-try-tiny/package.py index 5c6398d47c9..79eb4220cc5 100644 --- a/var/spack/repos/builtin/packages/perl-try-tiny/package.py +++ b/var/spack/repos/builtin/packages/perl-try-tiny/package.py @@ -9,7 +9,7 @@ class PerlTryTiny(PerlPackage): """Minimal try/catch with proper preservation of $@""" - homepage = "http://search.cpan.org/~ether/Try-Tiny-0.28/lib/Try/Tiny.pm" + homepage = "https://metacpan.org/pod/Try::Tiny" url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/Try-Tiny-0.28.tar.gz" version('0.28', sha256='f1d166be8aa19942c4504c9111dade7aacb981bc5b3a2a5c5f6019646db8c146') diff --git a/var/spack/repos/builtin/packages/perl-uri/package.py b/var/spack/repos/builtin/packages/perl-uri/package.py index 8304c7a13b1..270ed504fc8 100644 --- a/var/spack/repos/builtin/packages/perl-uri/package.py +++ b/var/spack/repos/builtin/packages/perl-uri/package.py @@ -9,7 +9,7 @@ class PerlUri(PerlPackage): """Uniform Resource Identifiers (absolute and relative)""" - homepage = "http://search.cpan.org/~ether/URI-1.72/lib/URI.pm" + homepage = "https://metacpan.org/pod/URI" url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/URI-1.72.tar.gz" version('1.72', sha256='35f14431d4b300de4be1163b0b5332de2d7fbda4f05ff1ed198a8e9330d40a32') diff --git a/var/spack/repos/builtin/packages/perl-want/package.py b/var/spack/repos/builtin/packages/perl-want/package.py index fe7f20ae64a..5f3e21e8ca9 100644 --- a/var/spack/repos/builtin/packages/perl-want/package.py +++ b/var/spack/repos/builtin/packages/perl-want/package.py @@ -9,7 +9,7 @@ class PerlWant(PerlPackage): """A generalisation of wantarray.""" - homepage = "http://search.cpan.org/~robin/Want/Want.pm" + homepage = "https://metacpan.org/pod/Want" url = "http://search.cpan.org/CPAN/authors/id/R/RO/ROBIN/Want-0.29.tar.gz" version('0.29', sha256='b4e4740b8d4cb783591273c636bd68304892e28d89e88abf9273b1de17f552f7') diff --git a/var/spack/repos/builtin/packages/perl-xml-parser-lite/package.py b/var/spack/repos/builtin/packages/perl-xml-parser-lite/package.py index 34ff9568812..6897d90b98c 100644 --- a/var/spack/repos/builtin/packages/perl-xml-parser-lite/package.py +++ b/var/spack/repos/builtin/packages/perl-xml-parser-lite/package.py @@ -9,7 +9,7 @@ class PerlXmlParserLite(PerlPackage): """Lightweight pure-perl XML Parser (based on regexps)""" - homepage = "http://search.cpan.org/~phred/XML-Parser-Lite-0.721/lib/XML/Parser/Lite.pm" + homepage = "https://metacpan.org/pod/XML::Parser::Lite" url = "http://search.cpan.org/CPAN/authors/id/P/PH/PHRED/XML-Parser-Lite-0.721.tar.gz" version('0.721', sha256='5862a36ecab9db9aad021839c847e8d2f4ab5a7796c61d0fb069bb69cf7908ba') diff --git a/var/spack/repos/builtin/packages/perl-xml-parser/package.py b/var/spack/repos/builtin/packages/perl-xml-parser/package.py index 2bf04b02038..084baa5442b 100644 --- a/var/spack/repos/builtin/packages/perl-xml-parser/package.py +++ b/var/spack/repos/builtin/packages/perl-xml-parser/package.py @@ -10,7 +10,7 @@ class PerlXmlParser(PerlPackage): """XML::Parser - A perl module for parsing XML documents""" - homepage = "http://search.cpan.org/perldoc/XML::Parser" + homepage = "https://metacpan.org/pod/XML::Parser" url = "http://search.cpan.org/CPAN/authors/id/T/TO/TODDR/XML-Parser-2.44.tar.gz" version('2.44', sha256='1ae9d07ee9c35326b3d9aad56eae71a6730a73a116b9fe9e8a4758b7cc033216') diff --git a/var/spack/repos/builtin/packages/perl-xml-simple/package.py b/var/spack/repos/builtin/packages/perl-xml-simple/package.py index 688f17a4546..7b2ca9dcb9d 100644 --- a/var/spack/repos/builtin/packages/perl-xml-simple/package.py +++ b/var/spack/repos/builtin/packages/perl-xml-simple/package.py @@ -9,7 +9,7 @@ class PerlXmlSimple(PerlPackage): """An API for simple XML files""" - homepage = "http://search.cpan.org/~grantm/XML-Simple/lib/XML/Simple.pm" + homepage = "https://metacpan.org/pod/XML::Simple" url = "http://search.cpan.org/CPAN/authors/id/G/GR/GRANTM/XML-Simple-2.24.tar.gz" version('2.24', sha256='9a14819fd17c75fbb90adcec0446ceab356cab0ccaff870f2e1659205dc2424f') diff --git a/var/spack/repos/builtin/packages/perl-yaml-libyaml/package.py b/var/spack/repos/builtin/packages/perl-yaml-libyaml/package.py index 5b5d02d6f7c..26a1c07ee06 100644 --- a/var/spack/repos/builtin/packages/perl-yaml-libyaml/package.py +++ b/var/spack/repos/builtin/packages/perl-yaml-libyaml/package.py @@ -9,7 +9,7 @@ class PerlYamlLibyaml(PerlPackage): """Perl YAML Serialization using XS and libyaml """ - homepage = "http://search.cpan.org/~tinita/YAML-LibYAML/" + homepage = "https://metacpan.org/pod/YAML::LibYAML" url = "http://search.cpan.org/CPAN/authors/id/T/TI/TINITA/YAML-LibYAML-0.67.tar.gz" version('0.67', sha256='e65a22abc912a46a10abddf3b88d806757f44f164ab3167c8f0ff6aa30648187') diff --git a/var/spack/repos/builtin/packages/perl/package.py b/var/spack/repos/builtin/packages/perl/package.py index e318748cd7b..a4b7263633b 100644 --- a/var/spack/repos/builtin/packages/perl/package.py +++ b/var/spack/repos/builtin/packages/perl/package.py @@ -24,7 +24,7 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package """Perl 5 is a highly capable, feature-rich programming language with over 27 years of development.""" - homepage = "http://www.perl.org" + homepage = "https://www.perl.org" # URL must remain http:// so Spack can bootstrap curl url = "http://www.cpan.org/src/5.0/perl-5.24.1.tar.gz" diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py index 1ee1a3825f3..683420b8832 100644 --- a/var/spack/repos/builtin/packages/petsc/package.py +++ b/var/spack/repos/builtin/packages/petsc/package.py @@ -11,14 +11,14 @@ class Petsc(Package, CudaPackage, ROCmPackage): differential equations. """ - homepage = "http://www.mcs.anl.gov/petsc/index.html" + homepage = "https://www.mcs.anl.gov/petsc/index.html" url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.15.0.tar.gz" git = "https://gitlab.com/petsc/petsc.git" maintainers = ['balay', 'barrysmith', 'jedbrown'] version('main', branch='main') - version('xsdk-0.2.0', tag='xsdk-0.2.0') + version('3.15.3', sha256='483028088020001e6f8d57b78a7fc880ed52d6693f57d627779c428f55cff73d') version('3.15.2', sha256='3b10c19c69fc42e01a38132668724a01f1da56f5c353105cd28f1120cc9041d8') version('3.15.1', sha256='c0ac6566e69d1d70b431e07e7598e9de95e84891c2452db1367c846b75109deb') version('3.15.0', sha256='ac46db6bfcaaec8cd28335231076815bd5438f401a4a05e33736b4f9ff12e59a') @@ -91,12 +91,24 @@ class Petsc(Package, CudaPackage, ROCmPackage): description='Activates support for HDF5 (only parallel)') variant('hypre', default=True, 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') # 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, description='Activates support for SuperluDist (only parallel)') + variant('strumpack', default=False, + description='Activates support for Strumpack') + variant('scalapack', default=False, + description='Activates support for Scalapack') variant('trilinos', default=False, description='Activates support for Trilinos (only parallel)') variant('mkl-pardiso', default=False, @@ -157,6 +169,8 @@ class Petsc(Package, CudaPackage, ROCmPackage): conflicts('+fftw', when='~mpi', msg=mpi_msg) conflicts('+hdf5', when='~mpi', msg=mpi_msg) conflicts('+hypre', when='~mpi', msg=mpi_msg) + conflicts('+hpddm', when='~mpi', msg=mpi_msg) + conflicts('+parmmg', when='~mpi', msg=mpi_msg) conflicts('+moab', when='~mpi', msg=mpi_msg) conflicts('+mumps', when='~mpi', msg=mpi_msg) conflicts('+p4est', when='~mpi', msg=mpi_msg) @@ -225,6 +239,9 @@ class Petsc(Package, CudaPackage, ROCmPackage): depends_on('parmetis+int64', when='+metis+mpi+int64') depends_on('parmetis~int64', when='+metis+mpi~int64') depends_on('valgrind', when='+valgrind') + depends_on('mmg', when='+mmg') + depends_on('parmmg', when='+parmmg') + depends_on('tetgen+pic', when='+tetgen') # Hypre does not support complex numbers. # Also PETSc prefer to build it without internal superlu, likely due to # conflict in headers see @@ -255,6 +272,10 @@ class Petsc(Package, CudaPackage, ROCmPackage): depends_on('superlu-dist@xsdk-0.2.0+int64', when='@xsdk-0.2.0+superlu-dist+mpi+int64') depends_on('superlu-dist@develop~int64', when='@main+superlu-dist+mpi~int64') depends_on('superlu-dist@develop+int64', when='@main+superlu-dist+mpi+int64') + depends_on('strumpack', when='+strumpack') + depends_on('scalapack', when='+strumpack') + depends_on('metis', when='+strumpack') + depends_on('scalapack', when='+scalapack') 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('mumps+mpi~int64~metis~parmetis+openmp', when='+mumps~metis+openmp') @@ -366,71 +387,88 @@ def install(self, spec, prefix): else: options.append('--with-clanguage=C') - # PETSc depends on scalapack when '+mumps' (see depends()) - # help PETSc pick up Scalapack from MKL - if spec.satisfies('+mumps'): - scalapack = spec['scalapack'].libs - options.extend([ - '--with-scalapack-lib=%s' % scalapack.joined(), - '--with-scalapack=1' - ]) - else: - options.extend([ - '--with-scalapack=0' - ]) - # Activates library support if needed (i.e. direct dependency) - if '^libjpeg-turbo' in spec: - jpeg_library = ('libjpeg-turbo', 'libjpeg') - else: - jpeg_library = 'libjpeg' + jpeg_sp = spec['jpeg'].name if 'jpeg' in spec else 'jpeg' + scalapack_sp = spec['scalapack'].name if 'scalapack' in spec else 'scalapack' + # tuple format (spacklibname, petsclibname, useinc, uselib) + # default: 'gmp', => ('gmp', 'gmp', True, True) + # any other combination needs a full tuple + # if not (useinc || uselib): usedir - i.e (False, False) for library in ( - 'cuda', - 'hip', + ('cuda', 'cuda', False, False), + ('hip', 'hip', False, False), 'metis', 'hypre', 'parmetis', + ('superlu-dist', 'superlu_dist', True, True), + ('scotch', 'ptscotch', True, True), + ('suite-sparse:umfpack,klu,cholmod,btf,ccolamd,colamd,camd,amd, \ + suitesparseconfig', 'suitesparse', True, True), + ('hdf5:hl,fortran', 'hdf5', True, True), + 'zlib', 'mumps', - 'trilinos', - 'fftw', - 'valgrind', + ('trilinos', 'trilinos', False, False), + ('fftw:mpi', 'fftw', True, True), + ('valgrind', 'valgrind', False, False), 'gmp', 'libpng', - 'giflib', + ('giflib', 'giflib', False, False), 'mpfr', - ('netcdf-c', 'netcdf'), - ('parallel-netcdf', 'pnetcdf'), - 'moab', + ('netcdf-c', 'netcdf', True, True), + ('parallel-netcdf', 'pnetcdf', True, True), + ('moab', 'moab', False, False), 'openmp', - 'random123', + ('random123', 'random123', False, False), 'exodusii', 'cgns', 'memkind', 'p4est', - 'saws', - ('libyaml', 'yaml'), + ('saws', 'saws', False, False), + ('libyaml', 'yaml', True, True), 'hwloc', - jpeg_library, + (jpeg_sp, 'libjpeg', True, True), + (scalapack_sp, 'scalapack', False, True), + 'strumpack', + 'mmg', + 'parmmg', + ('tetgen', 'tetgen', False, False), ): # Cannot check `library in spec` because of transitive deps # Cannot check variants because parmetis keys on +metis if isinstance(library, tuple): - library, petsclibname = library + spacklibname, petsclibname, useinc, uselib = library else: + spacklibname = library petsclibname = library + useinc = True + uselib = True - library_requested = library in spec.dependencies_dict() + library_requested = spacklibname.split(':')[0] in spec.dependencies_dict() options.append( '--with-{library}={value}'.format( library=petsclibname, value=('1' if library_requested else '0')) ) if library_requested: - options.append( - '--with-{library}-dir={path}'.format( - library=petsclibname, path=spec[library].prefix) - ) + if useinc or uselib: + if useinc: + options.append( + '--with-{library}-include={value}'.format( + library=petsclibname, + value=spec[spacklibname].prefix.include) + ) + if uselib: + options.append( + '--with-{library}-lib={value}'.format( + library=petsclibname, + value=spec[spacklibname].libs.joined()) + ) + else: + options.append( + '--with-{library}-dir={path}'.format( + library=petsclibname, path=spec[spacklibname].prefix) + ) if '+cuda' in spec: if not spec.satisfies('cuda_arch=none'): @@ -441,127 +479,29 @@ def install(self, spec, prefix): options.append('CUDAFLAGS=-gencode arch=compute_{0},code=sm_{0}' .format(cuda_arch[0])) - # PETSc does not pick up SuperluDist from the dir as they look for - # superlu_dist_4.1.a if 'superlu-dist' in spec: if spec.satisfies('@3.10.3:'): options.append('--with-cxx-dialect=C++11') - options.extend([ - '--with-superlu_dist-include=%s' % - spec['superlu-dist'].prefix.include, - '--with-superlu_dist-lib=%s' % - join_path(spec['superlu-dist'].prefix.lib, - 'libsuperlu_dist.a'), - '--with-superlu_dist=1' - ]) - else: - options.append( - '--with-superlu_dist=0' - ) - # SuiteSparse: configuring using '--with-suitesparse-dir=...' has some - # issues, so specify directly the include path and the libraries. - if '+suite-sparse' in spec: - ss_spec = 'suite-sparse:umfpack,klu,cholmod,btf,ccolamd,colamd,' \ - 'camd,amd,suitesparseconfig' - options.extend([ - '--with-suitesparse-include=%s' % spec[ss_spec].prefix.include, - '--with-suitesparse-lib=%s' % spec[ss_spec].libs.joined(), - '--with-suitesparse=1' - ]) - else: - options.append('--with-suitesparse=0') - - # PTScotch: Since we are not using the Parmetis wrapper for now, - # we cannot use '--with-ptscotch-dir=...' - if '+ptscotch' in spec: - options.extend([ - '--with-ptscotch-include=%s' % spec['scotch'].prefix.include, - '--with-ptscotch-lib=%s' % spec['scotch'].libs.joined(), - '--with-ptscotch=1' - ]) - else: - options.append('--with-ptscotch=0') - - # hdf5: configure detection is convoluted for pflotran - if '+hdf5' in spec: - options.extend([ - '--with-hdf5-include=%s' % spec['hdf5'].prefix.include, - '--with-hdf5-lib=%s' % spec['hdf5:hl,fortran'].libs.joined(), - '--with-hdf5=1' - ]) - else: - options.append('--with-hdf5=0') - - # zlib: configuring using '--with-zlib-dir=...' has some issues with - # SuiteSparse so specify directly the include path and the libraries. - if 'zlib' in spec: - options.extend([ - '--with-zlib-include=%s' % spec['zlib'].prefix.include, - '--with-zlib-lib=%s' % spec['zlib'].libs.joined(), - '--with-zlib=1' - ]) - else: - options.append('--with-zlib=0') if '+mkl-pardiso' in spec: options.append( '--with-mkl_pardiso-dir=%s' % spec['mkl'].prefix ) + # For the moment, HPDDM does not work as a dependency + # using download instead + if '+hpddm' in spec: + options.append('--download-hpddm') + python('configure', '--prefix=%s' % prefix, *options) # PETSc has its own way of doing parallel make. make('MAKE_NP=%s' % make_jobs, parallel=False) make("install") - # solve Poisson equation in 2D to make sure nothing is broken: - if ('mpi' in spec) and self.run_tests: - with working_dir('src/ksp/ksp/examples/tutorials'): - env['PETSC_DIR'] = self.prefix - cc = Executable(spec['mpi'].mpicc) - cc('ex50.c', '-I%s' % prefix.include, '-L%s' % prefix.lib, - '-lpetsc', '-lm', '-o', 'ex50') - run = Executable(join_path(spec['mpi'].prefix.bin, 'mpirun')) - # For Spectrum MPI, if -np is omitted, the default behavior is - # to assign one process per process slot, where the default - # process slot allocation is one per core. On systems with - # many cores, the number of processes can exceed the size of - # the grid specified when the testcase is run and the test case - # fails. Specify a small number of processes to prevent - # failure. - # For more information about Spectrum MPI invocation, see URL - # https://www.ibm.com/support/knowledgecenter/en/SSZTET_10.1.0/smpi02/smpi02_mpirun_options.html - if ('spectrum-mpi' in spec): - run.add_default_arg('-np') - run.add_default_arg('4') - run('ex50', '-da_grid_x', '4', '-da_grid_y', '4') - if 'superlu-dist' in spec: - run('ex50', - '-da_grid_x', '4', - '-da_grid_y', '4', - '-pc_type', 'lu', - '-pc_factor_mat_solver_package', 'superlu_dist') - - if 'mumps' in spec: - run('ex50', - '-da_grid_x', '4', - '-da_grid_y', '4', - '-pc_type', 'lu', - '-pc_factor_mat_solver_package', 'mumps') - - if 'hypre' in spec: - run('ex50', - '-da_grid_x', '4', - '-da_grid_y', '4', - '-pc_type', 'hypre', - '-pc_hypre_type', 'boomeramg') - - if 'mkl-pardiso' in spec: - run('ex50', - '-da_grid_x', '4', - '-da_grid_y', '4', - '-pc_type', 'lu', - '-pc_factor_mat_solver_package', 'mkl_pardiso') + if self.run_tests: + make('check PETSC_ARCH="" PETSC_DIR={0}'.format(self.prefix), + parallel=False) def setup_build_environment(self, env): # configure fails if these env vars are set outside of Spack @@ -584,3 +524,49 @@ def headers(self): or None # return None to indicate failure # For the 'libs' property - use the default handler. + + @run_after('install') + 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`.""" + self.cache_extra_test_sources('src/ksp/ksp/tutorials') + + def test(self): + # solve Poisson equation in 2D to make sure nothing is broken: + spec = self.spec + env['PETSC_DIR'] = self.prefix + env['PETSC_ARCH'] = '' + if ('+mpi' in spec): + runexe = Executable(join_path(spec['mpi'].prefix.bin, + 'mpiexec')).command + runopt = ['-n', '4'] + else: + runexe = Executable(join_path(self.prefix, + 'lib/petsc/bin/petsc-mpiexec.uni')).command + runopt = ['-n', '1'] + w_dir = join_path(self.install_test_root, 'src/ksp/ksp/tutorials') + with working_dir(w_dir): + testexe = ['ex50', '-da_grid_x', '4', '-da_grid_y', '4'] + testdict = { + None: [], + '+superlu-dist': + ['-pc_type', 'lu', '-pc_factor_mat_solver_type', 'superlu_dist'], + '+mumps': + ['-pc_type', 'lu', '-pc_factor_mat_solver_type', 'mumps'], + '+hypre': + ['-pc_type', 'hypre', '-pc_hypre_type', 'boomeramg'], + '+mkl-pardiso': + ['-pc_type', 'lu', '-pc_factor_mat_solver_type', 'mkl_pardiso'], + } + make('ex50', parallel=False) + for feature, featureopt in testdict.items(): + if not feature or feature in spec: + self.run_test(runexe, runopt + testexe + featureopt) + if '+cuda' in spec: + make('ex7', parallel=False) + testexe = ['ex7', '-mat_type', 'aijcusparse', + '-sub_pc_factor_mat_solver_type', 'cusparse', + '-sub_ksp_type', 'preonly', '-sub_pc_type', 'ilu', + '-use_gpu_aware_mpi', '0'] + self.run_test(runexe, runopt + testexe) + make('clean', parallel=False) diff --git a/var/spack/repos/builtin/packages/pflotran/package.py b/var/spack/repos/builtin/packages/pflotran/package.py index a51299d4418..7fedce9edfd 100644 --- a/var/spack/repos/builtin/packages/pflotran/package.py +++ b/var/spack/repos/builtin/packages/pflotran/package.py @@ -12,7 +12,7 @@ class Pflotran(AutotoolsPackage): subsurface flow and reactive transport code. """ - homepage = "http://www.pflotran.org" + homepage = "https://www.pflotran.org" git = "https://bitbucket.org/pflotran/pflotran.git" maintainers = ['ghammond86', 'balay'] @@ -22,7 +22,6 @@ class Pflotran(AutotoolsPackage): version('xsdk-0.5.0', commit='98a959c591b72f73373febf5f9735d2c523b4c20') version('xsdk-0.4.0', commit='c851cbc94fc56a32cfdb0678f3c24b9936a5584e') version('xsdk-0.3.0', branch='release/xsdk-0.3.0') - version('xsdk-0.2.0', commit='4da763c6136df57caff43f98c926433958cfdea6') depends_on('mpi') depends_on('hdf5@1.8.12:+mpi+fortran+hl') @@ -30,7 +29,6 @@ class Pflotran(AutotoolsPackage): depends_on('petsc@3.14:+hdf5+metis', when='@xsdk-0.6.0') depends_on('petsc@3.12:+hdf5+metis', when='@xsdk-0.5.0') depends_on('petsc@3.10:+hdf5+metis', when='@xsdk-0.4.0') - depends_on('petsc@xsdk-0.2.0+hdf5+metis', when='@xsdk-0.2.0') depends_on('petsc@3.8.0:+hdf5+metis', when='@xsdk-0.3.0') @property diff --git a/var/spack/repos/builtin/packages/pgi/package.py b/var/spack/repos/builtin/packages/pgi/package.py index db0f38cf991..2f0f8a47127 100644 --- a/var/spack/repos/builtin/packages/pgi/package.py +++ b/var/spack/repos/builtin/packages/pgi/package.py @@ -19,7 +19,7 @@ class Pgi(Package): file to a mirror so that Spack can find it. For instructions on how to set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" - homepage = "http://www.pgroup.com/" + homepage = "https://www.pgroup.com/" manual_download = True version('20.4', sha256='f3ecc2104b304cd5c8b20e3ffdb5da88f2b5f7cc148e8daf00561928a5cbbc2e') diff --git a/var/spack/repos/builtin/packages/photos/package.py b/var/spack/repos/builtin/packages/photos/package.py index 7c7407ba661..d014b081532 100644 --- a/var/spack/repos/builtin/packages/photos/package.py +++ b/var/spack/repos/builtin/packages/photos/package.py @@ -10,7 +10,7 @@ class Photos(AutotoolsPackage): """ Photos is a Monte Carlo program for bremsstrahlung in the decay of particles and resonances.""" - homepage = "http://photospp.web.cern.ch/photospp/" + homepage = "https://photospp.web.cern.ch/photospp/" url = "http://photospp.web.cern.ch/photospp/resources/PHOTOS.3.61/PHOTOS.3.61-LHC.tar.gz" tags = ['hep'] diff --git a/var/spack/repos/builtin/packages/phylip/package.py b/var/spack/repos/builtin/packages/phylip/package.py index 0639f9cfa6a..69885222015 100644 --- a/var/spack/repos/builtin/packages/phylip/package.py +++ b/var/spack/repos/builtin/packages/phylip/package.py @@ -10,7 +10,7 @@ class Phylip(Package): """PHYLIP (the PHYLogeny Inference Package) is a package of programs for inferring phylogenies (evolutionary trees).""" - homepage = "http://evolution.genetics.washington.edu/phylip/" + homepage = "https://evolution.genetics.washington.edu/phylip/" url = "http://evolution.gs.washington.edu/phylip/download/phylip-3.697.tar.gz" version('3.697', sha256='9a26d8b08b8afea7f708509ef41df484003101eaf4beceb5cf7851eb940510c1') diff --git a/var/spack/repos/builtin/packages/picard/package.py b/var/spack/repos/builtin/packages/picard/package.py index 9abbc3cf38d..1d4a0d86426 100644 --- a/var/spack/repos/builtin/packages/picard/package.py +++ b/var/spack/repos/builtin/packages/picard/package.py @@ -15,7 +15,7 @@ class Picard(Package): sequencing (HTS) data and formats such as SAM/BAM/CRAM and VCF. """ - homepage = "http://broadinstitute.github.io/picard/" + homepage = "https://broadinstitute.github.io/picard/" url = "https://github.com/broadinstitute/picard/releases/download/2.9.2/picard.jar" _urlfmt = "https://github.com/broadinstitute/picard/releases/download/{0}/picard.jar" _oldurlfmt = 'https://github.com/broadinstitute/picard/releases/download/{0}/picard-tools-{0}.zip' diff --git a/var/spack/repos/builtin/packages/pig/package.py b/var/spack/repos/builtin/packages/pig/package.py index 5a279dd66ae..6af9c1e3c18 100644 --- a/var/spack/repos/builtin/packages/pig/package.py +++ b/var/spack/repos/builtin/packages/pig/package.py @@ -14,7 +14,7 @@ class Pig(Package): transforms data. """ - homepage = "http://archive.apache.org" + homepage = "https://archive.apache.org" url = "http://archive.apache.org/dist/hadoop/pig/stable/pig-0.7.0.tar.gz" version('0.7.0', sha256='fa7211fb339f547f679a3dd90055f1ddc45d5754d88463e4cc39c380ddf8b02a') diff --git a/var/spack/repos/builtin/packages/pigz/package.py b/var/spack/repos/builtin/packages/pigz/package.py index 1af66b3b2e6..ba602d633cf 100644 --- a/var/spack/repos/builtin/packages/pigz/package.py +++ b/var/spack/repos/builtin/packages/pigz/package.py @@ -10,7 +10,7 @@ class Pigz(MakefilePackage): """A parallel implementation of gzip for modern multi-processor, multi-core machines.""" - homepage = "http://zlib.net/pigz/" + homepage = "https://zlib.net/pigz/" url = "https://github.com/madler/pigz/archive/v2.3.4.tar.gz" version('2.4', sha256='e228e7d18b34c4ece8d596eb6eee97bde533c6beedbb728d07d3abe90b4b1b52') diff --git a/var/spack/repos/builtin/packages/pindel/package.py b/var/spack/repos/builtin/packages/pindel/package.py index c69c7768c8c..15226c9520f 100644 --- a/var/spack/repos/builtin/packages/pindel/package.py +++ b/var/spack/repos/builtin/packages/pindel/package.py @@ -9,7 +9,7 @@ class Pindel(MakefilePackage): """Pindel can detect breakpoints from next-gen sequence data.""" - homepage = "http://gmt.genome.wustl.edu/packages/pindel/" + homepage = "https://gmt.genome.wustl.edu/packages/pindel/" url = "https://github.com/genome/pindel/archive/v0.2.5.tar.gz" version('0.2.5b8', sha256='7f21fda0b751d420831724d96e60873ce332139cfd24396e81c7f1ae2f707a19') diff --git a/var/spack/repos/builtin/packages/pixz/package.py b/var/spack/repos/builtin/packages/pixz/package.py index b23b377ae8f..4f1663f3325 100644 --- a/var/spack/repos/builtin/packages/pixz/package.py +++ b/var/spack/repos/builtin/packages/pixz/package.py @@ -9,7 +9,7 @@ class Pixz(AutotoolsPackage): """Pixz (pronounced pixie) is a parallel, indexing version of xz. """ - homepage = "http://www.github.com/vasi/pixz" + homepage = "https://www.github.com/vasi/pixz" url = "https://github.com/vasi/pixz/releases/download/v1.0.6/pixz-1.0.6.tar.xz" version('1.0.6', sha256='02c50746b134fa1b1aae41fcc314d7c6f1919b3d48bcdea01bf11769f83f72e8') diff --git a/var/spack/repos/builtin/packages/pkg-config/package.py b/var/spack/repos/builtin/packages/pkg-config/package.py index f0f06d81ed7..f8e0c85e2ac 100644 --- a/var/spack/repos/builtin/packages/pkg-config/package.py +++ b/var/spack/repos/builtin/packages/pkg-config/package.py @@ -10,7 +10,7 @@ class PkgConfig(AutotoolsPackage): """pkg-config is a helper tool used when compiling applications and libraries""" - homepage = "http://www.freedesktop.org/wiki/Software/pkg-config/" + homepage = "https://www.freedesktop.org/wiki/Software/pkg-config/" # URL must remain http:// so Spack can bootstrap curl url = "http://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz" diff --git a/var/spack/repos/builtin/packages/pkgconf/package.py b/var/spack/repos/builtin/packages/pkgconf/package.py index 7f2d039fcba..1523cd19aaf 100644 --- a/var/spack/repos/builtin/packages/pkgconf/package.py +++ b/var/spack/repos/builtin/packages/pkgconf/package.py @@ -16,6 +16,7 @@ class Pkgconf(AutotoolsPackage): # URL must remain http:// so Spack can bootstrap curl url = "http://distfiles.dereferenced.org/pkgconf/pkgconf-1.6.3.tar.xz" + version('1.8.0', sha256='ef9c7e61822b7cb8356e6e9e1dca58d9556f3200d78acab35e4347e9d4c2bbaf') version('1.7.4', sha256='d73f32c248a4591139a6b17777c80d4deab6b414ec2b3d21d0a24be348c476ab') version('1.7.3', sha256='b846aea51cf696c3392a0ae58bef93e2e72f8e7073ca6ad1ed8b01c85871f9c0') version('1.6.3', sha256='61f0b31b0d5ea0e862b454a80c170f57bad47879c0c42bd8de89200ff62ea210') diff --git a/var/spack/repos/builtin/packages/plasma/package.py b/var/spack/repos/builtin/packages/plasma/package.py index 8d192a4a38a..7e263dccdbc 100644 --- a/var/spack/repos/builtin/packages/plasma/package.py +++ b/var/spack/repos/builtin/packages/plasma/package.py @@ -15,12 +15,13 @@ class Plasma(CMakePackage): solving linear systems of equations, least squares problems, eigenvalue problems, and singular value problems.""" - homepage = "https://bitbucket.org/icl/plasma/" - url = "https://bitbucket.org/icl/plasma/downloads/plasma-18.11.0.tar.gz" - git = "https://bitbucket.org/icl/plasma" + homepage = "https://github.com/icl-utk-edu/plasma/" + url = "https://github.com/icl-utk-edu/plasma/releases/download/21.8.29/plasma-21.8.29.tar.gz" + git = "https://github.com/icl-utk-edu/plasma" maintainers = ['luszczek'] version("develop", git=git) + version('21.8.29', sha256='e0bb4d9143c8540f9f46cbccac9ed0cbea12500a864e6954fce2fe94ea057a10') version("20.9.20", sha256="2144a77b739f8dd2f0dbe5b64d94cde0e916f55c4eb170facd168c0db7fc7970") version("19.8.1", sha256="3a5db6eabf91aec782b7f27b17a7f6b8ce2c9d8e648c0e9c0ff5d87277ba4d17") version("19.8.0", sha256="19a950ade8a7c8d082f372789c9f874274a63217ecff26e33f366402f060f071") @@ -30,7 +31,7 @@ class Plasma(CMakePackage): version("18.9.0", sha256="753eae28ea48986a2cc7b8204d6eef646584541e59d42c3c94fa9879116b0774") version("17.1", sha256="d4b89f7c3d240a69dfe986284a14471eec4830b9e352ae902ea8861f15573dee", - url="https://bitbucket.org/icl/plasma/downloads/plasma-17.1.tar.gz") + url="https://github.com/icl-utk-edu/plasma/releases/download/17.01/plasma-17.01.tar.gz") variant("shared", default=True, description="Build shared library (disables static library)") diff --git a/var/spack/repos/builtin/packages/plumed/package.py b/var/spack/repos/builtin/packages/plumed/package.py index 78c3c30c9c1..6408c152252 100644 --- a/var/spack/repos/builtin/packages/plumed/package.py +++ b/var/spack/repos/builtin/packages/plumed/package.py @@ -20,7 +20,7 @@ class Plumed(AutotoolsPackage): The software, written in C++, can be easily interfaced with both fortran and C/C++ codes. """ - homepage = 'http://www.plumed.org/' + homepage = 'https://www.plumed.org/' url = 'https://github.com/plumed/plumed2/archive/v2.6.3.tar.gz' git = 'https://github.com/plumed/plumed2.git' diff --git a/var/spack/repos/builtin/packages/pmdk/package.py b/var/spack/repos/builtin/packages/pmdk/package.py index b600886fdb4..3879a724bc0 100644 --- a/var/spack/repos/builtin/packages/pmdk/package.py +++ b/var/spack/repos/builtin/packages/pmdk/package.py @@ -12,7 +12,7 @@ class Pmdk(Package): for persistent memory """ - homepage = "http://pmem.io/pmdk/" + homepage = "https://pmem.io/pmdk/" url = "https://github.com/pmem/pmdk/archive/1.5.tar.gz" git = "https://github.com/pmem/pmdk.git" diff --git a/var/spack/repos/builtin/packages/pmgr-collective/package.py b/var/spack/repos/builtin/packages/pmgr-collective/package.py index 47e60fa550f..df311eb200a 100644 --- a/var/spack/repos/builtin/packages/pmgr-collective/package.py +++ b/var/spack/repos/builtin/packages/pmgr-collective/package.py @@ -9,7 +9,7 @@ class PmgrCollective(Package): """PMGR_COLLECTIVE provides a scalable network for bootstrapping MPI jobs.""" - homepage = "http://www.sourceforge.net/projects/pmgrcollective" + homepage = "https://www.sourceforge.net/projects/pmgrcollective" url = "http://downloads.sourceforge.net/project/pmgrcollective/pmgrcollective/PMGR_COLLECTIVE-1.0/pmgr_collective-1.0.tgz" version('1.0', sha256='c8022d1128ce5e8f637166af6e55c13700e665550e468b8cdb1531441c6bb7f5') diff --git a/var/spack/repos/builtin/packages/podio/package.py b/var/spack/repos/builtin/packages/podio/package.py index bec083e0c3f..a6e6e10a02d 100644 --- a/var/spack/repos/builtin/packages/podio/package.py +++ b/var/spack/repos/builtin/packages/podio/package.py @@ -17,6 +17,7 @@ class Podio(CMakePackage): tags = ["hep", "key4hep"] version('master', branch='master') + version('0.13.1', sha256='2ae561c2a0e46c44245aa2098772374ad246c9fcb1956875c95c69c963501353') version('0.13', sha256='e9cbd4e25730003d3706ad82e28b15cb5bdc524a78b0a26e90b89ea852101498') version('0.12', sha256='1729a2ce21e8b307fc37dfb9a9f5ae031e9f4be4992385cf99dba3e5fdf5323a') version('0.11', sha256='4b2765566a14f0ddece2c894634e0a8e4f42f3e44392addb9110d856f6267fb6') diff --git a/var/spack/repos/builtin/packages/poke/package.py b/var/spack/repos/builtin/packages/poke/package.py index 4e2eadc79e3..f90c7149d56 100644 --- a/var/spack/repos/builtin/packages/poke/package.py +++ b/var/spack/repos/builtin/packages/poke/package.py @@ -6,7 +6,7 @@ class Poke(AutotoolsPackage, GNUMirrorPackage): """"The extensible editor for structured binary data""" - homepage = "http://www.jemarch.net/poke.html" + homepage = "https://www.jemarch.net/poke.html" gnu_mirror_path = 'poke/poke-1.0.tar.gz' maintainers = ['ChristianTackeGSI'] diff --git a/var/spack/repos/builtin/packages/poplddecay/package.py b/var/spack/repos/builtin/packages/poplddecay/package.py index 4a90da46b06..16d39d9e58d 100644 --- a/var/spack/repos/builtin/packages/poplddecay/package.py +++ b/var/spack/repos/builtin/packages/poplddecay/package.py @@ -17,7 +17,7 @@ class Poplddecay(MakefilePackage): maintainers = ['robqiao'] - version('3.41', sha256='09a1ad01581520b84ef73eaa0b199879c84e77b259ba6ff06dbca5fcfc090457') + version('3.41', sha256='b84fe5c9a1e1f6798eebbe4445b0b4bc7d02ac9f03fd01cb9cdcc8ee4db71040') version('3.40', sha256='5070930166fb90f7eaaa4b87c4430caa8a827d79c54683e2f56434a4daf69778') build_directory = 'src' diff --git a/var/spack/repos/builtin/packages/porta/package.py b/var/spack/repos/builtin/packages/porta/package.py index 41c5778ea0f..830806d4aeb 100644 --- a/var/spack/repos/builtin/packages/porta/package.py +++ b/var/spack/repos/builtin/packages/porta/package.py @@ -10,7 +10,7 @@ class Porta(Package): """PORTA is a collection of routines for analyzing polytopes and polyhedra""" - homepage = "http://porta.zib.de" + homepage = "https://porta.zib.de" url = "http://porta.zib.de/porta-1.4.1.zip" version('1.4.1', sha256='21e3784f46f4f2154100a0c39cbd9211a26e513ffe0c9f70ab75a3bb2810b059') diff --git a/var/spack/repos/builtin/packages/portage/package.py b/var/spack/repos/builtin/packages/portage/package.py index 29df97cbdbd..331e4aed481 100644 --- a/var/spack/repos/builtin/packages/portage/package.py +++ b/var/spack/repos/builtin/packages/portage/package.py @@ -12,7 +12,7 @@ class Portage(CMakePackage): to build a highly customized, hybrid parallel (MPI+X) conservative remapping library for transfer of field data between meshes. """ - homepage = "http://portage.lanl.gov/" + homepage = "https://portage.lanl.gov/" git = "https://github.com/laristra/portage.git" url = "https://github.com/laristra/portage/releases/download/3.0.0/portage-3.0.0.tar.gz" diff --git a/var/spack/repos/builtin/packages/postgresql/package.py b/var/spack/repos/builtin/packages/postgresql/package.py index c5e250255ba..2f6f919706e 100644 --- a/var/spack/repos/builtin/packages/postgresql/package.py +++ b/var/spack/repos/builtin/packages/postgresql/package.py @@ -14,7 +14,7 @@ class Postgresql(AutotoolsPackage): that has earned it a strong reputation for reliability, data integrity, and correctness.""" - homepage = "http://www.postgresql.org/" + homepage = "https://www.postgresql.org/" url = "http://ftp.postgresql.org/pub/source/v9.3.4/postgresql-9.3.4.tar.bz2" list_url = "http://ftp.postgresql.org/pub/source" list_depth = 1 diff --git a/var/spack/repos/builtin/packages/powertop/package.py b/var/spack/repos/builtin/packages/powertop/package.py index 1c776afc6f4..3e3848742d8 100644 --- a/var/spack/repos/builtin/packages/powertop/package.py +++ b/var/spack/repos/builtin/packages/powertop/package.py @@ -10,7 +10,7 @@ class Powertop(AutotoolsPackage): """Powertop is a Linux tool to diagnose issues with power consumption and power management""" - homepage = "http://01.org/powertop/" + homepage = "https://01.org/powertop/" url = "http://01.org/sites/default/files/downloads/powertop/powertop-v2.9.tar.gz" version('2.9', sha256='aa7fb7d8e9a00f05e7d8a7a2866d85929741e0d03a5bf40cab22d2021c959250') diff --git a/var/spack/repos/builtin/packages/ppl/package.py b/var/spack/repos/builtin/packages/ppl/package.py index 2439710d1da..81faf811316 100644 --- a/var/spack/repos/builtin/packages/ppl/package.py +++ b/var/spack/repos/builtin/packages/ppl/package.py @@ -20,7 +20,7 @@ class Ppl(Package): solver, and primitives for termination analysis via the automatic synthesis of linear ranking functions.""" - homepage = "http://bugseng.com/products/ppl/" + homepage = "https://bugseng.com/products/ppl/" url = "http://bugseng.com/products/ppl/download/ftp/releases/1.1/ppl-1.1.tar.gz" version('1.2', sha256='6bc36dd4a87abc429d8f9c00c53e334e5041a9b0857cfc00dbad6ef14294aac8') diff --git a/var/spack/repos/builtin/packages/pplacer/package.py b/var/spack/repos/builtin/packages/pplacer/package.py index 251dffa965a..6b0fd43d10e 100644 --- a/var/spack/repos/builtin/packages/pplacer/package.py +++ b/var/spack/repos/builtin/packages/pplacer/package.py @@ -14,7 +14,7 @@ class Pplacer(Package): visualization and downstream analysis. """ - homepage = "http://matsen.fhcrc.org/pplacer/" + homepage = "https://matsen.fhcrc.org/pplacer/" url = "https://github.com/matsen/pplacer/releases/download/v1.1.alpha19/pplacer-linux-v1.1.alpha19.zip" version('1.1.alpha19', sha256='9131b45c35ddb927f866385f149cf64af5dffe724234cd4548c22303a992347d') diff --git a/var/spack/repos/builtin/packages/precice/package.py b/var/spack/repos/builtin/packages/precice/package.py index f1a31e7fec6..742205000b6 100644 --- a/var/spack/repos/builtin/packages/precice/package.py +++ b/var/spack/repos/builtin/packages/precice/package.py @@ -13,7 +13,7 @@ class Precice(CMakePackage): capable of simulating a subpart of the complete physics involved in a simulation.""" - homepage = 'https://www.precice.org' + homepage = 'https://precice.org/' git = 'https://github.com/precice/precice.git' url = 'https://github.com/precice/precice/archive/v1.2.0.tar.gz' maintainers = ['fsimonis', 'MakisH'] diff --git a/var/spack/repos/builtin/packages/printproto/package.py b/var/spack/repos/builtin/packages/printproto/package.py index 6d0b1ac557a..e64fb940ffb 100644 --- a/var/spack/repos/builtin/packages/printproto/package.py +++ b/var/spack/repos/builtin/packages/printproto/package.py @@ -10,7 +10,7 @@ class Printproto(AutotoolsPackage, XorgPackage): """Xprint extension to the X11 protocol - a portable, network-transparent printing system.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/printproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/printproto" xorg_mirror_path = "proto/printproto-1.0.5.tar.gz" version('1.0.5', sha256='e8b6f405fd865f0ea7a3a2908dfbf06622f57f2f91359ec65d13b955e49843fc') diff --git a/var/spack/repos/builtin/packages/prng/package.py b/var/spack/repos/builtin/packages/prng/package.py index 09eac076d42..b70ae3888af 100644 --- a/var/spack/repos/builtin/packages/prng/package.py +++ b/var/spack/repos/builtin/packages/prng/package.py @@ -9,7 +9,7 @@ class Prng(AutotoolsPackage): """Pseudo-Random Number Generator library.""" - homepage = "http://statmath.wu.ac.at/prng/" + homepage = "https://statmath.wu.ac.at/prng/" url = "http://statmath.wu.ac.at/prng/prng-3.0.2.tar.gz" version('3.0.2', sha256='8299182b97c24b7891d74590a8a8438641a6c681ce34d6c3f7bc98a0649da48b') diff --git a/var/spack/repos/builtin/packages/proxymngr/package.py b/var/spack/repos/builtin/packages/proxymngr/package.py index 7547c7ace33..64c8eedcf48 100644 --- a/var/spack/repos/builtin/packages/proxymngr/package.py +++ b/var/spack/repos/builtin/packages/proxymngr/package.py @@ -12,7 +12,7 @@ class Proxymngr(AutotoolsPackage, XorgPackage): appropriate, and keeping track of all of the available proxy services. The proxy manager strives to reuse existing proxies whenever possible.""" - homepage = "http://cgit.freedesktop.org/xorg/app/proxymngr" + homepage = "https://cgit.freedesktop.org/xorg/app/proxymngr" xorg_mirror_path = "app/proxymngr-1.0.4.tar.gz" version('1.0.4', sha256='d40f2d15985ee8e8ef5320a85c0b1899a7bc95974a65137ae886e499bced86f4') diff --git a/var/spack/repos/builtin/packages/psi4/package.py b/var/spack/repos/builtin/packages/psi4/package.py index a3afc32d010..912dac18541 100644 --- a/var/spack/repos/builtin/packages/psi4/package.py +++ b/var/spack/repos/builtin/packages/psi4/package.py @@ -13,7 +13,7 @@ class Psi4(CMakePackage): programs designed for efficient, high-accuracy simulations of a variety of molecular properties.""" - homepage = "http://www.psicode.org/" + homepage = "https://www.psicode.org/" url = "https://github.com/psi4/psi4/archive/v1.3.2.tar.gz" version('1.3.2', sha256='ed76c67803b6420f35f57a6dd31c47108b9145b8c9fced5c94cdc179f6b5fbf3') diff --git a/var/spack/repos/builtin/packages/pugixml/package.py b/var/spack/repos/builtin/packages/pugixml/package.py index 094b1d3e7f8..679f2754bfe 100644 --- a/var/spack/repos/builtin/packages/pugixml/package.py +++ b/var/spack/repos/builtin/packages/pugixml/package.py @@ -10,7 +10,7 @@ class Pugixml(CMakePackage): """Light-weight, simple, and fast XML parser for C++ with XPath support""" - homepage = "http://pugixml.org/" + homepage = "https://pugixml.org/" url = "https://github.com/zeux/pugixml/releases/download/v1.10/pugixml-1.10.tar.gz" version('1.11.4', sha256='8ddf57b65fb860416979a3f0640c2ad45ddddbbafa82508ef0a0af3ce7061716') diff --git a/var/spack/repos/builtin/packages/pv/package.py b/var/spack/repos/builtin/packages/pv/package.py index 383db4cb2c0..f3cdb7a5a3a 100644 --- a/var/spack/repos/builtin/packages/pv/package.py +++ b/var/spack/repos/builtin/packages/pv/package.py @@ -11,7 +11,7 @@ class Pv(AutotoolsPackage): of data through a pipeline """ - homepage = "http://www.ivarch.com/programs/pv.shtml" + homepage = "https://www.ivarch.com/programs/pv.shtml" url = "http://www.ivarch.com/programs/sources/pv-1.6.6.tar.bz2" version('1.6.6', sha256='608ef935f7a377e1439c181c4fc188d247da10d51a19ef79bcdee5043b0973f1') diff --git a/var/spack/repos/builtin/packages/pvm/package.py b/var/spack/repos/builtin/packages/pvm/package.py index fe740619225..d9f3cec108d 100644 --- a/var/spack/repos/builtin/packages/pvm/package.py +++ b/var/spack/repos/builtin/packages/pvm/package.py @@ -13,7 +13,7 @@ class Pvm(MakefilePackage): heterogeneous collection of Unix and/or Windows computers hooked together by a network to be used as a single large parallel computer.""" - homepage = "http://www.csm.ornl.gov/pvm/pvm_home.html" + homepage = "https://www.csm.ornl.gov/pvm/pvm_home.html" url = "http://www.netlib.org/pvm3/pvm3.4.6.tgz" version('3.4.6', sha256='482665e9bc975d826bcdacf1df1d42e43deda9585a2c430fd3b7b7ed08eada44') diff --git a/var/spack/repos/builtin/packages/py-adios/package.py b/var/spack/repos/builtin/packages/py-adios/package.py index c2f65a757ab..e7c6d87df3a 100644 --- a/var/spack/repos/builtin/packages/py-adios/package.py +++ b/var/spack/repos/builtin/packages/py-adios/package.py @@ -9,13 +9,14 @@ class PyAdios(PythonPackage): """NumPy bindings of ADIOS1""" - homepage = "https://www.olcf.ornl.gov/center-projects/adios/" + homepage = "https://csmd.ornl.gov/adios" url = "https://github.com/ornladios/ADIOS/archive/v1.12.0.tar.gz" git = "https://github.com/ornladios/ADIOS.git" maintainers = ['ax3l'] version('develop', branch='master') + version('1.13.1', sha256='b1c6949918f5e69f701cabfe5987c0b286793f1057d4690f04747852544e157b') version('1.13.0', sha256='7b5ee8ff7a5f7215f157c484b20adb277ec0250f87510513edcc25d2c4739f50') version('1.12.0', sha256='22bc22c157322abec2d1a0817a259efd9057f88c2113e67d918a9a5ebcb3d88d') version('1.11.1', sha256='9f5c10b9471a721ba57d1cf6e5a55a7ad139a6c12da87b4dc128539e9eef370e') @@ -26,7 +27,7 @@ class PyAdios(PythonPackage): variant('mpi', default=True, description='Enable MPI support') - for v in ['1.9.0', '1.10.0', '1.11.0', '1.11.1', '1.12.0', '1.13.0', + for v in ['1.9.0', '1.10.0', '1.11.0', '1.11.1', '1.12.0', '1.13.0', '1.13.1', 'develop']: depends_on('adios@{0} ~mpi'.format(v), when='@{0} ~mpi'.format(v), diff --git a/var/spack/repos/builtin/packages/py-aenum/package.py b/var/spack/repos/builtin/packages/py-aenum/package.py index 08841dafe05..b99a8627027 100644 --- a/var/spack/repos/builtin/packages/py-aenum/package.py +++ b/var/spack/repos/builtin/packages/py-aenum/package.py @@ -10,7 +10,7 @@ class PyAenum(PythonPackage): """Advanced Enumerations (compatible with Python's stdlib Enum), NamedTuples, and NamedConstants.""" - homepage = "https://bitbucket.org/stoneleaf/aenum" + homepage = "https://github.com/ethanfurman/aenum" pypi = "aenum/aenum-2.1.2.tar.gz" version('2.1.2', sha256='a3208e4b28db3a7b232ff69b934aef2ea1bf27286d9978e1e597d46f490e4687') diff --git a/var/spack/repos/builtin/packages/py-apache-libcloud/package.py b/var/spack/repos/builtin/packages/py-apache-libcloud/package.py index 526ed5a6512..b8340f1ed51 100644 --- a/var/spack/repos/builtin/packages/py-apache-libcloud/package.py +++ b/var/spack/repos/builtin/packages/py-apache-libcloud/package.py @@ -9,7 +9,7 @@ class PyApacheLibcloud(PythonPackage): """Python library for multiple cloud provider APIs""" - homepage = "http://libcloud.apache.org" + homepage = "https://libcloud.apache.org" pypi = "apache-libcloud/apache-libcloud-1.2.1.tar.gz" version('1.2.1', sha256='b26b542c6c9785dd4e34892d87421ffa4c043335c1cba301a97a8d9748c423f2') diff --git a/var/spack/repos/builtin/packages/py-arviz/package.py b/var/spack/repos/builtin/packages/py-arviz/package.py index 2d3b7556ef5..62d73b1c971 100644 --- a/var/spack/repos/builtin/packages/py-arviz/package.py +++ b/var/spack/repos/builtin/packages/py-arviz/package.py @@ -11,7 +11,7 @@ class PyArviz(PythonPackage): analysis of Bayesian models. Includes functions for posterior analysis, model checking, comparison and diagnostics.""" - homepage = "http://github.com/arviz-devs/arviz" + homepage = "https://github.com/arviz-devs/arviz" pypi = "arviz/arviz-0.6.1.tar.gz" version('0.6.1', sha256='435edf8db49c41a8fa198f959e7581063006c49a4efdef4755bb778db6fd4f72') diff --git a/var/spack/repos/builtin/packages/py-asteval/package.py b/var/spack/repos/builtin/packages/py-asteval/package.py index d2cfb13f1cd..e4bf8448455 100644 --- a/var/spack/repos/builtin/packages/py-asteval/package.py +++ b/var/spack/repos/builtin/packages/py-asteval/package.py @@ -9,10 +9,13 @@ class PyAsteval(PythonPackage): """Safe, minimalistic evaluator of python expression using ast module""" - homepage = "http://github.com/newville/asteval" + homepage = "https://github.com/newville/asteval" pypi = "asteval/asteval-0.9.18.tar.gz" + version('0.9.25', sha256='bea22b7d8fa16bcba95ebc72052ae5d8ca97114c9959bb47f8b8eebf30e4342f') version('0.9.18', sha256='5d64e18b8a72c2c7ae8f9b70d1f80b68bbcaa98c1c0d7047c35489d03209bc86') depends_on('python@3.5:', type=('build', 'run')) + depends_on('python@3.6:', type=('build', 'run'), when='@0.9.25:') depends_on('py-setuptools', type='build') + depends_on('py-setuptools-scm', type='build', when='@0.9.25:') diff --git a/var/spack/repos/builtin/packages/py-astor/package.py b/var/spack/repos/builtin/packages/py-astor/package.py index e476301facf..0e56bb39553 100644 --- a/var/spack/repos/builtin/packages/py-astor/package.py +++ b/var/spack/repos/builtin/packages/py-astor/package.py @@ -10,8 +10,9 @@ class PyAstor(PythonPackage): astor is designed to allow easy manipulation of Python source via the AST. """ - pypi = "astor/astor-0.8.0.tar.gz" + pypi = "astor/astor-0.8.1.tar.gz" + version('0.8.1', sha256='6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e') version('0.8.0', sha256='37a6eed8b371f1228db08234ed7f6cfdc7817a3ed3824797e20cbb11dc2a7862') version('0.6', sha256='175ec395cde36aa0178c5a3120d03954c65d1ef4bb19ec4aa30e9d7a7cc426c4') diff --git a/var/spack/repos/builtin/packages/py-attrs/package.py b/var/spack/repos/builtin/packages/py-attrs/package.py index 7c9ea1d1c0c..d562f160c7c 100644 --- a/var/spack/repos/builtin/packages/py-attrs/package.py +++ b/var/spack/repos/builtin/packages/py-attrs/package.py @@ -9,7 +9,7 @@ class PyAttrs(PythonPackage): """Classes Without Boilerplate""" - homepage = "http://attrs.org/" + homepage = "https://attrs.org/" pypi = "attrs/attrs-20.3.0.tar.gz" version('20.3.0', sha256='832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700') diff --git a/var/spack/repos/builtin/packages/py-avro/package.py b/var/spack/repos/builtin/packages/py-avro/package.py index 8e33156b247..929b6deb4d2 100644 --- a/var/spack/repos/builtin/packages/py-avro/package.py +++ b/var/spack/repos/builtin/packages/py-avro/package.py @@ -9,7 +9,7 @@ class PyAvro(PythonPackage): """Avro is a serialization and RPC framework.""" - homepage = "http://avro.apache.org/docs/current/" + homepage = "https://avro.apache.org/docs/current/" pypi = "avro/avro-1.8.2.tar.gz" version('1.8.2', sha256='8f9ee40830b70b5fb52a419711c9c4ad0336443a6fba7335060805f961b04b59') diff --git a/var/spack/repos/builtin/packages/py-azureml-dataprep-native/package.py b/var/spack/repos/builtin/packages/py-azureml-dataprep-native/package.py index 551c2106607..3e4d4164ecc 100644 --- a/var/spack/repos/builtin/packages/py-azureml-dataprep-native/package.py +++ b/var/spack/repos/builtin/packages/py-azureml-dataprep-native/package.py @@ -9,7 +9,7 @@ class PyAzuremlDataprepNative(Package): """Python Package for AzureML DataPrep specific native extensions.""" - homepage = "http://aka.ms/data-prep-sdk" + homepage = "https://docs.microsoft.com/en-us/python/api/overview/azure/ml/?view=azure-ml-py" if sys.platform == 'darwin': version('30.0.0-py3.9', sha256='eaf3fcd9f965e87b03fe89d7c6fe6abce53483a79afc963e4981061f4c250e85', expand=False, diff --git a/var/spack/repos/builtin/packages/py-azureml-dataprep-rslex/package.py b/var/spack/repos/builtin/packages/py-azureml-dataprep-rslex/package.py index 40eb3d73c8e..e3b43b29a98 100644 --- a/var/spack/repos/builtin/packages/py-azureml-dataprep-rslex/package.py +++ b/var/spack/repos/builtin/packages/py-azureml-dataprep-rslex/package.py @@ -14,7 +14,7 @@ class PyAzuremlDataprepRslex(Package): """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 = "http://aka.ms/data-prep-sdk" + homepage = "https://docs.microsoft.com/en-us/python/api/overview/azure/ml/?view=azure-ml-py" if sys.platform == 'darwin': version('1.9.0-py3.9', sha256='9bdaa31d129dac19ee20d5a3aad1726397e90d8d741b4f6de4554040800fefe8', expand=False, diff --git a/var/spack/repos/builtin/packages/py-azureml-dataprep/package.py b/var/spack/repos/builtin/packages/py-azureml-dataprep/package.py index 50bf6be9ffa..94be3ecfd6b 100644 --- a/var/spack/repos/builtin/packages/py-azureml-dataprep/package.py +++ b/var/spack/repos/builtin/packages/py-azureml-dataprep/package.py @@ -7,7 +7,7 @@ class PyAzuremlDataprep(Package): """Azure ML Data Preparation SDK.""" - homepage = "http://aka.ms/data-prep-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', expand=False) diff --git a/var/spack/repos/builtin/packages/py-babel/package.py b/var/spack/repos/builtin/packages/py-babel/package.py index 976051f1517..823b5f3b607 100644 --- a/var/spack/repos/builtin/packages/py-babel/package.py +++ b/var/spack/repos/builtin/packages/py-babel/package.py @@ -11,7 +11,7 @@ class PyBabel(PythonPackage): internationalizing and localizing Python applications, with an emphasis on web-based applications.""" - homepage = "http://babel.pocoo.org/en/latest/" + homepage = "https://babel.pocoo.org/en/latest/" pypi = "Babel/Babel-2.7.0.tar.gz" version('2.7.0', sha256='e86135ae101e31e2c8ec20a4e0c5220f4eed12487d5cf3f78be7e98d3a57fc28') diff --git a/var/spack/repos/builtin/packages/py-basemap/package.py b/var/spack/repos/builtin/packages/py-basemap/package.py index c143b30b96d..6ad56883d65 100644 --- a/var/spack/repos/builtin/packages/py-basemap/package.py +++ b/var/spack/repos/builtin/packages/py-basemap/package.py @@ -13,7 +13,7 @@ class PyBasemap(PythonPackage): 2D data on maps in Python.""" url = 'https://github.com/matplotlib/basemap/archive/v1.2.0rel.tar.gz' - homepage = "http://matplotlib.org/basemap/" + homepage = "https://matplotlib.org/basemap/" version('1.2.1', sha256='3fb30424f18cd4ffd505e30fd9c810ae81b999bb92f950c76553e1abc081faa7') version('1.2.0', sha256='bd5bf305918a2eb675939873b735238f9e3dfe6b5c290e37c41e5b082ff3639a') diff --git a/var/spack/repos/builtin/packages/py-bigfloat/package.py b/var/spack/repos/builtin/packages/py-bigfloat/package.py index d6f709e769a..075f7fa0000 100644 --- a/var/spack/repos/builtin/packages/py-bigfloat/package.py +++ b/var/spack/repos/builtin/packages/py-bigfloat/package.py @@ -9,7 +9,7 @@ class PyBigfloat(PythonPackage): """Arbitrary-precision correctly-rounded floating-point arithmetic, via MPFR.""" - homepage = "http://github.com/mdickinson/bigfloat" + homepage = "https://github.com/mdickinson/bigfloat" pypi = "bigfloat/bigfloat-0.4.0.tar.gz" version('0.4.0', sha256='58b96bde872aca5989d13d82eba3acf2aa1b94e22117dd72a16ba5911b0c0cb8') diff --git a/var/spack/repos/builtin/packages/py-biopandas/package.py b/var/spack/repos/builtin/packages/py-biopandas/package.py index 93fb63e45a9..8dfdeb5bab9 100644 --- a/var/spack/repos/builtin/packages/py-biopandas/package.py +++ b/var/spack/repos/builtin/packages/py-biopandas/package.py @@ -9,7 +9,7 @@ class PyBiopandas(PythonPackage): """Working with molecular structures in pandas DataFrames""" - homepage = "http://rasbt.github.io/biopandas" + homepage = "https://rasbt.github.io/biopandas" pypi = "biopandas/biopandas-0.2.5.tar.gz" git = "https://github.com/rasbt/biopandas.git" diff --git a/var/spack/repos/builtin/packages/py-biopython/package.py b/var/spack/repos/builtin/packages/py-biopython/package.py index 964904b5680..1b67ff30f7a 100644 --- a/var/spack/repos/builtin/packages/py-biopython/package.py +++ b/var/spack/repos/builtin/packages/py-biopython/package.py @@ -12,7 +12,7 @@ class PyBiopython(PythonPackage): bioinformatics. """ - homepage = "http://biopython.org/wiki/Main_Page" + homepage = "https://biopython.org/wiki/Main_Page" url = "http://biopython.org/DIST/biopython-1.65.tar.gz" version('1.78', sha256='1ee0a0b6c2376680fea6642d5080baa419fd73df104a62d58a8baf7a8bbe4564') diff --git a/var/spack/repos/builtin/packages/py-black/package.py b/var/spack/repos/builtin/packages/py-black/package.py index 05d8330b56a..872ab07b393 100644 --- a/var/spack/repos/builtin/packages/py-black/package.py +++ b/var/spack/repos/builtin/packages/py-black/package.py @@ -15,6 +15,7 @@ class PyBlack(PythonPackage): homepage = "https://github.com/psf/black" pypi = "black/black-20.8b1.tar.gz" + version('21.7b0', sha256='c8373c6491de9362e39271630b65b964607bc5c79c83783547d76c839b3aa219') version('21.6b0', sha256='dc132348a88d103016726fe360cb9ede02cecf99b76e3660ce6c596be132ce04') version('21.4b0', sha256='915d916c48646dbe8040d5265cff7111421a60a3dfe7f7e07273176a57c24a34') version('20.8b1', sha256='1c02557aa099101b9d21496f8a914e9ed2222ef70336404eeeac8edba836fbea') @@ -30,14 +31,16 @@ class PyBlack(PythonPackage): # Needs setuptools at runtime so that `import pkg_resources` succeeds # See #8843 and #8689 for examples of setuptools added as a runtime dep depends_on('py-setuptools', type=('build', 'run')) + depends_on('py-setuptools-scm', when='@19.10:', type='build') # Translated from black's setup.py: # https://github.com/ambv/black/blob/master/setup.py depends_on('py-click@6.5:', type=('build', 'run')) depends_on('py-click@7.1.2:', when='@20.8b1:', type=('build', 'run')) depends_on('py-attrs@18.1.0:', when='@:20.8b0', type=('build', 'run')) depends_on('py-appdirs', type=('build', 'run')) - depends_on('py-toml@0.9.4:', type=('build', 'run')) - depends_on('py-toml@0.10.1:', when='@20.8b1:', type=('build', 'run')) + depends_on('py-toml@0.9.4:', when='@:19', type=('build', 'run')) + depends_on('py-toml@0.10.1:', when='@20:21.6', type=('build', 'run')) + depends_on('py-tomli@0.2.6:1.999', when='@21.7:', type=('build', 'run')) depends_on('py-typed-ast@1.4.0:', when='@19.10b0:20', type=('build', 'run')) depends_on('py-typed-ast@1.4.2:', when='@21: ^python@:3.7.999', type=('build', 'run')) depends_on('py-regex@2020.1.8:', when='@20.8b0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-bleach/package.py b/var/spack/repos/builtin/packages/py-bleach/package.py index e9b260b8bbc..5333e6afeec 100644 --- a/var/spack/repos/builtin/packages/py-bleach/package.py +++ b/var/spack/repos/builtin/packages/py-bleach/package.py @@ -9,7 +9,7 @@ class PyBleach(PythonPackage): """An easy whitelist-based HTML-sanitizing tool.""" - homepage = "http://github.com/mozilla/bleach" + homepage = "https://github.com/mozilla/bleach" pypi = "bleach/bleach-3.1.0.tar.gz" version('3.1.0', sha256='3fdf7f77adcf649c9911387df51254b813185e32b2c6619f690b593a617e19fa') diff --git a/var/spack/repos/builtin/packages/py-bokeh/package.py b/var/spack/repos/builtin/packages/py-bokeh/package.py index b8213194741..05399e488f1 100644 --- a/var/spack/repos/builtin/packages/py-bokeh/package.py +++ b/var/spack/repos/builtin/packages/py-bokeh/package.py @@ -9,7 +9,7 @@ class PyBokeh(PythonPackage): """Statistical and novel interactive HTML plots for Python""" - homepage = "http://github.com/bokeh/bokeh" + homepage = "https://github.com/bokeh/bokeh" pypi = "bokeh/bokeh-0.12.2.tar.gz" version('1.3.4', sha256='e2d97bed5b199a10686486001fed5c854e4c04ebe28859923f27c52b93904754') diff --git a/var/spack/repos/builtin/packages/py-boto3/package.py b/var/spack/repos/builtin/packages/py-boto3/package.py index d529d6e8622..29b679bb594 100644 --- a/var/spack/repos/builtin/packages/py-boto3/package.py +++ b/var/spack/repos/builtin/packages/py-boto3/package.py @@ -12,12 +12,17 @@ class PyBoto3(PythonPackage): homepage = "https://github.com/boto/boto3" pypi = "boto3/boto3-1.10.44.tar.gz" + version('1.18.12', sha256='596fb9df00a816780db8620d9f62982eb783b3eb63a75947e172101d0785e6aa') version('1.17.27', sha256='fa41987f9f71368013767306d9522b627946a01b4843938a26fb19cc8adb06c0') version('1.10.44', sha256='adc0c0269bd65967fd528d7cd826304f381d40d94f2bf2b09f58167e5ac05d86') version('1.10.38', sha256='6cdb063b2ae5ac7b93ded6b6b17e3da1325b32232d5ff56e6800018d4786bba6') version('1.9.169', sha256='9d8bd0ca309b01265793b7e8d7b88c1df439737d77c8725988f0277bbf58d169') + depends_on('python@3.6:', when='@1.18:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.6:', when='@1.17.27', type=('build', 'run')) + depends_on('python@2.6:', when='@1.9:1.10', type=('build', 'run')) depends_on('py-setuptools', type='build') + depends_on('py-botocore@1.21.12:1.21.999', when='@1.18.12:', type=('build', 'run')) depends_on('py-botocore@1.20.27:1.20.999', when='@1.17.27', type=('build', 'run')) depends_on('py-botocore@1.13.44:1.13.999', when='@1.10.44', type=('build', 'run')) depends_on('py-botocore@1.13.38:1.13.999', when='@1.10.38', type=('build', 'run')) @@ -25,5 +30,6 @@ class PyBoto3(PythonPackage): depends_on('py-jmespath@0.7.1:0.999', type=('build', 'run')) + depends_on('py-s3transfer@0.5.0:0.5.999', when='@1.18.12:', type=('build', 'run')) depends_on('py-s3transfer@0.3.0:0.3.999', when='@1.17.27', type=('build', 'run')) depends_on('py-s3transfer@0.2.0:0.2.999', when='@:1.10', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-botocore/package.py b/var/spack/repos/builtin/packages/py-botocore/package.py index 8fbba5ebf51..1d8fa81362f 100644 --- a/var/spack/repos/builtin/packages/py-botocore/package.py +++ b/var/spack/repos/builtin/packages/py-botocore/package.py @@ -12,12 +12,18 @@ class PyBotocore(PythonPackage): homepage = "https://github.com/boto/botocore" pypi = "botocore/botocore-1.13.44.tar.gz" + version('1.21.12', sha256='8710d03b9de3e3d94ed410f3e83809ca02050b091100d68c22ff7bf986f29fb6') version('1.20.27', sha256='4477803f07649f4d80b17d054820e7a09bb2cb0792d0decc2812108bc3759c4a') version('1.19.52', sha256='dc5ec23deadbe9327d3c81d03fddf80805c549059baabd80dea605941fe6a221') version('1.13.44', sha256='a4409008c32a3305b9c469c5cc92edb5b79d6fcbf6f56fe126886b545f0a4f3f') version('1.13.38', sha256='15766a367f39dba9de3c6296aaa7da31030f08a0117fd12685e7df682d8acee2') version('1.12.169', sha256='25b44c3253b5ed1c9093efb57ffca440c5099a2d62fa793e8b6c52e72f54b01e') + depends_on('python@2.6:', when='@1.12:1.13', type=('build', 'run')) + depends_on('python@2.7:', when='@1.19', type=('build', 'run')) + depends_on('python@2.7:2.8,3.6:', when='@1.20', type=('build', 'run')) + depends_on('python@3.6:', when='@1.21:', type=('build', 'run')) + depends_on('py-setuptools', type='build') depends_on('py-jmespath@0.7.1:0.999', type=('build', 'run')) depends_on('py-docutils@0.10:0.15', type=('build', 'run'), when='@:1.17.999') diff --git a/var/spack/repos/builtin/packages/py-breakseq2/package.py b/var/spack/repos/builtin/packages/py-breakseq2/package.py index f653a52412e..339404ac00b 100644 --- a/var/spack/repos/builtin/packages/py-breakseq2/package.py +++ b/var/spack/repos/builtin/packages/py-breakseq2/package.py @@ -9,7 +9,7 @@ class PyBreakseq2(PythonPackage): """nucleotide-resolution analysis of structural variants""" - homepage = "http://bioinform.github.io/breakseq2/" + homepage = "https://bioinform.github.io/breakseq2/" url = "https://github.com/bioinform/breakseq2/archive/2.2.tar.gz" version('2.2', sha256='d149e803191e6bb0b749abfba2c258716d94a38e942aaed40eb1630ae84f91ee') diff --git a/var/spack/repos/builtin/packages/py-brian/package.py b/var/spack/repos/builtin/packages/py-brian/package.py index 4bbe434c2d9..d7d6a4c991c 100644 --- a/var/spack/repos/builtin/packages/py-brian/package.py +++ b/var/spack/repos/builtin/packages/py-brian/package.py @@ -9,7 +9,7 @@ class PyBrian(PythonPackage): """A clock-driven simulator for spiking neural networks""" - homepage = "http://www.briansimulator.org" + homepage = "https://www.briansimulator.org" pypi = "brian/brian-1.4.3.tar.gz" version('1.4.3', sha256='c881dcfcd1a21990f9cb3cca76cdd868111cfd9e227ef5c1b13bb372d2efeaa4') diff --git a/var/spack/repos/builtin/packages/py-brian2/package.py b/var/spack/repos/builtin/packages/py-brian2/package.py index 4b627d4b787..35edc028503 100644 --- a/var/spack/repos/builtin/packages/py-brian2/package.py +++ b/var/spack/repos/builtin/packages/py-brian2/package.py @@ -9,7 +9,7 @@ class PyBrian2(PythonPackage): """A clock-driven simulator for spiking neural networks""" - homepage = "http://www.briansimulator.org" + homepage = "https://www.briansimulator.org" pypi = "Brian2/Brian2-2.2.2.1.tar.gz" version('2.4.2', sha256='7a711af40145d8c62b0bc0861d352dc64f341c3a738174d87ef9d71e50e959f2') diff --git a/var/spack/repos/builtin/packages/py-certifi/package.py b/var/spack/repos/builtin/packages/py-certifi/package.py index 79fb7ca72da..1836e10134f 100644 --- a/var/spack/repos/builtin/packages/py-certifi/package.py +++ b/var/spack/repos/builtin/packages/py-certifi/package.py @@ -11,7 +11,7 @@ class PyCertifi(PythonPackage): the trustworthiness of SSL certificates while verifying the identity of TLS hosts.""" - homepage = "http://certifi.io/" + homepage = "https://github.com/certifi/python-certifi" pypi = "certifi/certifi-2020.6.20.tar.gz" version('2020.6.20', sha256='5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3') diff --git a/var/spack/repos/builtin/packages/py-cheroot/package.py b/var/spack/repos/builtin/packages/py-cheroot/package.py index 263b80e4977..3b62ac7a30e 100644 --- a/var/spack/repos/builtin/packages/py-cheroot/package.py +++ b/var/spack/repos/builtin/packages/py-cheroot/package.py @@ -10,7 +10,7 @@ class PyCheroot(PythonPackage): """ Highly-optimized, pure-python HTTP server """ - homepage = "https://cheroot.cherrypy.org/" + homepage = "https://cheroot.readthedocs.io/en/latest/" pypi = "cheroot/cheroot-6.5.5.tar.gz" version('8.3.0', sha256='a0577e1f28661727d472671a7cc4e0c12ea0cbc5220265e70f00a8b8cb628931') diff --git a/var/spack/repos/builtin/packages/py-cherrypy/package.py b/var/spack/repos/builtin/packages/py-cherrypy/package.py index 311b683b2df..7f25f58b95a 100644 --- a/var/spack/repos/builtin/packages/py-cherrypy/package.py +++ b/var/spack/repos/builtin/packages/py-cherrypy/package.py @@ -9,7 +9,7 @@ class PyCherrypy(PythonPackage): """CherryPy is a pythonic, object-oriented HTTP framework.""" - homepage = "https://cherrypy.org/" + homepage = "https://cherrypy.readthedocs.io/en/latest/" pypi = "CherryPy/CherryPy-18.1.1.tar.gz" version('18.1.1', sha256='6585c19b5e4faffa3613b5bf02c6a27dcc4c69a30d302aba819639a2af6fa48b') diff --git a/var/spack/repos/builtin/packages/py-cinema-lib/package.py b/var/spack/repos/builtin/packages/py-cinema-lib/package.py index 9e5e1fd30c0..d8d4b976237 100644 --- a/var/spack/repos/builtin/packages/py-cinema-lib/package.py +++ b/var/spack/repos/builtin/packages/py-cinema-lib/package.py @@ -37,5 +37,5 @@ class PyCinemaLib(PythonPackage): depends_on('py-numpy@1.13:', when='+opencv', type=('build', 'run')) depends_on('py-scikit-image@0.13.1:', when='+image', type=('build', 'run')) - depends_on('opencv@3.4:+python', when='+opencv', type=('build', 'run')) + depends_on('opencv@3.4:+python3', when='+opencv', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-cinemasci/package.py b/var/spack/repos/builtin/packages/py-cinemasci/package.py index 83ddb8b6485..3f70f828503 100644 --- a/var/spack/repos/builtin/packages/py-cinemasci/package.py +++ b/var/spack/repos/builtin/packages/py-cinemasci/package.py @@ -17,10 +17,14 @@ class PyCinemasci(PythonPackage): version('1.3', sha256='c024ca9791de9d78e5dad3fd11e8f87d8bc1afa5830f2697d7ec4116a5d23c20') - depends_on('hdf5~mpi') + variant('mpi', default=False, description='Enable MPI') + + depends_on('hdf5 ~mpi', when='~mpi') + depends_on('hdf5 +mpi', when='+mpi') depends_on('pil', type=('build', 'run')) depends_on('python@3:', type=('build', 'run')) - depends_on('py-h5py~mpi', type=('build', 'run')) + depends_on('py-h5py~mpi', when='~mpi', type=('build', 'run')) + depends_on('py-h5py+mpi', when='+mpi', type=('build', 'run')) depends_on('py-ipywidgets', type=('build', 'run')) depends_on('py-jupyterlab', type=('build', 'run')) depends_on('py-pandas', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-clustershell/package.py b/var/spack/repos/builtin/packages/py-clustershell/package.py index 2134827ae9f..dd37e61019e 100644 --- a/var/spack/repos/builtin/packages/py-clustershell/package.py +++ b/var/spack/repos/builtin/packages/py-clustershell/package.py @@ -11,7 +11,7 @@ class PyClustershell(PythonPackage): node groups and execute commands on cluster nodes in parallel. """ - homepage = "http://cea-hpc.github.io/clustershell/" + homepage = "https://cea-hpc.github.io/clustershell/" url = "https://github.com/cea-hpc/clustershell/archive/v1.8.tar.gz" version('1.8', sha256='ad5a13e2d107b4095229810c35365e22ea94dfd2baf4fdcfcc68ce58ee37cee3') diff --git a/var/spack/repos/builtin/packages/py-cogent/package.py b/var/spack/repos/builtin/packages/py-cogent/package.py index ef791daad63..b28a1b4bdaa 100644 --- a/var/spack/repos/builtin/packages/py-cogent/package.py +++ b/var/spack/repos/builtin/packages/py-cogent/package.py @@ -9,7 +9,7 @@ class PyCogent(PythonPackage): """A toolkit for statistical analysis of biological sequences.""" - homepage = "http://pycogent.org" + homepage = "https://github.com/Magdoll/Cogent/wiki/Installing-Cogent" pypi = "cogent/cogent-1.9.tar.gz" version('1.9', sha256='57d8c58e0273ffe4f2b907874f9b49dadfd0600f5507b7666369f4e44d56ce14') diff --git a/var/spack/repos/builtin/packages/py-coverage/package.py b/var/spack/repos/builtin/packages/py-coverage/package.py index 2597f15c53e..4902fe3aac3 100644 --- a/var/spack/repos/builtin/packages/py-coverage/package.py +++ b/var/spack/repos/builtin/packages/py-coverage/package.py @@ -9,7 +9,7 @@ class PyCoverage(PythonPackage): """ Testing coverage checker for python """ - homepage = "http://nedbatchelder.com/code/coverage/" + homepage = "https://nedbatchelder.com/code/coverage/" pypi = "coverage/coverage-4.5.4.tar.gz" version('5.3', sha256='280baa8ec489c4f542f8940f9c4c2181f0306a8ee1a54eceba071a449fb870a0') diff --git a/var/spack/repos/builtin/packages/py-current/package.py b/var/spack/repos/builtin/packages/py-current/package.py index 5eb287a38e7..57b05eccc41 100644 --- a/var/spack/repos/builtin/packages/py-current/package.py +++ b/var/spack/repos/builtin/packages/py-current/package.py @@ -9,7 +9,7 @@ class PyCurrent(PythonPackage): """Current module relative paths and imports""" - homepage = "http://github.com/xflr6/current" + homepage = "https://github.com/xflr6/current" pypi = "current/current-0.3.1.zip" version('0.3.1', sha256='207613dc19a6cc8e1a756f26e416733c8f82a70e4ae81103d22f483aae6492a8') diff --git a/var/spack/repos/builtin/packages/py-cvxopt/package.py b/var/spack/repos/builtin/packages/py-cvxopt/package.py index c23bb2c640f..4dcd6e41dd4 100644 --- a/var/spack/repos/builtin/packages/py-cvxopt/package.py +++ b/var/spack/repos/builtin/packages/py-cvxopt/package.py @@ -10,7 +10,7 @@ class PyCvxopt(PythonPackage): """CVXOPT is a free software package for convex optimization based on the Python programming language.""" - homepage = "http://cvxopt.org/" + homepage = "https://cvxopt.org/" pypi = "cvxopt/cvxopt-1.1.9.tar.gz" version('1.2.5', sha256='94ec8c36bd6628a11de9014346692daeeef99b3b7bae28cef30c7490bbcb2d72') diff --git a/var/spack/repos/builtin/packages/py-cycler/package.py b/var/spack/repos/builtin/packages/py-cycler/package.py index 1681b56a1e4..23b429e97e5 100644 --- a/var/spack/repos/builtin/packages/py-cycler/package.py +++ b/var/spack/repos/builtin/packages/py-cycler/package.py @@ -9,7 +9,7 @@ class PyCycler(PythonPackage): """Composable style cycles.""" - homepage = "http://matplotlib.org/cycler/" + homepage = "https://matplotlib.org/cycler/" url = "https://github.com/matplotlib/cycler/archive/v0.10.0.tar.gz" version('0.10.0', sha256='b6d217635e03024196225367b1a438996dbbf0271bec488f00584f0e7dc15cfa') diff --git a/var/spack/repos/builtin/packages/py-cython/package.py b/var/spack/repos/builtin/packages/py-cython/package.py index 834087f5399..40d31f8eaf4 100644 --- a/var/spack/repos/builtin/packages/py-cython/package.py +++ b/var/spack/repos/builtin/packages/py-cython/package.py @@ -11,6 +11,7 @@ class PyCython(PythonPackage): pypi = "cython/Cython-0.29.21.tar.gz" + version('0.29.24', sha256='cdf04d07c3600860e8c2ebaad4e8f52ac3feb212453c1764a49ac08c827e8443') version('0.29.23', sha256='6a0d31452f0245daacb14c979c77e093eb1a546c760816b5eed0047686baad8e') version('0.29.22', sha256='df6b83c7a6d1d967ea89a2903e4a931377634a297459652e4551734c48195406') version('0.29.21', sha256='e57acb89bd55943c8d8bf813763d20b9099cc7165c0f16b707631a7654be9cad') diff --git a/var/spack/repos/builtin/packages/py-datalad/package.py b/var/spack/repos/builtin/packages/py-datalad/package.py new file mode 100644 index 00000000000..c9194bfa320 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-datalad/package.py @@ -0,0 +1,108 @@ +# Copyright 2013-2021 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 import * + + +class PyDatalad(PythonPackage): + """data distribution geared toward scientific datasets. + + DataLad makes data management and data distribution more accessible. To do + that, it stands on the shoulders of Git and Git-annex to deliver a + decentralized system for data exchange. This includes automated ingestion + of data from online portals and exposing it in readily usable form as + Git(-annex) repositories, so-called datasets. The actual data storage and + permission management, however, remains with the original data providers. + """ + + homepage = "https://datalad.org/" + pypi = "datalad/datalad-0.14.6.tar.gz" + + version('0.14.6', sha256='149b25a00da133a81be3cbdc041a1985418f0918fa5961ba979e23b5b3c08c63') + + variant('downloaders-extra', default=False, description="Enable extra downloaders support") + variant('misc', default=False, description="Enable misc") + variant('tests', default=False, description="Enable tests") + variant('metadata-extra', default=False, description="Enable extra metadata support") + variant('duecredit', default=False, description="Enable duecredit support") + variant('full', default=False, description="Enable support for all available variants") + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools@40.8.0:', type='build') + depends_on('git', type=('build', 'run')) + depends_on('git-annex', type=('build', 'run')) + + # core + depends_on('py-appdirs', type=('build', 'run')) + depends_on('py-chardet@3.0.4:', type=('build', 'run')) + depends_on('py-distro', type=('build', 'run'), when='^python@3.8:') + depends_on('py-importlib-metadata', type=('build', 'run'), when='^python@:3.7') + 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-patool@1.7:', type=('build', 'run')) + depends_on('py-tqdm', type=('build', 'run')) + depends_on('py-wrapt', type=('build', 'run')) + depends_on('py-annexremote', type=('build', 'run')) + # additional dependency on 'colorama' if platform_system=="Windows"' + + # downloaders + depends_on('py-boto', 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')) + + # puplish + depends_on('py-jsmin', type=('build', 'run')) + depends_on('py-pygithub', type=('build', 'run')) + + # metadata + 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-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-nose@1.3.4:', type=('build', 'run')) + depends_on('py-vcrpy', type=('build', 'run')) + + 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('py-pillow', type=('build', 'run')) + + with when('+duecredit'): + depends_on('py-duecredit', type=('build', 'run')) + + with when('+full'): + # all the above + # downloader-extra + depends_on('py-requests-ftp', type=('build', 'run')) + # misc + depends_on('py-pyperclip', type=('build', 'run')) + depends_on('py-python-dateutil', type=('build', 'run')) + # tests + depends_on('py-beautifulsoup4', type=('build', 'run')) + depends_on('py-httpretty@0.9.4:', type=('build', 'run')) + depends_on('py-nose@1.3.4:', type=('build', 'run')) + depends_on('py-vcrpy', type=('build', 'run')) + # 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('py-pillow', type=('build', 'run')) + # duecredit + depends_on('py-duecredit', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-deap/package.py b/var/spack/repos/builtin/packages/py-deap/package.py index 70245812781..7e51cc5c7fb 100644 --- a/var/spack/repos/builtin/packages/py-deap/package.py +++ b/var/spack/repos/builtin/packages/py-deap/package.py @@ -9,7 +9,7 @@ class PyDeap(PythonPackage): """Distributed Evolutionary Algorithms in Python.""" - homepage = "http://deap.readthedocs.org/" + homepage = "https://deap.readthedocs.org/" pypi = "deap/deap-1.3.1.tar.gz" version('1.3.1', sha256='11f54493ceb54aae10dde676577ef59fc52d52f82729d5a12c90b0813c857a2f') diff --git a/var/spack/repos/builtin/packages/py-debtcollector/package.py b/var/spack/repos/builtin/packages/py-debtcollector/package.py new file mode 100644 index 00000000000..89598c845fc --- /dev/null +++ b/var/spack/repos/builtin/packages/py-debtcollector/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2021 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 import * + + +class PyDebtcollector(PythonPackage): + """ + A collection of Python deprecation patterns and strategies that help you + collect your technical debt in a non-destructive manner. + """ + + homepage = "https://docs.openstack.org/debtcollector/latest" + pypi = "debtcollector/debtcollector-2.2.0.tar.gz" + + maintainers = ['haampie'] + + version('2.2.0', sha256='787981f4d235841bf6eb0467e23057fb1ac7ee24047c32028a8498b9128b6829') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-pbr@2.0.0:2.0.999,2.1.1:', type='build') + + depends_on('py-six@1.10.0:', type=('build', 'run')) + depends_on('py-wrapt@1.7.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-debugpy/package.py b/var/spack/repos/builtin/packages/py-debugpy/package.py new file mode 100644 index 00000000000..64dee06b769 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-debugpy/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2021 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 import * + + +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" + + # 'debugpy._vendored' requires additional dependencies, Windows-specific + import_modules = [ + 'debugpy', 'debugpy.adapter', 'debugpy.launcher', 'debugpy.server', + 'debugpy.common' + ] + + version('1.4.1', sha256='889316de0b8ff3732927cb058cfbd3371e4cd0002ecc170d34c755ad289c867c') + + depends_on('python@2.7:2.8,3.5:', type=('build', 'link', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-deprecation/package.py b/var/spack/repos/builtin/packages/py-deprecation/package.py index 86dfeb1502a..ba8a64d5671 100644 --- a/var/spack/repos/builtin/packages/py-deprecation/package.py +++ b/var/spack/repos/builtin/packages/py-deprecation/package.py @@ -10,7 +10,7 @@ class PyDeprecation(PythonPackage): """The deprecation library provides a deprecated decorator and a fail_if_not_removed decorator for your tests. """ - homepage = "http://deprecation.readthedocs.io/" + homepage = "https://deprecation.readthedocs.io/" pypi = "deprecation/deprecation-2.0.7.tar.gz" version('2.0.7', sha256='c0392f676a6146f0238db5744d73e786a43510d54033f80994ef2f4c9df192ed') diff --git a/var/spack/repos/builtin/packages/py-diskcache/package.py b/var/spack/repos/builtin/packages/py-diskcache/package.py index c25bcb47ca8..c2c2bebc3b7 100644 --- a/var/spack/repos/builtin/packages/py-diskcache/package.py +++ b/var/spack/repos/builtin/packages/py-diskcache/package.py @@ -10,6 +10,9 @@ class PyDiskcache(PythonPackage): homepage = "http://www.grantjenks.com/docs/diskcache/" pypi = "diskcache/diskcache-4.1.0.tar.gz" + version('5.2.1', sha256='1805acd5868ac10ad547208951a1190a0ab7bbff4e70f9a07cde4dbdfaa69f64') version('4.1.0', sha256='bcee5a59f9c264e2809e58d01be6569a3bbb1e36a1e0fb83f7ef9b2075f95ce0') + depends_on("python", type=("build", "run"), when="@:4.1.0") + depends_on("python@3:", type=("build", "run"), when="@5.2.1:") depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-dulwich/package.py b/var/spack/repos/builtin/packages/py-dulwich/package.py index b0dca56e9e8..c66c4658f01 100644 --- a/var/spack/repos/builtin/packages/py-dulwich/package.py +++ b/var/spack/repos/builtin/packages/py-dulwich/package.py @@ -15,6 +15,7 @@ class PyDulwich(PythonPackage): homepage = "https://www.dulwich.io" pypi = "dulwich/dulwich-0.20.15.tar.gz" + version('0.20.21', sha256='ac764c9a9b80fa61afe3404d5270c5060aa57f7f087b11a95395d3b76f3b71fd') version('0.20.15', sha256='fb1773373ec2af896031f8312af6962a1b8b0176a2de3fb3d84a84ec04498888') version('0.20.14', sha256='21d6ee82708f7c67ce3fdcaf1f1407e524f7f4f7411a410a972faa2176baec0d') diff --git a/var/spack/repos/builtin/packages/py-dvc/package.py b/var/spack/repos/builtin/packages/py-dvc/package.py index dc638f2ab84..67939379886 100644 --- a/var/spack/repos/builtin/packages/py-dvc/package.py +++ b/var/spack/repos/builtin/packages/py-dvc/package.py @@ -13,6 +13,7 @@ class PyDvc(PythonPackage): homepage = "https://www.dvc.org" pypi = "dvc/dvc-1.11.10.tar.gz" + version('2.1.0', sha256='46cfbf0db27107fb3a2d5c643e3a948bb24539bf165ef70e77ce64283959e481') version('1.11.10', sha256='6b53ebf1bd5619836f131181402bb21f7b44109166e9db8f8d6a0d8c7ce9458d') version('1.11.6', sha256='41ba76c51c6142b28dae3aab039cb12423ba52fed6bd2a838f8308f315cfc20b') @@ -24,7 +25,9 @@ class PyDvc(PythonPackage): depends_on('py-colorama@0.3.9:', type=('build', 'run')) depends_on('py-configobj@5.0.6:', type=('build', 'run')) depends_on('py-gitpython@3.1:', type=('build', 'run')) - depends_on('py-dulwich@0.20.14:', type=('build', 'run')) + depends_on('py-dulwich@0.20.14:', type=('build', 'run'), when='@:1.11.10') + depends_on('py-dulwich@0.20.21:', type=('build', 'run'), when='@2.1.0:') + depends_on('py-pygit2@1.5.0:', type=('build', 'run'), when='@2.1.0:') depends_on('py-setuptools@34.0.0:', type=('build', 'run')) depends_on('py-nanotime@0.5.2:', type=('build', 'run')) depends_on('py-pyasn1@0.4.1:', type=('build', 'run')) @@ -44,18 +47,23 @@ class PyDvc(PythonPackage): depends_on('py-zc-lockfile@1.2.1:', type=('build', 'run')) depends_on('py-networkx@2.1:2.4', when='@:1.11.6', type=('build', 'run')) depends_on('py-networkx@2.1:', when='@1.11.7:', type=('build', 'run')) + depends_on('py-psutil@5.8.0:', type=('build', 'run'), when='@2.1.0:') depends_on('py-pydot@1.2.4:', type=('build', 'run')) depends_on('py-dataclasses@0.7', when='^python@:3.6.999', type=('build', 'run')) depends_on('py-flatten-dict@0.3.0:0.99', type=('build', 'run')) depends_on('py-tabulate@0.8.7:', type=('build', 'run')) depends_on('py-pygtrie@2.3.2', type=('build', 'run')) depends_on('py-dpath@2.0.1:2.99', type=('build', 'run')) - depends_on('py-shtab@1.3.2:1.99', type=('build', 'run')) - depends_on('py-rich@3.0.5:', type=('build', 'run')) + depends_on('py-shtab@1.3.2:1.99', type=('build', 'run'), when='@:1.11.10') + depends_on('py-shtab@1.3.4:1.99', type=('build', 'run'), when='@2.1.0:') + depends_on('py-rich@3.0.5:', type=('build', 'run'), when='@:1.11.10') + depends_on('py-rich@10.0.0:', type=('build', 'run'), when='@2.1.0:') depends_on('py-dictdiffer@0.8.1:', type=('build', 'run')) depends_on('py-python-benedict@0.21.1:', type=('build', 'run')) depends_on('py-pyparsing@2.4.7', type=('build', 'run')) depends_on('py-typing-extensions@3.7.4:', type=('build', 'run')) + depends_on('py-fsspec@0.9.0', type=('build', 'run'), when='@2.1.0:') + depends_on('py-diskcache@5.2.1:', type=('build', 'run'), when='@2.1.0:') depends_on('py-paramiko@2.7.0:+invoke', when='+ssh', type=('build', 'run')) depends_on('py-boto3@1.9.201:', when='+s3', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-efficientnet-pytorch/package.py b/var/spack/repos/builtin/packages/py-efficientnet-pytorch/package.py index 1da4280680a..b2904d76d62 100644 --- a/var/spack/repos/builtin/packages/py-efficientnet-pytorch/package.py +++ b/var/spack/repos/builtin/packages/py-efficientnet-pytorch/package.py @@ -12,6 +12,7 @@ class PyEfficientnetPytorch(PythonPackage): homepage = "https://github.com/lukemelas/efficientnet_pytorch" pypi = "efficientnet_pytorch/efficientnet_pytorch-0.6.3.tar.gz" + version('0.7.1', sha256='00b9b261effce59d2d47aae2ad238c29a2a65175470f41ada7ecac439b7c1ee1') version('0.6.3', sha256='6667459336893e9bf6367de3788ba449fed97f65da3b6782bf2204b6273a319f') depends_on('python@3.5.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-elephant/package.py b/var/spack/repos/builtin/packages/py-elephant/package.py index 3fe5a3fb3f4..5b91b032192 100644 --- a/var/spack/repos/builtin/packages/py-elephant/package.py +++ b/var/spack/repos/builtin/packages/py-elephant/package.py @@ -10,7 +10,7 @@ class PyElephant(PythonPackage): """Elephant is a package for analysis of electrophysiology data in Python """ - homepage = "http://neuralensemble.org/elephant" + homepage = "https://neuralensemble.org/elephant" pypi = "elephant/elephant-0.3.0.tar.gz" version('0.4.1', sha256='86b21a44cbacdc09a6ba6f51738dcd5b42ecd553d73acb29f71a0be7c82eac81') diff --git a/var/spack/repos/builtin/packages/py-emcee/package.py b/var/spack/repos/builtin/packages/py-emcee/package.py index 7e0687f228d..b29644662b5 100644 --- a/var/spack/repos/builtin/packages/py-emcee/package.py +++ b/var/spack/repos/builtin/packages/py-emcee/package.py @@ -10,7 +10,7 @@ class PyEmcee(PythonPackage): """emcee is an MIT licensed pure-Python implementation of Goodman & Weare's Affine Invariant Markov chain Monte Carlo (MCMC) Ensemble sampler.""" - homepage = "http://dan.iel.fm/emcee/current/" + homepage = "https://dan.iel.fm/emcee/current/" pypi = "emcee/emcee-2.2.1.tar.gz" version('2.2.1', sha256='b83551e342b37311897906b3b8acf32979f4c5542e0a25786ada862d26241172') diff --git a/var/spack/repos/builtin/packages/py-espresso/package.py b/var/spack/repos/builtin/packages/py-espresso/package.py index 581a670a2a1..208ddfe33b4 100644 --- a/var/spack/repos/builtin/packages/py-espresso/package.py +++ b/var/spack/repos/builtin/packages/py-espresso/package.py @@ -18,7 +18,7 @@ class PyEspresso(CMakePackage): Boltzmann solver for hydrodynamic interactions, and allows several particle couplings to the LB fluid. """ - homepage = "http://espressomd.org/" + homepage = "https://espressomd.org/" git = "https://github.com/espressomd/espresso.git" url = "https://github.com/espressomd/espresso/releases/download/4.0.0/espresso-4.0.0.tar.gz" diff --git a/var/spack/repos/builtin/packages/py-et-xmlfile/package.py b/var/spack/repos/builtin/packages/py-et-xmlfile/package.py index e80e144278a..5ada9751419 100644 --- a/var/spack/repos/builtin/packages/py-et-xmlfile/package.py +++ b/var/spack/repos/builtin/packages/py-et-xmlfile/package.py @@ -9,7 +9,7 @@ class PyEtXmlfile(PythonPackage): """An implementation of lxml.xmlfile for the standard library.""" - homepage = "https://bitbucket.org/openpyxl/et_xmlfile" + homepage = "https://et-xmlfile.readthedocs.io/en/latest/" pypi = "et_xmlfile/et_xmlfile-1.0.1.tar.gz" version('1.0.1', sha256='614d9722d572f6246302c4491846d2c393c199cfa4edc9af593437691683335b') diff --git a/var/spack/repos/builtin/packages/py-execnet/package.py b/var/spack/repos/builtin/packages/py-execnet/package.py index b8d0a4b5fcb..74c6aaa6c5e 100644 --- a/var/spack/repos/builtin/packages/py-execnet/package.py +++ b/var/spack/repos/builtin/packages/py-execnet/package.py @@ -11,7 +11,7 @@ class PyExecnet(PythonPackage): communication for distributing execution across many Python interpreters across version, platform and network barriers.""" - homepage = "http://codespeak.net/execnet" + homepage = "https://codespeak.net/execnet" pypi = "execnet/execnet-1.7.1.tar.gz" version('1.7.1', sha256='cacb9df31c9680ec5f95553976c4da484d407e85e41c83cb812aa014f0eddc50') diff --git a/var/spack/repos/builtin/packages/py-fastcov/package.py b/var/spack/repos/builtin/packages/py-fastcov/package.py new file mode 100644 index 00000000000..1c3b57aeaf4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fastcov/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2021 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 import * + + +class PyFastcov(PythonPackage): + """ + A parallelized gcov wrapper for generating intermediate coverage formats + fast + """ + + homepage = "https://github.com/RPGillespie6/fastcov" + pypi = "fastcov/fastcov-1.13.tar.gz" + + maintainers = ['haampie'] + + version('1.13', sha256='ec8a5271f90a2f8b894cb999e262c33e225ed6072d9a6ca38f636f88cc0543e8') + + # Depends on gcov too, but that's installed with the compiler + depends_on('python@3.5:', type=('build', 'run')) + depends_on('py-setuptools@38.3:', type='build') diff --git a/var/spack/repos/builtin/packages/py-fenics-basix/package.py b/var/spack/repos/builtin/packages/py-fenics-basix/package.py index 0cfca370c32..1f5c567059e 100644 --- a/var/spack/repos/builtin/packages/py-fenics-basix/package.py +++ b/var/spack/repos/builtin/packages/py-fenics-basix/package.py @@ -11,20 +11,26 @@ class PyFenicsBasix(PythonPackage): environment""" homepage = "https://github.com/FEniCS/basix" - url = "https://github.com/FEniCS/basix/archive/0.1.0.tar.gz" + url = "https://github.com/FEniCS/basix/archive/v0.1.0.tar.gz" git = "https://github.com/FEniCS/basix.git" maintainers = ["chrisrichardson", "mscroggs", "garth-wells"] version("main", branch="main") + version("0.3.0", sha256="9b148fd2a5485c94011fc6ca977ebdef0e51782a62b3654fc044f35b60e2bd07") + version("0.2.0", sha256="e1ec537737adb283717060221635092474e3f2b5b5ba79dfac74aa496bec2fcb") version("0.1.0", sha256="2ab41fe6ad4f6c42f01b17a6e7c39debb4e0ae61c334d1caebee78b741bca4e7") depends_on("fenics-basix@main", type=("build", "run"), when="@main") + depends_on("fenics-basix@0.3.0", type=("build", "run"), when="@0.3.0") + depends_on("fenics-basix@0.2.0", type=("build", "run"), when="@0.2.0") depends_on("fenics-basix@0.1.0", type=("build", "run"), when="@0.1.0") depends_on("python@3.7:", type=('build', 'run')) depends_on("py-setuptools", type="build") depends_on("cmake@3.18:", type="build") - depends_on("py-pybind11@2.6.2:", type="build") + depends_on("xtl@0.7.2:", type="build") + depends_on("xtensor@0.23.10:", type="build") + depends_on("py-pybind11@2.6.2:2.7.99", type="build") phases = ['build_ext', 'build', 'install'] diff --git a/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py b/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py index 56b0608a93d..bb5d442be3b 100644 --- a/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py +++ b/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py @@ -11,35 +11,43 @@ class PyFenicsDolfinx(PythonPackage): environment""" homepage = "https://github.com/FEniCS/dolfinx" - url = "https://github.com/FEniCS/dolfinx/archive/0.1.0.tar.gz" + url = "https://github.com/FEniCS/dolfinx/archive/v0.1.0.tar.gz" git = "https://github.com/FEniCS/dolfinx.git" maintainers = ["js947", "chrisrichardson", "garth-wells"] version("main", branch="main") + version("0.3.0", sha256="4857d0fcb44a4e9bf9eb298ba5377abdee17a7ad0327448bdd06cce73d109bed") + version("0.2.0", sha256="4c9b5a5c7ef33882c99299c9b4d98469fb7aa470a37a91bc5be3bb2fc5b863a4") version("0.1.0", sha256="0269379769b5b6d4d1864ded64402ecaea08054c2a5793c8685ea15a59af5e33") - depends_on("cmake@3.12:", type="build") + depends_on("cmake@3.18:", type="build") depends_on("hdf5", type="build") depends_on("pkgconfig", type=("build", "run")) depends_on('python@3.7:', type=('build', 'run')) depends_on("py-setuptools", type="build") depends_on("fenics-dolfinx@main", when="@main") + depends_on("fenics-dolfinx@0.3.0", when="@0.3.0") + depends_on("fenics-dolfinx@0.2.0", when="@0.2.0") depends_on("fenics-dolfinx@0.1.0", when="@0.1.0") - depends_on("fenics-basix@main", type=("build", "run"), when="@main") - depends_on("fenics-basix@0.1.0", type=("build", "run"), when="@0.1.0") + depends_on("fenics-basix@main", type=("build", "link"), when="@main") + depends_on("fenics-basix@0.3.0", type=("build", "link"), when="@0.3.0") + depends_on("fenics-basix@0.2.0", type=("build", "link"), when="@0.2.0") + depends_on("fenics-basix@0.1.0", type=("build", "link"), when="@0.1.0") + depends_on("py-numpy@:1.20.3", type=("build", "run")) depends_on("py-mpi4py", type=("build", "run")) depends_on("py-petsc4py", type=("build", "run")) - depends_on("py-pybind11@2.6.2:", type=("build", "run")) + depends_on("py-pybind11@2.6.2:2.7.99", type=("build", "run")) + depends_on("xtensor@0.23.10:", type="build") - depends_on("py-fenics-ffcx@main", type=("run"), when="@main") - depends_on("py-fenics-ffcx@0.1.0", type=("run"), when="@0.1.0") - depends_on("py-fenics-basix", type=("run"), when="@main") - depends_on("py-fenics-basix@0.1.0", type=("run"), when="@0.1.0") - depends_on("py-fenics-ufl@main", type=("run"), when="@main") - depends_on("py-fenics-ufl@2021.1.0", type=("run"), when="@0.1.0") + depends_on("py-fenics-ffcx@main", type="run", when="@main") + depends_on("py-fenics-ffcx@0.3.0", type="run", when="@0.3.0") + depends_on("py-fenics-ffcx@0.2.0", type="run", when="@0.2.0") + depends_on("py-fenics-ffcx@0.1.0", type="run", when="@0.1.0") + depends_on("py-fenics-ufl@main", type="run", when="@main") + depends_on("py-fenics-ufl@2021.1.0", type="run", when="@0.1:") - depends_on("py-cffi", type=("run")) - depends_on("py-numpy", type=("run")) + depends_on("py-cffi", type="run") + depends_on("py-numpy", type="run") phases = ['build_ext', 'build', 'install'] diff --git a/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py b/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py index e9b2d989b98..8220ce2c53b 100644 --- a/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py +++ b/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py @@ -10,21 +10,25 @@ class PyFenicsFfcx(PythonPackage): """Next generation FEniCS Form Compiler""" homepage = "https://github.com/FEniCS/ffcx" - url = "https://github.com/FEniCS/ffcx/archive/0.1.0.tar.gz" + url = "https://github.com/FEniCS/ffcx/archive/v0.1.0.tar.gz" git = "https://github.com/FEniCS/ffcx.git" maintainers = ["js947", "chrisrichardson", "garth-wells"] version('main', branch='main') + version('0.3.0', sha256='33fa1a0cc5762f360033c25a99ec9462be933f8ba413279e35cd2c3b5c3e6096') + version('0.2.0', sha256='562a704163a6427e0341d267e69b8bf55d8f53d673829170b443191577e8d9b6') version('0.1.0', sha256='98a47906146ac892fb4a358e04cbfd04066f12d0a4cdb505a6b08ff0b1a17e89') - depends_on('python@3.5:', type=('build', 'run')) + depends_on('python@3.7:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-cffi', type=('build', 'run')) + depends_on('py-cffi', type='run') - depends_on('py-fenics-ufl@main', type=('build', 'run'), when='@main') - depends_on('py-fenics-ufl@2021.1.0', type=('build', 'run'), when='@0.1.0') + depends_on('py-fenics-ufl@main', type='run', when='@main') + depends_on('py-fenics-ufl@2021.1.0', type='run', when='@0.1:') - depends_on('py-fenics-basix@main', type=('build', 'run'), when='@main') - depends_on('py-fenics-basix@0.1.0', type=('build', 'run'), when='@0.1.0') + depends_on('py-fenics-basix@main', type='run', when='@main') + depends_on('py-fenics-basix@0.3.0', type='run', when='@0.3.0') + depends_on('py-fenics-basix@0.2.0', type='run', when='@0.2.0') + depends_on('py-fenics-basix@0.1.0', type='run', when='@0.1.0') - depends_on('py-numpy', type=('build', 'run')) + depends_on('py-numpy', type='run') diff --git a/var/spack/repos/builtin/packages/py-fenics-ufl/package.py b/var/spack/repos/builtin/packages/py-fenics-ufl/package.py index 757937beffe..b23326123c4 100644 --- a/var/spack/repos/builtin/packages/py-fenics-ufl/package.py +++ b/var/spack/repos/builtin/packages/py-fenics-ufl/package.py @@ -27,6 +27,6 @@ class PyFenicsUfl(PythonPackage): version('2017.1.0.post1', sha256='82c8170f44c2392c7e60aa86495df22cc209af50735af8115dc35aeda4b0ca96') version('2016.2.0', tag='ufl-2016.2.0') - depends_on("python@3.5:", type=('build', 'run')) + depends_on("python@3.7:", type=('build', 'run')) depends_on("py-setuptools", type="build") depends_on("py-numpy", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-fiona/package.py b/var/spack/repos/builtin/packages/py-fiona/package.py index 1365749c137..f2d55509f87 100644 --- a/var/spack/repos/builtin/packages/py-fiona/package.py +++ b/var/spack/repos/builtin/packages/py-fiona/package.py @@ -16,6 +16,7 @@ class PyFiona(PythonPackage): maintainers = ['adamjstewart'] version('master', branch='master') + version('1.8.20', sha256='a70502d2857b82f749c09cb0dea3726787747933a2a1599b5ab787d74e3c143b') version('1.8.18', sha256='b732ece0ff8886a29c439723a3e1fc382718804bb057519d537a81308854967a') version('1.8.6', sha256='fa31dfe8855b9cd0b128b47a4df558f1b8eda90d2181bff1dd9854e5556efb3e') version('1.7.12', sha256='8b54eb8422d7c502bb7776b184018186bede1a489cf438a7a47f992ade6a0e51') @@ -25,15 +26,15 @@ class PyFiona(PythonPackage): depends_on('gdal@1.11:', type=('build', 'link', 'run'), when='@1.9:') depends_on('gdal@1.8:', type=('build', 'link', 'run')) - depends_on('py-setuptools', type=('build', 'run')) depends_on('py-cython', type='build', when='@master') depends_on('py-attrs@17:', type=('build', 'run')) - depends_on('py-certifi', type=('build', 'run'), when='@1.8.18') - depends_on('py-click@4:7', type=('build', 'run')) + depends_on('py-certifi', type=('build', 'run'), when='@1.8.18:') + depends_on('py-click@4:', type=('build', 'run')) depends_on('py-cligj@0.5:', type=('build', 'run')) depends_on('py-click-plugins@1:', type=('build', 'run')) depends_on('py-six@1.7:', type=('build', 'run')) depends_on('py-munch', type=('build', 'run')) + depends_on('py-setuptools', type=('build', 'run')) depends_on('py-argparse', type=('build', 'run'), when='^python@:2.6') depends_on('py-ordereddict', type=('build', 'run'), when='^python@:2.6') depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3') diff --git a/var/spack/repos/builtin/packages/py-flameprof/package.py b/var/spack/repos/builtin/packages/py-flameprof/package.py new file mode 100644 index 00000000000..7e97b48a695 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-flameprof/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 import * + + +class PyFlameprof(PythonPackage): + """Flamegraph generator for python's cProfile stats.""" + + homepage = "https://github.com/baverman/flameprof/" + pypi = "flameprof/flameprof-0.4.tar.gz" + + maintainers = ['haampie'] + + version('0.4', sha256='dbc86d4190cbbba624f1e0a40f44d9db96138e27534d83c8ef42d420857875a3') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-flexx/package.py b/var/spack/repos/builtin/packages/py-flexx/package.py index f8ec0d645f7..2c3436542f4 100644 --- a/var/spack/repos/builtin/packages/py-flexx/package.py +++ b/var/spack/repos/builtin/packages/py-flexx/package.py @@ -9,7 +9,7 @@ class PyFlexx(PythonPackage): """Write desktop and web apps in pure Python.""" - homepage = "http://flexx.readthedocs.io" + homepage = "https://flexx.readthedocs.io" pypi = "flexx/flexx-0.4.1.zip" version('0.4.1', sha256='54be868f01d943018d0907821f2562f6eb31c568b3932abfd8518f75c29b8be1') diff --git a/var/spack/repos/builtin/packages/py-flit-core/package.py b/var/spack/repos/builtin/packages/py-flit-core/package.py new file mode 100644 index 00000000000..bd4c94e3a1b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-flit-core/package.py @@ -0,0 +1,32 @@ +# Copyright 2013-2021 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 glob +import os +import zipfile + +from spack import * + + +class PyFlitCore(PythonPackage): + """Distribution-building parts of Flit.""" + + homepage = "https://github.com/takluyver/flit" + url = "https://github.com/takluyver/flit/archive/refs/tags/3.3.0.tar.gz" + maintainers = ['takluyver'] + + version('3.3.0', sha256='f5340b268563dd408bf8e2df6dbc8d4d08bc76cdff0d8c7f8a4be94e5f01f22f') + + depends_on('python@3.4:', type=('build', 'run')) + depends_on('py-toml', type=('build', 'run')) + + def build(self, spec, prefix): + with working_dir('flit_core'): + python('build_dists.py') + + def install(self, spec, prefix): + wheel = glob.glob(os.path.join('flit_core', 'dist', '*.whl'))[0] + with zipfile.ZipFile(wheel) as f: + f.extractall(site_packages_dir) diff --git a/var/spack/repos/builtin/packages/py-flit/package.py b/var/spack/repos/builtin/packages/py-flit/package.py new file mode 100644 index 00000000000..dd1d296ae34 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-flit/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 import * + + +class PyFlit(PythonPackage): + """Flit is a simple way to put Python packages and modules on PyPI.""" + + pypi = "flit/flit-3.3.0.tar.gz" + maintainers = ['takluyver'] + + version('3.3.0', sha256='65fbe22aaa7f880b776b20814bd80b0afbf91d1f95b17235b608aa256325ce57') + + depends_on('py-flit-core@3.3.0:', type=('build', 'run')) + depends_on('py-requests', type=('build', 'run')) + depends_on('py-docutils', type=('build', 'run')) + depends_on('py-toml', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-fsspec/package.py b/var/spack/repos/builtin/packages/py-fsspec/package.py index bafd1887b01..fea9d9ee054 100644 --- a/var/spack/repos/builtin/packages/py-fsspec/package.py +++ b/var/spack/repos/builtin/packages/py-fsspec/package.py @@ -14,6 +14,7 @@ class PyFsspec(PythonPackage): version('2021.7.0', sha256='792ebd3b54de0b30f1ce73f0ba0a8bcc864724f2d9f248cb8d0ece47db0cbde8') version('2021.4.0', sha256='8b1a69884855d1a8c038574292e8b861894c3373282d9a469697a2b41d5289a6') + version('0.9.0', sha256='3f7a62547e425b0b336a6ac2c2e6c6ac824648725bc8391af84bb510a63d1a56') version('0.8.0', sha256='176f3fc405471af0f1f1e14cffa3d53ab8906577973d068b976114433c010d9d') version('0.7.3', sha256='1b540552c93b47e83c568e87507d6e02993e6d1b30bc7285f2336c81c5014103') version('0.4.4', sha256='97697a46e8bf8be34461c2520d6fc4bfca0ed749b22bb2b7c21939fd450a7d63') diff --git a/var/spack/repos/builtin/packages/py-gast/package.py b/var/spack/repos/builtin/packages/py-gast/package.py index 12260e33c62..83706e5056d 100644 --- a/var/spack/repos/builtin/packages/py-gast/package.py +++ b/var/spack/repos/builtin/packages/py-gast/package.py @@ -12,6 +12,8 @@ class PyGast(PythonPackage): homepage = "https://github.com/serge-sans-paille/gast" pypi = "gast/gast-0.3.2.tar.gz" + version('0.5.2', sha256='f81fcefa8b982624a31c9e4ec7761325a88a0eba60d36d1da90e47f8fe3c67f7') + version('0.5.1', sha256='b00e63584db482ffe6107b5832042bbe5c5bf856e3c7279b6e93201b3dcfcb46') version('0.5.0', sha256='8109cbe7aa0f7bf7e4348379da05b8137ea1f059f073332c3c1cedd57db8541f') version('0.4.0', sha256='40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1') version('0.3.3', sha256='b881ef288a49aa81440d2c5eb8aeefd4c2bb8993d5f50edae7413a85bfdb3b57') diff --git a/var/spack/repos/builtin/packages/py-geeup/package.py b/var/spack/repos/builtin/packages/py-geeup/package.py index e0b2f3975f6..a1128d4b4dd 100644 --- a/var/spack/repos/builtin/packages/py-geeup/package.py +++ b/var/spack/repos/builtin/packages/py-geeup/package.py @@ -29,6 +29,6 @@ class PyGeeup(PythonPackage): depends_on('py-pysmartdl', type=('build', 'run')) depends_on('py-pysmartdl@1.2.5', type=('build', 'run'), when='^python@:3.3') depends_on('py-pysmartdl@1.3.1:', type=('build', 'run'), when='^python@3.4:') - depends_on('py-pathlib@1.0.1:', type=('build', 'run')) + depends_on('py-pathlib@1.0.1:', when='^python@:3.3', type=('build', 'run')) depends_on('py-lxml@4.1.1:', type=('build', 'run')) depends_on('py-oauth2client@4.1.3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-gevent/package.py b/var/spack/repos/builtin/packages/py-gevent/package.py index a7bf95a17b8..8d915c49846 100644 --- a/var/spack/repos/builtin/packages/py-gevent/package.py +++ b/var/spack/repos/builtin/packages/py-gevent/package.py @@ -9,7 +9,7 @@ class PyGevent(PythonPackage): """gevent is a coroutine-based Python networking library.""" - homepage = "http://www.gevent.org" + homepage = "https://www.gevent.org" pypi = "gevent/gevent-1.3a2.tar.gz" version('1.3a2', sha256='f7ab82697111ea233c7beeadf5240f669dfad9c4bbc89a3ec80a49e2c48a65bd') diff --git a/var/spack/repos/builtin/packages/py-git-review/package.py b/var/spack/repos/builtin/packages/py-git-review/package.py index e4b2c7222cf..6e357bd22b1 100644 --- a/var/spack/repos/builtin/packages/py-git-review/package.py +++ b/var/spack/repos/builtin/packages/py-git-review/package.py @@ -9,7 +9,7 @@ class PyGitReview(PythonPackage): """git-review is a tool that helps submitting git branches to gerrit""" - homepage = "http://docs.openstack.org/infra/git-review" + homepage = "https://docs.openstack.org/infra/git-review" pypi = "git-review/git-review-1.25.0.tar.gz" version('2.1.0', sha256='3a6c775645b1fa8c40c49fbfce6f8d7e225a1e797a0aa92912607b1d97e61ed6') diff --git a/var/spack/repos/builtin/packages/py-gitpython/package.py b/var/spack/repos/builtin/packages/py-gitpython/package.py index 0ed05bb3ee0..509e74c21ef 100644 --- a/var/spack/repos/builtin/packages/py-gitpython/package.py +++ b/var/spack/repos/builtin/packages/py-gitpython/package.py @@ -9,7 +9,7 @@ class PyGitpython(PythonPackage): """GitPython is a python library used to interact with Git repositories.""" - homepage = "http://gitpython.readthedocs.org" + homepage = "https://gitpython.readthedocs.org" pypi = "GitPython/GitPython-3.1.12.tar.gz" version('3.1.12', sha256='42dbefd8d9e2576c496ed0059f3103dcef7125b9ce16f9d5f9c834aed44a1dac') diff --git a/var/spack/repos/builtin/packages/py-google-api-python-client/package.py b/var/spack/repos/builtin/packages/py-google-api-python-client/package.py index 86ddee05bbc..7f9c3476a22 100644 --- a/var/spack/repos/builtin/packages/py-google-api-python-client/package.py +++ b/var/spack/repos/builtin/packages/py-google-api-python-client/package.py @@ -10,7 +10,7 @@ class PyGoogleApiPythonClient(PythonPackage): """The Google API Client for Python is a client library for accessing the Plus, Moderator, and many other Google APIs.""" - homepage = "http://github.com/google/google-api-python-client/" + homepage = "https://github.com/google/google-api-python-client/" pypi = "google-api-python-client/google-api-python-client-1.7.10.tar.gz" version('1.7.10', sha256='2e55a5c7b56233c68945b6804c73e253445933f4d485d4e69e321b38772b9dd6') diff --git a/var/spack/repos/builtin/packages/py-google/package.py b/var/spack/repos/builtin/packages/py-google/package.py index 2ea3f0c709e..c57a4cb0ae5 100644 --- a/var/spack/repos/builtin/packages/py-google/package.py +++ b/var/spack/repos/builtin/packages/py-google/package.py @@ -7,7 +7,7 @@ class PyGoogle(PythonPackage): """Python bindings to the Google search engine.""" - homepage = "http://breakingcode.wordpress.com/" + homepage = "https://breakingcode.wordpress.com/" pypi = "google/google-3.0.0.tar.gz" version('3.0.0', sha256='143530122ee5130509ad5e989f0512f7cb218b2d4eddbafbad40fd10e8d8ccbe') diff --git a/var/spack/repos/builtin/packages/py-gpy/package.py b/var/spack/repos/builtin/packages/py-gpy/package.py index 84f5e117cb6..920cd397554 100644 --- a/var/spack/repos/builtin/packages/py-gpy/package.py +++ b/var/spack/repos/builtin/packages/py-gpy/package.py @@ -9,7 +9,7 @@ class PyGpy(PythonPackage): """The Gaussian Process Toolbox.""" - homepage = "http://sheffieldml.github.com/GPy/" + homepage = "https://sheffieldml.github.io/GPy/" pypi = "gpy/GPy-1.9.9.tar.gz" version('1.9.9', sha256='04faf0c24eacc4dea60727c50a48a07ddf9b5751a3b73c382105e2a31657c7ed') diff --git a/var/spack/repos/builtin/packages/py-grpcio/package.py b/var/spack/repos/builtin/packages/py-grpcio/package.py index d33a1aa0432..00c3cf32b19 100644 --- a/var/spack/repos/builtin/packages/py-grpcio/package.py +++ b/var/spack/repos/builtin/packages/py-grpcio/package.py @@ -3,6 +3,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + class PyGrpcio(PythonPackage): """HTTP/2-based RPC framework.""" @@ -46,6 +48,7 @@ def setup_build_environment(self, env): env.set('GRPC_PYTHON_BUILD_SYSTEM_CARES', 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)) for dep in self.spec.dependencies(deptype='link'): query = self.spec[dep.name] diff --git a/var/spack/repos/builtin/packages/py-h5py/package.py b/var/spack/repos/builtin/packages/py-h5py/package.py index bab55b7fe14..e55e365c6cd 100644 --- a/var/spack/repos/builtin/packages/py-h5py/package.py +++ b/var/spack/repos/builtin/packages/py-h5py/package.py @@ -10,7 +10,7 @@ class PyH5py(PythonPackage): """The h5py package provides both a high- and low-level interface to the HDF5 library from Python.""" - homepage = "http://www.h5py.org/" + homepage = "https://www.h5py.org/" pypi = "h5py/h5py-3.3.0.tar.gz" git = "https://github.com/h5py/h5py.git" maintainers = ['bryanherman', 'takluyver'] diff --git a/var/spack/repos/builtin/packages/py-holland-backup/package.py b/var/spack/repos/builtin/packages/py-holland-backup/package.py index 4d1be3dcab9..737884efdc9 100644 --- a/var/spack/repos/builtin/packages/py-holland-backup/package.py +++ b/var/spack/repos/builtin/packages/py-holland-backup/package.py @@ -14,7 +14,7 @@ class PyHollandBackup(PythonPackage): Because of its plugin structure, Holland can be used to backup anything you want by whatever means you want.""" - homepage = "http://hollandbackup.org/" + homepage = "https://hollandbackup.org/" url = "https://github.com/holland-backup/holland/archive/1.2.2.tar.gz" version('1.2.2', sha256='836337c243b2dff5ff6a3ce0b647f123ab24697a5de8ac8ae8b7839aa23dff68') diff --git a/var/spack/repos/builtin/packages/py-htseq/package.py b/var/spack/repos/builtin/packages/py-htseq/package.py index f604ab61181..3468ed7aa3d 100644 --- a/var/spack/repos/builtin/packages/py-htseq/package.py +++ b/var/spack/repos/builtin/packages/py-htseq/package.py @@ -10,7 +10,7 @@ class PyHtseq(PythonPackage): """HTSeq is a Python package that provides infrastructure to process data from high-throughput sequencing assays.""" - homepage = "http://htseq.readthedocs.io/en/release_0.9.1/overview.html" + homepage = "https://htseq.readthedocs.io/en/release_0.9.1/overview.html" url = "https://github.com/simon-anders/htseq/archive/release_0.9.1.tar.gz" version('0.11.2', sha256='dfc707effa699d5ba9034e1bb9f13c0fb4e9bc60d31ede2444aa49c7e2fc71aa') diff --git a/var/spack/repos/builtin/packages/py-hyperopt/package.py b/var/spack/repos/builtin/packages/py-hyperopt/package.py index 6cd8f64810c..b53c15b10e5 100644 --- a/var/spack/repos/builtin/packages/py-hyperopt/package.py +++ b/var/spack/repos/builtin/packages/py-hyperopt/package.py @@ -11,7 +11,7 @@ class PyHyperopt(PythonPackage): awkward search spaces, which may include real-valued, discrete, and conditional dimensions.""" - homepage = "http://hyperopt.github.io/hyperopt/" + homepage = "https://hyperopt.github.io/hyperopt/" pypi = "hyperopt/hyperopt-0.2.5.tar.gz" version('0.2.5', sha256='bc6047d50f956ae64eebcb34b1fd40f186a93e214957f20e87af2f10195295cc') diff --git a/var/spack/repos/builtin/packages/py-imageio/package.py b/var/spack/repos/builtin/packages/py-imageio/package.py index e49849ab108..b69b0e3ae4b 100644 --- a/var/spack/repos/builtin/packages/py-imageio/package.py +++ b/var/spack/repos/builtin/packages/py-imageio/package.py @@ -12,7 +12,7 @@ class PyImageio(PythonPackage): images, video, volumetric data, and scientific formats. It is cross-platform, runs on Python 2.7 and 3.4+, and is easy to install.""" - homepage = "http://imageio.github.io/" + homepage = "https://imageio.github.io/" pypi = "imageio/imageio-2.3.0.tar.gz" version('2.9.0', sha256='52ddbaeca2dccf53ba2d6dec5676ca7bc3b2403ef8b37f7da78b7654bb3e10f0') diff --git a/var/spack/repos/builtin/packages/py-invoke/package.py b/var/spack/repos/builtin/packages/py-invoke/package.py index 1b98a890085..52151c2663a 100644 --- a/var/spack/repos/builtin/packages/py-invoke/package.py +++ b/var/spack/repos/builtin/packages/py-invoke/package.py @@ -9,7 +9,7 @@ class PyInvoke(PythonPackage): """Pythonic task execution""" - homepage = "http://www.pyinvoke.org/" + homepage = "https://www.pyinvoke.org/" pypi = "invoke/invoke-1.4.1.tar.gz" version('1.4.1', sha256='de3f23bfe669e3db1085789fd859eb8ca8e0c5d9c20811e2407fa042e8a5e15d') diff --git a/var/spack/repos/builtin/packages/py-ipykernel/package.py b/var/spack/repos/builtin/packages/py-ipykernel/package.py index 3d3d98530b8..62eb5ad22ec 100644 --- a/var/spack/repos/builtin/packages/py-ipykernel/package.py +++ b/var/spack/repos/builtin/packages/py-ipykernel/package.py @@ -9,6 +9,8 @@ class PyIpykernel(PythonPackage): pypi = "ipykernel/ipykernel-5.3.4.tar.gz" + version('6.2.0', sha256='4439459f171d77f35b7f7e72dace5d7c2dd10a5c9e2c22b173ad9048fbfe7656') + version('5.5.5', sha256='e976751336b51082a89fc2099fb7f96ef20f535837c398df6eab1283c2070884') version('5.3.4', sha256='9b2652af1607986a1b231c62302d070bc0534f564c393a5d9d130db9abbbe89d') version('5.1.1', sha256='f0e962052718068ad3b1d8bcc703794660858f58803c3798628817f492a8769c') version('5.1.0', sha256='0fc0bf97920d454102168ec2008620066878848fcfca06c22b669696212e292f') @@ -27,13 +29,21 @@ class PyIpykernel(PythonPackage): depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) depends_on('python@3.4:', when='@5.0:', type=('build', 'run')) depends_on('python@3.5:', when='@5.2:', type=('build', 'run')) + depends_on('python@3.7:', when='@6.0:', type=('build', 'run')) depends_on('py-setuptools', type='build', when='@5:') - depends_on('py-ipython@4.0:', when='@:4.999', type=('build', 'run')) - depends_on('py-ipython@5.0:', when='@5.0.0:', type=('build', 'run')) + depends_on('py-importlib-metadata@:4', when='@6:^python@:3.7', type=('build', 'run')) + depends_on('py-argcomplete@1.12.3:', when='@6:^python@:3.7', type=('build', 'run')) + depends_on('py-debugpy@1.0:1.999', when='@6:', type=('build', 'run')) + depends_on('py-ipython@4.0:', when='@:4', type=('build', 'run')) + depends_on('py-ipython@5.0:', when='@5', type=('build', 'run')) + depends_on('py-ipython@7.23.1:7.999', when='@6:', type=('build', 'run')) depends_on('py-traitlets@4.1.0:', type=('build', 'run')) + depends_on('py-traitlets@4.1.0:5', when='@6:', type=('build', 'run')) depends_on('py-jupyter-client', type=('build', 'run')) - depends_on('py-tornado@4.0:', when='@:4.999', type=('build', 'run')) - depends_on('py-tornado@4.2:', when='@5.0.0:', type=('build', 'run')) + depends_on('py-jupyter-client@:7', when='@6:', type=('build', 'run')) + depends_on('py-tornado@4.0:', when='@:4', type=('build', 'run')) + depends_on('py-tornado@4.2:', when='@5', type=('build', 'run')) + depends_on('py-tornado@4.2:6', when='@6:', type=('build', 'run')) depends_on('py-appnope', when='platform=darwin', type=('build', 'run')) phases = ['build', 'install', 'install_data'] diff --git a/var/spack/repos/builtin/packages/py-ipython/package.py b/var/spack/repos/builtin/packages/py-ipython/package.py index 2997c1eb051..ad8e73c3b41 100644 --- a/var/spack/repos/builtin/packages/py-ipython/package.py +++ b/var/spack/repos/builtin/packages/py-ipython/package.py @@ -22,6 +22,7 @@ class PyIpython(PythonPackage): 'IPython.external', 'IPython.external.decorators' ] + version('7.26.0', sha256='0cff04bb042800129348701f7bd68a430a844e8fb193979c08f6c99f28bb735e') version('7.21.0', sha256='04323f72d5b85b606330b6d7e2dc8d2683ad46c3905e955aa96ecc7a99388e70') version('7.18.1', sha256='a331e78086001931de9424940699691ad49dfb457cea31f5471eae7b78222d5e') version('7.5.0', sha256='e840810029224b56cd0d9e7719dc3b39cf84d577f8ac686547c8ba7a06eeab26') @@ -37,21 +38,23 @@ class PyIpython(PythonPackage): depends_on('python@3.3:', type=('build', 'run'), when='@6:') depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) depends_on('py-setuptools@18.5:', type='run', when='@4.1:') - depends_on('py-jedi@0.10:', type=('build', 'run'), when='@7.5.0:') - depends_on('py-jedi@:0.17', type=('build', 'run'), when='@:7.18') # from release notes - depends_on('py-jedi@0.16:', type=('build', 'run'), when='@7.18:') + depends_on('py-jedi@0.10:', type=('build', 'run'), when='@7.5:7.17,7.19') + depends_on('py-jedi@0.16:', type=('build', 'run'), when='@7.18,7.20:') depends_on('py-decorator', type=('build', 'run')) depends_on('py-pickleshare', type=('build', 'run')) depends_on('py-traitlets@4.2:', type=('build', 'run')) depends_on('py-prompt-toolkit@1.0.4:1.999', when='@:7.0.0', type=('build', 'run')) depends_on('py-prompt-toolkit@2.0.0:2.999', when='@7.0.0:7.5.0', type=('build', 'run')) depends_on('py-prompt-toolkit@2.0.0:2.0.999', when='@7.5.0', type=('build', 'run')) - depends_on('py-prompt-toolkit@3.0.2:3.0.999', when='@7.18:', type=('build', 'run')) + depends_on('py-prompt-toolkit@3.0.2:3.0.999', when='@7.18:7.25', type=('build', 'run')) + depends_on('py-prompt-toolkit@2.0.0:2.999,3.0.2:3.0.999', when='@7.26:', type=('build', 'run')) depends_on('py-pygments', type=('build', 'run')) depends_on('py-backcall', type=('build', 'run'), when='@7.3.0:') + depends_on('py-matplotlib-inline', when='@7.23:', type=('build', 'run')) depends_on('py-pexpect', type=('build', 'run')) depends_on('py-pexpect@4.3:', type=('build', 'run'), when='@7.18:') depends_on('py-appnope', type=('build', 'run'), when='platform=darwin') + depends_on('py-colorama', when='platform=win32', type=('build', 'run')) depends_on('py-backports-shutil-get-terminal-size', type=('build', 'run'), when="^python@:3.2") depends_on('py-pathlib2', type=('build', 'run'), when="^python@:3.3") depends_on('py-simplegeneric@0.8:', type=('build', 'run'), when='@:7.0.0') diff --git a/var/spack/repos/builtin/packages/py-itsdangerous/package.py b/var/spack/repos/builtin/packages/py-itsdangerous/package.py index 566850cee65..168af1fad07 100644 --- a/var/spack/repos/builtin/packages/py-itsdangerous/package.py +++ b/var/spack/repos/builtin/packages/py-itsdangerous/package.py @@ -9,7 +9,7 @@ class PyItsdangerous(PythonPackage): """Various helpers to pass trusted data to untrusted environments.""" - homepage = "http://github.com/mitsuhiko/itsdangerous" + homepage = "https://github.com/mitsuhiko/itsdangerous" pypi = "itsdangerous/itsdangerous-1.1.0.tar.gz" version('1.1.0', sha256='321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19') diff --git a/var/spack/repos/builtin/packages/py-jdcal/package.py b/var/spack/repos/builtin/packages/py-jdcal/package.py index 852f136866d..8e637fa0d9a 100644 --- a/var/spack/repos/builtin/packages/py-jdcal/package.py +++ b/var/spack/repos/builtin/packages/py-jdcal/package.py @@ -9,7 +9,7 @@ class PyJdcal(PythonPackage): """Julian dates from proleptic Gregorian and Julian calendars""" - homepage = "http://github.com/phn/jdcal" + homepage = "https://github.com/phn/jdcal" pypi = "jdcal/jdcal-1.3.tar.gz" version('1.3', sha256='b760160f8dc8cc51d17875c6b663fafe64be699e10ce34b6a95184b5aa0fdc9e') diff --git a/var/spack/repos/builtin/packages/py-jsonschema/package.py b/var/spack/repos/builtin/packages/py-jsonschema/package.py index 7cc0ca3354c..812a72c9a0a 100644 --- a/var/spack/repos/builtin/packages/py-jsonschema/package.py +++ b/var/spack/repos/builtin/packages/py-jsonschema/package.py @@ -9,7 +9,7 @@ class PyJsonschema(PythonPackage): """Jsonschema: An(other) implementation of JSON Schema for Python.""" - homepage = "http://github.com/Julian/jsonschema" + homepage = "https://github.com/Julian/jsonschema" pypi = "jsonschema/jsonschema-3.2.0.tar.gz" version('3.2.0', sha256='c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a') diff --git a/var/spack/repos/builtin/packages/py-jupyter-core/package.py b/var/spack/repos/builtin/packages/py-jupyter-core/package.py index 88b7c8e8af4..357c89478ea 100644 --- a/var/spack/repos/builtin/packages/py-jupyter-core/package.py +++ b/var/spack/repos/builtin/packages/py-jupyter-core/package.py @@ -9,7 +9,7 @@ class PyJupyterCore(PythonPackage): """Core Jupyter functionality""" - homepage = "http://jupyter-core.readthedocs.io/" + homepage = "https://jupyter-core.readthedocs.io/" pypi = "jupyter-core/jupyter_core-4.6.0.tar.gz" version('4.7.1', sha256='79025cb3225efcd36847d0840f3fc672c0abd7afd0de83ba8a1d3837619122b4') diff --git a/var/spack/repos/builtin/packages/py-jupyter-telemetry/package.py b/var/spack/repos/builtin/packages/py-jupyter-telemetry/package.py new file mode 100644 index 00000000000..188bf5d09b6 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-jupyter-telemetry/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2021 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 import * + + +class PyJupyterTelemetry(PythonPackage): + """Jupyter Telemetry enables Jupyter Applications to record events and transmit""" + """ them to destinations as structured data""" + + pypi = "jupyter-telemetry/jupyter_telemetry-0.1.0.tar.gz" + + version('0.1.0', sha256='445c613ae3df70d255fe3de202f936bba8b77b4055c43207edf22468ac875314') + version('0.0.5', sha256='d3eaac14be17510a4d288f3737580107ce14eef543e6133d56654d3f0e742b9b') + + depends_on('py-python-json-logger', type=('build', 'run')) + depends_on('py-jsonschema', type=('build', 'run')) + depends_on('py-ruamel-yaml', type=('build', 'run')) + depends_on('py-setuptools', type=('build')) + depends_on('py-traitlets', type=('build', 'run')) + depends_on('python@3.5:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-jupyterhub/package.py b/var/spack/repos/builtin/packages/py-jupyterhub/package.py index cfcfd295d97..2e07238ac6c 100644 --- a/var/spack/repos/builtin/packages/py-jupyterhub/package.py +++ b/var/spack/repos/builtin/packages/py-jupyterhub/package.py @@ -11,24 +11,32 @@ class PyJupyterhub(PythonPackage): pypi = "jupyterhub/jupyterhub-1.0.0.tar.gz" + version('1.4.1', sha256='ee1b0718a4db8e0b339796e3e50b704ca6822ab22a7435289dbb5932f65b5199') version('1.0.0', sha256='33541a515a041b9a518ca057c1c4ab4215a7450fdddc206401713ee8137fa67f') version('0.9.4', sha256='7848bbb299536641a59eb1977ec3c7c95d931bace4a2803d7e9b28b9256714da') - depends_on('python@3.5:', type=('build', 'run')) - depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-python-dateutil', type=('build', 'run')) - depends_on('py-jinja2', type=('build', 'run')) - depends_on('py-sqlalchemy@1.1:', type=('build', 'run')) - depends_on('py-tornado@5.0:', type=('build', 'run')) - depends_on('py-traitlets@4.3.2:', type=('build', 'run')) + depends_on('py-alembic@1.4:', type=('build', 'run'), when='@1.4.1:') depends_on('py-alembic', type=('build', 'run')) - depends_on('py-mako', type=('build', 'run')) + depends_on('py-async-generator@1.9:', type=('build', 'run'), when='@1.4.1:') depends_on('py-async-generator@1.8:', type=('build', 'run')) - depends_on('py-requests', type=('build', 'run')) depends_on('py-certipy@0.1.2:', when='@1.0.0:', type=('build', 'run')) depends_on('py-entrypoints', when='@1.0.0:', type=('build', 'run')) + depends_on('py-jinja2@2.11.0:', type=('build', 'run'), when='@1.4.1:') + depends_on('py-jinja2', type=('build', 'run')) + depends_on('py-jupyter-telemetry@0.1.0:', type=('build', 'run'), when='@1.4.1:') + depends_on('py-mako', type=('build', 'run'), when='@:1.4.1') + depends_on('py-notebook', type=('build', 'run'), when='@:1.4.1') depends_on('py-oauthlib@3.0:', when='@1.0.0:', type=('build', 'run')) - depends_on('py-python-oauth2@1.0:', when='@:9.4', type=('build', 'run')) depends_on('py-pamela', type=('build', 'run')) - depends_on('py-notebook', type=('build', 'run')) + depends_on('py-prometheus-client@0.4.0:', type=('build', 'run'), when='@1.4.1:') depends_on('py-prometheus-client@0.0.21:', type=('build', 'run')) + depends_on('py-python-dateutil', type=('build', 'run')) + depends_on('py-python-oauth2@1.0:', when='@:0.9.4', type=('build', 'run')) + depends_on('py-requests', type=('build', 'run')) + depends_on('py-setuptools', type=('build', 'run')) + depends_on('py-sqlalchemy@1.1:', type=('build', 'run')) + depends_on('py-tornado@5.1:', type=('build', 'run'), when='@1.4.1:') + depends_on('py-tornado@5.0:', type=('build', 'run')) + depends_on('py-traitlets@4.3.2:', type=('build', 'run')) + depends_on('python@3.6:', type=('build', 'run'), when='@1.4.1:') + depends_on('python@3.5:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-jupyterlab/package.py b/var/spack/repos/builtin/packages/py-jupyterlab/package.py index 2cd581cae3c..a8cbed58579 100644 --- a/var/spack/repos/builtin/packages/py-jupyterlab/package.py +++ b/var/spack/repos/builtin/packages/py-jupyterlab/package.py @@ -11,6 +11,9 @@ class PyJupyterlab(PythonPackage): homepage = "https://github.com/jupyterlab/jupyterlab" pypi = "jupyterlab/jupyterlab-2.2.7.tar.gz" + # Skip 'jupyterlab.tests' packages + import_modules = ['jupyterlab', 'jupyterlab.handlers'] + version('3.0.16', sha256='7ad4fbe1f6d38255869410fd151a8b15692a663ca97c0a8146b3f5c40e275c23') version('2.2.7', sha256='a72ffd0d919cba03a5ef8422bc92c3332a957ff97b0490494209c83ad93826da') version('2.1.0', sha256='8c239aababf5baa0b3d36e375fddeb9fd96f3a9a24a8cda098d6a414f5bbdc81') diff --git a/var/spack/repos/builtin/packages/py-keras-applications/package.py b/var/spack/repos/builtin/packages/py-keras-applications/package.py index 5f79fd59bee..0286cf7719c 100644 --- a/var/spack/repos/builtin/packages/py-keras-applications/package.py +++ b/var/spack/repos/builtin/packages/py-keras-applications/package.py @@ -10,7 +10,7 @@ class PyKerasApplications(PythonPackage): """Sample Deep Learning application in Keras. Keras depends on this package to run properly.""" - homepage = "http://keras.io" + homepage = "https://keras.io" url = "https://github.com/keras-team/keras-applications/archive/1.0.4.tar.gz" version('1.0.8', sha256='7c37f9e9ef93efac9b4956301cb21ce46c474ce9da41fac9a46753bab6823dfc') diff --git a/var/spack/repos/builtin/packages/py-keras/package.py b/var/spack/repos/builtin/packages/py-keras/package.py index a8fc75eb1b6..164e86d9f9c 100644 --- a/var/spack/repos/builtin/packages/py-keras/package.py +++ b/var/spack/repos/builtin/packages/py-keras/package.py @@ -10,7 +10,7 @@ class PyKeras(PythonPackage): """Deep Learning library for Python. Convnets, recurrent neural networks, and more. Runs on Theano or TensorFlow.""" - homepage = "http://keras.io" + homepage = "https://keras.io" pypi = "Keras/Keras-1.2.2.tar.gz" version('2.4.3', sha256='fedd729b52572fb108a98e3d97e1bac10a81d3917d2103cc20ab2a5f03beb973') diff --git a/var/spack/repos/builtin/packages/py-keystoneauth1/package.py b/var/spack/repos/builtin/packages/py-keystoneauth1/package.py new file mode 100644 index 00000000000..2f1b4714ab8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-keystoneauth1/package.py @@ -0,0 +1,31 @@ +# Copyright 2013-2021 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 import * + + +class PyKeystoneauth1(PythonPackage): + """ + This package contains tools for authenticating to an OpenStack-based + cloud + """ + + homepage = "https://docs.openstack.org/keystoneauth/" + pypi = "keystoneauth1/keystoneauth1-4.3.1.tar.gz" + + maintainers = ['haampie'] + + version('4.3.1', sha256='93605430a6d1424f31659bc5685e9dc1be9a6254e88c99f00cffc0a60c648a64') + + depends_on('python@3.6:', type=('build', 'run')) + + depends_on('py-pbr@2.0.0:2.0.999,2.1.1:', type='build') + depends_on('py-setuptools', type='build') + + depends_on('py-iso8601@0.1.11:', type=('build', 'run')) + depends_on('py-requests@2.14.2:', type=('build', 'run')) + depends_on('py-six@1.10.0:', type=('build', 'run')) + depends_on('py-stevedore@1.20.0:', type=('build', 'run')) + depends_on('py-os-service-types@1.2.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-latexcodec/package.py b/var/spack/repos/builtin/packages/py-latexcodec/package.py index a782c56a03d..0cf09c3aea2 100644 --- a/var/spack/repos/builtin/packages/py-latexcodec/package.py +++ b/var/spack/repos/builtin/packages/py-latexcodec/package.py @@ -9,7 +9,7 @@ class PyLatexcodec(PythonPackage): """A lexer and codec to work with LaTeX code in Python.""" - homepage = "http://latexcodec.readthedocs.io" + homepage = "https://latexcodec.readthedocs.io" pypi = "latexcodec/latexcodec-1.0.4.tar.gz" version('1.0.4', sha256='62bf8a3ee298f169a4d014dad5522bc1325b54dc98789a453fd338620387cb6c') diff --git a/var/spack/repos/builtin/packages/py-lazyarray/package.py b/var/spack/repos/builtin/packages/py-lazyarray/package.py index 0a86284abd8..21e6dc6da23 100644 --- a/var/spack/repos/builtin/packages/py-lazyarray/package.py +++ b/var/spack/repos/builtin/packages/py-lazyarray/package.py @@ -10,7 +10,7 @@ class PyLazyarray(PythonPackage): """a Python package that provides a lazily-evaluated numerical array class, larray, based on and compatible with NumPy arrays.""" - homepage = "http://bitbucket.org/apdavison/lazyarray/" + homepage = "https://lazyarray.readthedocs.io/en/latest/" pypi = "lazyarray/lazyarray-0.2.8.tar.gz" version('0.3.2', sha256='be980534c5950a976709085570f69be9534bdf0f3e5c21a9113de3ee2052683e') diff --git a/var/spack/repos/builtin/packages/py-libensemble/package.py b/var/spack/repos/builtin/packages/py-libensemble/package.py index f14aad86699..f1f5235c269 100644 --- a/var/spack/repos/builtin/packages/py-libensemble/package.py +++ b/var/spack/repos/builtin/packages/py-libensemble/package.py @@ -12,7 +12,8 @@ class PyLibensemble(PythonPackage): homepage = "https://libensemble.readthedocs.io" pypi = "libensemble/libensemble-0.7.2.tar.gz" - git = "https://github.com/Libensemble/libensemble.git" + git = "https://github.com/Libensemble/libensemble.git" + maintainers = ['shuds13'] version('develop', branch='develop') version('0.7.2', sha256='69b64304d1ecce4d57687ea6062f89bd813ae93b2a290bb1f595c5626ab6f197') diff --git a/var/spack/repos/builtin/packages/py-librosa/package.py b/var/spack/repos/builtin/packages/py-librosa/package.py index ca3e62973f1..f579bd8c89d 100644 --- a/var/spack/repos/builtin/packages/py-librosa/package.py +++ b/var/spack/repos/builtin/packages/py-librosa/package.py @@ -9,7 +9,7 @@ class PyLibrosa(PythonPackage): """A python package for music and audio analysis.""" - homepage = "http://github.com/librosa/librosa" + homepage = "https://github.com/librosa/librosa" pypi = "librosa/librosa-0.7.2.tar.gz" version('0.7.2', sha256='656bbda80e98e6330db1ead79cd084b13a762284834d7603fcf7cf7c0dc65f3c') diff --git a/var/spack/repos/builtin/packages/py-llvmlite/package.py b/var/spack/repos/builtin/packages/py-llvmlite/package.py index ff1d4013514..4f8623748d9 100644 --- a/var/spack/repos/builtin/packages/py-llvmlite/package.py +++ b/var/spack/repos/builtin/packages/py-llvmlite/package.py @@ -9,7 +9,7 @@ class PyLlvmlite(PythonPackage): """A lightweight LLVM python binding for writing JIT compilers""" - homepage = "http://llvmlite.readthedocs.io/en/latest/index.html" + homepage = "https://llvmlite.readthedocs.io/en/latest/index.html" pypi = "llvmlite/llvmlite-0.23.0.tar.gz" version('0.34.0', sha256='f03ee0d19bca8f2fe922bb424a909d05c28411983b0c2bc58b020032a0d11f63') diff --git a/var/spack/repos/builtin/packages/py-lmfit/package.py b/var/spack/repos/builtin/packages/py-lmfit/package.py index 907d7d32d03..316565c175c 100644 --- a/var/spack/repos/builtin/packages/py-lmfit/package.py +++ b/var/spack/repos/builtin/packages/py-lmfit/package.py @@ -9,7 +9,7 @@ class PyLmfit(PythonPackage): """Least-Squares Minimization with Bounds and Constraints""" - homepage = "http://lmfit.github.io/lmfit-py/" + homepage = "https://lmfit.github.io/lmfit-py/" pypi = "lmfit/lmfit-0.9.5.tar.gz" version('1.0.2', sha256='67090ce56685cf7f92bd7358a1e7d4ad862b3758988109ec440e9825e5184b45') diff --git a/var/spack/repos/builtin/packages/py-localcider/package.py b/var/spack/repos/builtin/packages/py-localcider/package.py index 679343d5840..0a6ac349af4 100644 --- a/var/spack/repos/builtin/packages/py-localcider/package.py +++ b/var/spack/repos/builtin/packages/py-localcider/package.py @@ -9,7 +9,7 @@ class PyLocalcider(PythonPackage): """Tools for calculating sequence properties of disordered proteins""" - homepage = "http://pappulab.github.io/localCIDER" + homepage = "https://pappulab.github.io/localCIDER" pypi = "localcider/localcider-0.1.14.tar.gz" version('0.1.14', sha256='54ff29e8a011947cca5df79e96f3c69a76c49c4db41dcf1608663992be3e3f5f') diff --git a/var/spack/repos/builtin/packages/py-locket/package.py b/var/spack/repos/builtin/packages/py-locket/package.py index d71a265e6e4..b90423b9c3a 100644 --- a/var/spack/repos/builtin/packages/py-locket/package.py +++ b/var/spack/repos/builtin/packages/py-locket/package.py @@ -9,7 +9,7 @@ class PyLocket(PythonPackage): """File-based locks for Python for Linux and Windows.""" - homepage = "http://github.com/mwilliamson/locket.py" + homepage = "https://github.com/mwilliamson/locket.py" pypi = "locket/locket-0.2.0.tar.gz" version('0.2.0', sha256='1fee63c1153db602b50154684f5725564e63a0f6d09366a1cb13dffcec179fb4') diff --git a/var/spack/repos/builtin/packages/py-markdown/package.py b/var/spack/repos/builtin/packages/py-markdown/package.py index 12378f098e3..5fa98f749f0 100644 --- a/var/spack/repos/builtin/packages/py-markdown/package.py +++ b/var/spack/repos/builtin/packages/py-markdown/package.py @@ -14,7 +14,7 @@ class PyMarkdown(PythonPackage): Documentation for the syntax rules. """ - homepage = "https://pythonhosted.org/Markdown/" + homepage = "https://python-markdown.github.io/" pypi = "markdown/Markdown-2.6.11.tar.gz" version('3.1.1', sha256='2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a') diff --git a/var/spack/repos/builtin/packages/py-matplotlib-inline/package.py b/var/spack/repos/builtin/packages/py-matplotlib-inline/package.py new file mode 100644 index 00000000000..e4a2408f1d7 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-matplotlib-inline/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 import * + + +class PyMatplotlibInline(PythonPackage): + """Inline Matplotlib backend for Jupyter.""" + + homepage = "https://github.com/martinRenou/matplotlib-inline" + pypi = "matplotlib-inline/matplotlib-inline-0.1.2.tar.gz" + + version('0.1.2', sha256='f41d5ff73c9f5385775d5c0bc13b424535c8402fe70ea8210f93e11f3683993e') + + depends_on('python@3.5:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-traitlets', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py index 21d71e9585c..916b2fac636 100644 --- a/var/spack/repos/builtin/packages/py-matplotlib/package.py +++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py @@ -24,6 +24,7 @@ class PyMatplotlib(PythonPackage): 'matplotlib.testing.jpl_units', 'pylab' ] + version('3.4.3', sha256='fc4f526dfdb31c9bd6b8ca06bf9fab663ca12f3ec9cdf4496fb44bc680140318') version('3.4.2', sha256='d8d994cefdff9aaba45166eb3de4f5211adb4accac85cbf97137e98f26ea0219') version('3.4.1', sha256='84d4c4f650f356678a5d658a43ca21a41fca13f9b8b00169c0b76e6a6a948908') version('3.4.0', sha256='424ddb3422c65b284a38a97eb48f5cb64b66a44a773e0c71281a347f1738f146') diff --git a/var/spack/repos/builtin/packages/py-mdanalysis/package.py b/var/spack/repos/builtin/packages/py-mdanalysis/package.py index 666f3b87f10..ab1a86e3a74 100644 --- a/var/spack/repos/builtin/packages/py-mdanalysis/package.py +++ b/var/spack/repos/builtin/packages/py-mdanalysis/package.py @@ -13,7 +13,7 @@ class PyMdanalysis(PythonPackage): Gromacs. (See the lists of supported trajectory formats and topology formats.)""" - homepage = "http://www.mdanalysis.org" + homepage = "https://www.mdanalysis.org" pypi = "MDAnalysis/MDAnalysis-0.19.2.tar.gz" version('1.0.0', sha256='f45a024aca45e390ff1c45ca90beb2180b78881be377e2a1aa9cd6c109bcfa81') diff --git a/var/spack/repos/builtin/packages/py-memprof/package.py b/var/spack/repos/builtin/packages/py-memprof/package.py index e6af5a333e3..c7d0c650c65 100644 --- a/var/spack/repos/builtin/packages/py-memprof/package.py +++ b/var/spack/repos/builtin/packages/py-memprof/package.py @@ -10,7 +10,7 @@ class PyMemprof(PythonPackage): """memprof logs and plots the memory usage of all the variables during the execution of the decorated methods.""" - homepage = "http://jmdana.github.io/memprof/" + homepage = "https://jmdana.github.io/memprof/" pypi = "memprof/memprof-0.3.6.tar.gz" version('0.3.6', sha256='a8376ce476bf82a5eb465d1a30b8ffc86cc55b0b6de7aa4cdeccb4c99586d967') diff --git a/var/spack/repos/builtin/packages/py-meshio/package.py b/var/spack/repos/builtin/packages/py-meshio/package.py new file mode 100644 index 00000000000..3efcf581e67 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-meshio/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2021 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 import * + + +class PyMeshio(PythonPackage): + """MeshIO is a Python library to read and write many mesh formats.""" + + homepage = "https://github.com/nschloe/meshio" + pypi = "meshio/meshio-5.0.0.tar.gz" + + version('5.0.0', sha256='f6327c06d6171d30e0991d3dcb048751035f9cfac1f19e2444971275fd971188') + + # MeshIO uses a setup.cfg/pyproject.toml structure, which spack doesn't yet handle. + # This patch adds a small setup.py file that spack can call. + patch('setup.patch') + + depends_on('python@3.7:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-importlib-metadata', when='^python@:3.7', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-meshio/setup.patch b/var/spack/repos/builtin/packages/py-meshio/setup.patch new file mode 100644 index 00000000000..77089e871f1 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-meshio/setup.patch @@ -0,0 +1,10 @@ +diff --git a/setup.py b/setup.py +new file mode 100644 +index 0000000..7f1a176 +--- /dev/null ++++ b/setup.py +@@ -0,0 +1,4 @@ ++from setuptools import setup ++ ++if __name__ == "__main__": ++ setup() diff --git a/var/spack/repos/builtin/packages/py-metasv/package.py b/var/spack/repos/builtin/packages/py-metasv/package.py index 72b5a319252..3ddece1a094 100644 --- a/var/spack/repos/builtin/packages/py-metasv/package.py +++ b/var/spack/repos/builtin/packages/py-metasv/package.py @@ -10,7 +10,7 @@ class PyMetasv(PythonPackage): """An accurate and integrative structural-variant caller for next generation sequencing""" - homepage = "http://bioinform.github.io/metasv/" + homepage = "https://bioinform.github.io/metasv/" url = "https://github.com/bioinform/metasv/archive/0.5.4.tar.gz" version('0.5.4', sha256='c8613b56f44b9303b9e126618b2aee9dbc0b26c03d14e70e1aeed918582eeec1') diff --git a/var/spack/repos/builtin/packages/py-metpy/package.py b/var/spack/repos/builtin/packages/py-metpy/package.py index 4f1b8145f8f..b60b08fe9c6 100644 --- a/var/spack/repos/builtin/packages/py-metpy/package.py +++ b/var/spack/repos/builtin/packages/py-metpy/package.py @@ -14,6 +14,10 @@ class PyMetpy(PythonPackage): pypi = "MetPy/MetPy-1.0.1.tar.gz" maintainers = ['dopplershift'] + # Importing 'metpy.io' results in downloads, so skip it. + # https://github.com/Unidata/MetPy/issues/1888 + import_modules = ['metpy', 'metpy._vendor', 'metpy.calc', 'metpy.interpolate'] + version('1.0.1', sha256='16fa9806facc24f31f454b898741ec5639a72ba9d4ff8a19ad0e94629d93cb95') version('1.0', sha256='11b043aaa4e3d35db319e96bb9967eb9f73da653e155bca2d62f838108b100dc', deprecated=True) diff --git a/var/spack/repos/builtin/packages/py-misopy/package.py b/var/spack/repos/builtin/packages/py-misopy/package.py index 181481aeefd..a09959c93fe 100644 --- a/var/spack/repos/builtin/packages/py-misopy/package.py +++ b/var/spack/repos/builtin/packages/py-misopy/package.py @@ -12,7 +12,7 @@ class PyMisopy(PythonPackage): RNA-Seq data, and identifies differentially regulated isoforms or exons across samples.""" - homepage = "http://miso.readthedocs.io/en/fastmiso/" + homepage = "https://miso.readthedocs.io/en/fastmiso/" pypi = "misopy/misopy-0.5.4.tar.gz" version('0.5.4', sha256='377a28b0c254b1920ffdc2d89cf96c3a21cadf1cf148ee6d6ef7a88ada067dfc') diff --git a/var/spack/repos/builtin/packages/py-mistune/package.py b/var/spack/repos/builtin/packages/py-mistune/package.py index eeab123626a..ea6402f7ac3 100644 --- a/var/spack/repos/builtin/packages/py-mistune/package.py +++ b/var/spack/repos/builtin/packages/py-mistune/package.py @@ -10,7 +10,7 @@ class PyMistune(PythonPackage): """ Python markdown parser """ - homepage = "http://mistune.readthedocs.org/en/latest/" + homepage = "https://mistune.readthedocs.org/en/latest/" url = "https://github.com/lepture/mistune/archive/v0.7.1.tar.gz" version('0.8.4', sha256='a1443771ea9ed7268a0cb3cf31462604ae148938ba32070bd5c54545f8f36a5d') diff --git a/var/spack/repos/builtin/packages/py-mlxtend/package.py b/var/spack/repos/builtin/packages/py-mlxtend/package.py index c2bc8523b44..6916148f5b2 100644 --- a/var/spack/repos/builtin/packages/py-mlxtend/package.py +++ b/var/spack/repos/builtin/packages/py-mlxtend/package.py @@ -10,7 +10,7 @@ class PyMlxtend(PythonPackage): """Mlxtend (machine learning extensions) is a Python library of useful tools for the day-to-day data science tasks.""" - homepage = "http://rasbt.github.io/mlxtend/" + homepage = "https://rasbt.github.io/mlxtend/" url = "https://github.com/rasbt/mlxtend/archive/v0.16.0.tar.gz" version('0.16.0', sha256='38789b36173630bf18e2244b035e7e6b44a87a0ae65cf04935cd2eecbf6595a1') diff --git a/var/spack/repos/builtin/packages/py-modred/package.py b/var/spack/repos/builtin/packages/py-modred/package.py index cf93181d4df..761410ea02c 100644 --- a/var/spack/repos/builtin/packages/py-modred/package.py +++ b/var/spack/repos/builtin/packages/py-modred/package.py @@ -10,7 +10,7 @@ class PyModred(PythonPackage): """Modred is a parallelized library for finding modal decompositions and reduced-order models. """ - homepage = "http://github.com/belson17/modred" + homepage = "https://github.com/belson17/modred" git = "https://github.com/belson17/modred.git" version('2.0.4', tag='v2.0.4') diff --git a/var/spack/repos/builtin/packages/py-moltemplate/package.py b/var/spack/repos/builtin/packages/py-moltemplate/package.py index 894ba1f5d02..0eff917533f 100644 --- a/var/spack/repos/builtin/packages/py-moltemplate/package.py +++ b/var/spack/repos/builtin/packages/py-moltemplate/package.py @@ -10,7 +10,7 @@ class PyMoltemplate(PythonPackage): """Moltemplate is a general cross-platform text-based molecule builder for LAMMPS.""" - homepage = "http://moltemplate.org" + homepage = "https://moltemplate.org" url = "https://github.com/jewettaij/moltemplate/archive/v2.5.8.tar.gz" version('2.5.8', sha256='f1e2d52249e996d85f5b1b7b50f50037da9e4b9c252cdfc622b21e79aa21162f') diff --git a/var/spack/repos/builtin/packages/py-mpld3/package.py b/var/spack/repos/builtin/packages/py-mpld3/package.py index 77a433c2f74..f3ba568b5d2 100644 --- a/var/spack/repos/builtin/packages/py-mpld3/package.py +++ b/var/spack/repos/builtin/packages/py-mpld3/package.py @@ -10,7 +10,7 @@ class PyMpld3(PythonPackage): """An interactive D3js-based viewer which brings matplotlib graphics to the browser.""" - homepage = "http://mpld3.github.com/" + homepage = "https://mpld3.github.io/" pypi = "mpld3/mpld3-0.3.tar.gz" version('0.3', sha256='4d455884a211bf99b37ecc760759435c7bb6a5955de47d8daf4967e301878ab7') diff --git a/var/spack/repos/builtin/packages/py-mpmath/package.py b/var/spack/repos/builtin/packages/py-mpmath/package.py index 3e73b5aed85..ae471b99b78 100644 --- a/var/spack/repos/builtin/packages/py-mpmath/package.py +++ b/var/spack/repos/builtin/packages/py-mpmath/package.py @@ -8,7 +8,7 @@ class PyMpmath(PythonPackage): """A Python library for arbitrary-precision floating-point arithmetic.""" - homepage = "http://mpmath.org" + homepage = "https://mpmath.org" pypi = "mpmath/mpmath-1.0.0.tar.gz" version('1.1.0', sha256='fc17abe05fbab3382b61a123c398508183406fa132e0223874578e20946499f6') diff --git a/var/spack/repos/builtin/packages/py-mx/package.py b/var/spack/repos/builtin/packages/py-mx/package.py index 8ee8a766cae..71930fffba3 100644 --- a/var/spack/repos/builtin/packages/py-mx/package.py +++ b/var/spack/repos/builtin/packages/py-mx/package.py @@ -13,7 +13,7 @@ class PyMx(PythonPackage): date/time processing and high speed data types. """ - homepage = "http://www.egenix.com/products/python/mxBase/" + homepage = "https://www.egenix.com/products/python/mxBase/" url = "https://downloads.egenix.com/python/egenix-mx-base-3.2.8.tar.gz" version('3.2.8', sha256='0da55233e45bc3f88870e62e60a79c2c86bad4098b8128343fd7be877f44a3c0') diff --git a/var/spack/repos/builtin/packages/py-nbformat/package.py b/var/spack/repos/builtin/packages/py-nbformat/package.py index 64b860a0721..9ee100e72ad 100644 --- a/var/spack/repos/builtin/packages/py-nbformat/package.py +++ b/var/spack/repos/builtin/packages/py-nbformat/package.py @@ -10,12 +10,15 @@ class PyNbformat(PythonPackage): homepage = "https://github.com/jupyter/nbformat" pypi = "nbformat/nbformat-5.0.7.tar.gz" + version('5.1.3', sha256='b516788ad70771c6250977c1374fcca6edebe6126fd2adb5a69aa5c2356fd1c8') version('5.0.7', sha256='54d4d6354835a936bad7e8182dcd003ca3dc0cedfee5a306090e04854343b340') version('4.4.0', sha256='f7494ef0df60766b7cabe0a3651556345a963b74dbc16bc7c18479041170d402') version('4.1.0', sha256='dbf6c0ed0cb7c5a7184536368f1dd1ada2d48fd6f016e0f9e9b69236e28c0857') version('4.0.1', sha256='5261c957589b9dfcd387c338d59375162ba9ca82c69e378961a1f4e641285db5') version('4.0.0', sha256='daf9b990e96863d120aff123361156a316757757b81a8070eb6945e4a9774b2d') + depends_on('python@3.5:', when='@5:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.3:', when='@:4', type=('build', 'run')) depends_on('py-ipython-genutils', type=('build', 'run')) depends_on('py-traitlets@4.1:', type=('build', 'run')) depends_on('py-jsonschema@2.4.0:2.4.999,2.5.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-nbmake/package.py b/var/spack/repos/builtin/packages/py-nbmake/package.py new file mode 100644 index 00000000000..77166847c2f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-nbmake/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2021 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 import * + + +class PyNbmake(PythonPackage): + """Pytest plugin for testing notebooks.""" + + homepage = "https://github.com/treebeardtech/nbmake" + pypi = "nbmake/nbmake-0.5.tar.gz" + + version('0.5', sha256='da9bf1bbc377c9d1d697f99952834017c39b4983e7e482a038dec705955a8ae9') + + depends_on('python@3.6.1:3.999', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-pygments@2.7.3:2.999', type=('build', 'run')) + depends_on('py-ipykernel@5.4.0:5.999', type=('build', 'run')) + depends_on('py-nbclient@0.3:0.999', type=('build', 'run')) + depends_on('py-nbformat@5.0.8:5.999', type=('build', 'run')) + depends_on('py-pathlib@1.0.1:1.999', when='^python@:3.3', type=('build', 'run')) + depends_on('py-pydantic@1.7.2:1.999', type=('build', 'run')) + depends_on('py-pytest@6.1.2:6.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-nbsphinx/package.py b/var/spack/repos/builtin/packages/py-nbsphinx/package.py index 96f08cc0628..8044792297d 100644 --- a/var/spack/repos/builtin/packages/py-nbsphinx/package.py +++ b/var/spack/repos/builtin/packages/py-nbsphinx/package.py @@ -18,9 +18,11 @@ class PyNbsphinx(PythonPackage): homepage = "https://nbsphinx.readthedocs.io" pypi = "nbsphinx/nbsphinx-0.8.0.tar.gz" + 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')) @@ -29,3 +31,4 @@ class PyNbsphinx(PythonPackage): depends_on('py-traitlets', type=('build', 'run')) depends_on('py-nbformat', type=('build', 'run')) depends_on('py-sphinx@1.8:', type=('build', 'run')) + depends_on('pandoc', type='run') diff --git a/var/spack/repos/builtin/packages/py-neo/package.py b/var/spack/repos/builtin/packages/py-neo/package.py index bd301e86291..9e23395cef2 100644 --- a/var/spack/repos/builtin/packages/py-neo/package.py +++ b/var/spack/repos/builtin/packages/py-neo/package.py @@ -11,7 +11,7 @@ class PyNeo(PythonPackage): together with support for reading a wide range of neurophysiology file formats""" - homepage = "http://neuralensemble.org/neo" + homepage = "https://neuralensemble.org/neo" pypi = "neo/neo-0.4.1.tar.gz" version('0.8.0', sha256='3382a37b24a384006238b72981f1e9259de9bfa71886f8ed564d35d254ace458') diff --git a/var/spack/repos/builtin/packages/py-neotime/package.py b/var/spack/repos/builtin/packages/py-neotime/package.py index 2a03b0ad452..8ba8dcb78ab 100644 --- a/var/spack/repos/builtin/packages/py-neotime/package.py +++ b/var/spack/repos/builtin/packages/py-neotime/package.py @@ -9,7 +9,7 @@ class PyNeotime(PythonPackage): """Nanosecond resolution temporal types""" - homepage = "https://neotime.readthedocs.io/" + homepage = "https://github.com/neo4j-drivers/neotime" pypi = "neotime/neotime-1.7.4.tar.gz" version('1.7.4', sha256='4e0477ba0f24e004de2fa79a3236de2bd941f20de0b5db8d976c52a86d7363eb') diff --git a/var/spack/repos/builtin/packages/py-nestle/package.py b/var/spack/repos/builtin/packages/py-nestle/package.py index 66a50453854..7b58ae7d8d3 100644 --- a/var/spack/repos/builtin/packages/py-nestle/package.py +++ b/var/spack/repos/builtin/packages/py-nestle/package.py @@ -9,7 +9,7 @@ class PyNestle(PythonPackage): """Nested sampling algorithms for evaluating Bayesian evidence.""" - homepage = "http://kbarbary.github.io/nestle/" + homepage = "https://kbarbary.github.io/nestle/" pypi = "nestle/nestle-0.1.1.tar.gz" version('0.1.1', sha256='d236a04f25494af5cda572eecf62729592b3231fbd874b1f72aff54718a3bb08') diff --git a/var/spack/repos/builtin/packages/py-netaddr/package.py b/var/spack/repos/builtin/packages/py-netaddr/package.py new file mode 100644 index 00000000000..1231a1e0893 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-netaddr/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 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 import * + + +class PyNetaddr(PythonPackage): + """A system-independent network address manipulation library for Python""" + + homepage = "https://netaddr.readthedocs.io/en/latest/" + pypi = "netaddr/netaddr-0.8.0.tar.gz" + + maintainers = ['haampie'] + + version('0.8.0', sha256='d6cc57c7a07b1d9d2e917aa8b36ae8ce61c35ba3fcd1b83ca31c5a0ee2b5a243') + + depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + + depends_on('py-importlib-resources', when='^python@:3.6', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-netifaces/package.py b/var/spack/repos/builtin/packages/py-netifaces/package.py index a0f20b295fb..8604d54e3e9 100644 --- a/var/spack/repos/builtin/packages/py-netifaces/package.py +++ b/var/spack/repos/builtin/packages/py-netifaces/package.py @@ -9,7 +9,7 @@ class PyNetifaces(PythonPackage): """Portable network interface information""" - homepage = "https://bitbucket.org/al45tair/netifaces" + homepage = "https://0xbharath.github.io/python-network-programming/libraries/netifaces/index.html" pypi = "netifaces/netifaces-0.10.5.tar.gz" version('0.10.5', sha256='59d8ad52dd3116fcb6635e175751b250dc783fb011adba539558bd764e5d628b') diff --git a/var/spack/repos/builtin/packages/py-networkit/package.py b/var/spack/repos/builtin/packages/py-networkit/package.py index 56848a3446c..375cc0c49c5 100644 --- a/var/spack/repos/builtin/packages/py-networkit/package.py +++ b/var/spack/repos/builtin/packages/py-networkit/package.py @@ -22,6 +22,7 @@ class PyNetworkit(PythonPackage): maintainers = ['fabratu'] + version('9.0', sha256='e27872d0d6a8a0a1ba862b0dab6adb4f0046fe6b20d3c47863075d1ee70226d3') version('8.1', sha256='5ff9e61496259280df4f913b1e37f51ca6f94974c4b9f623851f4d518f5ce0d5') version('8.0', sha256='36c30e894e835bf93f0aa0fb0b526758234e74318150820911e024ffe5ec1fd2') version('7.1', sha256='8609dc7a574a8a82d8880b8b1e3dfdd9c59ad67cd02135628e675c482fe98a96') @@ -30,6 +31,7 @@ class PyNetworkit(PythonPackage): # Required dependencies depends_on('cmake', type='build') + depends_on('libnetworkit@9.0', type=('build', 'link'), when='@9.0') depends_on('libnetworkit@8.1', type=('build', 'link'), when='@8.1') depends_on('libnetworkit@8.0', type=('build', 'link'), when='@8.0') depends_on('libnetworkit@7.1', type=('build', 'link'), when='@7.1') diff --git a/var/spack/repos/builtin/packages/py-networkx/package.py b/var/spack/repos/builtin/packages/py-networkx/package.py index c20a0c1b825..e76b355a5e6 100644 --- a/var/spack/repos/builtin/packages/py-networkx/package.py +++ b/var/spack/repos/builtin/packages/py-networkx/package.py @@ -10,7 +10,7 @@ class PyNetworkx(PythonPackage): """NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.""" - homepage = "http://networkx.github.io/" + homepage = "https://networkx.github.io/" pypi = "networkx/networkx-2.4.tar.gz" version('2.5.1', sha256='109cd585cac41297f71103c3c42ac6ef7379f29788eb54cb751be5a663bb235a') diff --git a/var/spack/repos/builtin/packages/py-nilearn/package.py b/var/spack/repos/builtin/packages/py-nilearn/package.py index 34c305ad33c..8bcdb4ce580 100644 --- a/var/spack/repos/builtin/packages/py-nilearn/package.py +++ b/var/spack/repos/builtin/packages/py-nilearn/package.py @@ -9,7 +9,7 @@ class PyNilearn(PythonPackage): """Statistical learning for neuroimaging in Python.""" - homepage = "http://nilearn.github.io/" + homepage = "https://nilearn.github.io/" pypi = "nilearn/nilearn-0.7.1.tar.gz" version('0.8.0', sha256='f2d3dc81005f829f3a183efa6c90d698ea6818c06264d2e3f03e805c4340febb') diff --git a/var/spack/repos/builtin/packages/py-nipype/package.py b/var/spack/repos/builtin/packages/py-nipype/package.py index 4a387867efc..2b967684874 100644 --- a/var/spack/repos/builtin/packages/py-nipype/package.py +++ b/var/spack/repos/builtin/packages/py-nipype/package.py @@ -9,7 +9,7 @@ class PyNipype(PythonPackage): """Neuroimaging in Python: Pipelines and Interfaces.""" - homepage = "http://nipy.org/nipype" + homepage = "https://nipy.org/nipype" pypi = "nipype/nipype-1.6.0.tar.gz" version('1.6.1', sha256='8428cfc633d8e3b8c5650e241e9eedcf637b7969bcd40f3423334d4c6b0992b5') diff --git a/var/spack/repos/builtin/packages/py-nose-cov/package.py b/var/spack/repos/builtin/packages/py-nose-cov/package.py index b2abbd00021..bd0cc839d9a 100644 --- a/var/spack/repos/builtin/packages/py-nose-cov/package.py +++ b/var/spack/repos/builtin/packages/py-nose-cov/package.py @@ -9,7 +9,6 @@ class PyNoseCov(PythonPackage): """This plugin produces coverage reports.""" - homepage = "http://bitbucket.org/memedough/nose-cov/overview" pypi = "nose-cov/nose-cov-1.6.tar.gz" version('1.6', sha256='8bec0335598f1cc69e3262cc50d7678c1a6010fa44625ce343c4ec1500774412') diff --git a/var/spack/repos/builtin/packages/py-ntplib/package.py b/var/spack/repos/builtin/packages/py-ntplib/package.py new file mode 100755 index 00000000000..5fe6aa25a0f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-ntplib/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 import * + + +class PyNtplib(PythonPackage): + """Simple interface to query NTP servers from Python.""" + + homepage = 'https://github.com/cf-natali/ntplib' + git = 'https://github.com/cf-natali/ntplib.git' + pypi = 'ntplib/ntplib-0.4.0.tar.gz' + + version('0.4.0', sha256='899d8fb5f8c2555213aea95efca02934c7343df6ace9d7628a5176b176906267') + + depends_on('python@2.7,3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py index d13f08813c2..4dfac98a8a8 100644 --- a/var/spack/repos/builtin/packages/py-numpy/package.py +++ b/var/spack/repos/builtin/packages/py-numpy/package.py @@ -24,6 +24,7 @@ class PyNumpy(PythonPackage): version('main', branch='main') version('master', branch='main', deprecated=True) + version('1.21.2', sha256='423216d8afc5923b15df86037c6053bf030d15cc9e3224206ef868c2d63dd6dc') version('1.21.1', sha256='dff4af63638afcc57a3dfb9e4b26d434a7a602d225b42d746ea7fe2edf1342fd') version('1.21.0', sha256='e80fe25cba41c124d04c662f33f6364909b985f2eb5998aaa5ae4b9587242cce') version('1.20.3', sha256='e55185e51b18d788e49fe8305fd73ef4470596b33fc2c1ceb304566b99c71a69') @@ -85,16 +86,18 @@ class PyNumpy(PythonPackage): variant('blas', default=True, description='Build with BLAS support') variant('lapack', default=True, description='Build with LAPACK support') - depends_on('python@2.7:2.8,3.4:', type=('build', 'link', 'run')) - depends_on('python@2.7:2.8,3.5:', type=('build', 'link', 'run'), when='@1.16:') - depends_on('python@3.5:', type=('build', 'link', 'run'), when='@1.17:') - depends_on('python@3.6:', type=('build', 'link', 'run'), when='@1.19:') - depends_on('python@3.7:', type=('build', 'link', 'run'), when='@1.20:') + depends_on('python@2.7:2.8,3.4:', type=('build', 'link', 'run'), when='@:1.15') + depends_on('python@2.7:2.8,3.5:', type=('build', 'link', 'run'), when='@1.16') + depends_on('python@3.5:', type=('build', 'link', 'run'), when='@1.17:1.18') + depends_on('python@3.6:', type=('build', 'link', 'run'), when='@1.19') + depends_on('python@3.7:', type=('build', 'link', 'run'), when='@1.20:1.21.1') + depends_on('python@3.7:3.10', type=('build', 'link', 'run'), when='@1.21.2:') depends_on('py-setuptools', type=('build', 'run')) # Check pyproject.toml for updates to the required cython version depends_on('py-cython@0.29.13:', when='@1.18.0:', type='build') depends_on('py-cython@0.29.14:', when='@1.18.1:', type='build') depends_on('py-cython@0.29.21:', when='@1.19.1:', type='build') + depends_on('py-cython@0.29.24:', when='@1.21.2:', type='build') depends_on('blas', when='+blas') depends_on('lapack', when='+lapack') diff --git a/var/spack/repos/builtin/packages/py-nvidia-ml-py/package.py b/var/spack/repos/builtin/packages/py-nvidia-ml-py/package.py index fbe922ffac4..ee2e2890af5 100644 --- a/var/spack/repos/builtin/packages/py-nvidia-ml-py/package.py +++ b/var/spack/repos/builtin/packages/py-nvidia-ml-py/package.py @@ -7,7 +7,7 @@ class PyNvidiaMlPy(PythonPackage): """Python Bindings for the NVIDIA Management Library.""" - homepage = "http://www.nvidia.com/" + homepage = "https://www.nvidia.com/" pypi = "nvidia-ml-py/nvidia-ml-py-11.450.51.tar.gz" version('11.450.51', sha256='5aa6dd23a140b1ef2314eee5ca154a45397b03e68fd9ebc4f72005979f511c73') diff --git a/var/spack/repos/builtin/packages/py-nvidia-ml-py3/package.py b/var/spack/repos/builtin/packages/py-nvidia-ml-py3/package.py index 735331b3732..14db6225631 100644 --- a/var/spack/repos/builtin/packages/py-nvidia-ml-py3/package.py +++ b/var/spack/repos/builtin/packages/py-nvidia-ml-py3/package.py @@ -7,7 +7,7 @@ class PyNvidiaMlPy3(PythonPackage): """Python Bindings for the NVIDIA Management Library.""" - homepage = "http://www.nvidia.com/" + homepage = "https://www.nvidia.com/" pypi = "nvidia-ml-py3/nvidia-ml-py3-7.352.0.tar.gz" version('7.352.0', sha256='390f02919ee9d73fe63a98c73101061a6b37fa694a793abf56673320f1f51277') diff --git a/var/spack/repos/builtin/packages/py-oauth2client/package.py b/var/spack/repos/builtin/packages/py-oauth2client/package.py index c239617583c..1e64160d4cf 100644 --- a/var/spack/repos/builtin/packages/py-oauth2client/package.py +++ b/var/spack/repos/builtin/packages/py-oauth2client/package.py @@ -13,7 +13,7 @@ class PyOauth2client(PythonPackage): the libraries and the core team is turning down support. We recommend you use google-auth and oauthlib.""" - homepage = "http://github.com/google/oauth2client/" + homepage = "https://github.com/google/oauth2client/" pypi = "oauth2client/oauth2client-4.1.3.tar.gz" version('4.1.3', sha256='d486741e451287f69568a4d26d70d9acd73a2bbfa275746c535b4209891cccc6') diff --git a/var/spack/repos/builtin/packages/py-omegaconf/package.py b/var/spack/repos/builtin/packages/py-omegaconf/package.py index 418e3e8f5d6..3cac5fe0d51 100644 --- a/var/spack/repos/builtin/packages/py-omegaconf/package.py +++ b/var/spack/repos/builtin/packages/py-omegaconf/package.py @@ -22,6 +22,7 @@ class PyOmegaconf(PythonPackage): depends_on('python@3.6:', type=('build', 'run')) depends_on('py-setuptools', type='build') + depends_on('py-pytest-runner', type='build') depends_on('py-antlr4-python3-runtime@4.8', type=('build', 'run')) depends_on('py-pyyaml@5.1.0:', type=('build', 'run')) depends_on('py-dataclasses', when='^python@:3.6', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-openpmd-validator/package.py b/var/spack/repos/builtin/packages/py-openpmd-validator/package.py index cede47169fc..08bd31120b1 100644 --- a/var/spack/repos/builtin/packages/py-openpmd-validator/package.py +++ b/var/spack/repos/builtin/packages/py-openpmd-validator/package.py @@ -11,7 +11,7 @@ class PyOpenpmdValidator(PythonPackage): openPMD is an open standard for particle-mesh data files.""" - homepage = "http://www.openPMD.org" + homepage = "https://www.openPMD.org" url = "https://github.com/openPMD/openPMD-validator/archive/1.0.0.2.tar.gz" maintainers = ['ax3l'] diff --git a/var/spack/repos/builtin/packages/py-openpyxl/package.py b/var/spack/repos/builtin/packages/py-openpyxl/package.py index 45ad7e72936..67ba77c7389 100644 --- a/var/spack/repos/builtin/packages/py-openpyxl/package.py +++ b/var/spack/repos/builtin/packages/py-openpyxl/package.py @@ -9,7 +9,7 @@ class PyOpenpyxl(PythonPackage): """A Python library to read/write Excel 2010 xlsx/xlsm files""" - homepage = "http://openpyxl.readthedocs.org/" + homepage = "https://openpyxl.readthedocs.org/" pypi = "openpyxl/openpyxl-3.0.3.tar.gz" version('3.0.3', sha256='547a9fc6aafcf44abe358b89ed4438d077e9d92e4f182c87e2dc294186dc4b64') diff --git a/var/spack/repos/builtin/packages/py-os-service-types/package.py b/var/spack/repos/builtin/packages/py-os-service-types/package.py new file mode 100644 index 00000000000..7f405ce3839 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-os-service-types/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2021 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 import * + + +class PyOsServiceTypes(PythonPackage): + """Python library for consuming OpenStack sevice-types-authority data""" + + homepage = "https://docs.openstack.org/os-service-types/" + pypi = "os-service-types/os-service-types-1.7.0.tar.gz" + + maintainers = ['haampie'] + + version('1.7.0', sha256='31800299a82239363995b91f1ebf9106ac7758542a1e4ef6dc737a5932878c6c') + + depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + depends_on('py-pbr@2.0.0:2.0.999,2.1.1:', type='build') + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-oslo-config/package.py b/var/spack/repos/builtin/packages/py-oslo-config/package.py new file mode 100644 index 00000000000..b637a589854 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-oslo-config/package.py @@ -0,0 +1,33 @@ +# Copyright 2013-2021 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 import * + + +class PyOsloConfig(PythonPackage): + """ + The Oslo configuration API supports parsing command line arguments and .ini + style configuration files. + """ + + homepage = "https://docs.openstack.org/oslo.config/" + pypi = "oslo.config/oslo.config-8.7.1.tar.gz" + + maintainers = ['haampie'] + + version('8.7.1', sha256='a0c346d778cdc8870ab945e438bea251b5f45fae05d6d99dfe4953cca2277b60') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-pbr@2.0.0:', type='build') + + depends_on('py-debtcollector@1.2.0:', type=('build', 'run')) + depends_on('py-netaddr@0.7.18:', type=('build', 'run')) + depends_on('py-stevedore@1.20.0:', type=('build', 'run')) + depends_on('py-oslo-i18n@3.15.3:', type=('build', 'run')) + depends_on('py-rfc3986@1.2.0:', type=('build', 'run')) + depends_on('py-pyyaml@5.1:', type=('build', 'run')) + depends_on('py-requests@2.18.0:', type=('build', 'run')) + depends_on('py-importlib-metadata@1.7.0:', when='^python@:3.7', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-oslo-i18n/package.py b/var/spack/repos/builtin/packages/py-oslo-i18n/package.py new file mode 100644 index 00000000000..1b0196095cb --- /dev/null +++ b/var/spack/repos/builtin/packages/py-oslo-i18n/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2021 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 import * + + +class PyOsloI18n(PythonPackage): + """ + The oslo.i18n library contain utilities for working with + internationalization (i18n) features, especially translation for text + strings in an application or library. + """ + + homepage = "https://docs.openstack.org/oslo.i18n" + pypi = "oslo.i18n/oslo.i18n-5.0.1.tar.gz" + + maintainers = ['haampie'] + + version('5.0.1', sha256='3484b71e30f75c437523302d1151c291caf4098928269ceec65ce535456e035b') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-pbr@2.0.0:2.0.999,2.1.1:', type=('build', 'run')) + + depends_on('py-six@1.10.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-oslo-serialization/package.py b/var/spack/repos/builtin/packages/py-oslo-serialization/package.py new file mode 100644 index 00000000000..438c40ff611 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-oslo-serialization/package.py @@ -0,0 +1,28 @@ +# Copyright 2013-2021 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 import * + + +class PyOsloSerialization(PythonPackage): + """ + The oslo.serialization library provides support for representing objects in + transmittable and storable formats, such as Base64, JSON and MessagePack. + """ + + homepage = "https://docs.openstack.org/oslo.serialization/" + pypi = "oslo.serialization/oslo.serialization-4.1.0.tar.gz" + + maintainers = ['haampie'] + + version('4.1.0', sha256='cecc7794df806c85cb70dbd6c2b3af19bc68047ad29e3c6442be90a0a4de5379') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-pbr@2.0.0:2.0.999,2.1.1:', type='build') + + depends_on('py-msgpack@0.5.2:', type=('build', 'run')) + depends_on('py-oslo-utils@3.33.0:', type=('build', 'run')) + depends_on('py-pytz@2013.6:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-oslo-utils/package.py b/var/spack/repos/builtin/packages/py-oslo-utils/package.py new file mode 100644 index 00000000000..adf936142a7 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-oslo-utils/package.py @@ -0,0 +1,34 @@ +# Copyright 2013-2021 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 import * + + +class PyOsloUtils(PythonPackage): + """ + The oslo.utils library provides support for common utility type functions, + such as encoding, exception handling, string manipulation, and time + handling. + """ + + homepage = "https://docs.openstack.org/oslo.utils/" + pypi = "oslo.utils/oslo.utils-4.9.2.tar.gz" + + maintainers = ['haampie'] + + version('4.9.2', sha256='20db285734ff6c3b50d5a6afcb2790ade0c7ba02fbc876feed43733f2c41a5c9') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-pbr@2.0.0:2.0.999,2.1.1:', type='build') + + depends_on('py-iso8601@0.1.11:', type=('build', 'run')) + depends_on('py-oslo-i18n@3.15.3:', type=('build', 'run')) + depends_on('py-pytz@2013.6:', type=('build', 'run')) + depends_on('py-netaddr@0.7.18:', type=('build', 'run')) + depends_on('py-netifaces@0.10.4:', type=('build', 'run')) + depends_on('py-debtcollector@1.2.0:', type=('build', 'run')) + depends_on('py-pyparsing@2.1.0:', type=('build', 'run')) + depends_on('py-packaging@20.4:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pager/package.py b/var/spack/repos/builtin/packages/py-pager/package.py index 1f131397a6e..6e46b021bc7 100644 --- a/var/spack/repos/builtin/packages/py-pager/package.py +++ b/var/spack/repos/builtin/packages/py-pager/package.py @@ -10,7 +10,6 @@ class PyPager(PythonPackage): """Python module that pages output to the screen, reads keys and console dimensions without executing external utils.""" - homepage = "http://bitbucket.org/techtonik/python-pager" pypi = "pager/pager-3.3.tar.gz" version('3.3', sha256='18aa45ec877dca732e599531c7b3b0b22ed6a4445febdf1bdf7da2761cca340d') diff --git a/var/spack/repos/builtin/packages/py-pandas/package.py b/var/spack/repos/builtin/packages/py-pandas/package.py index 2fc49754e85..1d5d4f4b343 100644 --- a/var/spack/repos/builtin/packages/py-pandas/package.py +++ b/var/spack/repos/builtin/packages/py-pandas/package.py @@ -29,6 +29,7 @@ class PyPandas(PythonPackage): 'pandas._config' ] + version('1.3.2', sha256='cbcb84d63867af3411fa063af3de64902665bb5b3d40b25b2059e40603594e87') version('1.3.1', sha256='341935a594db24f3ff07d1b34d1d231786aa9adfa84b76eab10bf42907c8aed3') version('1.3.0', sha256='c554e6c9cf2d5ea1aba5979cc837b3649539ced0e18ece186f055450c86622e2') version('1.2.5', sha256='14abb8ea73fce8aebbb1fb44bec809163f1c55241bcc1db91c2c780e97265033') diff --git a/var/spack/repos/builtin/packages/py-paramiko/package.py b/var/spack/repos/builtin/packages/py-paramiko/package.py index 598d002d79d..a34870e536e 100644 --- a/var/spack/repos/builtin/packages/py-paramiko/package.py +++ b/var/spack/repos/builtin/packages/py-paramiko/package.py @@ -10,7 +10,7 @@ class PyParamiko(PythonPackage): """SSH2 protocol library""" - homepage = "http://www.paramiko.org/" + homepage = "https://www.paramiko.org/" pypi = "paramiko/paramiko-2.7.1.tar.gz" version('2.7.1', sha256='920492895db8013f6cc0179293147f830b8c7b21fdfc839b6bad760c27459d9f') diff --git a/var/spack/repos/builtin/packages/py-partd/package.py b/var/spack/repos/builtin/packages/py-partd/package.py index f822141cff5..307546c16e4 100644 --- a/var/spack/repos/builtin/packages/py-partd/package.py +++ b/var/spack/repos/builtin/packages/py-partd/package.py @@ -9,7 +9,7 @@ class PyPartd(PythonPackage): """Key-value byte store with appendable values.""" - homepage = "http://github.com/dask/partd/" + homepage = "https://github.com/dask/partd/" pypi = "partd/partd-0.3.8.tar.gz" version('1.1.0', sha256='6e258bf0810701407ad1410d63d1a15cfd7b773fd9efe555dac6bb82cc8832b0') diff --git a/var/spack/repos/builtin/packages/py-particle/package.py b/var/spack/repos/builtin/packages/py-particle/package.py index d16ea9eccc1..c293d9e04a5 100644 --- a/var/spack/repos/builtin/packages/py-particle/package.py +++ b/var/spack/repos/builtin/packages/py-particle/package.py @@ -20,6 +20,7 @@ class PyParticle(PythonPackage): tags = ['hep'] version('master', branch='master') + version('0.15.1', sha256='6b05cdc4b76c70f785e89258a470504ad87ca119057c65da30a7d4412cca824f') version('0.14.1', sha256='05b345f8fbfdb12a0aa744c788b6e1b22326b5a6ad95230596e0fc9ebad56621') version('0.11.0', sha256='e90dc36c8b7d7431bd14ee5a28486d28b6c0708555845d1d7bdf59a165405f12') diff --git a/var/spack/repos/builtin/packages/py-pathlib/package.py b/var/spack/repos/builtin/packages/py-pathlib/package.py index e9579aa4b96..5c05c4e82c1 100644 --- a/var/spack/repos/builtin/packages/py-pathlib/package.py +++ b/var/spack/repos/builtin/packages/py-pathlib/package.py @@ -17,3 +17,11 @@ class PyPathlib(PythonPackage): pypi = "pathlib/pathlib-1.0.1.tar.gz" version('1.0.1', sha256='6940718dfc3eff4258203ad5021090933e5c04707d5ca8cc9e73c94a7894ea9f') + + # This is a backport of the pathlib module from Python 3.4. Since pathlib is now + # part of the standard library, this module isn't needed in Python 3.4+. Although it + # can be installed, differences between this implementation and the standard library + # implementation can cause other packages to fail. If it is installed, it ends up + # masking the standard library and doesn't have the same features that the standard + # library has in newer versions of Python. + conflicts('^python@3.4:') diff --git a/var/spack/repos/builtin/packages/py-patool/package.py b/var/spack/repos/builtin/packages/py-patool/package.py index c2ea73dab31..a05bc2577c4 100644 --- a/var/spack/repos/builtin/packages/py-patool/package.py +++ b/var/spack/repos/builtin/packages/py-patool/package.py @@ -9,7 +9,7 @@ class PyPatool(PythonPackage): """portable archive file manager""" - homepage = "http://wummel.github.io/patool/" + homepage = "https://wummel.github.io/patool/" pypi = "patool/patool-1.12.tar.gz" version('1.12', sha256='e3180cf8bfe13bedbcf6f5628452fca0c2c84a3b5ae8c2d3f55720ea04cb1097') diff --git a/var/spack/repos/builtin/packages/py-pbr/package.py b/var/spack/repos/builtin/packages/py-pbr/package.py index 701d8a835d3..09bb49d295f 100644 --- a/var/spack/repos/builtin/packages/py-pbr/package.py +++ b/var/spack/repos/builtin/packages/py-pbr/package.py @@ -12,6 +12,9 @@ class PyPbr(PythonPackage): pypi = "pbr/pbr-5.4.3.tar.gz" + # Skip 'pbr.tests' imports + import_modules = ['pbr', 'pbr.cmd', 'pbr.hooks'] + version('5.4.3', sha256='2c8e420cd4ed4cec4e7999ee47409e876af575d4c35a45840d59e8b5f3155ab8') version('5.2.1', sha256='93d2dc6ee0c9af4dbc70bc1251d0e545a9910ca8863774761f92716dece400b6') version('3.1.1', sha256='05f61c71aaefc02d8e37c0a3eeb9815ff526ea28b3b76324769e6158d7f95be1') diff --git a/var/spack/repos/builtin/packages/py-petsc4py/package.py b/var/spack/repos/builtin/packages/py-petsc4py/package.py index 2b02c4f0f6e..94bb8c98ddd 100644 --- a/var/spack/repos/builtin/packages/py-petsc4py/package.py +++ b/var/spack/repos/builtin/packages/py-petsc4py/package.py @@ -17,6 +17,7 @@ class PyPetsc4py(PythonPackage): maintainers = ['balay'] version('main', branch='main') + version('3.15.3', sha256='06e7a5de3509067d8625330b10c1ab200b36df1dfdc2e93922038784b2722f8e') version('3.15.2', sha256='d7ed1d79d88b35da563d25e733f276595ba538c52756225f79ba92e1cc4658d3') version('3.15.1', sha256='4ec8f42081e4d6a61157b32869b352dcb18c69077f2d1e4160f3837efd9e150f') version('3.15.0', sha256='87dcc5ef63a1f0e1a963619f7527e623f52341b2806056b0ef5fdfb0b8b287ad') diff --git a/var/spack/repos/builtin/packages/py-phonopy/package.py b/var/spack/repos/builtin/packages/py-phonopy/package.py index 35e064e6416..26bf06f7dff 100644 --- a/var/spack/repos/builtin/packages/py-phonopy/package.py +++ b/var/spack/repos/builtin/packages/py-phonopy/package.py @@ -9,7 +9,7 @@ class PyPhonopy(PythonPackage): """Phonopy is an open source package for phonon calculations at harmonic and quasi-harmonic levels.""" - homepage = "http://atztogo.github.io/phonopy/index.html" + homepage = "https://atztogo.github.io/phonopy/index.html" url = "http://sourceforge.net/projects/phonopy/files/phonopy/phonopy-1.10/phonopy-1.10.0.tar.gz" version('1.10.0', sha256='6b7c540bbbb033203c45b8472696db02a3a55913a0e5eb23de4dc9a3bee473f7') diff --git a/var/spack/repos/builtin/packages/py-picrust/package.py b/var/spack/repos/builtin/packages/py-picrust/package.py index 3db338577f7..d506dbf43d9 100644 --- a/var/spack/repos/builtin/packages/py-picrust/package.py +++ b/var/spack/repos/builtin/packages/py-picrust/package.py @@ -10,7 +10,7 @@ class PyPicrust(PythonPackage): """bioinformatics software package designed to predict metagenome functional content from marker gene surveys and full genomes.""" - homepage = "http://picrust.github.io/picrust/index.html" + homepage = "https://picrust.github.io/picrust/index.html" url = "https://github.com/picrust/picrust/releases/download/v1.1.3/picrust-1.1.3.tar.gz" version('1.1.3', sha256='7538c8544899b8855deb73a2d7a4ccac4808ff294e161530a8c8762d472d8906') diff --git a/var/spack/repos/builtin/packages/py-pika/package.py b/var/spack/repos/builtin/packages/py-pika/package.py new file mode 100755 index 00000000000..236c81c2c47 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pika/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2021 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 import * + + +class PyPika(PythonPackage): + """Pika is a RabbitMQ (AMQP 0-9-1) client library for Python.""" + + homepage = 'https://pika.readthedocs.io/' + git = 'https://github.com/pika/pika.git' + pypi = 'pika/pika-1.2.0.tar.gz' + + version('1.2.0', sha256='f023d6ac581086b124190cb3dc81dd581a149d216fa4540ac34f9be1e3970b89') + version('1.1.0', sha256='9fa76ba4b65034b878b2b8de90ff8660a59d925b087c5bb88f8fdbb4b64a1dbf') + version('1.0.0', sha256='fba41293b35c845bd96cfdd29981f0eeff91f705ac0c3ba361a771c4bfbc3485') + version('0.13.1', sha256='b0640085f1d6398fd47bb16a17713053e26578192821ea5d928772b8e6a28789') + version('0.13.0', sha256='5338d829d1edb3e5bcf1523b4a9e32c56dea5a8bda7018825849e35325580484') + + depends_on('python@2.7,3.4:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pil/package.py b/var/spack/repos/builtin/packages/py-pil/package.py index 6f429f83b5f..04acd5347a3 100644 --- a/var/spack/repos/builtin/packages/py-pil/package.py +++ b/var/spack/repos/builtin/packages/py-pil/package.py @@ -9,7 +9,7 @@ class PyPil(PythonPackage): to your Python interpreter. This library supports many file formats, and provides powerful image processing and graphics capabilities.""" - homepage = "http://www.pythonware.com/products/pil/" + homepage = "https://pillow.readthedocs.io/en/stable/" url = "http://effbot.org/media/downloads/Imaging-1.1.7.tar.gz" version('1.1.7', sha256='895bc7c2498c8e1f9b99938f1a40dc86b3f149741f105cf7c7bd2e0725405211') diff --git a/var/spack/repos/builtin/packages/py-pkgconfig/package.py b/var/spack/repos/builtin/packages/py-pkgconfig/package.py index 199ead0819e..0f2e7171e03 100644 --- a/var/spack/repos/builtin/packages/py-pkgconfig/package.py +++ b/var/spack/repos/builtin/packages/py-pkgconfig/package.py @@ -9,7 +9,7 @@ class PyPkgconfig(PythonPackage): """Interface Python with pkg-config.""" - homepage = "http://github.com/matze/pkgconfig" + homepage = "https://github.com/matze/pkgconfig" pypi = "pkgconfig/pkgconfig-1.2.2.tar.gz" version('1.5.1', sha256='97bfe3d981bab675d5ea3ef259045d7919c93897db7d3b59d4e8593cba8d354f') diff --git a/var/spack/repos/builtin/packages/py-plotly/package.py b/var/spack/repos/builtin/packages/py-plotly/package.py index 24666f278fb..b1036631300 100644 --- a/var/spack/repos/builtin/packages/py-plotly/package.py +++ b/var/spack/repos/builtin/packages/py-plotly/package.py @@ -12,11 +12,17 @@ class PyPlotly(PythonPackage): homepage = "https://plot.ly/python/" pypi = "plotly/plotly-2.2.0.tar.gz" + version('5.2.2', sha256='809f0674a7991daaf4f287964d617d24e9fa44463acd5a5352ebd874cfd98b07') version('2.2.0', sha256='ca668911ffb4d11fed6d7fbb12236f8ecc6a7209db192326bcb64bdb41451a58') + depends_on('python@3.6:', when='@5.2.2:', type=('build', 'run')) + depends_on('py-setuptools', type='build') - depends_on('py-decorator@4.0.6:', type=('build', 'run')) - depends_on('py-nbformat@4.2.0:', type=('build', 'run')) - depends_on('py-requests', type=('build', 'run')) - depends_on('py-six', type=('build', 'run')) - depends_on('py-pytz', type=('build', 'run')) + depends_on('py-six', 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')) diff --git a/var/spack/repos/builtin/packages/py-protobuf/package.py b/var/spack/repos/builtin/packages/py-protobuf/package.py index 4ad2b3a331b..bacad6f0183 100644 --- a/var/spack/repos/builtin/packages/py-protobuf/package.py +++ b/var/spack/repos/builtin/packages/py-protobuf/package.py @@ -20,6 +20,16 @@ class PyProtobuf(PythonPackage): variant('cpp', default=False, description='Enable the cpp implementation') + version('3.17.3', sha256='72804ea5eaa9c22a090d2803813e280fb273b62d5ae497aaf3553d141c4fdd7b') + version('3.17.2', sha256='5a3450acf046716e4a4f02a3f7adfb7b86f1b5b3ae392cec759915e79538d40d') + version('3.17.1', sha256='25bc4f1c23aced9b3a9e70eef7f03e63bcbd6cfbd881a91b5688412dce8992e1') + version('3.17.0', sha256='05dfe9319939a8473c21b469f34f6486646e54fb8542637cf7ed8e2fbfe21538') + version('3.16.0', sha256='228eecbedd46d75010f1e0f8ce34dbcd11ae5a40c165a9fc9d330a58aa302818') + version('3.15.8', sha256='0277f62b1e42210cafe79a71628c1d553348da81cbd553402a7f7549c50b11d0') + version('3.15.7', sha256='2d03fc2591543cd2456d0b72230b50c4519546a8d379ac6fd3ecd84c6df61e5d') + version('3.15.6', sha256='2b974519a2ae83aa1e31cff9018c70bbe0e303a46a598f982943c49ae1d4fcd3') + version('3.15.5', sha256='be8a929c6178bb6cbe9e2c858be62fa08966a39ae758a8493a88f0ed1efb6097') + version('3.15.1', sha256='824dbae3390fcc3ea1bf96748e6da951a601802894cf7e1465e72b4732538cab') version('3.12.2', sha256='49ef8ab4c27812a89a76fa894fe7a08f42f2147078392c0dee51d4a444ef6df5') version('3.11.2', sha256='3d7a7d8d20b4e7a8f63f62de2d192cfd8b7a53c56caba7ece95367ca2b80c574') version('3.11.1', sha256='aecdf12ef6dc7fd91713a6da93a86c2f2a8fe54840a3b1670853a2b7402e77c9') @@ -35,7 +45,8 @@ class PyProtobuf(PythonPackage): version('3.4.0', sha256='ef02609ef445987976a3a26bff77119c518e0915c96661c3a3b17856d0ef6374') version('3.3.0', sha256='1cbcee2c45773f57cb6de7ee0eceb97f92b9b69c0178305509b162c0160c1f04') version('3.1.0', sha256='0bc10bfd00a9614fae58c86c21fbcf339790e48accf6d45f098034de985f5405', - url='https://github.com/protocolbuffers/protobuf/releases/download/v3.1.0/protobuf-python-3.1.0.tar.gz') + url='https://github.com/protocolbuffers/protobuf/releases/download/v3.1.0/protobuf-python-3.1.0.tar.gz', + deprecated=True) version('3.0.0', sha256='ecc40bc30f1183b418fe0ec0c90bc3b53fa1707c4205ee278c6b90479e5b6ff5') version('3.0.0b2', sha256='d5b560bbc4b7d97cc2455c05cad9299d9db02d7bd11193b05684e3a86303c229') version('3.0.0a3', sha256='b61622de5048415bfd3f2d812ad64606438ac9e25009ae84191405fe58e522c1') diff --git a/var/spack/repos/builtin/packages/py-psutil/package.py b/var/spack/repos/builtin/packages/py-psutil/package.py index 0684f430e30..3ec037ddbfa 100644 --- a/var/spack/repos/builtin/packages/py-psutil/package.py +++ b/var/spack/repos/builtin/packages/py-psutil/package.py @@ -13,6 +13,7 @@ class PyPsutil(PythonPackage): pypi = "psutil/psutil-5.6.3.tar.gz" + version('5.8.0', sha256='0c9ccb99ab76025f2f0bbecf341d4656e9c1351db8cc8a03ccd62e318ab4b5c6') version('5.7.2', sha256='90990af1c3c67195c44c9a889184f84f5b2320dce3ee3acbd054e3ba0b4a7beb') version('5.6.3', sha256='863a85c1c0a5103a12c05a35e59d336e1d665747e531256e061213e2e90f63f3') version('5.6.2', sha256='828e1c3ca6756c54ac00f1427fdac8b12e21b8a068c3bb9b631a1734cada25ed') diff --git a/var/spack/repos/builtin/packages/py-psycopg2/package.py b/var/spack/repos/builtin/packages/py-psycopg2/package.py index 065f77a5022..24bad042a5a 100644 --- a/var/spack/repos/builtin/packages/py-psycopg2/package.py +++ b/var/spack/repos/builtin/packages/py-psycopg2/package.py @@ -12,11 +12,14 @@ class PyPsycopg2(PythonPackage): homepage = "https://psycopg.org/" pypi = "psycopg2/psycopg2-2.8.6.tar.gz" + version('2.9.1', sha256='de5303a6f1d0a7a34b9d40e4d3bef684ccc44a49bbe3eb85e3c0bffb4a131b7c') version('2.8.6', sha256='fb23f6c71107c37fd667cb4ea363ddeb936b348bbd6449278eb92c189699f543') version('2.7.5', sha256='eccf962d41ca46e6326b97c8fe0a6687b58dfc1a5f6540ed071ff1474cea749e') # https://www.psycopg.org/docs/install.html#prerequisites - depends_on('python@2.7:2.8,3.4:3.8', type=('build', 'link', 'run'), when='@2.8:') - depends_on('python@2.6:2.8,3.2:3.7', type=('build', 'link', 'run'), when='@2.7') + depends_on('python@3.6:3.9', type=('build', 'link', 'run'), when='@2.9:') + depends_on('python@2.7:2.8,3.4:3.8', type=('build', 'link', 'run'), when='@2.8') + depends_on('python@2.6:2.8,3.2:3.7', type=('build', 'link', 'run'), when='@:2.7') depends_on('py-setuptools', type='build') - depends_on('postgresql@9.1:12', type=('build', 'link', 'run')) + depends_on('postgresql@9.1:13', type=('build', 'link', 'run'), when='@2.9:') + depends_on('postgresql@9.1:12', type=('build', 'link', 'run'), when='@:2.8') diff --git a/var/spack/repos/builtin/packages/py-pudb/package.py b/var/spack/repos/builtin/packages/py-pudb/package.py index d9c49a06dd0..67ef2faf647 100644 --- a/var/spack/repos/builtin/packages/py-pudb/package.py +++ b/var/spack/repos/builtin/packages/py-pudb/package.py @@ -10,7 +10,7 @@ class PyPudb(PythonPackage): """Full-screen console debugger for Python""" - homepage = "http://mathema.tician.de/software/pudb" + homepage = "https://mathema.tician.de/software/pudb" pypi = "pudb/pudb-2017.1.1.tar.gz" version('2017.1.1', sha256='87117640902c5f602c8517d0167eb5c953a5bdede97975ba29ff17e3d570442c') diff --git a/var/spack/repos/builtin/packages/py-pure-sasl/package.py b/var/spack/repos/builtin/packages/py-pure-sasl/package.py index 845fda74b66..5e9e270ca0d 100644 --- a/var/spack/repos/builtin/packages/py-pure-sasl/package.py +++ b/var/spack/repos/builtin/packages/py-pure-sasl/package.py @@ -10,7 +10,7 @@ class PyPureSasl(PythonPackage): but by default, support for PLAIN, ANONYMOUS, EXTERNAL, CRAM-MD5, DIGEST-MD5, and GSSAPI are provided.""" - homepage = "http://github.com/thobbs/pure-sasl" + homepage = "https://github.com/thobbs/pure-sasl" pypi = "pure-sasl/pure-sasl-0.6.2.tar.gz" version('0.6.2', sha256='53c1355f5da95e2b85b2cc9a6af435518edc20c81193faa0eea65fdc835138f4') diff --git a/var/spack/repos/builtin/packages/py-py-spy/package.py b/var/spack/repos/builtin/packages/py-py-spy/package.py index f7c048af109..1e8bc727544 100644 --- a/var/spack/repos/builtin/packages/py-py-spy/package.py +++ b/var/spack/repos/builtin/packages/py-py-spy/package.py @@ -3,18 +3,24 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * -class PyPySpy(PythonPackage): + +class PyPySpy(Package): """A Sampling Profiler for Python.""" homepage = "https://github.com/benfred/py-spy" - url = "https://github.com/benfred/py-spy/archive/v0.3.3.tar.gz" + url = "https://github.com/benfred/py-spy/archive/v0.3.8.tar.gz" + version('0.3.8', sha256='9dbfd0ea79ef31a2966891e86cf6238ed3831938cf562e71848e07b7009cf57d') version('0.3.3', sha256='41454d3d9132da45c72f7574faaff65f40c757720293a277ffa5ec5a4b44f902') - depends_on('py-setuptools', type='build') # TODO: uses cargo to download and build dozens of dependencies. # Need to figure out how to manage these with Spack once we have a # CargoPackage base class. depends_on('rust', type='build') depends_on('unwind') + + def install(self, spec, prefix): + cargo = which('cargo') + cargo('install', '--root', prefix, '--path', '.') diff --git a/var/spack/repos/builtin/packages/py-py/package.py b/var/spack/repos/builtin/packages/py-py/package.py index f122e5cdb65..aa7ff323a55 100644 --- a/var/spack/repos/builtin/packages/py-py/package.py +++ b/var/spack/repos/builtin/packages/py-py/package.py @@ -9,7 +9,7 @@ class PyPy(PythonPackage): """Library with cross-python path, ini-parsing, io, code, log facilities""" - homepage = "http://pylib.readthedocs.io/en/latest/" + homepage = "https://pylib.readthedocs.io/en/latest/" pypi = "py/py-1.8.0.tar.gz" version('1.9.0', sha256='9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342') diff --git a/var/spack/repos/builtin/packages/py-py2neo/package.py b/var/spack/repos/builtin/packages/py-py2neo/package.py index 7cbd6eae232..896a6f52e47 100644 --- a/var/spack/repos/builtin/packages/py-py2neo/package.py +++ b/var/spack/repos/builtin/packages/py-py2neo/package.py @@ -10,7 +10,7 @@ class PyPy2neo(PythonPackage): """Py2neo is a client library and toolkit for working with Neo4j from within Python applications and from the command line.""" - homepage = "http://py2neo.org/" + homepage = "https://py2neo.org/" pypi = "py2neo/py2neo-2.0.8.tar.gz" version('4.3.0', sha256='a218ccb4b636e3850faa6b74ebad80f00600217172a57f745cf223d38a219222') diff --git a/var/spack/repos/builtin/packages/py-py6s/package.py b/var/spack/repos/builtin/packages/py-py6s/package.py index c780284f623..6a99032bd8f 100644 --- a/var/spack/repos/builtin/packages/py-py6s/package.py +++ b/var/spack/repos/builtin/packages/py-py6s/package.py @@ -13,7 +13,7 @@ class PyPy6s(PythonPackage): an easily processable form. """ - homepage = "http://py6s.rtwilson.com/" + homepage = "https://py6s.rtwilson.com/" pypi = "py6s/Py6S-1.8.0.tar.gz" version('1.8.0', sha256='256162d2f1f558e601d4f79022c037a0051838ba307b9f4d1f5fcf0b46a0c277') diff --git a/var/spack/repos/builtin/packages/py-pyani/package.py b/var/spack/repos/builtin/packages/py-pyani/package.py index 12f3518acc0..e417b5519a3 100644 --- a/var/spack/repos/builtin/packages/py-pyani/package.py +++ b/var/spack/repos/builtin/packages/py-pyani/package.py @@ -13,7 +13,7 @@ class PyPyani(PythonPackage): available, it takes advantage of multicore systems, and can integrate with SGE/OGE-type job schedulers for the sequence comparisons.""" - homepage = "http://widdowquinn.github.io/pyani" + homepage = "https://widdowquinn.github.io/pyani" pypi = "pyani/pyani-0.2.7.tar.gz" version('0.2.7', sha256='dbc6c71c46fbbfeced3f8237b84474221268b51170caf044bec8559987a7deb9') diff --git a/var/spack/repos/builtin/packages/py-pyarrow/package.py b/var/spack/repos/builtin/packages/py-pyarrow/package.py index 212b5a5eed1..a3852da42f2 100644 --- a/var/spack/repos/builtin/packages/py-pyarrow/package.py +++ b/var/spack/repos/builtin/packages/py-pyarrow/package.py @@ -15,6 +15,8 @@ class PyPyarrow(PythonPackage, CudaPackage): homepage = "https://arrow.apache.org" pypi = 'pyarrow/pyarrow-0.17.1.tar.gz' + version('4.0.1', sha256='11517f0b4f4acbab0c37c674b4d1aad3c3dfea0f6b1bb322e921555258101ab3') + version('3.0.0', sha256='4bf8cc43e1db1e0517466209ee8e8f459d9b5e1b4074863317f2a965cf59889e') version('0.17.1', sha256='278d11800c2e0f9bea6314ef718b2368b4046ba24b6c631c14edad5a1d351e49') version('0.15.1', sha256='7ad074690ba38313067bf3bbda1258966d38e2037c035d08b9ffe3cce07747a5') version('0.12.1', sha256='10db6e486c918c3af999d0114a22d92770687e3a6607ea3f14e6748854824c2a') @@ -27,16 +29,18 @@ class PyPyarrow(PythonPackage, CudaPackage): depends_on('cmake@3.0.0:', type='build') depends_on('pkgconfig', type='build') depends_on('python@3.5:', type=('build', 'run'), when='@0.17:') + depends_on('python@3.6:', type=('build', 'run'), when='@3.0.0:') depends_on('py-setuptools', type='build') depends_on('py-setuptools-scm', type='build', when='@0.15.0:') depends_on('py-cython', type='build') depends_on('py-cython@0.29:', type='build', when='@0.15.0:') depends_on('py-numpy@1.14:', type=('build', 'run'), when='@0.15.0:') - depends_on('py-six@1.0.0:', type=('build', 'run'), when='@0.15.0:') + depends_on('py-numpy@1.16.6:', type=('build', 'run'), when='@3.0.0:') + depends_on('py-six@1.0.0:', type=('build', 'run'), when='@0.15.0') depends_on('py-futures', type=('build', 'run'), when='@0.15.0:^python@:3.1.99') depends_on('py-enum34@1.1.6:', type=('build', 'run'), when='@0.15.0:^python@:3.3.99') - for v in ('@0.9.0', '@0.11.0', '@0.12.1', '@0.15.1', '@0.17.1'): + for v in ('@0.9.0', '@0.11.0', '@0.12.1', '@0.15.1', '@0.17.1', '@3.0.0', '@4.0.1'): depends_on('arrow+python' + v, when=v) depends_on('arrow+parquet+python' + v, when='+parquet' + v) depends_on('arrow+cuda' + v, when='+cuda' + v) diff --git a/var/spack/repos/builtin/packages/py-pybedtools/package.py b/var/spack/repos/builtin/packages/py-pybedtools/package.py index f309f9109ba..02c76b11caa 100644 --- a/var/spack/repos/builtin/packages/py-pybedtools/package.py +++ b/var/spack/repos/builtin/packages/py-pybedtools/package.py @@ -9,7 +9,7 @@ class PyPybedtools(PythonPackage): """Python wrapper -- and more -- for Aaron Quinlan's BEDTools""" - homepage = "http://daler.github.io/pybedtools" + homepage = "https://daler.github.io/pybedtools" url = "https://github.com/daler/pybedtools/archive/v0.6.9.tar.gz" version('0.8.0', sha256='f0d9f24135d13d6d02d5c0d1bded771848d3642b00a2d3c3d86b2a1fcd5ce532') diff --git a/var/spack/repos/builtin/packages/py-pybids/package.py b/var/spack/repos/builtin/packages/py-pybids/package.py index 2706af23cd9..74720b26537 100644 --- a/var/spack/repos/builtin/packages/py-pybids/package.py +++ b/var/spack/repos/builtin/packages/py-pybids/package.py @@ -9,7 +9,7 @@ class PyPybids(PythonPackage): """bids: interface with datasets conforming to BIDS""" - homepage = "http://github.com/bids-standard/pybids" + homepage = "https://github.com/bids-standard/pybids" pypi = "pybids/pybids-0.13.1.tar.gz" version('0.13.1', sha256='c920e1557e1dae8b671625d70cafbdc28437ba2822b2db9da4c2587a7625e3ba') diff --git a/var/spack/repos/builtin/packages/py-pybind11/package.py b/var/spack/repos/builtin/packages/py-pybind11/package.py index f3b60ffa217..e007de58cef 100644 --- a/var/spack/repos/builtin/packages/py-pybind11/package.py +++ b/var/spack/repos/builtin/packages/py-pybind11/package.py @@ -25,6 +25,7 @@ class PyPybind11(CMakePackage): maintainers = ['ax3l'] version('master', branch='master') + version('2.7.1', sha256='616d1c42e4cf14fa27b2a4ff759d7d7b33006fdc5ad8fd603bb2c22622f27020') version('2.7.0', sha256='6cd73b3d0bf3daf415b5f9b87ca8817cc2e2b64c275d65f9500250f9fee1677e') version('2.6.2', sha256='8ff2fff22df038f5cd02cea8af56622bc67f5b64534f1b83b9f133b8366acff2') version('2.6.1', sha256='cdbe326d357f18b83d10322ba202d69f11b2f49e2d87ade0dc2be0c5c34f8e2a') diff --git a/var/spack/repos/builtin/packages/py-pydantic/package.py b/var/spack/repos/builtin/packages/py-pydantic/package.py new file mode 100644 index 00000000000..4334e4a90e0 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pydantic/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 import * + + +class PyPydantic(PythonPackage): + """Data validation and settings management using Python type hinting.""" + + homepage = "https://github.com/samuelcolvin/pydantic" + pypi = "pydantic/pydantic-1.8.2.tar.gz" + + version('1.8.2', sha256='26464e57ccaafe72b7ad156fdaa4e9b9ef051f69e175dbbb463283000c05ab7b') + + depends_on('python@3.6.1:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-dataclasses@0.6:', when='^python@:3.6', type=('build', 'run')) + depends_on('py-typing-extensions@3.7.4.3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pydeprecate/package.py b/var/spack/repos/builtin/packages/py-pydeprecate/package.py index 1cd50f7151a..241e6da4763 100644 --- a/var/spack/repos/builtin/packages/py-pydeprecate/package.py +++ b/var/spack/repos/builtin/packages/py-pydeprecate/package.py @@ -13,6 +13,7 @@ class PyPydeprecate(PythonPackage): homepage = "https://borda.github.io/pyDeprecate/" pypi = "pyDeprecate/pyDeprecate-0.3.0.tar.gz" + version('0.3.1', sha256='fa26870924d3475621c344045c2c01a16ba034113a902600c78e75b3fac5f72c') version('0.3.0', sha256='335742ec53b9d22a0a9ff4f3470300c94935f6e169c74b08aee14d871ca40e00') depends_on('python@3.6:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pygit2/package.py b/var/spack/repos/builtin/packages/py-pygit2/package.py index 8240819fef6..9e6deb91072 100644 --- a/var/spack/repos/builtin/packages/py-pygit2/package.py +++ b/var/spack/repos/builtin/packages/py-pygit2/package.py @@ -11,9 +11,10 @@ class PyPygit2(PythonPackage): libgit2 implements the core of Git. """ - homepage = "http://www.pygit2.org/" + homepage = "https://www.pygit2.org/" pypi = "pygit2/pygit2-0.24.1.tar.gz" + version('1.6.0', sha256='7aacea4e57011777f4774421228e5d0ddb9a6ddb87ac4b542346d17ab12a4d62') version('1.4.0', sha256='cbeb38ab1df9b5d8896548a11e63aae8a064763ab5f1eabe4475e6b8a78ee1c8') version('1.3.0', sha256='0be93f6a8d7cbf0cc79ae2f0afb1993fc055fc0018c27e2bd01ba143e51d4452') version('0.28.2', sha256='4d8c3fbbf2e5793a9984681a94e6ac2f1bc91a92cbac762dbdfbea296b917f86') @@ -31,9 +32,10 @@ class PyPygit2(PythonPackage): depends_on('python@3.6:3.8.99', when='@1.2:1.3.99') depends_on('python@3.5:3.8.99', when='@1.0:1.1.99') depends_on('python@2.7:3.7.99', when='@0.28:0.99.99') - depends_on('py-six', type=('build', 'run')) + depends_on('py-six', type=('build', 'run'), when='@:0.28.2') depends_on('py-cffi@1.4.0:', type=('build', 'run')) - depends_on('py-cached-property', when='@1.1.0:', type=('build', 'run')) + depends_on('py-cached-property', when='@1.1.0:1.5', type=('build', 'run')) + depends_on('py-cached-property', when='@1.6.0: ^python@:3.7', type=('build', 'run')) def setup_build_environment(self, env): spec = self.spec diff --git a/var/spack/repos/builtin/packages/py-pygments/package.py b/var/spack/repos/builtin/packages/py-pygments/package.py index 6bd338b88d1..5f00a7905de 100644 --- a/var/spack/repos/builtin/packages/py-pygments/package.py +++ b/var/spack/repos/builtin/packages/py-pygments/package.py @@ -9,9 +9,10 @@ class PyPygments(PythonPackage): """Pygments is a syntax highlighting package written in Python.""" - homepage = "http://pygments.org/" + homepage = "https://pygments.org/" pypi = "Pygments/Pygments-2.4.2.tar.gz" + version('2.10.0', sha256='f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6') version('2.6.1', sha256='647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44') version('2.4.2', sha256='881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297') version('2.3.1', sha256='5ffada19f6203563680669ee7f53b64dabbeb100eb51b61996085e99c03b284a') diff --git a/var/spack/repos/builtin/packages/py-pygpu/package.py b/var/spack/repos/builtin/packages/py-pygpu/package.py index af5409e1b2b..c7968913ab0 100644 --- a/var/spack/repos/builtin/packages/py-pygpu/package.py +++ b/var/spack/repos/builtin/packages/py-pygpu/package.py @@ -11,7 +11,7 @@ class PyPygpu(PythonPackage): """Python packge for the libgpuarray C library.""" - homepage = "http://deeplearning.net/software/libgpuarray/" + homepage = "https://github.com/Theano/libgpuarray" url = "https://github.com/Theano/libgpuarray/archive/v0.6.1.tar.gz" version('0.7.6', sha256='ad1c00dd47c3d36ee1708e5167377edbfcdb7226e837ef9c68b841afbb4a4f6a') diff --git a/var/spack/repos/builtin/packages/py-pyinstrument/package.py b/var/spack/repos/builtin/packages/py-pyinstrument/package.py index dbc30c78755..104680d4bf8 100644 --- a/var/spack/repos/builtin/packages/py-pyinstrument/package.py +++ b/var/spack/repos/builtin/packages/py-pyinstrument/package.py @@ -10,12 +10,15 @@ class PyPyinstrument(PythonPackage): """Call stack profiler for Python. Shows you why your code is slow!""" homepage = "https://github.com/joerick/pyinstrument" - url = "https://github.com/joerick/pyinstrument/archive/v3.1.3.tar.gz" + pypi = "pyinstrument/pyinstrument-4.0.3.tar.gz" - version('3.1.3', sha256='ca4571775caa06444cd7e832056afc21175130271fe3f3481e3ab1bf67f96c8b') - version('3.1.0', sha256='02319607daf65110e246085f5e2ee111f565f213eed1991229f2d58e9a7657a5') + version('4.0.3', sha256='08caf41d21ae8f24afe79c664a34af1ed1e17aa5d4441cd9b1dc15f87bbbac95') + version('3.1.3', sha256='353c7000a6563b16c0be0c6a04104d42b3154c5cd7c1979ab66efa5fdc5f5571') + version('3.1.0', sha256='10c1fed4996a72c3e1e2bac1940334756894dbd116df3cc3b2d9743f2ae43016') + depends_on('python@3.7:', when='@4:', type=('build', 'run')) + depends_on('python@3.6:', when='@3.3:3.4', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-pytest-runner', type='build') - depends_on('npm', type='build') - depends_on('py-pyinstrument-cext@0.2.2:', type=('build', 'run')) + depends_on('py-pytest-runner', when='@:3.1.3', type='build') + depends_on('npm', when='@:3', type='build') + depends_on('py-pyinstrument-cext@0.2.2:', when='@:3', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pyke/package.py b/var/spack/repos/builtin/packages/py-pyke/package.py index 88629df9d99..11709272b97 100644 --- a/var/spack/repos/builtin/packages/py-pyke/package.py +++ b/var/spack/repos/builtin/packages/py-pyke/package.py @@ -12,7 +12,7 @@ class PyPyke(PythonPackage): engine (expert system) written in 100% Python. """ - homepage = "http://sourceforge.net/projects/pyke" + homepage = "https://sourceforge.net/projects/pyke" url = "https://sourceforge.net/projects/pyke/files/pyke/1.1.1/pyke-1.1.1.zip" version('1.1.1', sha256='b0b294f435c6e6d2d4a80badf57d92cb66814dfe21e644a521901209e6a3f8ae') diff --git a/var/spack/repos/builtin/packages/py-pymc3/package.py b/var/spack/repos/builtin/packages/py-pymc3/package.py index b329f9b78ba..63e53d12be5 100644 --- a/var/spack/repos/builtin/packages/py-pymc3/package.py +++ b/var/spack/repos/builtin/packages/py-pymc3/package.py @@ -12,7 +12,7 @@ class PyPymc3(PythonPackage): Carlo (MCMC) and variational inference (VI) algorithms. Its flexibility and extensibility make it applicable to a large suite of problems.""" - homepage = "http://github.com/pymc-devs/pymc3" + homepage = "https://github.com/pymc-devs/pymc3" pypi = "pymc3/pymc3-3.8.tar.gz" version('3.8', sha256='1bb2915e4a29877c681ead13932b0b7d276f7f496e9c3f09ba96b977c99caf00') diff --git a/var/spack/repos/builtin/packages/py-pyminifier/package.py b/var/spack/repos/builtin/packages/py-pyminifier/package.py index 0bd7e0b2728..ab5394c5013 100644 --- a/var/spack/repos/builtin/packages/py-pyminifier/package.py +++ b/var/spack/repos/builtin/packages/py-pyminifier/package.py @@ -9,7 +9,7 @@ class PyPyminifier(PythonPackage): """Pyminifier is a Python code minifier, obfuscator, and compressor.""" - homepage = "http://liftoff.github.io/pyminifier/" + homepage = "https://liftoff.github.io/pyminifier/" pypi = "pyminifier/pyminifier-2.1.tar.gz" version('2.1', sha256='e192618fe901830e9298825b32828bc9555ae8649e05af37bfab2db328546777') diff --git a/var/spack/repos/builtin/packages/py-pymumps/package.py b/var/spack/repos/builtin/packages/py-pymumps/package.py index 4c457f5be84..c3c1fb4eb64 100644 --- a/var/spack/repos/builtin/packages/py-pymumps/package.py +++ b/var/spack/repos/builtin/packages/py-pymumps/package.py @@ -9,7 +9,7 @@ class PyPymumps(PythonPackage): """Python bindings for MUMPS, a parallel sparse direct solver""" - homepage = "http://github.com/pymumps/pymumps" + homepage = "https://github.com/pymumps/pymumps" pypi = "PyMUMPS/PyMUMPS-0.3.2.tar.gz" git = "https://github.com/PyMumps/pymumps.git" diff --git a/var/spack/repos/builtin/packages/py-pynn/package.py b/var/spack/repos/builtin/packages/py-pynn/package.py index 4044ddb9406..5f5775c77d8 100644 --- a/var/spack/repos/builtin/packages/py-pynn/package.py +++ b/var/spack/repos/builtin/packages/py-pynn/package.py @@ -11,7 +11,7 @@ class PyPynn(PythonPackage): network models """ - homepage = "http://neuralensemble.org/PyNN/" + homepage = "https://neuralensemble.org/PyNN/" pypi = "PyNN/PyNN-0.8.3.tar.gz" git = "https://github.com/NeuralEnsemble/PyNN.git" diff --git a/var/spack/repos/builtin/packages/py-pynvml/package.py b/var/spack/repos/builtin/packages/py-pynvml/package.py index a719194cccd..035b48a3a90 100644 --- a/var/spack/repos/builtin/packages/py-pynvml/package.py +++ b/var/spack/repos/builtin/packages/py-pynvml/package.py @@ -10,7 +10,7 @@ class PyPynvml(PythonPackage): information about the NVML library, see the NVML developer page http://developer.nvidia.com/nvidia-management-library-nvml""" - homepage = "http://www.nvidia.com/" + homepage = "https://www.nvidia.com/" pypi = "pynvml/pynvml-8.0.4.tar.gz" version('8.0.4', sha256='c8d4eadc648c7e12a3c9182a9750afd8481b76412f83747bcc01e2aa829cde5d') diff --git a/var/spack/repos/builtin/packages/py-pypar/package.py b/var/spack/repos/builtin/packages/py-pypar/package.py index 3b5658be057..a742d350a2b 100644 --- a/var/spack/repos/builtin/packages/py-pypar/package.py +++ b/var/spack/repos/builtin/packages/py-pypar/package.py @@ -10,7 +10,7 @@ class PyPypar(PythonPackage): """Pypar is an efficient but easy-to-use module that allows programs written in Python to run in parallel on multiple processors and communicate using MPI.""" - homepage = "http://code.google.com/p/pypar/" + homepage = "https://github.com/daleroberts/pypar" url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pypar/pypar-2.1.5_108.tgz" version('2.1.5_108', sha256='6076c47d32d48424a07c7b7b29ac16e12cc4b2d28b681b895f94fa76cd82fa12') diff --git a/var/spack/repos/builtin/packages/py-pyparsing/package.py b/var/spack/repos/builtin/packages/py-pyparsing/package.py index e0bdfbd9df3..76ad6fb0ebf 100644 --- a/var/spack/repos/builtin/packages/py-pyparsing/package.py +++ b/var/spack/repos/builtin/packages/py-pyparsing/package.py @@ -8,7 +8,7 @@ class PyPyparsing(PythonPackage): """A Python Parsing Module.""" - homepage = "http://pyparsing.wikispaces.com/" + homepage = "https://pyparsing-docs.readthedocs.io/en/latest/" pypi = "pyparsing/pyparsing-2.4.2.tar.gz" version('2.4.7', sha256='c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1') diff --git a/var/spack/repos/builtin/packages/py-pyprecice/package.py b/var/spack/repos/builtin/packages/py-pyprecice/package.py index 792802fe31a..6df24e4d201 100644 --- a/var/spack/repos/builtin/packages/py-pyprecice/package.py +++ b/var/spack/repos/builtin/packages/py-pyprecice/package.py @@ -12,7 +12,7 @@ class PyPyprecice(PythonPackage): C++ library preCICE. """ - homepage = "https://www.precice.org" + homepage = "https://precice.org" git = "https://github.com/precice/python-bindings.git" url = "https://github.com/precice/python-bindings/archive/v2.0.0.1.tar.gz" maintainers = ["ajaust", "BenjaminRodenberg", "IshaanDesai"] diff --git a/var/spack/repos/builtin/packages/py-pyrsistent/package.py b/var/spack/repos/builtin/packages/py-pyrsistent/package.py index 5bf81eb4c96..765760efe5b 100644 --- a/var/spack/repos/builtin/packages/py-pyrsistent/package.py +++ b/var/spack/repos/builtin/packages/py-pyrsistent/package.py @@ -11,7 +11,7 @@ class PyPyrsistent(PythonPackage): (by some referred to as functional data structures). Persistent in the sense that they are immutable.""" - homepage = "http://github.com/tobgu/pyrsistent/" + homepage = "https://github.com/tobgu/pyrsistent/" pypi = "pyrsistent/pyrsistent-0.15.7.tar.gz" version('0.15.7', sha256='cdc7b5e3ed77bed61270a47d35434a30617b9becdf2478af76ad2c6ade307280') diff --git a/var/spack/repos/builtin/packages/py-pysolar/package.py b/var/spack/repos/builtin/packages/py-pysolar/package.py index 8208908e140..1f523c10aa3 100644 --- a/var/spack/repos/builtin/packages/py-pysolar/package.py +++ b/var/spack/repos/builtin/packages/py-pysolar/package.py @@ -11,7 +11,7 @@ class PyPysolar(PythonPackage): irradiation of any point on earth by the sun. It includes code for extremely precise ephemeris calculations, and more.""" - homepage = "http://pysolar.readthedocs.io" + homepage = "https://pysolar.readthedocs.io" pypi = "pysolar/pysolar-0.8.tar.gz" version('0.8', sha256='548c05177acd2845143d9624e670635cd3e5c3a63782449ca35e090ca755c617') diff --git a/var/spack/repos/builtin/packages/py-pyspark/package.py b/var/spack/repos/builtin/packages/py-pyspark/package.py index 1dfb3204c11..68d5be974fa 100644 --- a/var/spack/repos/builtin/packages/py-pyspark/package.py +++ b/var/spack/repos/builtin/packages/py-pyspark/package.py @@ -9,7 +9,7 @@ class PyPyspark(PythonPackage): """Python bindings for Apache Spark""" - homepage = "http://spark.apache.org" + homepage = "https://spark.apache.org" pypi = "pyspark/pyspark-3.0.1.tar.gz" version('3.0.1', sha256='38b485d3634a86c9a2923c39c8f08f003fdd0e0a3d7f07114b2fb4392ce60479') diff --git a/var/spack/repos/builtin/packages/py-pytest-isort/package.py b/var/spack/repos/builtin/packages/py-pytest-isort/package.py index e51634f8bf3..846ac3671b3 100644 --- a/var/spack/repos/builtin/packages/py-pytest-isort/package.py +++ b/var/spack/repos/builtin/packages/py-pytest-isort/package.py @@ -9,7 +9,7 @@ class PyPytestIsort(PythonPackage): """py.test plugin to check import ordering using isort""" - homepage = "http://github.com/moccu/pytest-isort/" + homepage = "https://github.com/moccu/pytest-isort/" pypi = "pytest-isort/pytest-isort-0.3.1.tar.gz" version('0.3.1', sha256='4bfee60dad1870b51700d55a85f5ceda766bd9d3d2878c1bbabee80e61b1be1a') diff --git a/var/spack/repos/builtin/packages/py-pytest-pep8/package.py b/var/spack/repos/builtin/packages/py-pytest-pep8/package.py index e2ff74e2fc0..8f8fc59c596 100644 --- a/var/spack/repos/builtin/packages/py-pytest-pep8/package.py +++ b/var/spack/repos/builtin/packages/py-pytest-pep8/package.py @@ -9,7 +9,6 @@ class PyPytestPep8(PythonPackage): """pytest plugin for efficiently checking PEP8 compliance""" - homepage = "https://bitbucket.org/pytest-dev/pytest-pep8" pypi = "pytest-pep8/pytest-pep8-1.0.6.tar.gz" version('1.0.6', sha256='032ef7e5fa3ac30f4458c73e05bb67b0f036a8a5cb418a534b3170f89f120318') diff --git a/var/spack/repos/builtin/packages/py-pytest/package.py b/var/spack/repos/builtin/packages/py-pytest/package.py index 4de83b358df..65715fff735 100644 --- a/var/spack/repos/builtin/packages/py-pytest/package.py +++ b/var/spack/repos/builtin/packages/py-pytest/package.py @@ -9,9 +9,10 @@ class PyPytest(PythonPackage): """pytest: simple powerful testing with Python.""" - homepage = "http://pytest.org/" + homepage = "https://pytest.org/" pypi = "pytest/pytest-5.2.1.tar.gz" + version('6.2.4', sha256='50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b') version('6.2.1', sha256='66e419b1899bc27346cb2c993e12c5e5e8daba9073c1fbce33b9807abc95c306') version('6.1.1', sha256='8f593023c1a0f916110285b6efd7f99db07d59546e3d8c36fc60e2ab05d3be92') version('5.3.4', sha256='1d122e8be54d1a709e56f82e2d85dcba3018313d64647f38a91aec88c239b600') @@ -28,35 +29,26 @@ class PyPytest(PythonPackage): version('3.0.7', sha256='b70696ebd1a5e6b627e7e3ac1365a4bc60aaf3495e843c1e70448966c5224cab') version('3.0.2', sha256='64d8937626dd2a4bc15ef0edd307d26636a72a3f3f9664c424d78e40efb1e339') - depends_on('python@3.6:', when='@6.2.0', type=('build', 'run')) - depends_on('python@3.5:', when='@5:6.1.999', type=('build', 'run')) + # python_requires + depends_on('python@3.6:', when='@6.2:', type=('build', 'run')) + depends_on('python@3.5:', when='@5:6.1', type=('build', 'run')) depends_on('python@2.7:2.8,3.4:', when='@3.3:4', type=('build', 'run')) depends_on('python@2.6:2.8,3.3:', when='@:3.2', type=('build', 'run')) - # Most Python packages only require setuptools as a build dependency. - # However, pytest requires setuptools during runtime as well. - # FIXME: May no longer be needed at runtime, see: - # https://github.com/pytest-dev/pytest/pull/5063 + # setup_requires depends_on('py-setuptools@42.0:', when='@6.2:', type=('build', 'run')) depends_on('py-setuptools@40.0:', when='@3.9.2:6.1.999', type=('build', 'run')) depends_on('py-setuptools@30.3:', when='@3.9.0:3.9.1', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-setuptools-scm@3.4:', when='@6.2:', type=('build', 'run')) + depends_on('py-setuptools-scm@3.4:', when='@6.2:', type='build') depends_on('py-setuptools-scm', when='@3.1:', type='build') - depends_on('py-py@1.8.2:', when='@6:', type=('build', 'run')) - depends_on('py-py@1.5.0:', when='@3.3:5.999', type=('build', 'run')) - depends_on('py-py@1.4.33:', when='@3.1.2:3.2.3,3.2.5:3.2.999', type=('build', 'run')) - depends_on('py-py@1.4.33:1.4.999', when='@3.2.4', type=('build', 'run')) - depends_on('py-py@1.4.29:', when='@:3.1.1', type=('build', 'run')) - depends_on('py-six@1.10.0:', when='@3.3:4', type=('build', 'run')) - depends_on('py-packaging', when='@4.6:', type=('build', 'run')) + + # install_requires depends_on('py-attrs@19.2.0:', when='@6.2:', type=('build', 'run')) depends_on('py-attrs@17.4.0:', when='@3.5:6.1.999', type=('build', 'run')) depends_on('py-attrs@17.2.0:', when='@3.3:3.4', type=('build', 'run')) - depends_on('py-more-itertools@4.0.0:', when='@3.5.1:5.999', type=('build', 'run')) - depends_on('py-more-itertools@4.0.0:6.0.0', when='@4.2.1:4.6.9 ^python@:2', type=('build', 'run')) - depends_on('py-atomicwrites@1.0:', when='@3.6:5.2.999', type=('build', 'run')) - depends_on('py-pluggy@0.12:1.0.0', when='@6.2.1.', type=('build', 'run')) + depends_on('py-iniconfig', when='@6.0:', type=('build', 'run')) + depends_on('py-packaging', when='@4.6:', type=('build', 'run')) depends_on('py-pluggy@0.12:0.999', when='@4.6:', type=('build', 'run')) depends_on('py-pluggy@0.9.0:0.9.999,0.11:0.999', when='@4.5.0:4.5.999', type=('build', 'run')) depends_on('py-pluggy@0.11:', when='@4.4.2:4.4.999', type=('build', 'run')) @@ -64,12 +56,24 @@ class PyPytest(PythonPackage): depends_on('py-pluggy@0.7:', when='@3.7:4.3', type=('build', 'run')) depends_on('py-pluggy@0.5:0.7', when='@3.6.4:3.6.999', type=('build', 'run')) depends_on('py-pluggy@0.5:0.6', when='@:3.6.3', type=('build', 'run')) + depends_on('py-py@1.8.2:', when='@6:', type=('build', 'run')) + depends_on('py-py@1.5.0:', when='@3.3:5.999', type=('build', 'run')) + depends_on('py-py@1.4.33:', when='@3.1.2:3.2.3,3.2.5:3.2.999', type=('build', 'run')) + depends_on('py-py@1.4.33:1.4.999', when='@3.2.4', type=('build', 'run')) + depends_on('py-py@1.4.29:', when='@:3.1.1', type=('build', 'run')) + depends_on('py-toml', when='@6.0:', type=('build', 'run')) + depends_on('py-atomicwrites@1.0:', when='@5.3: platform=win32', type=('build', 'run')) + depends_on('py-atomicwrites@1.0:', when='@3.6:5.2.999', type=('build', 'run')) + depends_on('py-colorama', when='platform=win32', type=('build', 'run')) + depends_on('py-importlib-metadata@0.12:', when='@4.6:5.0', type=('build', 'run')) + depends_on('py-importlib-metadata@0.12:', when='@5.1: ^python@:3.7', type=('build', 'run')) + + # Historic dependencies + depends_on('py-six@1.10.0:', when='@3.3:4', type=('build', 'run')) + depends_on('py-more-itertools@4.0.0:', when='@3.5.1:5.999', type=('build', 'run')) + depends_on('py-more-itertools@4.0.0:6.0.0', when='@4.2.1:4.6.9 ^python@:2', type=('build', 'run')) depends_on('py-funcsigs@1.0:', when='@4.4: ^python@:2', type=('build', 'run')) depends_on('py-funcsigs', when='@3.3:4.3 ^python@:2', type=('build', 'run')) depends_on('py-pathlib2@2.2.0:', when='@3.7.1: ^python@:3.5', type=('build', 'run')) depends_on('py-pathlib2', when='@3.7.0 ^python@:3.5', type=('build', 'run')) - depends_on('py-importlib-metadata@0.12:', when='@4.6:5.0', type=('build', 'run')) - depends_on('py-importlib-metadata@0.12:', when='@5.1: ^python@:3.7', type=('build', 'run')) depends_on('py-wcwidth', when='@4.5:5.999', type=('build', 'run')) - depends_on('py-iniconfig', when='@6.0:', type=('build', 'run')) - depends_on('py-toml', when='@6.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-python-dateutil/package.py b/var/spack/repos/builtin/packages/py-python-dateutil/package.py index 263a5549590..50e207dd8ad 100644 --- a/var/spack/repos/builtin/packages/py-python-dateutil/package.py +++ b/var/spack/repos/builtin/packages/py-python-dateutil/package.py @@ -12,6 +12,7 @@ class PyPythonDateutil(PythonPackage): homepage = "https://dateutil.readthedocs.io/" pypi = "python-dateutil/python-dateutil-2.8.0.tar.gz" + version('2.8.2', sha256='0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86') version('2.8.1', sha256='73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c') version('2.8.0', sha256='c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e') version('2.7.5', sha256='88f9287c0174266bb0d8cedd395cfba9c58e87e5ad86b2ce58859bc11be3cf02') @@ -20,7 +21,7 @@ class PyPythonDateutil(PythonPackage): version('2.4.0', sha256='439df33ce47ef1478a4f4765f3390eab0ed3ec4ae10be32f2930000c8d19f417') version('2.2', sha256='eec865307ebe7f329a6a9945c15453265a449cdaaf3710340828a1934d53e468') - depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.3:', when='@2.7.5:', type=('build', 'run')) depends_on('py-setuptools@24.3:', type='build') depends_on('py-setuptools-scm', type='build', when='@2.7.0:') depends_on('py-six@1.5:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-python-engineio/package.py b/var/spack/repos/builtin/packages/py-python-engineio/package.py index fd7e8c1e228..c1e35072db7 100644 --- a/var/spack/repos/builtin/packages/py-python-engineio/package.py +++ b/var/spack/repos/builtin/packages/py-python-engineio/package.py @@ -11,7 +11,7 @@ class PyPythonEngineio(PythonPackage): cross-browser/cross-device bi-directional communication layer for Socket.IO.""" - homepage = "http://python-engineio.readthedocs.io/en/latest/" + homepage = "https://python-engineio.readthedocs.io/en/latest/" url = "https://github.com/miguelgrinberg/python-engineio/archive/v2.0.2.tar.gz" version('2.0.2', sha256='9fbe531108a95bc61518b61c4718e2661fc81d32b54fd6af34799bf10a367a6b') diff --git a/var/spack/repos/builtin/packages/py-python-fmask/package.py b/var/spack/repos/builtin/packages/py-python-fmask/package.py index c0af4d3db93..9e5acb9b9ef 100644 --- a/var/spack/repos/builtin/packages/py-python-fmask/package.py +++ b/var/spack/repos/builtin/packages/py-python-fmask/package.py @@ -10,7 +10,7 @@ class PyPythonFmask(PythonPackage): """A set of command line utilities and Python modules that implement the FMASK algorithm for Landsat and Sentinel-2""" - homepage = "http://pythonfmask.org" + homepage = "https://www.pythonfmask.org/en/latest/" url = "https://github.com/ubarsc/python-fmask/archive/pythonfmask-0.5.4.tar.gz" version('0.5.4', sha256='a216aa3108de837fec182602b2b4708442746be31fc1585906802437784a63fe') diff --git a/var/spack/repos/builtin/packages/py-python-igraph/package.py b/var/spack/repos/builtin/packages/py-python-igraph/package.py index a437d06f682..6c16df7afa2 100644 --- a/var/spack/repos/builtin/packages/py-python-igraph/package.py +++ b/var/spack/repos/builtin/packages/py-python-igraph/package.py @@ -10,7 +10,7 @@ class PyPythonIgraph(PythonPackage): """igraph is a collection of network analysis tools with the emphasis on efficiency, portability and ease of use.""" - homepage = "http://igraph.org/" + homepage = "https://igraph.org/" url = "http://igraph.org/nightly/get/python/python-igraph-0.7.0.tar.gz" version('0.7.0', sha256='64ac270e80a92066d489407be1900a329df8e26844430f941ecc88771188c471') diff --git a/var/spack/repos/builtin/packages/py-python-keystoneclient/package.py b/var/spack/repos/builtin/packages/py-python-keystoneclient/package.py new file mode 100644 index 00000000000..dc61adb66b9 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-python-keystoneclient/package.py @@ -0,0 +1,35 @@ +# Copyright 2013-2021 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 import * + + +class PyPythonKeystoneclient(PythonPackage): + """ + This is a client for the OpenStack Identity API, implemented by the + Keystone team + """ + + homepage = "https://docs.openstack.org/python-keystoneclient" + pypi = "python-keystoneclient/python-keystoneclient-4.2.0.tar.gz" + + maintainers = ['haampie'] + + version('4.2.0', sha256='0248426e483b95de395086482c077d48e45990d3b1a3e334b2ec8b2e108f5a8a') + + depends_on('python@3.6:', type=('build', 'run')) + + depends_on('py-pbr@2.0.0:2.0.999,2.1.1:', type='build') + depends_on('py-setuptools', type='build') + + depends_on('py-debtcollector@1.2.0:', type=('build', 'run')) + depends_on('py-keystoneauth1@3.4.0:', type=('build', 'run')) + depends_on('py-oslo-config@5.2.0:', type=('build', 'run')) + depends_on('py-oslo-i18n@3.15.3:', type=('build', 'run')) + depends_on('py-oslo-serialization@2.18.0:2.19.0,2.19.2:', type=('build', 'run')) + depends_on('py-oslo-utils@3.33.0:', type=('build', 'run')) + depends_on('py-requests@2.14.2:', type=('build', 'run')) + depends_on('py-six@1.10.0:', type=('build', 'run')) + depends_on('py-stevedore@1.20.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-python-swiftclient/package.py b/var/spack/repos/builtin/packages/py-python-swiftclient/package.py index 54636016953..d8c4c472701 100644 --- a/var/spack/repos/builtin/packages/py-python-swiftclient/package.py +++ b/var/spack/repos/builtin/packages/py-python-swiftclient/package.py @@ -14,15 +14,22 @@ class PyPythonSwiftclient(PythonPackage): maintainers = ['ajkotobi'] + version('3.12.0', sha256='313b444a14d0f9b628cbf3e8c52f2c4271658f9e8a33d4222851c2e4f0f7b7a0') + version('3.11.1', sha256='06919d59676d3e215f4da4f3f930d71880dda3528289842b25199509df712411') version('3.10.0', sha256='66227eaf29a691c70675fb9982022980b92797c273dd5e6dc7e680425e9a3634') version('3.9.0', sha256='4f2097492e4c76e948882fc859bfa033ade09bed72f8e6b328e34a3467d9a377') version('3.8.1', sha256='3a013303643f77a99befa05582dfb93671e1fba1aed9f4a517418129700aedb8') version('3.8.0', sha256='107a9d5356663365a9f7c0b3a2b55da97a0a9ba7f10da2319b3972481510f33d') version('3.7.1', sha256='06bda5a6f81ea132e5cb52d0eb0616a0ab0958b4ec0d1cb7f850f04bf178852f') - depends_on('py-setuptools', type=('build', 'run')) + variant('keystone', default=False, description='Enable keystone authentication') + depends_on('python@2.7:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-pbr', type='build') + depends_on('py-futures@3:', type=('build', 'run'), when='^python@:2') depends_on('py-requests@1.1.0:', type=('build', 'run')) depends_on('py-six@1.9:', type=('build', 'run')) - depends_on('py-pbr', type='build') + + depends_on('py-python-keystoneclient@0.7.0:', when='+keystone', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pythran/omp.patch b/var/spack/repos/builtin/packages/py-pythran/omp.patch new file mode 100644 index 00000000000..19aa2c68639 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pythran/omp.patch @@ -0,0 +1,70 @@ +diff --git a/omp/__init__.py b/omp/__init__.py +index bddae3063..10a4cc995 100644 +--- a/omp/__init__.py ++++ b/omp/__init__.py +@@ -69,10 +69,16 @@ class OpenMP(object): + + def init_not_msvc(self): + """ Find OpenMP library and try to load if using ctype interface. """ +- # find_library() does not search automatically LD_LIBRARY_PATH ++ # find_library() does not automatically search LD_LIBRARY_PATH ++ # until Python 3.6+, so we explicitly add it. ++ # LD_LIBRARY_PATH is used on Linux, while macOS uses DYLD_LIBRARY_PATH ++ # and DYLD_FALLBACK_LIBRARY_PATH. + paths = os.environ.get('LD_LIBRARY_PATH', '').split(':') ++ paths += os.environ.get('DYLD_LIBRARY_PATH', '').split(':') ++ paths += os.environ.get('DYLD_FALLBACK_LIBRARY_PATH', '').split(':') + +- for libomp_name in self.get_libomp_names(): ++ libomp_names = self.get_libomp_names() ++ for libomp_name in libomp_names: + if cxx is None or sys.platform == 'win32': + # Note: Clang supports -print-file-name, but not yet for + # clang-cl as of v12.0.0 (April '21) +@@ -87,25 +93,27 @@ class OpenMP(object): + except (OSError, CalledProcessError): + pass + +- # Try to load find libgomp shared library using loader search dirs +- libgomp_path = find_library("gomp") +- +- # Try to use custom paths if lookup failed +- for path in paths: +- if libgomp_path: +- break +- path = path.strip() +- if os.path.isdir(path): +- libgomp_path = find_library(os.path.join(str(path), "libgomp")) +- +- if not libgomp_path: +- raise ImportError("I can't find a shared library for libgomp," +- " you may need to install it or adjust the " +- "LD_LIBRARY_PATH environment variable.") +- else: +- # Load the library (shouldn't fail with an absolute path right?) +- self.libomp = ctypes.CDLL(libgomp_path) +- self.version = 45 ++ for libomp_name in libomp_names: ++ # Try to load find libomp shared library using loader search dirs ++ libomp_path = find_library(libomp_name) ++ ++ # Try to use custom paths if lookup failed ++ for path in paths: ++ if libomp_path: ++ break ++ path = path.strip() ++ if os.path.isfile(os.path.join(path, libomp_name)): ++ libomp_path = os.path.join(path, libomp_name) ++ ++ if libomp_path: ++ # Load the library (shouldn't fail with an absolute path right?) ++ self.libomp = ctypes.CDLL(libomp_path) ++ self.version = 45 ++ return ++ ++ raise ImportError("I can't find a shared library for libomp," ++ " you may need to install it or adjust the " ++ "LD_LIBRARY_PATH environment variable.") + + def __getattr__(self, name): + """ diff --git a/var/spack/repos/builtin/packages/py-pythran/package.py b/var/spack/repos/builtin/packages/py-pythran/package.py index 121eee704c8..e48928a90b2 100644 --- a/var/spack/repos/builtin/packages/py-pythran/package.py +++ b/var/spack/repos/builtin/packages/py-pythran/package.py @@ -3,6 +3,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import sys + from spack import * @@ -42,3 +44,32 @@ class PyPythran(PythonPackage): depends_on('py-beniget@0.2.1:0.2.999', when='@0.9.6', type=('build', 'run')) depends_on('py-beniget@0.2.0:', when='@0.9.4:0.9.5', type=('build', 'run')) depends_on('py-beniget', when='@:0.9.3', type=('build', 'run')) + depends_on('llvm-openmp', when='%apple-clang', type=('build', 'run')) + + # https://github.com/serge-sans-paille/pythran/pull/1856 + patch('omp.patch', when='@0.9.10:0.9.12') + + 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)) + filter_file('CXX=', 'CXX=' + self.compiler.cxx, cfg_file) + + def setup_build_environment(self, env): + # Needed for `spack install --test=root py-pythran` + if self.spec.satisfies('%apple-clang'): + env.prepend_path( + 'DYLD_FALLBACK_LIBRARY_PATH', + self.spec['llvm-openmp'].libs.directories[0] + ) + + def setup_run_environment(self, env): + # Needed for `spack test run py-pythran` + self.setup_build_environment(env) + + def setup_dependent_build_environment(self, env, dependent_spec): + # Needed for `spack install py-scipy` + self.setup_build_environment(env) + + def setup_dependent_run_environment(self, env, dependent_spec): + # Probably needed for something? + self.setup_build_environment(env) diff --git a/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py b/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py index 7dd74c3b597..4c2578b6abf 100644 --- a/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py +++ b/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py @@ -12,6 +12,8 @@ class PyPytorchLightning(PythonPackage): homepage = "https://github.com/PyTorchLightning/pytorch-lightning" pypi = "pytorch-lightning/pytorch-lightning-1.2.10.tar.gz" + version('1.4.1', sha256='1d1128aeb5d0e523d2204c4d9399d65c4e5f41ff0370e96d694a823af5e8e6f3') + version('1.4.0', sha256='6529cf064f9dc323c94f3ce84b56ee1a05db1b0ab17db77c4d15aa36e34da81f') version('1.3.8', sha256='60b0a3e464d394864dae4c8d251afa7aa453644a19bb7672f5ee400343cdf7b0') version('1.2.10', sha256='2d8365e30ded0c20e73ce6e5b6028478ae460b8fd33727df2275666df005a301') @@ -19,17 +21,22 @@ class PyPytorchLightning(PythonPackage): depends_on('py-setuptools', type='build') 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.4:', type=('build', 'run')) + depends_on('py-torch@1.6:', when='@1.4:', type=('build', 'run')) + depends_on('py-torch@1.4:', when='@:1.3', type=('build', 'run')) depends_on('py-future@0.17.1:', type=('build', 'run')) depends_on('py-tqdm@4.41.0:', type=('build', 'run')) - depends_on('py-pyyaml@5.1:5.4.1', when='@1.3:', type=('build', 'run')) + depends_on('py-pyyaml@5.1:', when='@1.4:', 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.05.0:2021.05.999,2021.06.1:', when='@1.3:', type=('build', 'run')) + depends_on('py-fsspec@2021.05.0:2021.05.999,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-tensorboard@2.2.0:2.4.999,2.5.1:', type=('build', 'run')) - depends_on('py-torchmetrics@0.2.0:', when='@1.3:', 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-pydeprecate@0.3.0', when='@1.3:', type=('build', 'run')) + depends_on('py-pydeprecate@0.3.1', when='@1.4:', type=('build', 'run')) + depends_on('py-pydeprecate@0.3.0', when='@1.3', type=('build', 'run')) depends_on('py-packaging@17.0:', when='@1.3:', type=('build', 'run')) depends_on('py-packaging', type=('build', 'run')) - depends_on('pil@:8.2.999,8.3.1:', when='@1.3:', type=('build', 'run')) + depends_on('py-typing-extensions', when='@1.4:', type=('build', 'run')) + depends_on('pil@:8.2.999,8.3.1:', when='@1.3', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pytz/package.py b/var/spack/repos/builtin/packages/py-pytz/package.py index bcc1a8327e0..f995af7ac2f 100644 --- a/var/spack/repos/builtin/packages/py-pytz/package.py +++ b/var/spack/repos/builtin/packages/py-pytz/package.py @@ -9,7 +9,7 @@ class PyPytz(PythonPackage): """World timezone definitions, modern and historical.""" - homepage = "http://pythonhosted.org/pytz" + homepage = "https://pythonhosted.org/pytz" pypi = "pytz/pytz-2019.3.tar.gz" version('2020.1', sha256='c35965d010ce31b23eeb663ed3cc8c906275d6be1a34393a1d73a41febf4a048') diff --git a/var/spack/repos/builtin/packages/py-pyvcf/package.py b/var/spack/repos/builtin/packages/py-pyvcf/package.py index 47ecbb5df9e..9285fc84ebc 100644 --- a/var/spack/repos/builtin/packages/py-pyvcf/package.py +++ b/var/spack/repos/builtin/packages/py-pyvcf/package.py @@ -9,7 +9,7 @@ class PyPyvcf(PythonPackage): """A Variant Call Format reader for Python""" - homepage = "http://pyvcf.readthedocs.org/en/latest/index.html" + homepage = "https://pyvcf.readthedocs.org/en/latest/index.html" url = "https://github.com/jamescasbon/PyVCF/archive/v0.6.0.tar.gz" version('0.6.0', sha256='a360376d445e27b74db3216f6931a94a4ea99aa4a7f4b4a8347e7f11836698b9') diff --git a/var/spack/repos/builtin/packages/py-qtconsole/package.py b/var/spack/repos/builtin/packages/py-qtconsole/package.py index ca0e3a0d13e..8ff12768b1f 100644 --- a/var/spack/repos/builtin/packages/py-qtconsole/package.py +++ b/var/spack/repos/builtin/packages/py-qtconsole/package.py @@ -9,7 +9,7 @@ class PyQtconsole(PythonPackage): """Jupyter Qt console""" - homepage = "http://ipython.org" + homepage = "https://ipython.org" pypi = "qtconsole/qtconsole-4.2.1.tar.gz" version('4.5.1', sha256='4af84facdd6f00a6b9b2927255f717bb23ae4b7a20ba1d9ef0a5a5a8dbe01ae2') diff --git a/var/spack/repos/builtin/packages/py-quantities/package.py b/var/spack/repos/builtin/packages/py-quantities/package.py index 1bee1ac00f8..fcb2abd41a9 100644 --- a/var/spack/repos/builtin/packages/py-quantities/package.py +++ b/var/spack/repos/builtin/packages/py-quantities/package.py @@ -9,7 +9,7 @@ class PyQuantities(PythonPackage): """Support for physical quantities with units, based on numpy""" - homepage = "http://python-quantities.readthedocs.org" + homepage = "https://python-quantities.readthedocs.org" pypi = "quantities/quantities-0.12.1.tar.gz" version('0.12.1', sha256='0a03e8511db603c57ca80dee851c43f08d0457f4d592bcac2e154570756cb934') diff --git a/var/spack/repos/builtin/packages/py-quast/package.py b/var/spack/repos/builtin/packages/py-quast/package.py index e605d1bfb79..b0aaaab286d 100644 --- a/var/spack/repos/builtin/packages/py-quast/package.py +++ b/var/spack/repos/builtin/packages/py-quast/package.py @@ -9,7 +9,7 @@ class PyQuast(PythonPackage): """Quality Assessment Tool for Genome Assemblies""" - homepage = "http://cab.spbu.ru/software/quast" + homepage = "https://cab.spbu.ru/software/quast" url = "https://github.com/ablab/quast/archive/quast_4.6.1.tar.gz" version('4.6.3', sha256='d7f5e670563d17d683f6df057086f7b816b6a088266c6270f7114a1406aaab63') diff --git a/var/spack/repos/builtin/packages/py-radical-entk/package.py b/var/spack/repos/builtin/packages/py-radical-entk/package.py new file mode 100755 index 00000000000..2cbd6a1ac4f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-radical-entk/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2021 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 import * + + +class PyRadicalEntk(PythonPackage): + """RADICAL Ensemble Toolkit is used for developing and executing + large-scale ensemble-based workflows.""" + + homepage = 'https://radical-cybertools.github.io' + git = 'https://github.com/radical-cybertools/radical.entk.git' + pypi = 'radical.entk/radical.entk-1.6.7.tar.gz' + + maintainers = ['andre-merzky'] + + version('develop', branch='devel') + version('1.6.7', sha256='9384568279d29b9619a565c075f287a08bca8365e2af55e520af0c2f3595f8a2') + + depends_on('py-radical-utils', type=('build', 'run')) + depends_on('py-radical-pilot', type=('build', 'run')) + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-pika@0.13.0', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-radical-gtod/package.py b/var/spack/repos/builtin/packages/py-radical-gtod/package.py new file mode 100755 index 00000000000..4e8eda7ea21 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-radical-gtod/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2021 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 import * + + +class PyRadicalGtod(PythonPackage): + """RADICAL-GTOD provides a single method, gtod, which returns the current + time in seconds since epoch (01.01.1970) with sub-second resolution and a + binary tool, radical-gtod, which is a compiled binary and does not require + the invocation of the Python interpreter.""" + + homepage = 'https://radical-cybertools.github.io' + git = 'https://github.com/radical-cybertools/radical.gtod.git' + pypi = 'radical.gtod/radical.gtod-1.6.7.tar.gz' + + maintainers = ['andre-merzky'] + + version('develop', branch='devel') + version('1.6.7', sha256='8d7d32e3d0bcf6d7cf176454a9892a46919b03e1ed96bee389380e6d75d6eff8') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-radical-pilot/package.py b/var/spack/repos/builtin/packages/py-radical-pilot/package.py new file mode 100755 index 00000000000..20a08e41878 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-radical-pilot/package.py @@ -0,0 +1,29 @@ +# Copyright 2013-2021 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 import * + + +class PyRadicalPilot(PythonPackage): + """RADICAL-Pilot is a Pilot system specialized in executing applications + composed of many computational tasks on high performance computing (HPC) + platforms.""" + + homepage = 'https://radical-cybertools.github.io' + git = 'https://github.com/radical-cybertools/radical.pilot.git' + pypi = 'radical.pilot/radical.pilot-1.6.7.tar.gz' + + maintainers = ['andre-merzky'] + + version('develop', branch='devel') + version('1.6.7', sha256='6ca0a3bd3cda65034fa756f37fa05681d5a43441c1605408a58364f89c627970') + + depends_on('py-radical-utils@1.6.7:', type=('build', 'run')) + depends_on('py-radical-saga@1.6.6:', type=('build', 'run')) + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-pymongo', type=('build', 'run')) + depends_on('py-setproctitle', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-radical-saga/package.py b/var/spack/repos/builtin/packages/py-radical-saga/package.py new file mode 100755 index 00000000000..cf72b75aab4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-radical-saga/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2021 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 import * + + +class PyRadicalSaga(PythonPackage): + """RADICAL-SAGA (RS) implements the interface specification of the Open + Grid Forum (OGF) Simple API for Grid Applications (SAGA) standard. RS works + as a light-weight access layer for distributed computing infrastructures, + providing adaptors for different middleware systems and services.""" + + homepage = 'https://radical-cybertools.github.io' + git = 'https://github.com/radical-cybertools/radical.saga.git' + pypi = 'radical.saga/radical.saga-1.6.10.tar.gz' + + maintainers = ['andre-merzky'] + + version('develop', branch='devel') + version('1.6.10', sha256='8fe7e281e9f81234f34f5c7c7986871761e9e37230d2a874c65d18daeccd976a') + version('1.6.8', sha256='d5e9f95a027087fb637cef065ff3af848e5902e403360189e36c9aa7c3f6f29b') + + depends_on('py-radical-utils', type=('build', 'run')) + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-apache-libcloud', type=('build', 'run')) + depends_on('py-parse', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-radical-utils/package.py b/var/spack/repos/builtin/packages/py-radical-utils/package.py old mode 100644 new mode 100755 index 995dfbfd5d6..d8c02763201 --- a/var/spack/repos/builtin/packages/py-radical-utils/package.py +++ b/var/spack/repos/builtin/packages/py-radical-utils/package.py @@ -7,14 +7,30 @@ class PyRadicalUtils(PythonPackage): - """Shared code and tools for various RADICAL Projects""" + """RADICAL-Utils contains shared code and tools for various + RADICAL-Cybertools packages.""" - homepage = "http://radical.rutgers.edu" - pypi = "radical.utils/radical.utils-0.45.tar.gz" + homepage = 'https://radical-cybertools.github.io' + git = 'https://github.com/radical-cybertools/radical.utils.git' + pypi = 'radical.utils/radical.utils-1.6.7.tar.gz' - version('0.45', sha256='1333cff1a69532e51d4484fbac3fad6b172d415d2055a3141117c7cf8bdee6c5') - version('0.41.1', sha256='582900e0434f49b69885a89bc65dc787362756e1014d52a4afac0bb61bcaa3ce') + maintainers = ['andre-merzky'] - depends_on('py-setuptools', type='build') - depends_on('py-colorama', type=('build', 'run')) - depends_on('py-netifaces', type=('build', 'run')) + version('develop', branch='devel') + version('1.6.7', sha256='552f6c282f960ccd9d2401d686b0b3bfab35dfa94a26baeb2d3b4e45211f05a9') + + version('0.45', sha256='1333cff1a69532e51d4484fbac3fad6b172d415d2055a3141117c7cf8bdee6c5', deprecated=True) + version('0.41.1', sha256='582900e0434f49b69885a89bc65dc787362756e1014d52a4afac0bb61bcaa3ce', deprecated=True) + + depends_on('py-radical-gtod', type=('build', 'run')) + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-colorama', type=('build', 'run')) + depends_on('py-msgpack', type=('build', 'run')) + depends_on('py-netifaces', type=('build', 'run')) + depends_on('py-ntplib', type=('build', 'run')) + depends_on('py-pymongo', type=('build', 'run')) + depends_on('py-pyzmq', type=('build', 'run')) + depends_on('py-regex', type=('build', 'run')) + depends_on('py-setproctitle', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-requests-unixsocket/package.py b/var/spack/repos/builtin/packages/py-requests-unixsocket/package.py index f8e3fee7b1c..f2e5c41a1ef 100644 --- a/var/spack/repos/builtin/packages/py-requests-unixsocket/package.py +++ b/var/spack/repos/builtin/packages/py-requests-unixsocket/package.py @@ -15,5 +15,6 @@ class PyRequestsUnixsocket(PythonPackage): version('0.2.0', sha256='9e5c1a20afc3cf786197ae59c79bcdb0e7565f218f27df5f891307ee8817c1ea') depends_on('py-setuptools', type='build') + depends_on('py-pbr', type='build') depends_on('py-requests@1.1:', type=('build', 'run')) depends_on('py-urllib3@1.8:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-rfc3986/package.py b/var/spack/repos/builtin/packages/py-rfc3986/package.py index c7d6353ec78..60af8af5889 100644 --- a/var/spack/repos/builtin/packages/py-rfc3986/package.py +++ b/var/spack/repos/builtin/packages/py-rfc3986/package.py @@ -10,7 +10,7 @@ class PyRfc3986(PythonPackage): """A Python implementation of RFC 3986 including validation and authority parsing.""" - homepage = "http://rfc3986.readthedocs.io/" + homepage = "https://rfc3986.readthedocs.io/" pypi = "rfc3986/rfc3986-1.4.0.tar.gz" version('1.4.0', sha256='112398da31a3344dc25dbf477d8df6cb34f9278a94fee2625d89e4514be8bb9d') diff --git a/var/spack/repos/builtin/packages/py-rich/package.py b/var/spack/repos/builtin/packages/py-rich/package.py index 28f6f8c5fef..11de5526b9a 100644 --- a/var/spack/repos/builtin/packages/py-rich/package.py +++ b/var/spack/repos/builtin/packages/py-rich/package.py @@ -14,6 +14,7 @@ class PyRich(PythonPackage): homepage = "https://github.com/willmcgugan/rich" pypi = "rich/rich-9.4.0.tar.gz" + version('10.0.0', sha256='4674bd3056a72bb282ad581e3f8092dc110cdcc456b5ba76e34965cb85a69724') version('9.9.0', sha256='0bd8f42c3a03b7ef5e311d5e37f47bea9d268f541981c169072be5869c007957') version('9.8.2', sha256='c0d5903b463f015b254d6f52da82af3821d266fe516ae05fdc266e6abba5c3a8') version('9.8.1', sha256='0ec853f882613e75a5e46d545ddaa48cad235c616eaeb094792012fe22e8b2c6') diff --git a/var/spack/repos/builtin/packages/py-rios/package.py b/var/spack/repos/builtin/packages/py-rios/package.py index b4b3ac4a187..1eac1c5b33c 100644 --- a/var/spack/repos/builtin/packages/py-rios/package.py +++ b/var/spack/repos/builtin/packages/py-rios/package.py @@ -14,7 +14,7 @@ class PyRios(PythonPackage): etc., allowing the programmer to concentrate on the processing involved. """ - homepage = "http://rioshome.org" + homepage = "https://www.rioshome.org/en/latest/" url = "https://github.com/ubarsc/rios/archive/rios-1.4.10.tar.gz" version('1.4.10', sha256='7f11b54eb1f2ec551d7fc01c039b60bf2c67f0c2fc5b2946f8d986d6a9bc7063') diff --git a/var/spack/repos/builtin/packages/py-rise/package.py b/var/spack/repos/builtin/packages/py-rise/package.py index 596893f2745..3f4d480dfe4 100644 --- a/var/spack/repos/builtin/packages/py-rise/package.py +++ b/var/spack/repos/builtin/packages/py-rise/package.py @@ -9,7 +9,7 @@ class PyRise(PythonPackage): """Reveal.js - Jupyter/IPython Slideshow Extension""" - homepage = "http://rise.readthedocs.io/" + homepage = "https://rise.readthedocs.io/" pypi = "rise/rise-5.6.1.tar.gz" version('5.6.1', sha256='1343f068d01adc4dd0226d9b278ce93fc92f365d827431a57e8d5679eb39f4d6') diff --git a/var/spack/repos/builtin/packages/py-rnacocktail/package.py b/var/spack/repos/builtin/packages/py-rnacocktail/package.py index b8673a0e2a2..2250d968133 100644 --- a/var/spack/repos/builtin/packages/py-rnacocktail/package.py +++ b/var/spack/repos/builtin/packages/py-rnacocktail/package.py @@ -10,7 +10,7 @@ class PyRnacocktail(PythonPackage): """RNACocktail: A comprehensive framework for accurate and efficient RNA-Seq analysis.""" - homepage = "http://bioinform.github.io/rnacocktail/" + homepage = "https://bioinform.github.io/rnacocktail/" url = "https://github.com/bioinform/rnacocktail/archive/v0.2.2.tar.gz" version('0.2.2', sha256='34aa0d1d7bd9d80303fe7dac5acc0519f7c1ed986397692588343d82ce45c7a5') diff --git a/var/spack/repos/builtin/packages/py-ruamel-ordereddict/package.py b/var/spack/repos/builtin/packages/py-ruamel-ordereddict/package.py index fcb45297452..0ebbbf46066 100644 --- a/var/spack/repos/builtin/packages/py-ruamel-ordereddict/package.py +++ b/var/spack/repos/builtin/packages/py-ruamel-ordereddict/package.py @@ -11,7 +11,7 @@ class PyRuamelOrdereddict(PythonPackage): at the back). The standard library module OrderedDict, implemented later, implements a subset of ordereddict functionality.""" - homepage = "https://bitbucket.org/ruamel/ordereddict" + homepage = "https://sourceforge.net/projects/ruamel-ordereddict/" pypi = "ruamel.ordereddict/ruamel.ordereddict-0.4.14.tar.gz" version('0.4.14', sha256='281051d26eb2b18ef3d920e1e260716a52bd058a6b1a2f324102fc6a15cb8d4a') diff --git a/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py b/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py index 6d18dca9a67..bf4d6ef3f6e 100644 --- a/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py +++ b/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py @@ -8,7 +8,7 @@ class PyRuamelYamlClib(PythonPackage): """C version of reader, parser and emitter for ruamel.yaml derived from libyaml.""" - homepage = "https://bitbucket.org/ruamel/yaml.clib" + homepage = "https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree/" pypi = "ruamel.yaml.clib/ruamel.yaml.clib-0.2.0.tar.gz" version('0.2.0', sha256='b66832ea8077d9b3f6e311c4a53d06273db5dc2db6e8a908550f3c14d67e718c') diff --git a/var/spack/repos/builtin/packages/py-s3transfer/package.py b/var/spack/repos/builtin/packages/py-s3transfer/package.py index 1c7c71e378e..f683e94820d 100644 --- a/var/spack/repos/builtin/packages/py-s3transfer/package.py +++ b/var/spack/repos/builtin/packages/py-s3transfer/package.py @@ -12,6 +12,12 @@ class PyS3transfer(PythonPackage): homepage = "https://github.com/boto/s3transfer" pypi = "s3transfer/s3transfer-0.2.1.tar.gz" + depends_on('python@3.6:', when='@0.5.0', type=('build', 'run')) + depends_on('python@2.7:2.8,3.6:', when='@0.4.2', type=('build', 'run')) + depends_on('python@2.7:2.8,3.4:', when='@0.3.4', type=('build', 'run')) + + version('0.5.0', sha256='50ed823e1dc5868ad40c8dc92072f757aa0e653a192845c94a3b676f4a62da4c') + version('0.4.2', sha256='cb022f4b16551edebbb31a377d3f09600dbada7363d8c5db7976e7f47732e1b2') version('0.3.4', sha256='7fdddb4f22275cf1d32129e21f056337fd2a80b6ccef1664528145b72c49e6d2') version('0.2.1', sha256='6efc926738a3cd576c2a79725fed9afde92378aa5c6a957e3af010cb019fac9d') diff --git a/var/spack/repos/builtin/packages/py-saga-python/package.py b/var/spack/repos/builtin/packages/py-saga-python/package.py index 2dc71720236..8eb16622dd7 100644 --- a/var/spack/repos/builtin/packages/py-saga-python/package.py +++ b/var/spack/repos/builtin/packages/py-saga-python/package.py @@ -7,13 +7,17 @@ class PySagaPython(PythonPackage): - """A light-weight access layer for distributed computing infrastructure""" + """A light-weight access layer for distributed computing infrastructure. + DEPRECATED (Please use `py-radical-saga`)""" - homepage = "http://radical.rutgers.edu" - pypi = "saga-python/saga-python-0.41.3.tar.gz" + homepage = 'https://radical-cybertools.github.io' + pypi = 'saga-python/saga-python-0.41.3.tar.gz' - version('0.41.3', sha256='b30961e634f32f6008e292aa1fe40560f257d5294b0cda95baac1cf5391feb5d') + maintainers = ['andre-merzky'] - depends_on('py-setuptools', type='build') - depends_on('py-apache-libcloud', type=('build', 'run')) - depends_on('py-radical-utils', type=('build', 'run')) + version('0.41.3', sha256='b30961e634f32f6008e292aa1fe40560f257d5294b0cda95baac1cf5391feb5d', deprecated=True) + + depends_on('py-radical-utils@:0.45', type=('build', 'run')) + + depends_on('py-apache-libcloud', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-salib/package.py b/var/spack/repos/builtin/packages/py-salib/package.py index cdc49ccc9b3..8a1de65e0eb 100644 --- a/var/spack/repos/builtin/packages/py-salib/package.py +++ b/var/spack/repos/builtin/packages/py-salib/package.py @@ -9,11 +9,12 @@ class PySalib(PythonPackage): """Python implementations of commonly used sensitivity analysis methods.""" - homepage = "http://salib.readthedocs.org" + homepage = "https://salib.readthedocs.org" pypi = "SALib/SALib-1.4.0.1.tar.gz" maintainers = ['schmitts'] + version('1.4.4', sha256='50a6459088700f55261a683752818530d14ede30cece2c324ac94d4b9e288b6d') version('1.4.0.1', sha256='dbf6e865af9f3be82a79cf64889ed66d6d3b6803f0c22a242a112876789d49e7') depends_on('py-setuptools@38.3:', type=('build', 'run')) @@ -22,3 +23,6 @@ class PySalib(PythonPackage): depends_on('py-matplotlib@3.2.2:', type=('build', 'run')) depends_on('py-pandas@1.1.2:', type=('build', 'run')) depends_on('py-pathos@0.2.5:', type=('build', 'run')) + depends_on('py-importlib-metadata', type=('build', 'run'), when='@1.4.4: ^python@:3.7') + depends_on('py-setuptools-scm', type=('build', 'run'), when='@1.4.4:') + depends_on('py-wheel', type=('build', 'run'), when='@1.4.4:') diff --git a/var/spack/repos/builtin/packages/py-scikit-image/package.py b/var/spack/repos/builtin/packages/py-scikit-image/package.py index 67f57e6a2ca..a8bd361cbac 100644 --- a/var/spack/repos/builtin/packages/py-scikit-image/package.py +++ b/var/spack/repos/builtin/packages/py-scikit-image/package.py @@ -10,7 +10,7 @@ class PyScikitImage(PythonPackage): """Image processing algorithms for SciPy, including IO, morphology, filtering, warping, color manipulation, object detection, etc.""" - homepage = "http://scikit-image.org/" + homepage = "https://scikit-image.org/" pypi = "scikit-image/scikit-image-0.17.2.tar.gz" version('0.18.1', sha256='fbb618ca911867bce45574c1639618cdfb5d94e207432b19bc19563d80d2f171') diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py index f531c56278f..54d367324c4 100644 --- a/var/spack/repos/builtin/packages/py-scipy/package.py +++ b/var/spack/repos/builtin/packages/py-scipy/package.py @@ -18,6 +18,7 @@ class PyScipy(PythonPackage): maintainers = ['adamjstewart'] version('master', branch='master') + version('1.7.1', sha256='6b47d5fa7ea651054362561a28b1ccc8da9368a39514c1bbf6c0977a1c376764') version('1.7.0', sha256='998c5e6ea649489302de2c0bc026ed34284f531df89d2bdc8df3a0d44d165739') version('1.6.3', sha256='a75b014d3294fce26852a9d04ea27b5671d86736beb34acdfc05859246260707') version('1.6.2', sha256='e9da33e21c9bc1b92c20b5328adb13e5f193b924c9b969cd700c8908f315aa59') @@ -51,8 +52,9 @@ class PyScipy(PythonPackage): depends_on('python@3.6:', when='@1.5:1.5.999', type=('build', 'link', 'run')) depends_on('python@3.7:', when='@1.6:1.6.1', type=('build', 'link', 'run')) depends_on('python@3.7:3.9.999', when='@1.6.2:', type=('build', 'link', 'run')) - depends_on('py-setuptools', when='@:1.6.1', type='build') - depends_on('py-setuptools@:51.0.0', when='@1.6.2:', type='build') + depends_on('py-setuptools', when='@:1.5', type='build') + depends_on('py-setuptools@:51.0.0', when='@1.6', type='build') + depends_on('py-setuptools@:57', when='@1.7:', type='build') depends_on('py-pybind11@2.2.4:', when='@1.4.0', type=('build', 'link')) depends_on('py-pybind11@2.4.0:', when='@1.4.1:1.4.999', type=('build', 'link')) depends_on('py-pybind11@2.4.3:', when='@1.5:1.6.1', type=('build', 'link')) diff --git a/var/spack/repos/builtin/packages/py-seaborn/package.py b/var/spack/repos/builtin/packages/py-seaborn/package.py index 8ecc814ea2e..a2862014ba3 100644 --- a/var/spack/repos/builtin/packages/py-seaborn/package.py +++ b/var/spack/repos/builtin/packages/py-seaborn/package.py @@ -14,7 +14,7 @@ class PySeaborn(PythonPackage): integrated with the PyData stack, including support for numpy and pandas data structures and statistical routines from scipy and statsmodels.""" - homepage = "http://seaborn.pydata.org/" + homepage = "https://seaborn.pydata.org/" pypi = "seaborn/seaborn-0.7.1.tar.gz" version('0.11.1', sha256='44e78eaed937c5a87fc7a892c329a7cc091060b67ebd1d0d306b446a74ba01ad') diff --git a/var/spack/repos/builtin/packages/py-sentencepiece/package.py b/var/spack/repos/builtin/packages/py-sentencepiece/package.py index 02c99cc9fe5..1f34573442d 100644 --- a/var/spack/repos/builtin/packages/py-sentencepiece/package.py +++ b/var/spack/repos/builtin/packages/py-sentencepiece/package.py @@ -14,10 +14,12 @@ class PySentencepiece(PythonPackage): maintainers = ['adamjstewart'] + version('0.1.91', sha256='acbc7ea12713cd2a8d64892f8d2033c7fd2bb4faecab39452496120ace9a4b1b') version('0.1.85', sha256='dd4956287a1b6af3cbdbbd499b7227a859a4e3f41c9882de5e6bdd929e219ae6') 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('pkgconfig', type='build') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-setuptools/package.py b/var/spack/repos/builtin/packages/py-setuptools/package.py index dfd1c7a4a10..ea293112395 100644 --- a/var/spack/repos/builtin/packages/py-setuptools/package.py +++ b/var/spack/repos/builtin/packages/py-setuptools/package.py @@ -11,8 +11,10 @@ class PySetuptools(PythonPackage): upgrading, installing, and uninstalling Python packages.""" homepage = "https://github.com/pypa/setuptools" - pypi = "setuptools/setuptools-49.2.0.zip" + pypi = "setuptools/setuptools-57.4.0.tar.gz" + version('57.4.0', sha256='6bac238ffdf24e8806c61440e755192470352850f3419a52f26ffe0a1a64f465') + version('51.0.0', sha256='029c49fd713e9230f6a41c0298e6e1f5839f2cde7104c0ad5e053a37777e7688') version('50.3.2', sha256='ed0519d27a243843b05d82a5e9d01b0b083d9934eaa3d02779a23da18077bd3c') version('50.1.0', sha256='4a7708dafd2d360ce5e2ac7577374da9fb65fc867bc4cdaf461f9f834dfa6ac3') version('49.6.0', sha256='46bd862894ed22c2edff033c758c2dc026324788d758e96788e8f7c11f4e9707') @@ -36,17 +38,17 @@ class PySetuptools(PythonPackage): version('16.0', sha256='aa86255dee2c4a0056509750008007667c29306b7a6c13801468515b2c672845') version('11.3.1', sha256='bd25f17de4ecf00116a9f7368b614a54ca1612d7945d2eafe5d97bc08c138bc5') - depends_on('python@3.5:', type=('build', 'run'), when='@45.0.0:') - depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@44.0.0:44.99.99') - depends_on('python@2.7:2.8,3.4:', type=('build', 'run'), when='@:43.99.99') + depends_on('python@3.6:', type=('build', 'run'), when='@51:') + depends_on('python@3.5:', type=('build', 'run'), when='@45:50') + depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@44') + depends_on('python@2.7:2.8,3.4:', type=('build', 'run'), when='@:43') def url_for_version(self, version): - url = 'https://pypi.io/packages/source/s/setuptools/setuptools-{0}' - url = url.format(version) + url = 'https://pypi.io/packages/source/s/setuptools/setuptools-{0}.{1}' - if version > Version('32.1.2'): - url += '.zip' + if Version('32.1.2') <= version <= Version('51.0.0'): + ext = 'zip' else: - url += '.tar.gz' + ext = 'tar.gz' - return url + return url.format(version, ext) diff --git a/var/spack/repos/builtin/packages/py-sfepy/package.py b/var/spack/repos/builtin/packages/py-sfepy/package.py index aa9845c3fe3..ac2fab19f75 100644 --- a/var/spack/repos/builtin/packages/py-sfepy/package.py +++ b/var/spack/repos/builtin/packages/py-sfepy/package.py @@ -13,7 +13,7 @@ class PySfepy(PythonPackage): package which can be used for building custom applications. """ - homepage = "http://sfepy.org" + homepage = "https://sfepy.org" url = "https://github.com/sfepy/sfepy/archive/release_2017.3.tar.gz" version('2017.3', sha256='d13642b7abed63b83b7eaef4dfce6e84a5afc5798bc7ffa1c413e3e44b5e5996') diff --git a/var/spack/repos/builtin/packages/py-sncosmo/package.py b/var/spack/repos/builtin/packages/py-sncosmo/package.py index ded27737871..cdc2f2e934f 100644 --- a/var/spack/repos/builtin/packages/py-sncosmo/package.py +++ b/var/spack/repos/builtin/packages/py-sncosmo/package.py @@ -10,7 +10,7 @@ class PySncosmo(PythonPackage): """SNCosmo is a Python library for high-level supernova cosmology analysis.""" - homepage = "http://sncosmo.readthedocs.io/" + homepage = "https://sncosmo.readthedocs.io/" pypi = "sncosmo/sncosmo-1.2.0.tar.gz" version('1.2.0', sha256='f3969eec5b25f60c70418dbd64765a2b4735bb53c210c61d0aab68916daea588') diff --git a/var/spack/repos/builtin/packages/py-speech-recognition/package.py b/var/spack/repos/builtin/packages/py-speech-recognition/package.py new file mode 100644 index 00000000000..e8dfa4ced21 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-speech-recognition/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 import * + + +class PySpeechRecognition(PythonPackage): + """Library for performing speech recognition, with support + for several engines and APIs, online and offline.""" + + homepage = "https://github.com/Uberi/speech_recognition" + url = "https://github.com/Uberi/speech_recognition/archive/refs/tags/3.8.1.tar.gz" + + version('3.8.1', sha256='82d3313db383409ddaf3e42625fb0c3518231a1feb5e2ed5473b10b3d5ece7bd') + + depends_on('python@2.6:2.999,3.3:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-spglib/package.py b/var/spack/repos/builtin/packages/py-spglib/package.py index 39db9730839..064cec083f9 100644 --- a/var/spack/repos/builtin/packages/py-spglib/package.py +++ b/var/spack/repos/builtin/packages/py-spglib/package.py @@ -10,7 +10,7 @@ class PySpglib(PythonPackage): """Python bindings for C library for finding and handling crystal symmetries.""" - homepage = "http://atztogo.github.io/spglib/" + homepage = "https://atztogo.github.io/spglib/" pypi = "spglib/spglib-1.9.9.18.tar.gz" version('1.9.9.18', sha256='cbbb8383320b500dc6100b83d5e914a26a97ef8fc97c82d8921b10220e4126cd') diff --git a/var/spack/repos/builtin/packages/py-sphinx/package.py b/var/spack/repos/builtin/packages/py-sphinx/package.py index 6385811c24c..5a94395e1b6 100644 --- a/var/spack/repos/builtin/packages/py-sphinx/package.py +++ b/var/spack/repos/builtin/packages/py-sphinx/package.py @@ -9,7 +9,7 @@ class PySphinx(PythonPackage): """Sphinx Documentation Generator.""" - homepage = "https://sphinx-doc.org/" + homepage = "https://www.sphinx-doc.org/en/master/" pypi = "Sphinx/Sphinx-3.2.0.tar.gz" version('4.1.2', sha256='3092d929cd807926d846018f2ace47ba2f3b671b309c7a89cd3306e80c826b13') diff --git a/var/spack/repos/builtin/packages/py-statsmodels/package.py b/var/spack/repos/builtin/packages/py-statsmodels/package.py index d3508051370..0a669a59697 100644 --- a/var/spack/repos/builtin/packages/py-statsmodels/package.py +++ b/var/spack/repos/builtin/packages/py-statsmodels/package.py @@ -11,7 +11,7 @@ class PyStatsmodels(PythonPackage): """Statistical computations and models for use with SciPy""" - homepage = "http://www.statsmodels.org" + homepage = "https://www.statsmodels.org" pypi = "statsmodels/statsmodels-0.8.0.tar.gz" version('0.12.2', sha256='8ad7a7ae7cdd929095684118e3b05836c0ccb08b6a01fe984159475d174a1b10') diff --git a/var/spack/repos/builtin/packages/py-submitit/package.py b/var/spack/repos/builtin/packages/py-submitit/package.py new file mode 100644 index 00000000000..0e8bfa31e9d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-submitit/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2021 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 import * + + +class PySubmitit(PythonPackage): + """Python toolbox for submitting jobs to Slurm.""" + + homepage = "https://github.com/facebookincubator/submitit" + pypi = "submitit/submitit-1.3.3.tar.gz" + + version('1.3.3', sha256='efaa77b2df9ea9ee02545478cbfc377853ddf8016bff59df6988bebcf51ffa7e') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type=('build', 'run')) + + depends_on('py-cloudpickle@1.2.1:', type=('build', 'run')) + depends_on('py-typing-extensions@3.7.4.2:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-symfit/package.py b/var/spack/repos/builtin/packages/py-symfit/package.py index ce89747216b..0ec51b82c52 100644 --- a/var/spack/repos/builtin/packages/py-symfit/package.py +++ b/var/spack/repos/builtin/packages/py-symfit/package.py @@ -9,7 +9,7 @@ class PySymfit(PythonPackage): """Symbolic Fitting; fitting as it should be.""" - homepage = "http://symfit.readthedocs.org" + homepage = "https://symfit.readthedocs.org" pypi = "symfit/symfit-0.3.5.tar.gz" version('0.3.5', sha256='24c66305895c590249da7e61f62f128ee1c0c43c0a8c8e33b8abd3e0931f0881') diff --git a/var/spack/repos/builtin/packages/py-sympy/package.py b/var/spack/repos/builtin/packages/py-sympy/package.py index 2e799497995..0a66ac6025a 100644 --- a/var/spack/repos/builtin/packages/py-sympy/package.py +++ b/var/spack/repos/builtin/packages/py-sympy/package.py @@ -10,11 +10,23 @@ class PySympy(PythonPackage): """SymPy is a Python library for symbolic mathematics.""" pypi = "sympy/sympy-0.7.6.tar.gz" + version('1.8', sha256='1ca588a9f6ce6a323c5592f9635159c2093572826668a1022c75c75bdf0297cb') + version('1.7.1', sha256='a3de9261e97535b83bb8607b0da2c7d03126650fafea2b2789657b229c246b2e') + version('1.7', sha256='9104004669cda847f38cfd8cd16dd174952c537349dbae740fea5331d2b3a51b') + version('1.6.2', sha256='1cfadcc80506e4b793f5b088558ca1fcbeaec24cd6fc86f1fdccaa3ee1d48708') + version('1.6.1', sha256='7386dba4f7e162e90766b5ea7cab5938c2fe3c620b310518c8ff504b283cb15b') + version('1.6', sha256='9769e3d2952e211b1245f1d0dfdbfbdde1f7779a3953832b7dd2b88a21ca6cc6') + version('1.5.1', sha256='d77901d748287d15281f5ffe5b0fef62dd38f357c2b827c44ff07f35695f4e7e') + version('1.5', sha256='31567dc010bff0967ef7a87210acf3f938c6ab24481581fc143536fb103e9ce8') version('1.4', sha256='71a11e5686ae7ab6cb8feb5bd2651ef4482f8fd43a7c27e645a165e4353b23e1') version('1.3', sha256='e1319b556207a3758a0efebae14e5e52c648fc1db8975953b05fff12b6871b54') version('1.1.1', sha256='ac5b57691bc43919dcc21167660a57cc51797c28a4301a6144eff07b751216a4') version('1.0', sha256='3eacd210d839e4db911d216a9258a3ac6f936992f66db211e22767983297ffae') version('0.7.6', sha256='dfa3927e9befdfa7da7a18783ccbc2fe489ce4c46aa335a879e49e48fc03d7a7') - depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.4:', when='@:1.4', type=('build', 'run')) + depends_on('python@2.7:2.8,3.5:', when='@1.5', type=('build', 'run')) + depends_on('python@3.5:', when='@1.6', type=('build', 'run')) + depends_on('python@3.6:', when='@1.7:', type=('build', 'run')) + depends_on('py-mpmath@0.19:', when='@1.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-tables/package.py b/var/spack/repos/builtin/packages/py-tables/package.py index 4daade0be09..551c774f7bb 100644 --- a/var/spack/repos/builtin/packages/py-tables/package.py +++ b/var/spack/repos/builtin/packages/py-tables/package.py @@ -10,7 +10,7 @@ class PyTables(PythonPackage): """PyTables is a package for managing hierarchical datasets and designed to efficiently and easily cope with extremely large amounts of data.""" - homepage = "http://www.pytables.org/" + homepage = "https://www.pytables.org/" pypi = "tables/tables-3.6.1.tar.gz" version('3.6.1', sha256='49a972b8a7c27a8a173aeb05f67acb45fe608b64cd8e9fa667c0962a60b71b49') diff --git a/var/spack/repos/builtin/packages/py-theano/package.py b/var/spack/repos/builtin/packages/py-theano/package.py index 5041acaa625..5d62a8f1368 100644 --- a/var/spack/repos/builtin/packages/py-theano/package.py +++ b/var/spack/repos/builtin/packages/py-theano/package.py @@ -10,7 +10,7 @@ class PyTheano(PythonPackage, CudaPackage): """Optimizing compiler for evaluating mathematical expressions on CPUs and GPUs.""" - homepage = "http://deeplearning.net/software/theano/" + homepage = "https://theano-pymc.readthedocs.io/en/latest/" pypi = "Theano/Theano-0.8.2.tar.gz" git = "https://github.com/Theano/Theano.git" diff --git a/var/spack/repos/builtin/packages/py-thirdorder/package.py b/var/spack/repos/builtin/packages/py-thirdorder/package.py index e54747b2c8f..4b77d2d3cdd 100644 --- a/var/spack/repos/builtin/packages/py-thirdorder/package.py +++ b/var/spack/repos/builtin/packages/py-thirdorder/package.py @@ -9,7 +9,7 @@ class PyThirdorder(PythonPackage): """It helps ShengBTE users create FORCE_CONSTANTS_3RD files efficiently""" - homepage = "http://www.shengbte.org" + homepage = "https://www.shengbte.org" url = "http://www.shengbte.org/downloads/thirdorder-v1.1.1-8526f47.tar.bz2" version('1.1.1-8526f47', '5e1cc8d6ffa7efdb7325c397ca236863ea8a9c5bed1c558acca68b140f89167e') diff --git a/var/spack/repos/builtin/packages/py-tomli/package.py b/var/spack/repos/builtin/packages/py-tomli/package.py new file mode 100644 index 00000000000..914e2098a5f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tomli/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2021 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 import * + + +class PyTomli(Package): + """Tomli is a Python library for parsing TOML. + + Tomli is fully compatible with TOML v1.0.0.""" + + homepage = "https://github.com/hukkin/tomli" + url = "https://pypi.io/packages/py3/t/tomli/tomli-1.2.1-py3-none-any.whl" + + version('1.2.1', sha256='8dd0e9524d6f386271a36b41dbf6c57d8e32fd96fd22b6584679dc569d20899f', expand=False) + + extends('python') + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-pip', type='build') + + def install(self, spec, prefix): + # TODO: figure out how to build with flit + pip = which('pip') + pip('install', self.stage.archive_file, '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-tomopy/package.py b/var/spack/repos/builtin/packages/py-tomopy/package.py index 421265ed6b3..4eac9165112 100644 --- a/var/spack/repos/builtin/packages/py-tomopy/package.py +++ b/var/spack/repos/builtin/packages/py-tomopy/package.py @@ -11,7 +11,7 @@ class PyTomopy(PythonPackage): """TomoPy is an open-source Python package for tomographic data processing and image reconstruction.""" - homepage = "http://tomopy.readthedocs.io/en/latest/index.html" + homepage = "https://tomopy.readthedocs.io/en/latest/index.html" url = "https://github.com/tomopy/tomopy/archive/1.0.0.tar.gz" version('1.0.0', sha256='ee45f7a062e5a66d6f18a904d2e204e48d85a1ce1464156f9e2f6353057dfe4c') diff --git a/var/spack/repos/builtin/packages/py-toolz/package.py b/var/spack/repos/builtin/packages/py-toolz/package.py index fe8dbe03a27..68b31ae4639 100644 --- a/var/spack/repos/builtin/packages/py-toolz/package.py +++ b/var/spack/repos/builtin/packages/py-toolz/package.py @@ -9,7 +9,7 @@ class PyToolz(PythonPackage): """A set of utility functions for iterators, functions, and dictionaries""" - homepage = "http://github.com/pytoolz/toolz/" + homepage = "https://github.com/pytoolz/toolz/" pypi = "toolz/toolz-0.9.0.tar.gz" version('0.9.0', sha256='929f0a7ea7f61c178bd951bdae93920515d3fbdbafc8e6caf82d752b9b3b31c9') diff --git a/var/spack/repos/builtin/packages/py-torch/package.py b/var/spack/repos/builtin/packages/py-torch/package.py index 468f1100b5f..487a619f20e 100644 --- a/var/spack/repos/builtin/packages/py-torch/package.py +++ b/var/spack/repos/builtin/packages/py-torch/package.py @@ -24,6 +24,7 @@ class PyTorch(PythonPackage, CudaPackage): version('master', branch='master', submodules=True) version('1.9.0', tag='v1.9.0', submodules=True) + version('1.8.2', tag='v1.8.2', submodules=True) version('1.8.1', tag='v1.8.1', submodules=True) version('1.8.0', tag='v1.8.0', submodules=True) version('1.7.1', tag='v1.7.1', submodules=True) diff --git a/var/spack/repos/builtin/packages/py-tpot/package.py b/var/spack/repos/builtin/packages/py-tpot/package.py index c064797fe66..b595adc69e9 100644 --- a/var/spack/repos/builtin/packages/py-tpot/package.py +++ b/var/spack/repos/builtin/packages/py-tpot/package.py @@ -12,7 +12,7 @@ class PyTpot(PythonPackage): pipelines using genetic programming. """ - homepage = "http://epistasislab.github.io/tpot/" + homepage = "https://epistasislab.github.io/tpot/" pypi = "tpot/TPOT-0.11.5.tar.gz" version('0.11.5', sha256='909be08b29165ce48de5e5d2e3fd73fee9aeeaf1030f2e0912ce0f0bd9c3d2f3') diff --git a/var/spack/repos/builtin/packages/py-typing-extensions/package.py b/var/spack/repos/builtin/packages/py-typing-extensions/package.py index 4afb44e7561..39b34f88366 100644 --- a/var/spack/repos/builtin/packages/py-typing-extensions/package.py +++ b/var/spack/repos/builtin/packages/py-typing-extensions/package.py @@ -15,6 +15,8 @@ class PyTypingExtensions(PythonPackage): homepage = "https://github.com/python/typing/tree/master/typing_extensions" pypi = "typing_extensions/typing_extensions-3.7.4.tar.gz" + version('3.10.0.0', sha256='50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342') + version('3.7.4.3', sha256='99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c') version('3.7.4', sha256='2ed632b30bb54fc3941c382decfd0ee4148f5c591651c9272473fea2c6397d95') version('3.7.2', sha256='fb2cd053238d33a8ec939190f30cfd736c00653a85a2919415cecf7dc3d9da71') version('3.6.6', sha256='51e7b7f3dcabf9ad22eed61490f3b8d23d9922af400fe6656cb08e66656b701f') diff --git a/var/spack/repos/builtin/packages/py-urllib3/package.py b/var/spack/repos/builtin/packages/py-urllib3/package.py index 233e1a65ee4..b60f8279094 100644 --- a/var/spack/repos/builtin/packages/py-urllib3/package.py +++ b/var/spack/repos/builtin/packages/py-urllib3/package.py @@ -13,21 +13,28 @@ class PyUrllib3(PythonPackage): homepage = "https://urllib3.readthedocs.io/" pypi = "urllib3/urllib3-1.25.6.tar.gz" + version('1.26.6', sha256='f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f') version('1.25.6', sha256='9a107b99a5393caf59c7aa3c1249c16e6879447533d0887f4336dde834c7be86') version('1.25.3', sha256='dbe59173209418ae49d485b87d1681aefa36252ee85884c31346debd19463232') version('1.21.1', sha256='b14486978518ca0901a76ba973d7821047409d7f726f22156b24e83fd71382a5') version('1.20', sha256='97ef2b6e2878d84c0126b9f4e608e37a951ca7848e4855a7f7f4437d5c34a72f') version('1.14', sha256='dd4fb13a4ce50b18338c7e4d665b21fd38632c5d4b1d9f1a1379276bd3c08d37') - depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + variant('socks', default=False, description='SOCKS and HTTP proxy support') + variant('secure', default=False, description='Add SSL/TLS support') + variant('brotli', default=False, description='Add Brotli support') + + depends_on('python@2.7:2.8,3.4:', when='@:1.25', type=('build', 'run')) + depends_on('python@2.7:2.8,3.5:', when='@1.26.6', type=('build', 'run')) + depends_on('py-setuptools', type='build') - variant('secure', default=False, description='Add SSL/TLS support') depends_on('py-pyopenssl@0.14:', when='+secure') depends_on('py-cryptography@1.3.4:', when='+secure') depends_on('py-idna@2:', when='+secure') depends_on('py-certifi', when='+secure') depends_on('py-ipaddress', when='+secure ^python@2.7:2.8') - variant('socks', default=False, description='SOCKS and HTTP proxy support') depends_on('py-pysocks@1.5.6,1.5.8:1.999', when='+socks') + + depends_on('py-brotlipy@0.6:', when='+brotli') diff --git a/var/spack/repos/builtin/packages/py-urwid/package.py b/var/spack/repos/builtin/packages/py-urwid/package.py index b7dfb6ae42b..a04c4e3e2d8 100644 --- a/var/spack/repos/builtin/packages/py-urwid/package.py +++ b/var/spack/repos/builtin/packages/py-urwid/package.py @@ -8,7 +8,7 @@ class PyUrwid(PythonPackage): """A full-featured console UI library""" - homepage = "http://urwid.org/" + homepage = "https://urwid.org/" pypi = "urwid/urwid-1.3.0.tar.gz" version('1.3.0', sha256='29f04fad3bf0a79c5491f7ebec2d50fa086e9d16359896c9204c6a92bc07aba2') diff --git a/var/spack/repos/builtin/packages/py-uvloop/package.py b/var/spack/repos/builtin/packages/py-uvloop/package.py index cb64e3df011..34248b23c00 100644 --- a/var/spack/repos/builtin/packages/py-uvloop/package.py +++ b/var/spack/repos/builtin/packages/py-uvloop/package.py @@ -9,7 +9,7 @@ class PyUvloop(PythonPackage): """uvloop is a fast, drop-in replacement of the built-in asyncio event""" - homepage = "http://github.com/MagicStack/uvloop" + homepage = "https://github.com/MagicStack/uvloop" pypi = "uvloop/uvloop-0.14.0.tar.gz" version('0.14.0', sha256='123ac9c0c7dd71464f58f1b4ee0bbd81285d96cdda8bc3519281b8973e3a461e') diff --git a/var/spack/repos/builtin/packages/py-uwsgi/package.py b/var/spack/repos/builtin/packages/py-uwsgi/package.py index 759fd9c49de..6b083a7342d 100644 --- a/var/spack/repos/builtin/packages/py-uwsgi/package.py +++ b/var/spack/repos/builtin/packages/py-uwsgi/package.py @@ -16,3 +16,4 @@ class PyUwsgi(PythonPackage): version('2.0.18', sha256='4972ac538800fb2d421027f49b4a1869b66048839507ccf0aa2fda792d99f583') depends_on('py-setuptools', type='build') + depends_on('python', type=('build', 'link', 'run')) diff --git a/var/spack/repos/builtin/packages/py-vermin/package.py b/var/spack/repos/builtin/packages/py-vermin/package.py index 00253c0e629..59c7e30ea57 100644 --- a/var/spack/repos/builtin/packages/py-vermin/package.py +++ b/var/spack/repos/builtin/packages/py-vermin/package.py @@ -8,10 +8,11 @@ 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.2.1.tar.gz" + url = "https://github.com/netromdk/vermin/archive/v1.2.2.tar.gz" maintainers = ['netromdk'] + version('1.2.2', sha256='d0343b2a78d7e4de67dfd2d882eeaf8b241db724f7e67f83bdd4111edb97f1e2') version('1.2.1', sha256='b7b2c77cf67a27a432371cbc7f184151b6f3dd22bd9ccf3a7a10b7ae3532ac81') version('1.2.0', sha256='a3ab6dc6608b859f301b9a77d5cc0d03335aae10c49d47a91b82be5be48c4f1f') version('1.1.1', sha256='d13b2281ba16c9d5b0913646483771789552230a9ed625e2cd92c5a112e4ae80') diff --git a/var/spack/repos/builtin/packages/py-wand/package.py b/var/spack/repos/builtin/packages/py-wand/package.py index ae1bf545a2e..8ca6df2c2c4 100644 --- a/var/spack/repos/builtin/packages/py-wand/package.py +++ b/var/spack/repos/builtin/packages/py-wand/package.py @@ -10,7 +10,7 @@ class PyWand(PythonPackage): """Wand is a ctypes-based simple ImageMagick binding for Python. """ - homepage = "http://docs.wand-py.org" + homepage = "https://docs.wand-py.org" pypi = "Wand/Wand-0.5.6.tar.gz" version('0.5.6', sha256='d06b59f36454024ce952488956319eb542d5dc65f1e1b00fead71df94dbfcf88') diff --git a/var/spack/repos/builtin/packages/py-warpx/package.py b/var/spack/repos/builtin/packages/py-warpx/package.py index 0936da9b2f4..829e9e34297 100644 --- a/var/spack/repos/builtin/packages/py-warpx/package.py +++ b/var/spack/repos/builtin/packages/py-warpx/package.py @@ -25,6 +25,7 @@ class PyWarpx(PythonPackage): # NOTE: if you update the versions here, also see warpx version('develop', branch='development') + version('21.08', sha256='6128a32cfd075bc63d08eebea6d4f62d33ce0570f4fd72330a71023ceacccc86') version('21.07', sha256='a8740316d813c365715f7471201499905798b50bd94950d33f1bd91478d49561') version('21.06', sha256='a26039dc4061da45e779dd5002467c67a533fc08d30841e01e7abb3a890fbe30') version('21.05', sha256='f835f0ae6c5702550d23191aa0bb0722f981abb1460410e3d8952bc3d945a9fc') @@ -33,7 +34,7 @@ class PyWarpx(PythonPackage): variant('mpi', default=True, description='Enable MPI support') - for v in ['21.07', '21.06', '21.05', '21.04', 'develop']: + for v in ['21.08', '21.07', '21.06', '21.05', '21.04', 'develop']: depends_on('warpx@{0}'.format(v), when='@{0}'.format(v), type=['build', 'link']) diff --git a/var/spack/repos/builtin/packages/py-wcsaxes/package.py b/var/spack/repos/builtin/packages/py-wcsaxes/package.py index fe73bb354b8..3072e53da42 100644 --- a/var/spack/repos/builtin/packages/py-wcsaxes/package.py +++ b/var/spack/repos/builtin/packages/py-wcsaxes/package.py @@ -10,7 +10,7 @@ class PyWcsaxes(PythonPackage): """WCSAxes is a framework for making plots of Astronomical data in Matplotlib.""" - homepage = "http://wcsaxes.readthedocs.io/en/latest/index.html" + homepage = "https://wcsaxes.readthedocs.io/en/latest/index.html" url = "https://github.com/astrofrog/wcsaxes/archive/v0.8.tar.gz" version('0.8', sha256='9c6addc1ec04cc99617850354b2c03dbd4099d2e43b45a81f8bc3069de9c8e83') diff --git a/var/spack/repos/builtin/packages/py-wget/package.py b/var/spack/repos/builtin/packages/py-wget/package.py index a3deacfadbe..329abed8510 100644 --- a/var/spack/repos/builtin/packages/py-wget/package.py +++ b/var/spack/repos/builtin/packages/py-wget/package.py @@ -12,7 +12,6 @@ class PyWget(PythonPackage): Download the file for your platform. If you're not sure which to choose, learn more about installing packages.""" - homepage = "http://bitbucket.org/techtonik/python-wget/" pypi = "wget/wget-3.2.zip" version('3.2', sha256='35e630eca2aa50ce998b9b1a127bb26b30dfee573702782aa982f875e3f16061') diff --git a/var/spack/repos/builtin/packages/py-wheel/package.py b/var/spack/repos/builtin/packages/py-wheel/package.py index 43822ece1d4..a5737d5b92c 100644 --- a/var/spack/repos/builtin/packages/py-wheel/package.py +++ b/var/spack/repos/builtin/packages/py-wheel/package.py @@ -15,6 +15,7 @@ class PyWheel(PythonPackage): version('0.36.2', sha256='e11eefd162658ea59a60a0f6c7d493a7190ea4b9a85e335b33489d9f17e0245e') version('0.35.1', sha256='99a22d87add3f634ff917310a3d87e499f19e663413a52eb9232c447aa646c9f') version('0.34.2', sha256='8788e9155fe14f54164c1b9eb0a319d98ef02c160725587ad60f14ddc57b6f96') + version('0.33.6', sha256='10c9da68765315ed98850f8e048347c3eb06dd81822dc2ab1d4fde9dc9702646') version('0.33.4', sha256='62fcfa03d45b5b722539ccbc07b190e4bfff4bb9e3a4d470dd9f6a0981002565') version('0.33.1', sha256='66a8fd76f28977bb664b098372daef2b27f60dc4d1688cfab7b37a09448f0e9d') version('0.32.3', sha256='029703bf514e16c8271c3821806a1c171220cc5bdd325cbf4e7da1e056a01db6') diff --git a/var/spack/repos/builtin/packages/py-wincertstore/package.py b/var/spack/repos/builtin/packages/py-wincertstore/package.py index fb2c2fbef1f..6361e93c789 100644 --- a/var/spack/repos/builtin/packages/py-wincertstore/package.py +++ b/var/spack/repos/builtin/packages/py-wincertstore/package.py @@ -10,7 +10,7 @@ class PyWincertstore(PythonPackage): """wincertstore provides an interface to access Windows' CA and CRL certificates. It uses ctypes and Windows's sytem cert store API through crypt32.dll.""" - homepage = "https://bitbucket.org/tiran/wincertstore" + homepage = "https://github.com/tiran/wincertstore" pypi = "wincertstore/wincertstore-0.2.zip" version('0.2', sha256='780bd1557c9185c15d9f4221ea7f905cb20b93f7151ca8ccaed9714dce4b327a') diff --git a/var/spack/repos/builtin/packages/py-xattr/package.py b/var/spack/repos/builtin/packages/py-xattr/package.py index a40fd278d65..9cf6d2494bb 100644 --- a/var/spack/repos/builtin/packages/py-xattr/package.py +++ b/var/spack/repos/builtin/packages/py-xattr/package.py @@ -9,7 +9,7 @@ class PyXattr(PythonPackage): sans libattr dependency. """ - homepage = "http://pyxattr.k1024.org/" + homepage = "https://pyxattr.k1024.org/" pypi = "xattr/xattr-0.9.6.tar.gz" git = "https://github.com/iustin/pyxattr.git" diff --git a/var/spack/repos/builtin/packages/py-yamlreader/package.py b/var/spack/repos/builtin/packages/py-yamlreader/package.py index 6674625d688..a8ab80b2624 100644 --- a/var/spack/repos/builtin/packages/py-yamlreader/package.py +++ b/var/spack/repos/builtin/packages/py-yamlreader/package.py @@ -10,7 +10,7 @@ class PyYamlreader(PythonPackage): """Yamlreader merges YAML data from a directory, a list of files or a file glob.""" - homepage = "http://pyyaml.org/wiki/PyYAML" + homepage = "https://pyyaml.org/wiki/PyYAML" pypi = "yamlreader/yamlreader-3.0.4.tar.gz" version('3.0.4', sha256='765688036d57104ac26e4500ab088d42f4f2d06687ce3daa26543d7ae38c2470') diff --git a/var/spack/repos/builtin/packages/py-yt/package.py b/var/spack/repos/builtin/packages/py-yt/package.py index 9ec95aef2e4..6c8a4c1ea45 100644 --- a/var/spack/repos/builtin/packages/py-yt/package.py +++ b/var/spack/repos/builtin/packages/py-yt/package.py @@ -15,7 +15,7 @@ class PyYt(PythonPackage): simulations, radio telescopes, and a burgeoning interdisciplinary community. """ - homepage = "http://yt-project.org" + homepage = "https://yt-project.org" url = "https://github.com/yt-project/yt/archive/yt-3.5.0.tar.gz" git = "https://github.com/yt-project/yt.git" diff --git a/var/spack/repos/builtin/packages/py-zc-buildout/package.py b/var/spack/repos/builtin/packages/py-zc-buildout/package.py index aebafd211a7..f244a7b0ca6 100644 --- a/var/spack/repos/builtin/packages/py-zc-buildout/package.py +++ b/var/spack/repos/builtin/packages/py-zc-buildout/package.py @@ -9,7 +9,6 @@ class PyZcBuildout(PythonPackage): """System for managing development buildouts""" - homepage = "http://buildout.org/" pypi = "zc.buildout/zc.buildout-2.13.1.tar.gz" version('2.13.1', sha256='3d14d07226963a517295dfad5879d2799e2e3b65b2c61c71b53cb80f5ab11484') diff --git a/var/spack/repos/builtin/packages/py-zict/package.py b/var/spack/repos/builtin/packages/py-zict/package.py index 58588c26d55..5988c4fb575 100644 --- a/var/spack/repos/builtin/packages/py-zict/package.py +++ b/var/spack/repos/builtin/packages/py-zict/package.py @@ -9,7 +9,7 @@ class PyZict(PythonPackage): """Mutable mapping tools""" - homepage = "http://zict.readthedocs.io/en/latest/" + homepage = "https://zict.readthedocs.io/en/latest/" pypi = "zict/zict-1.0.0.tar.gz" version('1.0.0', sha256='e34dd25ea97def518fb4c77f2c27078f3a7d6c965b0a3ac8fe5bdb0a8011a310') diff --git a/var/spack/repos/builtin/packages/py-zope-event/package.py b/var/spack/repos/builtin/packages/py-zope-event/package.py index 054e355eac7..405c2cf2d07 100644 --- a/var/spack/repos/builtin/packages/py-zope-event/package.py +++ b/var/spack/repos/builtin/packages/py-zope-event/package.py @@ -9,7 +9,7 @@ class PyZopeEvent(PythonPackage): """Very basic event publishing system.""" - homepage = "http://github.com/zopefoundation/zope.event" + homepage = "https://github.com/zopefoundation/zope.event" pypi = "zope.event/zope.event-4.3.0.tar.gz" version('4.3.0', sha256='e0ecea24247a837c71c106b0341a7a997e3653da820d21ef6c08b32548f733e7') diff --git a/var/spack/repos/builtin/packages/pythia6/package.py b/var/spack/repos/builtin/packages/pythia6/package.py index 45186b97ae4..3fca50a2406 100644 --- a/var/spack/repos/builtin/packages/pythia6/package.py +++ b/var/spack/repos/builtin/packages/pythia6/package.py @@ -33,11 +33,13 @@ class Pythia6(CMakePackage): """ homepage = 'https://pythiasix.hepforge.org/' - url = 'http://www.hepforge.org/archive/pythiasix/pythia-6.4.28.tgz' + url = 'https://pythia.org/download/pythia6/pythia6428-split.tgz' tags = ['hep'] - version('6.4.28', + maintainers = ['gartung', 'chissg'] + + version('6.4.28', url='https://pythia.org/download/pythia6/pythia6428-split.tgz', sha256='01cbff47e99365b5e46f6d62c1735d3cae1932c4710604850d59f538cb758020') # Root's TPythia6 interface requires extra sources to be built into diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py index 61f42aaad39..470b05f6aca 100644 --- a/var/spack/repos/builtin/packages/python/package.py +++ b/var/spack/repos/builtin/packages/python/package.py @@ -3,6 +3,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import json import os import platform import re @@ -164,7 +165,9 @@ class Python(AutotoolsPackage): # https://docs.python.org/3.5/whatsnew/changelog.html#python-3-5-4rc1 depends_on('openssl@:1.0.2z', when='@:2.7.13,3.0.0:3.5.2+ssl') depends_on('openssl@1.0.2:', when='@3.7:+ssl') # https://docs.python.org/3/whatsnew/3.7.html#build-changes - depends_on('sqlite@3.0.8:', when='+sqlite3') + depends_on('openssl@1.1.1:', when='@3.10:+ssl') # https://docs.python.org/3.10/whatsnew/3.10.html#build-changes + depends_on('sqlite@3.0.8:', when='@:3.9+sqlite3') + depends_on('sqlite@3.7.15:', when='@3.10:+sqlite3') # https://docs.python.org/3.10/whatsnew/3.10.html#build-changes depends_on('gdbm', when='+dbm') # alternatively ndbm or berkeley-db depends_on('libnsl', when='+nis') depends_on('zlib@1.1.3:', when='+zlib') @@ -229,8 +232,8 @@ class Python(AutotoolsPackage): conflicts('%nvhpc') - # Used to cache home locations, since computing them might be expensive - _homes = {} + # Used to cache various attributes that are expensive to compute + _config_vars = {} # An in-source build with --enable-optimizations fails for python@3.X build_directory = 'spack-build' @@ -504,7 +507,7 @@ def filter_compilers(self): kwargs = {'ignore_absent': True, 'backup': False, 'string': True} filenames = [ - self.get_sysconfigdata_name(), self.get_makefile_filename() + self.get_sysconfigdata_name(), self.config_vars['makefile_filename'] ] filter_file(spack_cc, self.compiler.cc, *filenames, **kwargs) @@ -684,87 +687,59 @@ def print_string(self, string): else: return 'print({0})'.format(string) - def get_config_var(self, key): - """Return the value of a single variable. Wrapper around - ``distutils.sysconfig.get_config_var()``.""" + @property + def config_vars(self): + """Return a set of variable definitions associated with a Python installation. - cmd = 'from distutils.sysconfig import get_config_var; ' - cmd += self.print_string("get_config_var('{0}')".format(key)) - - return self.command('-c', cmd, output=str).strip() - - def get_config_h_filename(self): - """Return the full path name of the configuration header. - Wrapper around ``distutils.sysconfig.get_config_h_filename()``.""" - - cmd = 'from distutils.sysconfig import get_config_h_filename; ' - cmd += self.print_string('get_config_h_filename()') - - return self.command('-c', cmd, output=str).strip() - - def get_makefile_filename(self): - """Return the full path name of ``Makefile`` used to build Python. - Wrapper around ``distutils.sysconfig.get_makefile_filename()``.""" - - cmd = 'from distutils.sysconfig import get_makefile_filename; ' - cmd += self.print_string('get_makefile_filename()') - - return self.command('-c', cmd, output=str).strip() - - def get_python_inc(self, plat_specific=False, prefix=None): - """Return the directory for either the general or platform-dependent C - include files. Wrapper around ``distutils.sysconfig.get_python_inc()``. - - Parameters: - plat_specific (bool): if true, the platform-dependent include directory - is returned, else the platform-independent directory is returned - prefix (str): prefix to use instead of ``distutils.sysconfig.PREFIX`` + Wrapper around various ``distutils.sysconfig`` functions. Returns: - str: include files directory + dict: variable definitions """ - # Wrap strings in quotes - if prefix is not None: - prefix = '"{0}"'.format(prefix) + # TODO: distutils is deprecated in Python 3.10 and will be removed in + # Python 3.12, find a different way to access this information. + # Also, calling the python executable disallows us from cross-compiling, + # so we want to try to avoid that if possible. + cmd = """ +import json +from distutils.sysconfig import ( + get_config_vars, + get_config_h_filename, + get_makefile_filename, + get_python_inc, + get_python_lib, +) - args = 'plat_specific={0}, prefix={1}'.format(plat_specific, prefix) +config = get_config_vars() +config['config_h_filename'] = get_config_h_filename() +config['makefile_filename'] = get_makefile_filename() +config['python_inc'] = {} +config['python_lib'] = {} - cmd = 'from distutils.sysconfig import get_python_inc; ' - cmd += self.print_string('get_python_inc({0})'.format(args)) +for plat_specific in [True, False]: + config['python_inc'][plat_specific] = get_python_inc(plat_specific, prefix='') + config['python_lib'][plat_specific] = {} + for standard_lib in [True, False]: + config['python_lib'][plat_specific][standard_lib] = get_python_lib( + plat_specific, standard_lib, prefix='' + ) - return self.command('-c', cmd, output=str).strip() +%s +""" % self.print_string("json.dumps(config)") - def get_python_lib(self, plat_specific=False, standard_lib=False, prefix=None): - """Return the directory for either the general or platform-dependent - library installation. Wrapper around ``distutils.sysconfig.get_python_lib()``. - - Parameters: - plat_specific (bool): if true, the platform-dependent library directory - is returned, else the platform-independent directory is returned - standard_lib (bool): if true, the directory for the standard library is - returned rather than the directory for the installation of - third-party extensions - prefix (str): prefix to use instead of ``distutils.sysconfig.PREFIX`` - - Returns: - str: library installation directory - """ - # Wrap strings in quotes - if prefix is not None: - prefix = '"{0}"'.format(prefix) - - args = 'plat_specific={0}, standard_lib={1}, prefix={2}'.format( - plat_specific, standard_lib, prefix) - - cmd = 'from distutils.sysconfig import get_python_lib; ' - cmd += self.print_string('get_python_lib({0})'.format(args)) - - return self.command('-c', cmd, output=str).strip() + dag_hash = self.spec.dag_hash() + if dag_hash not in self._config_vars: + try: + config = json.loads(self.command('-c', cmd, output=str)) + except (ProcessError, RuntimeError): + config = {} + self._config_vars[dag_hash] = config + return self._config_vars[dag_hash] def get_sysconfigdata_name(self): """Return the full path name of the sysconfigdata file.""" - libdest = self.get_config_var('LIBDEST') + libdest = self.config_vars['LIBDEST'] filename = '_sysconfigdata.py' if self.spec.satisfies('@3.6:'): @@ -788,14 +763,11 @@ def home(self): determine exactly where it is installed. Fall back on ``spec['python'].prefix`` if that doesn't work.""" - dag_hash = self.spec.dag_hash() - if dag_hash not in self._homes: - try: - prefix = self.get_config_var('prefix') - except ProcessError: - prefix = self.prefix - self._homes[dag_hash] = Prefix(prefix) - return self._homes[dag_hash] + if 'prefix' in self.config_vars: + prefix = self.config_vars['prefix'] + else: + prefix = self.prefix + return Prefix(prefix) @property def libs(self): @@ -803,19 +775,19 @@ def libs(self): # installs them into lib64. If the user is using an externally # installed package, it may be in either lib or lib64, so we need # to ask Python where its LIBDIR is. - libdir = self.get_config_var('LIBDIR') + libdir = self.config_vars['LIBDIR'] # In Ubuntu 16.04.6 and python 2.7.12 from the system, lib could be # in LBPL # https://mail.python.org/pipermail/python-dev/2013-April/125733.html - libpl = self.get_config_var('LIBPL') + libpl = self.config_vars['LIBPL'] # The system Python installation on macOS and Homebrew installations # install libraries into a Frameworks directory - frameworkprefix = self.get_config_var('PYTHONFRAMEWORKPREFIX') + frameworkprefix = self.config_vars['PYTHONFRAMEWORKPREFIX'] if '+shared' in self.spec: - ldlibrary = self.get_config_var('LDLIBRARY') + ldlibrary = self.config_vars['LDLIBRARY'] if os.path.exists(os.path.join(libdir, ldlibrary)): return LibraryList(os.path.join(libdir, ldlibrary)) @@ -827,7 +799,7 @@ def libs(self): msg = 'Unable to locate {0} libraries in {1}' raise RuntimeError(msg.format(ldlibrary, libdir)) else: - library = self.get_config_var('LIBRARY') + library = self.config_vars['LIBRARY'] if os.path.exists(os.path.join(libdir, library)): return LibraryList(os.path.join(libdir, library)) @@ -839,16 +811,16 @@ def libs(self): @property def headers(self): - try: - config_h = self.get_config_h_filename() + if 'config_h_filename' in self.config_vars: + config_h = self.config_vars['config_h_filename'] if not os.path.exists(config_h): - includepy = self.get_config_var('INCLUDEPY') + includepy = self.config_vars['INCLUDEPY'] msg = 'Unable to locate {0} headers in {1}' raise RuntimeError(msg.format(self.name, includepy)) headers = HeaderList(config_h) - except ProcessError: + else: headers = find_headers( 'pyconfig', self.prefix.include, recursive=True) config_h = headers[0] @@ -869,9 +841,9 @@ def python_include_dir(self): Returns: str: include files directory """ - try: - return self.get_python_inc(prefix='') - except (ProcessError, RuntimeError): + if 'python_inc' in self.config_vars: + return self.config_vars['python_inc']['false'] + else: return os.path.join('include', 'python{0}'.format(self.version.up_to(2))) @property @@ -893,9 +865,9 @@ def python_lib_dir(self): Returns: str: standard library directory """ - try: - return self.get_python_lib(standard_lib=True, prefix='') - except (ProcessError, RuntimeError): + if 'python_lib' in self.config_vars: + return self.config_vars['python_lib']['false']['true'] + else: return os.path.join('lib', 'python{0}'.format(self.version.up_to(2))) @property @@ -917,11 +889,15 @@ def site_packages_dir(self): Returns: str: site-packages directory """ - try: - return self.get_python_lib(prefix='') - except (ProcessError, RuntimeError): - return os.path.join( - 'lib', 'python{0}'.format(self.version.up_to(2)), 'site-packages') + if 'python_lib' in self.config_vars: + return self.config_vars['python_lib']['false']['false'] + else: + return self.default_site_packages_dir + + @property + def default_site_packages_dir(self): + python_dir = 'python{0}'.format(self.version.up_to(2)) + return os.path.join('lib', python_dir, 'site-packages') @property def easy_install_file(self): @@ -972,8 +948,8 @@ def setup_dependent_build_environment(self, env, dependent_spec): for compile_var, link_var in [('CC', 'LDSHARED'), ('CXX', 'LDCXXSHARED')]: # First, we get the values from the sysconfigdata: - config_compile = self.get_config_var(compile_var) - config_link = self.get_config_var(link_var) + config_compile = self.config_vars[compile_var] + config_link = self.config_vars[link_var] # The dependent environment will have the compilation command set to # the following: diff --git a/var/spack/repos/builtin/packages/qbank/package.py b/var/spack/repos/builtin/packages/qbank/package.py index 89f0622a213..98f0ff599ee 100644 --- a/var/spack/repos/builtin/packages/qbank/package.py +++ b/var/spack/repos/builtin/packages/qbank/package.py @@ -21,7 +21,7 @@ class Qbank(Package): # 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 = "http://www.pnnl.gov/" + homepage = "https://www.pnnl.gov/" url = "file://{0}/qbank-2.10.4.tar.gz".format(os.getcwd()) manual_download = True diff --git a/var/spack/repos/builtin/packages/qmcpack/package.py b/var/spack/repos/builtin/packages/qmcpack/package.py index 47320549988..a7124fe946c 100644 --- a/var/spack/repos/builtin/packages/qmcpack/package.py +++ b/var/spack/repos/builtin/packages/qmcpack/package.py @@ -13,7 +13,7 @@ class Qmcpack(CMakePackage, CudaPackage): Carlo (QMC) simulation code.""" # Package information - homepage = "http://www.qmcpack.org/" + homepage = "https://www.qmcpack.org/" git = "https://github.com/QMCPACK/qmcpack.git" maintainers = ['naromero77'] tags = ['ecp', 'ecp-apps'] diff --git a/var/spack/repos/builtin/packages/qrupdate/package.py b/var/spack/repos/builtin/packages/qrupdate/package.py index 86ce64c9782..de91ecc2fcf 100644 --- a/var/spack/repos/builtin/packages/qrupdate/package.py +++ b/var/spack/repos/builtin/packages/qrupdate/package.py @@ -13,7 +13,7 @@ class Qrupdate(MakefilePackage, SourceforgePackage): """qrupdate is a Fortran library for fast updates of QR and Cholesky decompositions.""" - homepage = "http://sourceforge.net/projects/qrupdate/" + homepage = "https://sourceforge.net/projects/qrupdate/" sourceforge_mirror_path = "qrupdate/qrupdate-1.1.2.tar.gz" version('1.1.2', sha256='e2a1c711dc8ebc418e21195833814cb2f84b878b90a2774365f0166402308e08') diff --git a/var/spack/repos/builtin/packages/quantum-espresso/configure_aocc.patch b/var/spack/repos/builtin/packages/quantum-espresso/configure_aocc.patch index 69d5293ab82..fcfae278541 100644 --- a/var/spack/repos/builtin/packages/quantum-espresso/configure_aocc.patch +++ b/var/spack/repos/builtin/packages/quantum-espresso/configure_aocc.patch @@ -1,58 +1,72 @@ ---- spack-src/install/configure.orig 2021-02-11 13:56:58.900212951 +0530 -+++ spack-src/install/configure 2021-02-11 15:19:54.726403962 +0530 -@@ -3203,6 +3203,7 @@ +diff --git a/install/configure b/install/configure_aocc +index 66337d1..d2c04af 100755 +--- a/install/configure ++++ b/install/configure_aocc +@@ -3203,6 +3203,7 @@ case "$arch" in nagfor_version=`$mpif90 -v 2>&1 | grep "NAG Fortran"` xlf_version=`$mpif90 -v 2>&1 | grep "xlf"` armflang_version=`$mpif90 -v 2>&1 | grep "Arm C/C++/Fortran Compiler version"` -+ aoccflang_version=`$mpif90 -v 2>&1 | grep "AMD clang version"` ++ aoccflang_version=`$mpif90 -v 2>&1 | grep "AMD clang version"` # if test "$ifort_version" != "" then -@@ -3227,6 +3228,12 @@ - f90_minor_version=`echo $version | cut -d. -f2` - echo "${ECHO_T}gfortran $f90_major_version.$f90_minor_version" - f90_in_mpif90="gfortran" -+ elif test "$aoccflang_version" != "" -+ then -+ version=`echo $aoccflang_version | cut -d" " -f 5` -+ echo "${ECHO_T}mpif90 $version" -+ f90_in_mpif90="mpif90" -+ try_foxflags="-D__PGI" - elif test "$nagfor_version" != "" +@@ -3215,6 +3216,12 @@ case "$arch" in + version=`echo $nvfortran_version | cut -d ' ' -f2` + echo "${ECHO_T}nvfortran $version" + f90_in_mpif90="nvfortran" ++ elif test "$aoccflang_version" != "" ++ then ++ version=`echo $aoccflang_version | cut -d" " -f 5` ++ echo "${ECHO_T}mpif90 $version" ++ f90_in_mpif90="mpif90" ++ try_foxflags="-D__PGI" + elif test "$pgf_version" != "" then - # NAG 6.0 has the codename attached to version number... annoying -@@ -3327,6 +3334,8 @@ - f90_flavor=ifort - elif $f90 -V 2>&1 | grep -q "^pgf" ; then - f90_flavor=pgf -+ elif $f90 -v 2>&1 | grep -q "AMD clang version" ; then -+ f90_flavor=mpif90 - elif $f90 -v 2>&1 | grep -q "gcc version" ; then - f90_flavor=gfortran - elif $f90 -V 2>&1 | grep -q "Cray Fortran" ; then -@@ -3385,6 +3394,9 @@ - *:pgf90 ) - try_cc="pgcc $try_cc" + version=`echo $pgf_version | cut -d ' ' -f2` +@@ -3397,6 +3404,9 @@ ppc64-bg*:*xlf90_r ) + ppc64-bg*:*xlf90 ) + try_cc="bgxlc" ;; +*:mpif90 ) -+ try_cc="mpicc $try_cc" -+ ;; - cray*:* ) - try_cc="cc" ++ try_cc="mpicc $try_cc" ++ ;; + ppc64:*xlf* | ppc64le:*xlf* ) + try_cc="xlc_r $try_cc" ;; -@@ -4017,6 +4029,15 @@ - try_dflags="$try_dflags -D__PGI" - have_cpp=1 +@@ -3779,6 +3789,10 @@ necsx:* ) + ppc64le:* ) + try_cflags="-O3" + ;; ++x86_64:* ) ++ try_cflags="-Ofast -Mstack_arrays" ++ try_dflags="-D__OPENMP" ++ ;; + ppc64-bg:* ) + try_cflags="-O3 -q32" + ;; +@@ -3915,6 +3929,16 @@ crayxt*:cray* ) + try_dflags="$try_dflags -D__CRAY" + have_cpp=0 ;; +*:*mpif90 ) -+ try_fflags="-O3 -g" -+ try_fflags_openmp="-fopenmp" -+ try_f90flags="\$(FFLAGS) -cpp" -+ try_fflags_noopt="-O0 -g" -+ try_ldflags="-g" -+ try_ldflags_openmp="-pthread -fopenmp" -+ try_ldflags_static="-static" -+ ;; - *:*gfortran ) - try_fflags="-O3 -g" - if test "$f90_major_version" -ge "10"; then ++ try_fflags="-Ofast -Mstack_arrays" ++ try_fflags_openmp="-fopenmp" ++ try_f90flags=" \$(FFLAGS) -cpp -Ofast -Mpreprocess -Mstack_arrays" ++ try_foxflags="-D__PGI" ++ try_fflags_noopt="-O0" ++ try_ldflags="" ++ try_ldflags_openmp="-fopenmp" ++ try_ldflags_static="-static" ++ ;; + crayxt*:pgf* ) + # see comment above for pgf* + try_fflags_nomain="-Mnomain" +@@ -7815,7 +7839,7 @@ $as_echo "$as_me: WARNING: *** HDF5 version must be 1.8.16 or later" >&2;}; + if test $with_hdf5_libs -eq 1; then + hdf5_libs=$with_hdf5_libline + else +- hdf5_libs=`$with_hdf5_path/bin/h5pfc -show | awk -F'-L' '{$1=""; for (i=2; i<=NF;i++) $i="-L"$i; print $0}'` ++ hdf5_libs=`$with_hdf5_path/bin/h5pfc -show | awk -F'-L' '{$1=""; for (i=2; i<=NF;i++) $i="-L"$i; print $0}' | xargs` + fi + elif command -v h5pfc >/dev/null; then + if test $with_hdf5_libs -eq 1; then diff --git a/var/spack/repos/builtin/packages/quartz/package.py b/var/spack/repos/builtin/packages/quartz/package.py index 5dfe077da9d..c5303a937ac 100644 --- a/var/spack/repos/builtin/packages/quartz/package.py +++ b/var/spack/repos/builtin/packages/quartz/package.py @@ -12,7 +12,7 @@ class Quartz(MavenPackage): application - from the smallest stand-alone application to the largest e-commerce system.""" - homepage = "http://www.quartz-scheduler.org/" + homepage = "https://www.quartz-scheduler.org/" url = "https://github.com/quartz-scheduler/quartz/archive/v2.3.2.tar.gz" version('2.3.2', sha256='058c64777956aeaad3e79e2307f0f512c66d29acf026ea8373ad359050f6856c') diff --git a/var/spack/repos/builtin/packages/quinoa/package.py b/var/spack/repos/builtin/packages/quinoa/package.py index aabda89fac5..7188fe029d6 100644 --- a/var/spack/repos/builtin/packages/quinoa/package.py +++ b/var/spack/repos/builtin/packages/quinoa/package.py @@ -14,14 +14,14 @@ class Quinoa(CMakePackage): systems. """ - homepage = "http://quinoacomputing.org" + homepage = "https://quinoacomputing.org" git = "https://github.com/quinoacomputing/quinoa.git" version('develop', branch='master') depends_on('hdf5+mpi') depends_on("charmpp backend=mpi") - depends_on("trilinos+exodus+mpi+netcdf") + depends_on("trilinos+exodus+mpi") depends_on("boost") depends_on("hypre~internal-superlu") depends_on("random123") diff --git a/var/spack/repos/builtin/packages/quota/package.py b/var/spack/repos/builtin/packages/quota/package.py index af60d076348..ffb0e83376e 100644 --- a/var/spack/repos/builtin/packages/quota/package.py +++ b/var/spack/repos/builtin/packages/quota/package.py @@ -9,7 +9,7 @@ class Quota(AutotoolsPackage): """Linux Diskquota system as part of the Linux kernel.""" - homepage = "http://sourceforge.net/projects/linuxquota" + homepage = "https://sourceforge.net/projects/linuxquota" url = "https://udomain.dl.sourceforge.net/project/linuxquota/quota-tools/4.05/quota-4.05.tar.gz" version('4.05', sha256='ef3b5b5d1014ed1344b46c1826145e20cbef8db967b522403c9a060761cf7ab9') diff --git a/var/spack/repos/builtin/packages/r-ade4/package.py b/var/spack/repos/builtin/packages/r-ade4/package.py index 61c184ce2ea..84dda495dbe 100644 --- a/var/spack/repos/builtin/packages/r-ade4/package.py +++ b/var/spack/repos/builtin/packages/r-ade4/package.py @@ -17,7 +17,7 @@ class RAde4(RPackage): STATIS, multiple coinertia analysis). The philosophy of the package is described in Dray and Dufour (2007) .""" - homepage = "http://pbil.univ-lyon1.fr/ADE-4" + homepage = "https://pbil.univ-lyon1.fr/ADE-4" url = "https://cloud.r-project.org/src/contrib/ade4_1.7-6.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/ade4" diff --git a/var/spack/repos/builtin/packages/r-adegraphics/package.py b/var/spack/repos/builtin/packages/r-adegraphics/package.py index 9be47f468ef..d74f11d9535 100644 --- a/var/spack/repos/builtin/packages/r-adegraphics/package.py +++ b/var/spack/repos/builtin/packages/r-adegraphics/package.py @@ -14,7 +14,7 @@ class RAdegraphics(RPackage): It is a complete re-implementation of the functions available in the 'ade4' package.""" - homepage = "http://pbil.univ-lyon1.fr/ADE-4" + homepage = "https://pbil.univ-lyon1.fr/ADE-4" url = "https://cloud.r-project.org/src/contrib/adegraphics_1.0-15.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/adegraphics" diff --git a/var/spack/repos/builtin/packages/r-amap/package.py b/var/spack/repos/builtin/packages/r-amap/package.py index 80eef5e198a..4c98db4345f 100644 --- a/var/spack/repos/builtin/packages/r-amap/package.py +++ b/var/spack/repos/builtin/packages/r-amap/package.py @@ -12,7 +12,7 @@ class RAmap(RPackage): Tools for Clustering and Principal Component Analysis (With robust methods, and parallelized functions).""" - homepage = "http://mulcyber.toulouse.inra.fr/projects/amap/" + homepage = "https://cran.r-project.org/web/packages/amap/index.html" url = "https://cloud.r-project.org/src/contrib/amap_0.8-16.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/amap/" diff --git a/var/spack/repos/builtin/packages/r-amelia/package.py b/var/spack/repos/builtin/packages/r-amelia/package.py index 952ee2e9e47..f8c08f4dc52 100644 --- a/var/spack/repos/builtin/packages/r-amelia/package.py +++ b/var/spack/repos/builtin/packages/r-amelia/package.py @@ -15,7 +15,7 @@ class RAmelia(RPackage): time-series-cross-sectional data set (such as collected by years for each of several countries).""" - homepage = "http://gking.harvard.edu/amelia" + homepage = "https://gking.harvard.edu/amelia" url = "https://cloud.r-project.org/src/contrib/Amelia_1.7.6.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/Amelia" diff --git a/var/spack/repos/builtin/packages/r-anytime/package.py b/var/spack/repos/builtin/packages/r-anytime/package.py index d77250de271..e452285f952 100644 --- a/var/spack/repos/builtin/packages/r-anytime/package.py +++ b/var/spack/repos/builtin/packages/r-anytime/package.py @@ -14,7 +14,7 @@ class RAnytime(RPackage): using one of a number of predefined formats, and relying on Boost facilities for date and time parsing.""" - homepage = "http://dirk.eddelbuettel.com/code/anytime.html" + homepage = "https://dirk.eddelbuettel.com/code/anytime.html" url = "https://cloud.r-project.org/src/contrib/anytime_0.3.9.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/anytime" diff --git a/var/spack/repos/builtin/packages/r-base64enc/package.py b/var/spack/repos/builtin/packages/r-base64enc/package.py index 83c45d7c156..494e3e54ffa 100644 --- a/var/spack/repos/builtin/packages/r-base64enc/package.py +++ b/var/spack/repos/builtin/packages/r-base64enc/package.py @@ -10,7 +10,7 @@ class RBase64enc(RPackage): """This package provides tools for handling base64 encoding. It is more flexible than the orphaned base64 package.""" - homepage = "http://www.rforge.net/base64enc" + homepage = "https://www.rforge.net/base64enc" url = "https://cloud.r-project.org/src/contrib/base64enc_0.1-3.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/base64enc" diff --git a/var/spack/repos/builtin/packages/r-beeswarm/package.py b/var/spack/repos/builtin/packages/r-beeswarm/package.py index 4cbef7c186e..37bc2ba755e 100644 --- a/var/spack/repos/builtin/packages/r-beeswarm/package.py +++ b/var/spack/repos/builtin/packages/r-beeswarm/package.py @@ -9,7 +9,7 @@ class RBeeswarm(RPackage): """beeswarm: The Bee Swarm Plot, an Alternative to Stripchart""" - homepage = "http://www.cbs.dtu.dk/~eklund/beeswarm/" + homepage = "https://www.cbs.dtu.dk/~eklund/beeswarm/" url = "https://cloud.r-project.org/src/contrib/beeswarm_0.2.3.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/beeswarm" diff --git a/var/spack/repos/builtin/packages/r-biasedurn/package.py b/var/spack/repos/builtin/packages/r-biasedurn/package.py index e596009ab85..1bcf8080691 100644 --- a/var/spack/repos/builtin/packages/r-biasedurn/package.py +++ b/var/spack/repos/builtin/packages/r-biasedurn/package.py @@ -14,7 +14,7 @@ class RBiasedurn(RPackage): hypergeometric distribution). See vignette("UrnTheory") for explanation of these distributions.""" - homepage = "http://www.agner.org/random/" + homepage = "https://www.agner.org/random/" url = "https://cloud.r-project.org/src/contrib/BiasedUrn_1.07.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/BiasedUrn/" diff --git a/var/spack/repos/builtin/packages/r-broom/package.py b/var/spack/repos/builtin/packages/r-broom/package.py index 68e1dda72af..6153e41a695 100644 --- a/var/spack/repos/builtin/packages/r-broom/package.py +++ b/var/spack/repos/builtin/packages/r-broom/package.py @@ -18,7 +18,7 @@ class RBroom(RPackage): measures like AIC and BIC. augment() adds information about individual observations to a dataset, such as fitted values or influence measures.""" - homepage = "http://github.com/tidyverse/broom" + homepage = "https://github.com/tidyverse/broom" url = "https://cloud.r-project.org/src/contrib/broom_0.4.2.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/broom" diff --git a/var/spack/repos/builtin/packages/r-cairo/package.py b/var/spack/repos/builtin/packages/r-cairo/package.py index c2a48a953ca..e600f0d7acd 100644 --- a/var/spack/repos/builtin/packages/r-cairo/package.py +++ b/var/spack/repos/builtin/packages/r-cairo/package.py @@ -31,5 +31,7 @@ class RCairo(RPackage): version('1.5-10', sha256='7837f0c384cd49bb3342cb39a916d7a80b02fffbf123913a58014e597f69b5d5') version('1.5-9', sha256='2a867b6cae96671d6bc3acf9334d6615dc01f6ecf1953a27cde8a43c724a38f4') + depends_on('r+X', type=('build', 'run')) depends_on('r@2.4.0:', type=('build', 'run')) depends_on('cairo@1.2:') + depends_on('libxt') diff --git a/var/spack/repos/builtin/packages/r-class/package.py b/var/spack/repos/builtin/packages/r-class/package.py index 0dfbb3fafab..b61fb9b8c66 100644 --- a/var/spack/repos/builtin/packages/r-class/package.py +++ b/var/spack/repos/builtin/packages/r-class/package.py @@ -12,7 +12,7 @@ class RClass(RPackage): Various functions for classification, including k-nearest neighbour, Learning Vector Quantization and Self-Organizing Maps.""" - homepage = "http://www.stats.ox.ac.uk/pub/MASS4/" + homepage = "https://www.stats.ox.ac.uk/pub/MASS4/" url = "https://cloud.r-project.org/src/contrib/class_7.3-14.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/class" diff --git a/var/spack/repos/builtin/packages/r-codex/package.py b/var/spack/repos/builtin/packages/r-codex/package.py index 02ad9e94968..da5678202b2 100644 --- a/var/spack/repos/builtin/packages/r-codex/package.py +++ b/var/spack/repos/builtin/packages/r-codex/package.py @@ -20,7 +20,7 @@ class RCodex(RPackage): segmentation procedure that explicitly models the count-based exome sequencing data.""" - homepage = "http://www.bioconductor.org/packages/release/bioc/html/CODEX.html" + homepage = "https://www.bioconductor.org/packages/release/bioc/html/CODEX.html" git = "https://git.bioconductor.org/packages/CODEX" version('1.22.0', commit='aa0ee4278111a46e0c790312b0526ba07aab22eb') diff --git a/var/spack/repos/builtin/packages/r-copula/package.py b/var/spack/repos/builtin/packages/r-copula/package.py index 7a55eef5704..908bf3ab051 100644 --- a/var/spack/repos/builtin/packages/r-copula/package.py +++ b/var/spack/repos/builtin/packages/r-copula/package.py @@ -22,7 +22,7 @@ class RCopula(RPackage): copula, smoothed versions, and non-parametric estimators of the Pickands dependence function.""" - homepage = "http://copula.r-forge.r-project.org/" + homepage = "https://copula.r-forge.r-project.org/" url = "https://cloud.r-project.org/src/contrib/copula_0.999-20.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/copula" diff --git a/var/spack/repos/builtin/packages/r-dada2/package.py b/var/spack/repos/builtin/packages/r-dada2/package.py index b4b82ae150a..3013d434dda 100644 --- a/var/spack/repos/builtin/packages/r-dada2/package.py +++ b/var/spack/repos/builtin/packages/r-dada2/package.py @@ -10,7 +10,7 @@ class RDada2(RPackage): """Accurate sample inference from amplicon data with single nucleotide resolution""" - homepage = "http://benjjneb.github.io/dada2/" + homepage = "https://benjjneb.github.io/dada2/" url = "https://github.com/benjjneb/dada2/archive/v1.14.tar.gz" version('1.14', sha256='19980b9d7b0a0e80e86010357cae11d1fc07c2d02067c4445169143cf1f99906') diff --git a/var/spack/repos/builtin/packages/r-digest/package.py b/var/spack/repos/builtin/packages/r-digest/package.py index ee27fc8af12..07ea211795f 100644 --- a/var/spack/repos/builtin/packages/r-digest/package.py +++ b/var/spack/repos/builtin/packages/r-digest/package.py @@ -26,7 +26,7 @@ class RDigest(RPackage): comprehensive (and widely tested) libraries such as OpenSSL should be used.""" - homepage = "http://dirk.eddelbuettel.com/code/digest.html" + homepage = "https://dirk.eddelbuettel.com/code/digest.html" url = "https://cloud.r-project.org/src/contrib/digest_0.6.12.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/digest" diff --git a/var/spack/repos/builtin/packages/r-diversitree/package.py b/var/spack/repos/builtin/packages/r-diversitree/package.py index ddad9ee891b..8b51ceb4e94 100644 --- a/var/spack/repos/builtin/packages/r-diversitree/package.py +++ b/var/spack/repos/builtin/packages/r-diversitree/package.py @@ -18,7 +18,7 @@ class RDiversitree(RPackage): models of discrete and continuous trait evolution and constant rate 'speciation' and extinction.""" - homepage = "http://www.zoology.ubc.ca/prog/diversitree" + homepage = "https://www.zoology.ubc.ca/prog/diversitree" url = "https://cloud.r-project.org/src/contrib/diversitree_0.9-10.tar.gz" list_url = "https://cron.r-project.org/src/contrib/Archive/diversitree" diff --git a/var/spack/repos/builtin/packages/r-dss/package.py b/var/spack/repos/builtin/packages/r-dss/package.py index 02de075e170..0b66b4ac00e 100644 --- a/var/spack/repos/builtin/packages/r-dss/package.py +++ b/var/spack/repos/builtin/packages/r-dss/package.py @@ -16,7 +16,7 @@ class RDss(RPackage): shrinkage method for estimating the dispersion parameter from Gamma-Poisson or Beta-Binomial distributions.""" - homepage = "http://bioconductor.org/packages/DSS/" + homepage = "https://bioconductor.org/packages/DSS/" git = "https://git.bioconductor.org/packages/DSS" version('2.38.0', commit='82e65b92e6e227f1f99620362db8b03059e07e98') diff --git a/var/spack/repos/builtin/packages/r-dt/package.py b/var/spack/repos/builtin/packages/r-dt/package.py index 3b920485653..a0fc8655a6f 100644 --- a/var/spack/repos/builtin/packages/r-dt/package.py +++ b/var/spack/repos/builtin/packages/r-dt/package.py @@ -14,7 +14,7 @@ class RDt(RPackage): library has been included in this R package. The package name 'DT' is an abbreviation of 'DataTables'.""" - homepage = "http://rstudio.github.io/DT" + homepage = "https://rstudio.github.io/DT" url = "https://cloud.r-project.org/src/contrib/DT_0.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/DT" diff --git a/var/spack/repos/builtin/packages/r-elemstatlearn/package.py b/var/spack/repos/builtin/packages/r-elemstatlearn/package.py new file mode 100644 index 00000000000..b42a4b67ca7 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-elemstatlearn/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 import * + + +class RElemstatlearn(RPackage): + """ElemStatLearn: Data Sets, Functions and Examples from the Book: "The + Elements of Statistical Learning, Data Mining, Inference, and Prediction" by + Trevor Hastie, Robert Tibshirani and Jerome Friedman""" + + homepage = "https://cloud.r-project.org/package=ElemStatLearn" + url = "https://cloud.r-project.org/src/contrib/Archive/ElemStatLearn/ElemStatLearn_2015.6.26.2.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/ElemStatLearn" + + version('2015.6.26.2', sha256='a0f94a72f6188a0a5c855e3362b6b849bf7fd14efc2d824a8d2581f8bb1bd7fa') + + depends_on('r@2.10.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-ergm/package.py b/var/spack/repos/builtin/packages/r-ergm/package.py index 8314f66bfa8..67dfc4487cf 100644 --- a/var/spack/repos/builtin/packages/r-ergm/package.py +++ b/var/spack/repos/builtin/packages/r-ergm/package.py @@ -13,7 +13,7 @@ class RErgm(RPackage): exponential-family random graph models (ERGM). "ergm" is a part of the "statnet" suite of packages for network analysis.""" - homepage = "http://statnet.org" + homepage = "https://statnet.org" url = "https://cloud.r-project.org/src/contrib/ergm_3.7.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/ergm" diff --git a/var/spack/repos/builtin/packages/r-europepmc/package.py b/var/spack/repos/builtin/packages/r-europepmc/package.py index dae036aac94..4afa437de97 100644 --- a/var/spack/repos/builtin/packages/r-europepmc/package.py +++ b/var/spack/repos/builtin/packages/r-europepmc/package.py @@ -21,7 +21,7 @@ class REuropepmc(RPackage): registration or API key is required. See the vignettes for usage examples.""" - homepage = "http://github.com/ropensci/europepmc/" + homepage = "https://github.com/ropensci/europepmc/" url = "https://cloud.r-project.org/src/contrib/europepmc_0.3.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/europepmc" diff --git a/var/spack/repos/builtin/packages/r-exomecopy/package.py b/var/spack/repos/builtin/packages/r-exomecopy/package.py index 63cea83434e..10b5b51b7dc 100644 --- a/var/spack/repos/builtin/packages/r-exomecopy/package.py +++ b/var/spack/repos/builtin/packages/r-exomecopy/package.py @@ -15,7 +15,7 @@ class RExomecopy(RPackage): GC-content, to simultaneously normalize and segment the samples into regions of constant copy count.""" - homepage = "http://www.bioconductor.org/packages/release/bioc/html/exomeCopy.html" + homepage = "https://www.bioconductor.org/packages/release/bioc/html/exomeCopy.html" git = "https://git.bioconductor.org/packages/exomeCopy" version('1.36.0', commit='cbe3134acbbc9b7d5426ae2f142dc64cadb3fc26') diff --git a/var/spack/repos/builtin/packages/r-expm/package.py b/var/spack/repos/builtin/packages/r-expm/package.py index 3e005d71967..66a99ed0c7e 100644 --- a/var/spack/repos/builtin/packages/r-expm/package.py +++ b/var/spack/repos/builtin/packages/r-expm/package.py @@ -12,7 +12,7 @@ class RExpm(RPackage): Computation of the matrix exponential, logarithm, sqrt, and related quantities.""" - homepage = "http://r-forge.r-project.org/projects/expm" + homepage = "https://r-forge.r-project.org/projects/expm" url = "https://cloud.r-project.org/src/contrib/expm_0.999-2.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/expm" diff --git a/var/spack/repos/builtin/packages/r-fastmatch/package.py b/var/spack/repos/builtin/packages/r-fastmatch/package.py index 4b4fe3f9fa8..2af39a39419 100644 --- a/var/spack/repos/builtin/packages/r-fastmatch/package.py +++ b/var/spack/repos/builtin/packages/r-fastmatch/package.py @@ -12,7 +12,7 @@ class RFastmatch(RPackage): function on first match against a table, but extremely fast on any subsequent lookup as it keeps the hash table in memory.""" - homepage = "http://www.rforge.net/fastmatch" + homepage = "https://www.rforge.net/fastmatch" url = "https://cloud.r-project.org/src/contrib/fastmatch_1.1-0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/fastmatch" diff --git a/var/spack/repos/builtin/packages/r-fdb-infiniummethylation-hg18/package.py b/var/spack/repos/builtin/packages/r-fdb-infiniummethylation-hg18/package.py index 59907838af9..f84223b4a21 100644 --- a/var/spack/repos/builtin/packages/r-fdb-infiniummethylation-hg18/package.py +++ b/var/spack/repos/builtin/packages/r-fdb-infiniummethylation-hg18/package.py @@ -12,7 +12,7 @@ class RFdbInfiniummethylationHg18(RPackage): Compiled HumanMethylation27 and HumanMethylation450 annotations""" # This is a bioconductor package but there is no available git repository - homepage = "http://bioconductor.org/packages/release/data/annotation/html/FDb.InfiniumMethylation.hg18.html" + homepage = "https://bioconductor.org/packages/release/data/annotation/html/FDb.InfiniumMethylation.hg18.html" url = "http://bioconductor.org/packages/release/data/annotation/src/contrib/FDb.InfiniumMethylation.hg18_2.2.0.tar.gz" version('2.2.0', sha256='4a9028ac03c11fffbab731ea750bc7f9b0884fc43c6a8dac6eb2c644e4c79f6f') diff --git a/var/spack/repos/builtin/packages/r-ff/package.py b/var/spack/repos/builtin/packages/r-ff/package.py index 8e0552852fa..92ba43bd006 100644 --- a/var/spack/repos/builtin/packages/r-ff/package.py +++ b/var/spack/repos/builtin/packages/r-ff/package.py @@ -51,7 +51,7 @@ class RFf(RPackage): datasets and quickly modify selection criteria. Further high-performance enhancements can be made available upon request.x """ - homepage = "http://ff.r-forge.r-project.org/" + homepage = "https://ff.r-forge.r-project.org/" url = "https://cloud.r-project.org/src/contrib/ff_2.2-13.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/ff" diff --git a/var/spack/repos/builtin/packages/r-forcats/package.py b/var/spack/repos/builtin/packages/r-forcats/package.py index f4fdea8b4e2..cc3c11e15a2 100644 --- a/var/spack/repos/builtin/packages/r-forcats/package.py +++ b/var/spack/repos/builtin/packages/r-forcats/package.py @@ -14,7 +14,7 @@ class RForcats(RPackage): and tools for modifying factor levels (including collapsing rare levels into other, 'anonymising', and manually 'recoding').""" - homepage = "http://forcats.tidyverse.org/" + homepage = "https://forcats.tidyverse.org/" url = "https://cloud.r-project.org/src/contrib/forcats_0.2.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/forcats" diff --git a/var/spack/repos/builtin/packages/r-fpc/package.py b/var/spack/repos/builtin/packages/r-fpc/package.py index 5ed8efa0252..39faad197b5 100644 --- a/var/spack/repos/builtin/packages/r-fpc/package.py +++ b/var/spack/repos/builtin/packages/r-fpc/package.py @@ -26,7 +26,7 @@ class RFpc(RPackage): Modality diagnosis for Gaussian mixtures. For an overview see package?fpc.""" - homepage = "http://www.homepages.ucl.ac.uk/~ucakche" + homepage = "https://www.homepages.ucl.ac.uk/~ucakche" url = "https://cloud.r-project.org/src/contrib/fpc_2.1-10.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/fpc" diff --git a/var/spack/repos/builtin/packages/r-fs/package.py b/var/spack/repos/builtin/packages/r-fs/package.py index 16efd88e378..8693725cc91 100644 --- a/var/spack/repos/builtin/packages/r-fs/package.py +++ b/var/spack/repos/builtin/packages/r-fs/package.py @@ -12,7 +12,7 @@ class RFs(RPackage): A cross-platform interface to file system operations, built on top of the 'libuv' C library.""" - homepage = "http://fs.r-lib.org/" + homepage = "https://ggplot2.tidyverse.org/" url = "https://cloud.r-project.org/src/contrib/fs_1.3.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/fs" diff --git a/var/spack/repos/builtin/packages/r-ggplot2/package.py b/var/spack/repos/builtin/packages/r-ggplot2/package.py index 7802a5831f4..ec4dbc4c404 100644 --- a/var/spack/repos/builtin/packages/r-ggplot2/package.py +++ b/var/spack/repos/builtin/packages/r-ggplot2/package.py @@ -14,7 +14,7 @@ class RGgplot2(RPackage): aesthetics, what graphical primitives to use, and it takes care of the details.""" - homepage = "http://ggplot2.org/" + homepage = "https://ggplot2.tidyverse.org/" url = "https://cloud.r-project.org/src/contrib/ggplot2_2.2.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/ggplot2" diff --git a/var/spack/repos/builtin/packages/r-ggrepel/package.py b/var/spack/repos/builtin/packages/r-ggrepel/package.py index 1fb6aa1278b..d5b2444febc 100644 --- a/var/spack/repos/builtin/packages/r-ggrepel/package.py +++ b/var/spack/repos/builtin/packages/r-ggrepel/package.py @@ -13,7 +13,7 @@ class RGgrepel(RPackage): text labels. Labels repel away from each other and away from the data points.""" - homepage = "http://github.com/slowkow/ggrepel" + homepage = "https://github.com/slowkow/ggrepel" url = "https://cloud.r-project.org/src/contrib/ggrepel_0.6.5.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/ggrepel" diff --git a/var/spack/repos/builtin/packages/r-ggvis/package.py b/var/spack/repos/builtin/packages/r-ggvis/package.py index 7319358c501..59027695f4e 100644 --- a/var/spack/repos/builtin/packages/r-ggvis/package.py +++ b/var/spack/repos/builtin/packages/r-ggvis/package.py @@ -13,7 +13,7 @@ class RGgvis(RPackage): parts of 'ggplot2', combining them with the reactive framework from 'shiny' and web graphics from 'vega'.""" - homepage = "http://ggvis.rstudio.com/" + homepage = "https://ggvis.rstudio.com/" url = "https://cloud.r-project.org/src/contrib/ggvis_0.4.3.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/ggvis" diff --git a/var/spack/repos/builtin/packages/r-gmodels/package.py b/var/spack/repos/builtin/packages/r-gmodels/package.py index 2244cfdb074..6fc0f8fcd9d 100644 --- a/var/spack/repos/builtin/packages/r-gmodels/package.py +++ b/var/spack/repos/builtin/packages/r-gmodels/package.py @@ -9,7 +9,7 @@ class RGmodels(RPackage): """Various R programming tools for model fitting.""" - homepage = "http://www.sf.net/projects/r-gregmisc" + homepage = "https://www.sf.net/projects/r-gregmisc" url = "https://cloud.r-project.org/src/contrib/gmodels_2.16.2.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/gmodels" diff --git a/var/spack/repos/builtin/packages/r-gparotation/package.py b/var/spack/repos/builtin/packages/r-gparotation/package.py new file mode 100644 index 00000000000..d4364e0b8c2 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-gparotation/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 import * + + +class RGparotation(RPackage): + """Gradient Projection Algorithm Rotation for Factor Analysis. See + ?GPArotation.Intro for more details.""" + + homepage = "https://cloud.r-project.org/package=GPArotation" + url = "https://cloud.r-project.org/src/contrib/GPArotation_2014.11-1.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/GPArotation" + + version('2014.11-1', sha256='351bc15fc8dc6c8ea5045fbba22180d1e68314fc34d267545687748e312e5096') + + depends_on('r@2.0.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-grbase/package.py b/var/spack/repos/builtin/packages/r-grbase/package.py index 05fd96d5a17..0b1a6b9324c 100644 --- a/var/spack/repos/builtin/packages/r-grbase/package.py +++ b/var/spack/repos/builtin/packages/r-grbase/package.py @@ -24,7 +24,7 @@ class RGrbase(RPackage): and 'RBGL' are installed from 'bioconductor'; for installation instructions please refer to the web page given below.""" - homepage = "http://people.math.aau.dk/~sorenh/software/gR/" + homepage = "https://people.math.aau.dk/~sorenh/software/gR/" url = "https://cloud.r-project.org/src/contrib/gRbase_1.8-3.4.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/gRbase" diff --git a/var/spack/repos/builtin/packages/r-gsa/package.py b/var/spack/repos/builtin/packages/r-gsa/package.py index a94a26fb001..a3d524998b1 100644 --- a/var/spack/repos/builtin/packages/r-gsa/package.py +++ b/var/spack/repos/builtin/packages/r-gsa/package.py @@ -9,7 +9,7 @@ class RGsa(RPackage): """Gene Set Analysis.""" - homepage = "http://www-stat.stanford.edu/~tibs/GSA" + homepage = "https://www-stat.stanford.edu/~tibs/GSA" url = "https://cloud.r-project.org/src/contrib/GSA_1.03.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/GSA" diff --git a/var/spack/repos/builtin/packages/r-haven/package.py b/var/spack/repos/builtin/packages/r-haven/package.py index 93b7b4cddef..60a11a7d1c8 100644 --- a/var/spack/repos/builtin/packages/r-haven/package.py +++ b/var/spack/repos/builtin/packages/r-haven/package.py @@ -12,7 +12,7 @@ class RHaven(RPackage): Import foreign statistical formats into R via the embedded 'ReadStat' C library, .""" - homepage = "http://haven.tidyverse.org/" + homepage = "https://haven.tidyverse.org/" url = "https://cloud.r-project.org/src/contrib/haven_1.1.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/haven" diff --git a/var/spack/repos/builtin/packages/r-hexbin/package.py b/var/spack/repos/builtin/packages/r-hexbin/package.py index 85d78bb71d4..9c252d3f568 100644 --- a/var/spack/repos/builtin/packages/r-hexbin/package.py +++ b/var/spack/repos/builtin/packages/r-hexbin/package.py @@ -13,7 +13,7 @@ class RHexbin(RPackage): Binning and plotting functions for hexagonal bins. Now uses and relies on grid graphics and formal (S4) classes and methods.""" - homepage = "http://github.com/edzer/hexbin" + homepage = "https://github.com/edzer/hexbin" url = "https://cloud.r-project.org/src/contrib/hexbin_1.27.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/hexbin" diff --git a/var/spack/repos/builtin/packages/r-hmisc/package.py b/var/spack/repos/builtin/packages/r-hmisc/package.py index 6327f9207a9..0bdfc653a0e 100644 --- a/var/spack/repos/builtin/packages/r-hmisc/package.py +++ b/var/spack/repos/builtin/packages/r-hmisc/package.py @@ -16,7 +16,7 @@ class RHmisc(RPackage): string manipulation, conversion of R objects to LaTeX and html code, and recoding variables.""" - homepage = "http://biostat.mc.vanderbilt.edu/Hmisc" + homepage = "https://cran.r-project.org/web/packages/Hmisc/index.html" url = "https://cloud.r-project.org/src/contrib/Hmisc_4.1-1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/Hmisc" diff --git a/var/spack/repos/builtin/packages/r-igraph/package.py b/var/spack/repos/builtin/packages/r-igraph/package.py index 100ea007a9c..d1bce691b62 100644 --- a/var/spack/repos/builtin/packages/r-igraph/package.py +++ b/var/spack/repos/builtin/packages/r-igraph/package.py @@ -13,7 +13,7 @@ class RIgraph(RPackage): graphs very well and provides functions for generating random and regular graphs, graph visualization, centrality methods and much more.""" - homepage = "http://igraph.org/" + homepage = "https://igraph.org/" url = "https://cloud.r-project.org/src/contrib/igraph_1.0.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/igraph" diff --git a/var/spack/repos/builtin/packages/r-imager/package.py b/var/spack/repos/builtin/packages/r-imager/package.py index 8819f01f051..7fb01450a05 100644 --- a/var/spack/repos/builtin/packages/r-imager/package.py +++ b/var/spack/repos/builtin/packages/r-imager/package.py @@ -16,7 +16,7 @@ class RImager(RPackage): The package wraps 'CImg', , a simple, modern C++ library for image processing.""" - homepage = "http://dahtah.github.io/imager" + homepage = "https://dahtah.github.io/imager" url = "https://cloud.r-project.org/src/contrib/imager_0.41.2.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/imager" diff --git a/var/spack/repos/builtin/packages/r-intervals/package.py b/var/spack/repos/builtin/packages/r-intervals/package.py index 76acf9fee76..f21f94fcfc3 100644 --- a/var/spack/repos/builtin/packages/r-intervals/package.py +++ b/var/spack/repos/builtin/packages/r-intervals/package.py @@ -11,7 +11,7 @@ class RIntervals(RPackage): Tools for working with and comparing sets of points and intervals.""" - homepage = "http://github.com/edzer/intervals" + homepage = "https://github.com/edzer/intervals" url = "https://cloud.r-project.org/src/contrib/intervals_0.15.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/intervals" diff --git a/var/spack/repos/builtin/packages/r-irkernel/package.py b/var/spack/repos/builtin/packages/r-irkernel/package.py index 89e722cf1a9..0a05bd97c9f 100644 --- a/var/spack/repos/builtin/packages/r-irkernel/package.py +++ b/var/spack/repos/builtin/packages/r-irkernel/package.py @@ -13,7 +13,8 @@ class RIrkernel(RPackage): homepage = "https://irkernel.github.io/" git = "https://github.com/IRkernel/IRkernel.git" - version('master', tag='0.7') + version('1.2', commit='d7f868127b876fd490aeff2a75b4254a2898f96c') + version('0.7', commit='9cdd284e03eb42d03fab18544b81f486852d5fe0') depends_on('r-repr', type=('build', 'run')) depends_on('r-irdisplay', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-islr/package.py b/var/spack/repos/builtin/packages/r-islr/package.py new file mode 100644 index 00000000000..e5996a98f6a --- /dev/null +++ b/var/spack/repos/builtin/packages/r-islr/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 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 import * + + +class RIslr(RPackage): + """ISLR: Data for an Introduction to Statistical Learning with Applications + in R + + We provide the collection of data-sets used in the book 'An Introduction to + Statistical Learning with Applications in R'.""" + + homepage = "https://cloud.r-project.org/package=ISLR" + url = "https://cloud.r-project.org/src/contrib/ISLR_1.2.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/ISLR" + + version('1.2', sha256='b00f7a06d2fb646917e629cc2dbdab71c7de3eb17a8a4d06849901a299f1caad') + + depends_on('r@2.10:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-jpeg/package.py b/var/spack/repos/builtin/packages/r-jpeg/package.py index b1006752dc9..d26f331fecc 100644 --- a/var/spack/repos/builtin/packages/r-jpeg/package.py +++ b/var/spack/repos/builtin/packages/r-jpeg/package.py @@ -13,7 +13,7 @@ class RJpeg(RPackage): bitmap images stored in the JPEG format. It can read and write both files and in-memory raw vectors.""" - homepage = "http://www.rforge.net/jpeg/" + homepage = "https://www.rforge.net/jpeg/" url = "https://cloud.r-project.org/src/contrib/jpeg_0.1-8.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/jpeg" diff --git a/var/spack/repos/builtin/packages/r-labelled/package.py b/var/spack/repos/builtin/packages/r-labelled/package.py new file mode 100644 index 00000000000..0ee6d638073 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-labelled/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2021 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 import * + + +class RLabelled(RPackage): + """Work with labelled data imported from 'SPSS' or 'Stata' with 'haven' or + 'foreign'. This package provides useful functions to deal with + "haven_labelled" and "haven_labelled_spss" classes introduced by 'haven' + package.""" + + homepage = "https://cloud.r-project.org/package=labelled" + url = "https://cloud.r-project.org/src/contrib/labelled_2.7.0.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/labelled" + + version('2.7.0', sha256='b1b66b34d3ad682e492fc5bb6431780760576d29dbac40d87bef3c0960054bdb') + + depends_on('r-haven@2.3.1:', type=('build', 'run')) + depends_on('r-dplyr', type=('build', 'run')) + depends_on('r-lifecycle', type=('build', 'run')) + depends_on('r-rlang', type=('build', 'run')) + depends_on('r-vctrs', type=('build', 'run')) + depends_on('r-pillar', type=('build', 'run')) + depends_on('r-tidyr', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-lattice/package.py b/var/spack/repos/builtin/packages/r-lattice/package.py index c4df1c633ef..dbb0ce319d4 100644 --- a/var/spack/repos/builtin/packages/r-lattice/package.py +++ b/var/spack/repos/builtin/packages/r-lattice/package.py @@ -14,7 +14,7 @@ class RLattice(RPackage): sufficient for typical graphics needs, and is also flexible enough to handle most nonstandard requirements. See ?Lattice for an introduction.""" - homepage = "http://lattice.r-forge.r-project.org/" + homepage = "https://lattice.r-forge.r-project.org/" url = "https://cloud.r-project.org/src/contrib/lattice_0.20-35.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/lattice" diff --git a/var/spack/repos/builtin/packages/r-latticeextra/package.py b/var/spack/repos/builtin/packages/r-latticeextra/package.py index 62303a26c25..5a7f7311560 100644 --- a/var/spack/repos/builtin/packages/r-latticeextra/package.py +++ b/var/spack/repos/builtin/packages/r-latticeextra/package.py @@ -14,7 +14,7 @@ class RLatticeextra(RPackage): as well as additional utilities such as panel and axis annotation functions.""" - homepage = "http://latticeextra.r-forge.r-project.org/" + homepage = "https://latticeextra.r-forge.r-project.org/" url = "https://cloud.r-project.org/src/contrib/latticeExtra_0.6-28.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/latticeExtra" diff --git a/var/spack/repos/builtin/packages/r-leaflet/package.py b/var/spack/repos/builtin/packages/r-leaflet/package.py index 810c6e4e8a3..802948d6939 100644 --- a/var/spack/repos/builtin/packages/r-leaflet/package.py +++ b/var/spack/repos/builtin/packages/r-leaflet/package.py @@ -13,7 +13,7 @@ class RLeaflet(RPackage): library and the 'htmlwidgets' package. These maps can be used directly from the R console, from 'RStudio', in Shiny apps and R Markdown documents.""" - homepage = "http://rstudio.github.io/leaflet/" + homepage = "https://rstudio.github.io/leaflet/" url = "https://cloud.r-project.org/src/contrib/leaflet_1.0.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/leaflet" diff --git a/var/spack/repos/builtin/packages/r-lhs/package.py b/var/spack/repos/builtin/packages/r-lhs/package.py index 5345e696d12..dbb209e70d7 100644 --- a/var/spack/repos/builtin/packages/r-lhs/package.py +++ b/var/spack/repos/builtin/packages/r-lhs/package.py @@ -12,7 +12,7 @@ class RLhs(RPackage): Provides a number of methods for creating and augmenting Latin Hypercube Samples.""" - homepage = "http://lhs.r-forge.r-project.org/" + homepage = "https://lhs.r-forge.r-project.org/" url = "https://cloud.r-project.org/src/contrib/lhs_0.16.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/lhs" diff --git a/var/spack/repos/builtin/packages/r-maptools/package.py b/var/spack/repos/builtin/packages/r-maptools/package.py index a749d937534..e5f16b9748a 100644 --- a/var/spack/repos/builtin/packages/r-maptools/package.py +++ b/var/spack/repos/builtin/packages/r-maptools/package.py @@ -15,7 +15,7 @@ class RMaptools(RPackage): exchanging spatial objects with packages such as PBSmapping, spatstat, maps, RArcInfo, Stata tmap, WinBUGS, Mondrian, and others.""" - homepage = "http://r-forge.r-project.org/projects/maptools/" + homepage = "https://r-forge.r-project.org/projects/maptools/" url = "https://cloud.r-project.org/src/contrib/maptools_0.8-39.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/maptools" diff --git a/var/spack/repos/builtin/packages/r-marray/package.py b/var/spack/repos/builtin/packages/r-marray/package.py index 1a994b5d5c9..5151052c19f 100644 --- a/var/spack/repos/builtin/packages/r-marray/package.py +++ b/var/spack/repos/builtin/packages/r-marray/package.py @@ -12,7 +12,7 @@ class RMarray(RPackage): Class definitions for two-color spotted microarray data. Fuctions for data input, diagnostic plots, normalization and quality checking.""" - homepage = "http://www.maths.usyd.edu.au/u/jeany/" + homepage = "https://www.maths.usyd.edu.au/u/jeany/" bioc = "marray" version('1.68.0', commit='67b3080486abdba7dd19fccd7fb731b0e8b5b3f9') diff --git a/var/spack/repos/builtin/packages/r-matrix/package.py b/var/spack/repos/builtin/packages/r-matrix/package.py index 1eaa980c7f5..172e0687d91 100644 --- a/var/spack/repos/builtin/packages/r-matrix/package.py +++ b/var/spack/repos/builtin/packages/r-matrix/package.py @@ -14,7 +14,7 @@ class RMatrix(RPackage): numeric entries. Numerous methods for and operations on these matrices, using 'LAPACK' and 'SuiteSparse' libraries.""" - homepage = "http://matrix.r-forge.r-project.org/" + homepage = "https://matrix.r-forge.r-project.org/" url = "https://cloud.r-project.org/src/contrib/Matrix_1.2-14.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/Matrix" diff --git a/var/spack/repos/builtin/packages/r-matrixmodels/package.py b/var/spack/repos/builtin/packages/r-matrixmodels/package.py index 2962bf5b461..431855d7010 100644 --- a/var/spack/repos/builtin/packages/r-matrixmodels/package.py +++ b/var/spack/repos/builtin/packages/r-matrixmodels/package.py @@ -10,7 +10,7 @@ class RMatrixmodels(RPackage): """Modelling with sparse and dense 'Matrix' matrices, using modular prediction and response module classes.""" - homepage = "http://matrix.r-forge.r-project.org/" + homepage = "https://matrix.r-forge.r-project.org/" url = "https://cloud.r-project.org/src/contrib/MatrixModels_0.4-1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/MatrixModels" diff --git a/var/spack/repos/builtin/packages/r-mcmc/package.py b/var/spack/repos/builtin/packages/r-mcmc/package.py index 5e634290fed..0eabfc1491a 100644 --- a/var/spack/repos/builtin/packages/r-mcmc/package.py +++ b/var/spack/repos/builtin/packages/r-mcmc/package.py @@ -17,7 +17,7 @@ class RMcmc(RPackage): , function morph.metrop), which achieves geometric ergodicity by change of variable.""" - homepage = "http://www.stat.umn.edu/geyer/mcmc/" + homepage = "https://www.stat.umn.edu/geyer/mcmc/" cran = "mcmc" version('0.9-7', sha256='b7c4d3d5f9364c67a4a3cd49296a61c315ad9bd49324a22deccbacb314aa8260') diff --git a/var/spack/repos/builtin/packages/r-minqa/package.py b/var/spack/repos/builtin/packages/r-minqa/package.py index 38d33702a64..19059642c1c 100644 --- a/var/spack/repos/builtin/packages/r-minqa/package.py +++ b/var/spack/repos/builtin/packages/r-minqa/package.py @@ -10,7 +10,7 @@ class RMinqa(RPackage): """Derivative-free optimization by quadratic approximation based on an interface to Fortran implementations by M. J. D. Powell.""" - homepage = "http://optimizer.r-forge.r-project.org/" + homepage = "https://optimizer.r-forge.r-project.org/" url = "https://cloud.r-project.org/src/contrib/minqa_1.2.4.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/minqa" diff --git a/var/spack/repos/builtin/packages/r-multcomp/package.py b/var/spack/repos/builtin/packages/r-multcomp/package.py index 13d0319e1a6..78d71603c5f 100644 --- a/var/spack/repos/builtin/packages/r-multcomp/package.py +++ b/var/spack/repos/builtin/packages/r-multcomp/package.py @@ -15,7 +15,7 @@ class RMultcomp(RPackage): reproducing analyzes presented in the book "Multiple Comparisons Using R" (Bretz, Hothorn, Westfall, 2010, CRC Press).""" - homepage = "http://multcomp.r-forge.r-project.org/" + homepage = "https://multcomp.r-forge.r-project.org/" url = "https://cloud.r-project.org/src/contrib/multcomp_1.4-6.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/multcomp" diff --git a/var/spack/repos/builtin/packages/r-mvtnorm/package.py b/var/spack/repos/builtin/packages/r-mvtnorm/package.py index 510758dcafe..1efdda0e861 100644 --- a/var/spack/repos/builtin/packages/r-mvtnorm/package.py +++ b/var/spack/repos/builtin/packages/r-mvtnorm/package.py @@ -12,7 +12,7 @@ class RMvtnorm(RPackage): Computes multivariate normal and t probabilities, quantiles, random deviates and densities.""" - homepage = "http://mvtnorm.r-forge.r-project.org/" + homepage = "https://mvtnorm.r-forge.r-project.org/" url = "https://cloud.r-project.org/src/contrib/mvtnorm_1.0-6.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/mvtnorm" diff --git a/var/spack/repos/builtin/packages/r-ncdf4/package.py b/var/spack/repos/builtin/packages/r-ncdf4/package.py index 5e00bf866aa..0b5107945dd 100644 --- a/var/spack/repos/builtin/packages/r-ncdf4/package.py +++ b/var/spack/repos/builtin/packages/r-ncdf4/package.py @@ -24,7 +24,7 @@ class RNcdf4(RPackage): packages installed simultaneously without a problem. However, the ncdf package does not provide an interface for netcdf version 4 files.""" - homepage = "http://cirrus.ucsd.edu/~pierce/ncdf" + homepage = "https://cirrus.ucsd.edu/~pierce/ncdf" url = "https://cloud.r-project.org/src/contrib/ncdf4_1.15.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/ncdf4" diff --git a/var/spack/repos/builtin/packages/r-neuralnet/package.py b/var/spack/repos/builtin/packages/r-neuralnet/package.py new file mode 100644 index 00000000000..b02110ff914 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-neuralnet/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2021 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 import * + + +class RNeuralnet(RPackage): + """Training of neural networks using backpropagation, resilient + backpropagation with (Riedmiller, 1994) or without weight backtracking + (Riedmiller and Braun, 1993) or the modified globally convergent version by + Anastasiadis et al. (2005). The package allows flexible settings through + custom-choice of error and activation function. Furthermore, the calculation of + generalized weights (Intrator O & Intrator N, 1993) is implemented.""" + + homepage = "https://cloud.r-project.org/package=neuralnet" + url = "https://cloud.r-project.org/src/contrib/neuralnet_1.44.2.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/neuralnet" + + version('1.44.2', sha256='5f66cd255db633322c0bd158b9320cac5ceff2d56f93e4864a0540f936028826') + + depends_on('r@2.9.0:', type=('build', 'run')) + depends_on('r-mass', type=('build', 'run')) + depends_on('r-deriv', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-nfactors/package.py b/var/spack/repos/builtin/packages/r-nfactors/package.py new file mode 100644 index 00000000000..5f6f1bfc37d --- /dev/null +++ b/var/spack/repos/builtin/packages/r-nfactors/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 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 import * + + +class RNfactors(RPackage): + """nFactors: Parallel Analysis and Other Non Graphical Solutions to the + Cattell Scree Test""" + + homepage = "https://cloud.r-project.org/package=nFactors" + url = "https://cloud.r-project.org/src/contrib/nFactors_2.4.1.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/nFactors" + + version('2.4.1', sha256='028eb4ebd42a29f6a01297d728c7e353cabb37b46701639b4a52f17ba25a3eb6') + + depends_on('r@3.5.0:', type=('build', 'run')) + depends_on('r-lattice', type=('build', 'run')) + depends_on('r-mass', type=('build', 'run')) + depends_on('r-psych', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-nmf/package.py b/var/spack/repos/builtin/packages/r-nmf/package.py index 48fd9f93cc8..d100c8bb6d7 100644 --- a/var/spack/repos/builtin/packages/r-nmf/package.py +++ b/var/spack/repos/builtin/packages/r-nmf/package.py @@ -16,7 +16,7 @@ class RNmf(RPackage): the main interface function provides an easy way of performing parallel computations on multicore machines.""" - homepage = "http://renozao.github.io/NMF" + homepage = "https://renozao.github.io/NMF" url = "https://cloud.r-project.org/src/contrib/NMF_0.21.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/NMF" diff --git a/var/spack/repos/builtin/packages/r-nnet/package.py b/var/spack/repos/builtin/packages/r-nnet/package.py index f6806a46fd6..5f5ad228d31 100644 --- a/var/spack/repos/builtin/packages/r-nnet/package.py +++ b/var/spack/repos/builtin/packages/r-nnet/package.py @@ -12,7 +12,7 @@ class RNnet(RPackage): Software for feed-forward neural networks with a single hidden layer, and for multinomial log-linear models.""" - homepage = "http://www.stats.ox.ac.uk/pub/MASS4/" + homepage = "https://www.stats.ox.ac.uk/pub/MASS4/" url = "https://cloud.r-project.org/src/contrib/nnet_7.3-12.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/nnet" diff --git a/var/spack/repos/builtin/packages/r-partykit/package.py b/var/spack/repos/builtin/packages/r-partykit/package.py index c822d274ece..317c24b107a 100644 --- a/var/spack/repos/builtin/packages/r-partykit/package.py +++ b/var/spack/repos/builtin/packages/r-partykit/package.py @@ -21,7 +21,7 @@ class RPartykit(RPackage): published by Hothorn and Zeileis (2015) .""" - homepage = "http://partykit.r-forge.r-project.org/partykit" + homepage = "https://partykit.r-forge.r-project.org/partykit" url = "https://cloud.r-project.org/src/contrib/partykit_1.1-1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/partykit" diff --git a/var/spack/repos/builtin/packages/r-pbkrtest/package.py b/var/spack/repos/builtin/packages/r-pbkrtest/package.py index 02dd9759d37..9bf5bd4d6d6 100644 --- a/var/spack/repos/builtin/packages/r-pbkrtest/package.py +++ b/var/spack/repos/builtin/packages/r-pbkrtest/package.py @@ -20,7 +20,7 @@ class RPbkrtest(RPackage): paper by Halehoh and Hojsgaard, (2012, ). Please see 'citation("pbkrtest")' for citation details.""" - homepage = "http://people.math.aau.dk/~sorenh/software/pbkrtest/" + homepage = "https://cran.r-project.org/web/packages/pbkrtest/index.html" url = "https://cloud.r-project.org/src/contrib/pbkrtest_0.4-6.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/pbkrtest" @@ -33,7 +33,7 @@ class RPbkrtest(RPackage): depends_on('r@3.0.2:', type=('build', 'run')) depends_on('r@3.2.3:', when='@0.4-6:', type=('build', 'run')) depends_on('r@3.5.0:', when='@0.5-0.1:', type=('build', 'run')) - depends_on('r-lme4@1.1.10:', type=('build', 'run')) + depends_on('r-lme4@1.1-10:', type=('build', 'run')) depends_on('r-broom', when='@0.5-0.1:', type=('build', 'run')) depends_on('r-dplyr', when='@0.5-0.1:', type=('build', 'run')) depends_on('r-magrittr', when='@0.5-0.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-phytools/package.py b/var/spack/repos/builtin/packages/r-phytools/package.py index 27cdca7d509..628be46e2f8 100644 --- a/var/spack/repos/builtin/packages/r-phytools/package.py +++ b/var/spack/repos/builtin/packages/r-phytools/package.py @@ -28,7 +28,7 @@ class RPhytools(RPackage): range of models, and for a wide variety of other manipulations and analyses that phylogenetic biologists might find useful in their research.""" - homepage = "http://github.com/liamrevell/phytools" + homepage = "https://github.com/liamrevell/phytools" url = "https://cloud.r-project.org/src/contrib/phytools_0.6-60.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/phytools/" diff --git a/var/spack/repos/builtin/packages/r-png/package.py b/var/spack/repos/builtin/packages/r-png/package.py index b49ec792821..f7621512dee 100644 --- a/var/spack/repos/builtin/packages/r-png/package.py +++ b/var/spack/repos/builtin/packages/r-png/package.py @@ -11,7 +11,7 @@ class RPng(RPackage): bitmap images stored in the PNG format. It can read and write both files and in-memory raw vectors.""" - homepage = "http://www.rforge.net/png/" + homepage = "https://www.rforge.net/png/" url = "https://cloud.r-project.org/src/contrib/png_0.1-7.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/png" diff --git a/var/spack/repos/builtin/packages/r-prabclus/package.py b/var/spack/repos/builtin/packages/r-prabclus/package.py index be3a4fcc63f..86e8fed0ab6 100644 --- a/var/spack/repos/builtin/packages/r-prabclus/package.py +++ b/var/spack/repos/builtin/packages/r-prabclus/package.py @@ -17,7 +17,7 @@ class RPrabclus(RPackage): between communities. Tests whether various distance-based regressions are equal. Try package?prabclus for on overview.""" - homepage = "http://www.homepages.ucl.ac.uk/~ucakche" + homepage = "https://www.homepages.ucl.ac.uk/~ucakche" url = "https://cloud.r-project.org/src/contrib/prabclus_2.2-6.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/prabclus" diff --git a/var/spack/repos/builtin/packages/r-proc/package.py b/var/spack/repos/builtin/packages/r-proc/package.py index a0255604cfb..be5ce7acb61 100644 --- a/var/spack/repos/builtin/packages/r-proc/package.py +++ b/var/spack/repos/builtin/packages/r-proc/package.py @@ -14,7 +14,7 @@ class RProc(RPackage): compared with statistical tests based on U-statistics or bootstrap. Confidence intervals can be computed for (p)AUC or ROC curves.""" - homepage = "http://expasy.org/tools/pROC/" + homepage = "https://expasy.org/tools/pROC/" url = "https://cloud.r-project.org/src/contrib/pROC_1.17.0.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/pROC" diff --git a/var/spack/repos/builtin/packages/r-proj4/package.py b/var/spack/repos/builtin/packages/r-proj4/package.py index c9e58734eed..2324550d146 100644 --- a/var/spack/repos/builtin/packages/r-proj4/package.py +++ b/var/spack/repos/builtin/packages/r-proj4/package.py @@ -13,7 +13,7 @@ class RProj4(RPackage): the PROJ.4 cartographic projections library. It allows transformation of geographic coordinates from one projection and/or datum to another.""" - homepage = "http://www.rforge.net/proj4/" + homepage = "https://www.rforge.net/proj4/" url = "https://cloud.r-project.org/src/contrib/proj4_1.0-8.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/proj4" diff --git a/var/spack/repos/builtin/packages/r-proto/package.py b/var/spack/repos/builtin/packages/r-proto/package.py index 5f600a5ebb9..5a7d1896e43 100644 --- a/var/spack/repos/builtin/packages/r-proto/package.py +++ b/var/spack/repos/builtin/packages/r-proto/package.py @@ -10,7 +10,7 @@ class RProto(RPackage): """An object oriented system using object-based, also called prototype-based, rather than class-based object oriented ideas.""" - homepage = "http://r-proto.googlecode.com/" + homepage = "https://cran.r-project.org/web/packages/proto/index.html" url = "https://cloud.r-project.org/src/contrib/proto_0.3-10.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/proto" diff --git a/var/spack/repos/builtin/packages/r-psych/package.py b/var/spack/repos/builtin/packages/r-psych/package.py index b7da4998504..113652dc8ac 100644 --- a/var/spack/repos/builtin/packages/r-psych/package.py +++ b/var/spack/repos/builtin/packages/r-psych/package.py @@ -25,7 +25,7 @@ class RPsych(RPackage): research. For more information, see the web page.""" - homepage = "http://personality-project.org/r/psych" + homepage = "https://personality-project.org/r/psych" url = "https://cloud.r-project.org/src/contrib/psych_1.7.8.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/psych" diff --git a/var/spack/repos/builtin/packages/r-purrr/package.py b/var/spack/repos/builtin/packages/r-purrr/package.py index 33c78cb8ac9..e00513915f5 100644 --- a/var/spack/repos/builtin/packages/r-purrr/package.py +++ b/var/spack/repos/builtin/packages/r-purrr/package.py @@ -9,7 +9,7 @@ class RPurrr(RPackage): """A complete and consistent functional programming toolkit for R.""" - homepage = "http://purrr.tidyverse.org/" + homepage = "https://purrr.tidyverse.org/" url = "https://cloud.r-project.org/src/contrib/purrr_0.2.4.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/purrr" diff --git a/var/spack/repos/builtin/packages/r-pvclust/package.py b/var/spack/repos/builtin/packages/r-pvclust/package.py new file mode 100644 index 00000000000..415eb40922f --- /dev/null +++ b/var/spack/repos/builtin/packages/r-pvclust/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2021 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 import * + + +class RPvclust(RPackage): + """pvclust: Hierarchical Clustering with P-Values via Multiscale Bootstrap + Resampling + + An implementation of multiscale bootstrap resampling for assessing the + uncertainty in hierarchical cluster analysis. It provides SI (selective + inference) p-value, AU (approximately unbiased) p-value and BP (bootstrap + probability) value for each cluster in a dendrogram.""" + + homepage = "https://cloud.r-project.org/package=pvclust" + url = "https://cloud.r-project.org/src/contrib/pvclust_2.2-0.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/pvclust" + + version('2.2-0', sha256='7892853bacd413b5a921006429641ad308a344ca171b3081c15e4c522a8b0201') + + depends_on('r@2.10.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-qtl/package.py b/var/spack/repos/builtin/packages/r-qtl/package.py index e4ae155dd20..f0c8323c5a9 100644 --- a/var/spack/repos/builtin/packages/r-qtl/package.py +++ b/var/spack/repos/builtin/packages/r-qtl/package.py @@ -13,7 +13,7 @@ class RQtl(RPackage): trait loci, QTLs) contributing to variation in quantitative traits. Broman et al. (2003) .""" - homepage = "http://rqtl.org" + homepage = "https://rqtl.org" url = "https://cloud.r-project.org/src/contrib/qtl_1.44-9.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/qtl" diff --git a/var/spack/repos/builtin/packages/r-quantmod/package.py b/var/spack/repos/builtin/packages/r-quantmod/package.py index 0bd09828a98..827a470abaa 100644 --- a/var/spack/repos/builtin/packages/r-quantmod/package.py +++ b/var/spack/repos/builtin/packages/r-quantmod/package.py @@ -12,7 +12,7 @@ class RQuantmod(RPackage): Specify, build, trade, and analyse quantitative financial trading strategies.""" - homepage = "http://www.quantmod.com/" + homepage = "https://www.quantmod.com/" url = "https://cloud.r-project.org/src/contrib/quantmod_0.4-5.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/quantmod" diff --git a/var/spack/repos/builtin/packages/r-quickplot/package.py b/var/spack/repos/builtin/packages/r-quickplot/package.py index 4b014288f67..98310e3c935 100644 --- a/var/spack/repos/builtin/packages/r-quickplot/package.py +++ b/var/spack/repos/builtin/packages/r-quickplot/package.py @@ -14,7 +14,7 @@ class RQuickplot(RPackage): for quick visualizations when testing code, with the key benefit that visualizations are updated independently of one another.""" - homepage = "http://quickplot.predictiveecology.org/" + homepage = "https://quickplot.predictiveecology.org/" url = "https://cloud.r-project.org/src/contrib/quickPlot_0.1.6.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/quickPlot" diff --git a/var/spack/repos/builtin/packages/r-rcolorbrewer/package.py b/var/spack/repos/builtin/packages/r-rcolorbrewer/package.py index a5c6008f461..8cc247a6cfa 100644 --- a/var/spack/repos/builtin/packages/r-rcolorbrewer/package.py +++ b/var/spack/repos/builtin/packages/r-rcolorbrewer/package.py @@ -10,7 +10,7 @@ class RRcolorbrewer(RPackage): """Provides color schemes for maps (and other graphics) designed by Cynthia Brewer as described at http://colorbrewer2.org""" - homepage = "http://colorbrewer2.org" + homepage = "https://colorbrewer2.org" url = "https://cloud.r-project.org/src/contrib/RColorBrewer_1.1-2.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/RColorBrewer" diff --git a/var/spack/repos/builtin/packages/r-rcpp/package.py b/var/spack/repos/builtin/packages/r-rcpp/package.py index 2428f88c00a..2c6fca4b332 100644 --- a/var/spack/repos/builtin/packages/r-rcpp/package.py +++ b/var/spack/repos/builtin/packages/r-rcpp/package.py @@ -21,7 +21,7 @@ class RRcpp(RPackage): (2018,; ); see 'citation("Rcpp")' for details.""" - homepage = "http://dirk.eddelbuettel.com/code/rcpp.html" + homepage = "https://dirk.eddelbuettel.com/code/rcpp.html" url = "https://cloud.r-project.org/src/contrib/Rcpp_0.12.13.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/Rcpp" diff --git a/var/spack/repos/builtin/packages/r-rcppeigen/package.py b/var/spack/repos/builtin/packages/r-rcppeigen/package.py index 754a2f0aeab..c538ee8ac3c 100644 --- a/var/spack/repos/builtin/packages/r-rcppeigen/package.py +++ b/var/spack/repos/builtin/packages/r-rcppeigen/package.py @@ -23,7 +23,7 @@ class RRcppeigen(RPackage): 'RcppEigen' (the 'Rcpp' bindings/bridge to 'Eigen') is licensed under the GNU GPL version 2 or later, as is the rest of 'Rcpp'.""" - homepage = "http://eigen.tuxfamily.org/" + homepage = "https://eigen.tuxfamily.org/" url = "https://cloud.r-project.org/src/contrib/RcppEigen_0.3.2.9.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/RcppEigen" diff --git a/var/spack/repos/builtin/packages/r-rcppparallel/package.py b/var/spack/repos/builtin/packages/r-rcppparallel/package.py index 4e84e22021c..3161a89f59a 100644 --- a/var/spack/repos/builtin/packages/r-rcppparallel/package.py +++ b/var/spack/repos/builtin/packages/r-rcppparallel/package.py @@ -14,7 +14,7 @@ class RRcppparallel(RPackage): serial "for" loop into a parallel one and the 'parallelReduce()' function can be used for accumulating aggregate or other values.""" - homepage = "http://rcppcore.github.io/RcppParallel" + homepage = "https://rcppcore.github.io/RcppParallel" url = "https://cloud.r-project.org/src/contrib/RcppParallel_4.4.3.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/RcppParallel" diff --git a/var/spack/repos/builtin/packages/r-readxl/package.py b/var/spack/repos/builtin/packages/r-readxl/package.py index 609d0ed7bff..e75938d85a0 100644 --- a/var/spack/repos/builtin/packages/r-readxl/package.py +++ b/var/spack/repos/builtin/packages/r-readxl/package.py @@ -13,7 +13,7 @@ class RReadxl(RPackage): . Works on Windows, Mac and Linux without external dependencies.""" - homepage = "http://readxl.tidyverse.org/" + homepage = "https://readxl.tidyverse.org/" url = "https://cloud.r-project.org/src/contrib/readxl_1.1.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/readxl" diff --git a/var/spack/repos/builtin/packages/r-reams/package.py b/var/spack/repos/builtin/packages/r-reams/package.py new file mode 100644 index 00000000000..6cf6323dbb2 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-reams/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 import * + + +class RReams(RPackage): + """reams: Resampling-Based Adaptive Model Selection""" + + homepage = "https://cloud.r-project.org/package=reams" + url = "https://cloud.r-project.org/src/contrib/reams_0.1.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/reams" + + version('0.1', sha256='ac24ea875b24bd18152afd87538b1f807f442cf2bd1c6ac1a365cf543c88181e') + + depends_on('r@2.9.0:', type=('build', 'run')) + depends_on('r-leaps', type=('build', 'run')) + depends_on('r-mgcv', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-rgenoud/package.py b/var/spack/repos/builtin/packages/r-rgenoud/package.py index 8066c065abe..cdc9c484120 100644 --- a/var/spack/repos/builtin/packages/r-rgenoud/package.py +++ b/var/spack/repos/builtin/packages/r-rgenoud/package.py @@ -9,7 +9,7 @@ class RRgenoud(RPackage): """A genetic algorithm plus derivative optimizer.""" - homepage = "http://sekhon.berkeley.edu/rgenoud/" + homepage = "https://sekhon.berkeley.edu/rgenoud/" url = "https://cloud.r-project.org/src/contrib/rgenoud_5.8-1.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/rgenoud" diff --git a/var/spack/repos/builtin/packages/r-rgexf/package.py b/var/spack/repos/builtin/packages/r-rgexf/package.py index f3365a13d34..068732b27b4 100644 --- a/var/spack/repos/builtin/packages/r-rgexf/package.py +++ b/var/spack/repos/builtin/packages/r-rgexf/package.py @@ -18,7 +18,7 @@ class RRgexf(RPackage): through "sigmajs" (a javascript library) and interact with the igraph package.""" - homepage = "http://bitbucket.org/gvegayon/rgexf" + homepage = "https://bitbucket.org/gvegayon/rgexf" url = "https://cloud.r-project.org/src/contrib/rgexf_0.15.3.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/rgexf" diff --git a/var/spack/repos/builtin/packages/r-rinside/package.py b/var/spack/repos/builtin/packages/r-rinside/package.py index d9c39404799..09dd72bef09 100644 --- a/var/spack/repos/builtin/packages/r-rinside/package.py +++ b/var/spack/repos/builtin/packages/r-rinside/package.py @@ -24,7 +24,7 @@ class RRinside(RPackage): automatically). Doxygen-generated documentation of the C++ classes is available at the 'RInside' website as well.""" - homepage = "http://dirk.eddelbuettel.com/code/rinside.html" + homepage = "https://dirk.eddelbuettel.com/code/rinside.html" url = "https://cloud.r-project.org/src/contrib/RInside_0.2.15.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/RInside" diff --git a/var/spack/repos/builtin/packages/r-rjava/package.py b/var/spack/repos/builtin/packages/r-rjava/package.py index 073e1a7e730..250fa15ae82 100644 --- a/var/spack/repos/builtin/packages/r-rjava/package.py +++ b/var/spack/repos/builtin/packages/r-rjava/package.py @@ -12,7 +12,7 @@ class RRjava(RPackage): Low-level interface to Java VM very much like .C/.Call and friends. Allows creation of objects, calling methods and accessing fields.""" - homepage = "http://www.rforge.net/rJava/" + homepage = "https://www.rforge.net/rJava/" url = "https://cloud.r-project.org/src/contrib/rJava_0.9-8.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/rJava" diff --git a/var/spack/repos/builtin/packages/r-rmarkdown/package.py b/var/spack/repos/builtin/packages/r-rmarkdown/package.py index 9fdff82f71d..7d27f568062 100644 --- a/var/spack/repos/builtin/packages/r-rmarkdown/package.py +++ b/var/spack/repos/builtin/packages/r-rmarkdown/package.py @@ -12,7 +12,7 @@ class RRmarkdown(RPackage): Convert R Markdown documents into a variety of formats.""" - homepage = "http://rmarkdown.rstudio.com/" + homepage = "https://rmarkdown.rstudio.com/" cran = "rmarkdown" version('2.9', sha256='6ce5af8b9a7c282619f74d3999d27ec4de12d3f93cde8fd12cc4c19f02ea8668') diff --git a/var/spack/repos/builtin/packages/r-rmpfr/package.py b/var/spack/repos/builtin/packages/r-rmpfr/package.py index 7741017a45c..e0028a11d25 100644 --- a/var/spack/repos/builtin/packages/r-rmpfr/package.py +++ b/var/spack/repos/builtin/packages/r-rmpfr/package.py @@ -15,7 +15,7 @@ class RRmpfr(RPackage): Reliable) Library which itself is based on the GMP (GNU Multiple Precision) Library.""" - homepage = "http://rmpfr.r-forge.r-project.org" + homepage = "https://rmpfr.r-forge.r-project.org" url = "https://cloud.r-project.org/src/contrib/Rmpfr_0.6-1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/Rmpfr" diff --git a/var/spack/repos/builtin/packages/r-rmpi/package.py b/var/spack/repos/builtin/packages/r-rmpi/package.py index a193105e60c..f0f8924fc88 100644 --- a/var/spack/repos/builtin/packages/r-rmpi/package.py +++ b/var/spack/repos/builtin/packages/r-rmpi/package.py @@ -10,7 +10,7 @@ class RRmpi(RPackage): """An interface (wrapper) to MPI APIs. It also provides interactive R manager and worker environment.""" - homepage = "http://www.stats.uwo.ca/faculty/yu/Rmpi" + homepage = "https://cran.r-project.org/web/packages/Rmpi/index.html" url = "https://cloud.r-project.org/src/contrib/Rmpi_0.6-6.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/Rmpi" diff --git a/var/spack/repos/builtin/packages/r-rmutil/package.py b/var/spack/repos/builtin/packages/r-rmutil/package.py index 3770e99ff62..34c73292800 100644 --- a/var/spack/repos/builtin/packages/r-rmutil/package.py +++ b/var/spack/repos/builtin/packages/r-rmutil/package.py @@ -14,7 +14,7 @@ class RRmutil(RPackage): 'gnlm', 'stable', 'growth', 'repeated', and 'event' (available at ).""" - homepage = "http://www.commanster.eu/rcode.html" + homepage = "https://www.commanster.eu/rcode.html" url = "https://cloud.r-project.org/src/contrib/rmutil_1.1.3.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/rmutil" diff --git a/var/spack/repos/builtin/packages/r-rpostgresql/package.py b/var/spack/repos/builtin/packages/r-rpostgresql/package.py index 78446c89775..437748d3532 100644 --- a/var/spack/repos/builtin/packages/r-rpostgresql/package.py +++ b/var/spack/repos/builtin/packages/r-rpostgresql/package.py @@ -17,7 +17,7 @@ class RRpostgresql(RPackage): issue tracking system for the package are available at Google Code at https://code.google.com/p/rpostgresql/.""" - homepage = "https://code.google.com/p/rpostgresql/" + homepage = "https://cran.r-project.org/web/packages/RPostgreSQL/index.html" url = "https://cloud.r-project.org/src/contrib/RPostgreSQL_0.4-1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/RPostgreSQL" diff --git a/var/spack/repos/builtin/packages/r-rrblup/package.py b/var/spack/repos/builtin/packages/r-rrblup/package.py index 0740b6a3491..e3b51cd5749 100644 --- a/var/spack/repos/builtin/packages/r-rrblup/package.py +++ b/var/spack/repos/builtin/packages/r-rrblup/package.py @@ -15,7 +15,7 @@ class RRrblup(RPackage): calculated based on an additive relationship matrix or a Gaussian kernel.""" - homepage = "http://potatobreeding.cals.wisc.edu/software" + homepage = "https://potatobreeding.cals.wisc.edu/software" url = "https://cloud.r-project.org/src/contrib/rrBLUP_4.6.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/rrBLUP" diff --git a/var/spack/repos/builtin/packages/r-rsnns/package.py b/var/spack/repos/builtin/packages/r-rsnns/package.py index a408235746a..c9522c30387 100644 --- a/var/spack/repos/builtin/packages/r-rsnns/package.py +++ b/var/spack/repos/builtin/packages/r-rsnns/package.py @@ -18,7 +18,7 @@ class RRsnns(RPackage): high-level interface, so that the most common neural network topologies and learning algorithms integrate seamlessly into R.""" - homepage = "http://sci2s.ugr.es/dicits/software/RSNNS" + homepage = "https://sci2s.ugr.es/dicits/software/RSNNS" url = "https://cloud.r-project.org/src/contrib/RSNNS_0.4-7.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/RSNNS" diff --git a/var/spack/repos/builtin/packages/r-rstan/package.py b/var/spack/repos/builtin/packages/r-rstan/package.py index e281d657601..9b46ab6fb75 100644 --- a/var/spack/repos/builtin/packages/r-rstan/package.py +++ b/var/spack/repos/builtin/packages/r-rstan/package.py @@ -19,7 +19,7 @@ class RRstan(RPackage): quickly and accurately evaluate gradients without burdening the user with the need to derive the partial derivatives.""" - homepage = "http://mc-stan.org/" + homepage = "https://mc-stan.org/users/interfaces/rstan" url = "https://cloud.r-project.org/src/contrib/rstan_2.10.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/rstan" diff --git a/var/spack/repos/builtin/packages/r-rstantools/package.py b/var/spack/repos/builtin/packages/r-rstantools/package.py index 8bf4619f757..cae466b4878 100644 --- a/var/spack/repos/builtin/packages/r-rstantools/package.py +++ b/var/spack/repos/builtin/packages/r-rstantools/package.py @@ -15,7 +15,7 @@ class RRstantools(RPackage): 'Stan'-based R packages, and vignettes with recommendations for developers.""" - homepage = "http://discourse.mc-stan.org/" + homepage = "https://discourse.mc-stan.org/" url = "https://cloud.r-project.org/src/contrib/rstantools_1.5.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/rstantools" diff --git a/var/spack/repos/builtin/packages/r-rviennacl/package.py b/var/spack/repos/builtin/packages/r-rviennacl/package.py new file mode 100644 index 00000000000..79bc9086259 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-rviennacl/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2021 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 import * + + +class RRviennacl(RPackage): + """RViennaCL: 'ViennaCL' C++ Header Files""" + + homepage = "https://cloud.r-project.org/package=RViennaCL" + url = "https://cloud.r-project.org/src/contrib/RViennaCL_1.7.1.8.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/RViennaCL" + + version('1.7.1.8', sha256='adcc74537337582153d5b11d281e391e91a7f3afae116aa1b9a034ffd11b0252') diff --git a/var/spack/repos/builtin/packages/r-rzmq/package.py b/var/spack/repos/builtin/packages/r-rzmq/package.py index 366c32c2fde..f2c8657a42d 100644 --- a/var/spack/repos/builtin/packages/r-rzmq/package.py +++ b/var/spack/repos/builtin/packages/r-rzmq/package.py @@ -13,7 +13,7 @@ class RRzmq(RPackage): Interface to the 'ZeroMQ' lightweight messaging kernel (see for more information).""" - homepage = "http://github.com/armstrtw/rzmq" + homepage = "https://github.com/armstrtw/rzmq" url = "https://cloud.r-project.org/src/contrib/rzmq_0.7.7.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/rzmq" diff --git a/var/spack/repos/builtin/packages/r-seqinr/package.py b/var/spack/repos/builtin/packages/r-seqinr/package.py index b95ce812b8d..576fc1dab73 100644 --- a/var/spack/repos/builtin/packages/r-seqinr/package.py +++ b/var/spack/repos/builtin/packages/r-seqinr/package.py @@ -14,7 +14,7 @@ class RSeqinr(RPackage): management under the ACNUC system described in Gouy, M. et al. (1984) Nucleic Acids Res. 12:121-127 .""" - homepage = "http://seqinr.r-forge.r-project.org" + homepage = "https://seqinr.r-forge.r-project.org" url = "https://cloud.r-project.org/src/contrib/seqinr_3.3-6.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/seqinr" diff --git a/var/spack/repos/builtin/packages/r-seurat/package.py b/var/spack/repos/builtin/packages/r-seurat/package.py index 07e1af1dd31..6c8986ebc4c 100644 --- a/var/spack/repos/builtin/packages/r-seurat/package.py +++ b/var/spack/repos/builtin/packages/r-seurat/package.py @@ -17,7 +17,7 @@ class RSeurat(RPackage): R, et al (2015) , and Stuart T, Butler A, et al (2019) for more details.""" - homepage = "http://satijalab.org/seurat/" + homepage = "https://satijalab.org/seurat/" url = "https://cloud.r-project.org/src/contrib/Seurat_2.1.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/Seurat" diff --git a/var/spack/repos/builtin/packages/r-shiny/package.py b/var/spack/repos/builtin/packages/r-shiny/package.py index 8f83e78f133..3b157c43ef2 100644 --- a/var/spack/repos/builtin/packages/r-shiny/package.py +++ b/var/spack/repos/builtin/packages/r-shiny/package.py @@ -14,7 +14,7 @@ class RShiny(RPackage): pre-built widgets make it possible to build beautiful, responsive, and powerful applications with minimal effort.""" - homepage = "http://shiny.rstudio.com/" + homepage = "https://shiny.rstudio.com/" url = "https://cloud.r-project.org/src/contrib/shiny_1.0.5.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/shiny" diff --git a/var/spack/repos/builtin/packages/r-shinystan/package.py b/var/spack/repos/builtin/packages/r-shinystan/package.py index 90fec54a4ec..57167cf0e22 100644 --- a/var/spack/repos/builtin/packages/r-shinystan/package.py +++ b/var/spack/repos/builtin/packages/r-shinystan/package.py @@ -17,7 +17,7 @@ class RShinystan(RPackage): programming language (and has extended functionality for 'Stan' models fit using the 'rstan' and 'rstanarm' packages).""" - homepage = "http://mc-stan.org/" + homepage = "https://mc-stan.org/" cran = "shinystan" version('2.5.0', sha256='45f9c552a31035c5de8658bb9e5d72da7ec1f88fbddb520d15fe701c677154a1') diff --git a/var/spack/repos/builtin/packages/r-smoof/package.py b/var/spack/repos/builtin/packages/r-smoof/package.py index 403f1cf0b95..39ec3041e06 100644 --- a/var/spack/repos/builtin/packages/r-smoof/package.py +++ b/var/spack/repos/builtin/packages/r-smoof/package.py @@ -15,7 +15,7 @@ class RSmoof(RPackage): convenient functions to generate, plot and work with objective functions.""" - homepage = "http://github.com/jakobbossek/smoof" + homepage = "https://github.com/jakobbossek/smoof" url = "https://cloud.r-project.org/src/contrib/smoof_1.5.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/smoof" diff --git a/var/spack/repos/builtin/packages/r-spacetime/package.py b/var/spack/repos/builtin/packages/r-spacetime/package.py index ed5298a8eb2..e5c86d97395 100644 --- a/var/spack/repos/builtin/packages/r-spacetime/package.py +++ b/var/spack/repos/builtin/packages/r-spacetime/package.py @@ -16,7 +16,7 @@ class RSpacetime(RPackage): subsetting, as well as for spatial/temporal/spatio-temporal matching or aggregation, retrieving coordinates, print, summary, etc.""" - homepage = "http://github.com/edzer/spacetime" + homepage = "https://github.com/edzer/spacetime" url = "https://cloud.r-project.org/src/contrib/spacetime_1.2-2.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/spacetime" diff --git a/var/spack/repos/builtin/packages/r-spades-addins/package.py b/var/spack/repos/builtin/packages/r-spades-addins/package.py index 6bb7fc61092..be41444c3bc 100644 --- a/var/spack/repos/builtin/packages/r-spades-addins/package.py +++ b/var/spack/repos/builtin/packages/r-spades-addins/package.py @@ -12,7 +12,7 @@ class RSpadesAddins(RPackage): Provides 'RStudio' addins for 'SpaDES' packages and 'SpaDES' module development. See '?SpaDES.addins' for an overview of the tools provided.""" - homepage = "http://spades-addins.predictiveecology.org/" + homepage = "https://spades-addins.predictiveecology.org/" url = "https://cloud.r-project.org/src/contrib/SpaDES.addins_0.1.2.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/SpaDES.addins" diff --git a/var/spack/repos/builtin/packages/r-spades/package.py b/var/spack/repos/builtin/packages/r-spades/package.py index 0d498a127ac..3ce072f5fd7 100644 --- a/var/spack/repos/builtin/packages/r-spades/package.py +++ b/var/spack/repos/builtin/packages/r-spades/package.py @@ -13,7 +13,7 @@ class RSpades(RPackage): focus on spatially explicit models. These include raster-based, event-based, and agent-based models.""" - homepage = "http://spades.predictiveecology.org/" + homepage = "https://spades.predictiveecology.org/" url = "https://cloud.r-project.org/src/contrib/SpaDES_2.0.6.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/SpaDES" diff --git a/var/spack/repos/builtin/packages/r-splitstackshape/package.py b/var/spack/repos/builtin/packages/r-splitstackshape/package.py index fdd7f47fe57..0d103437d46 100644 --- a/var/spack/repos/builtin/packages/r-splitstackshape/package.py +++ b/var/spack/repos/builtin/packages/r-splitstackshape/package.py @@ -18,7 +18,7 @@ class RSplitstackshape(RPackage): and which melt and dcast from reshape2 do not easily handle. """ - homepage = "http://github.com/mrdwab/splitstackshape" + homepage = "https://github.com/mrdwab/splitstackshape" url = "https://cloud.r-project.org/src/contrib/splitstackshape_1.4.4.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/splitstackshape" diff --git a/var/spack/repos/builtin/packages/r-squarem/package.py b/var/spack/repos/builtin/packages/r-squarem/package.py index 90ea3b334e5..09a538fa7d0 100644 --- a/var/spack/repos/builtin/packages/r-squarem/package.py +++ b/var/spack/repos/builtin/packages/r-squarem/package.py @@ -17,7 +17,7 @@ class RSquarem(RPackage): vignette("SQUAREM"). Refer to the J Stat Software article: .""" - homepage = "http://www.jhsph.edu/agingandhealth/People/Faculty_personal_pages/Varadhan.html" + homepage = "https://www.jhsph.edu/agingandhealth/People/Faculty_personal_pages/Varadhan.html" url = "https://cloud.r-project.org/src/contrib/SQUAREM_2017.10-1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/SQUAREM" diff --git a/var/spack/repos/builtin/packages/r-stabledist/package.py b/var/spack/repos/builtin/packages/r-stabledist/package.py index 7a7cd433b64..469403cbf7c 100644 --- a/var/spack/repos/builtin/packages/r-stabledist/package.py +++ b/var/spack/repos/builtin/packages/r-stabledist/package.py @@ -11,7 +11,7 @@ class RStabledist(RPackage): generation for (skew) stable distributions, using the parametrizations of Nolan.""" - homepage = "http://www.rmetrics.org/" + homepage = "https://www.rmetrics.org/" url = "https://cloud.r-project.org/src/contrib/stabledist_0.7-1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/stabledist" diff --git a/var/spack/repos/builtin/packages/r-stanheaders/package.py b/var/spack/repos/builtin/packages/r-stanheaders/package.py index 23728ee9444..b5a38d89c2c 100644 --- a/var/spack/repos/builtin/packages/r-stanheaders/package.py +++ b/var/spack/repos/builtin/packages/r-stanheaders/package.py @@ -25,7 +25,7 @@ class RStanheaders(RPackage): 'rstan' package provides user-facing R functions to parse, compile, test, estimate, and analyze Stan models.""" - homepage = "http://mc-stan.org/" + homepage = "https://mc-stan.org/" url = "https://cloud.r-project.org/src/contrib/StanHeaders_2.10.0-2.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/StanHeaders" diff --git a/var/spack/repos/builtin/packages/r-statnet-common/package.py b/var/spack/repos/builtin/packages/r-statnet-common/package.py index a95216cb43d..900a9b5f130 100644 --- a/var/spack/repos/builtin/packages/r-statnet-common/package.py +++ b/var/spack/repos/builtin/packages/r-statnet-common/package.py @@ -12,7 +12,7 @@ class RStatnetCommon(RPackage): Non-statistical utilities used by the software developed by the Statnet Project. They may also be of use to others.""" - homepage = "http://www.statnet.org" + homepage = "https://www.statnet.org" url = "https://cloud.r-project.org/src/contrib/statnet.common_3.3.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/statnet.common" diff --git a/var/spack/repos/builtin/packages/r-survey/package.py b/var/spack/repos/builtin/packages/r-survey/package.py index f15be5cfbee..adf6b693c80 100644 --- a/var/spack/repos/builtin/packages/r-survey/package.py +++ b/var/spack/repos/builtin/packages/r-survey/package.py @@ -17,7 +17,7 @@ class RSurvey(RPackage): calibration, and raking. Two-phase subsampling designs. Graphics. PPS sampling without replacement. Principal components, factor analysis.""" - homepage = "http://r-survey.r-forge.r-project.org/survey/" + homepage = "https://r-survey.r-forge.r-project.org/survey/" url = "https://cloud.r-project.org/src/contrib/survey_3.30-3.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/survey" diff --git a/var/spack/repos/builtin/packages/r-threejs/package.py b/var/spack/repos/builtin/packages/r-threejs/package.py index b1b7d52b1dd..b6efcb3082f 100644 --- a/var/spack/repos/builtin/packages/r-threejs/package.py +++ b/var/spack/repos/builtin/packages/r-threejs/package.py @@ -12,7 +12,7 @@ class RThreejs(RPackage): Create interactive 3D scatter plots, network plots, and globes using the 'three.js' visualization library ("http://threejs.org").""" - homepage = "http://bwlewis.github.io/rthreejs" + homepage = "https://bwlewis.github.io/rthreejs" url = "https://cloud.r-project.org/src/contrib/threejs_0.2.2.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/threejs" diff --git a/var/spack/repos/builtin/packages/r-tidyverse/package.py b/var/spack/repos/builtin/packages/r-tidyverse/package.py index 53b74caf0d0..b09b4b19f4c 100644 --- a/var/spack/repos/builtin/packages/r-tidyverse/package.py +++ b/var/spack/repos/builtin/packages/r-tidyverse/package.py @@ -15,7 +15,7 @@ class RTidyverse(RPackage): in a single step. Learn more about the 'tidyverse' at .""" - homepage = "http://tidyverse.tidyverse.org/" + homepage = "https://tidyverse.tidyverse.org/" url = "https://cloud.r-project.org/src/contrib/tidyverse_1.2.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/tidyverse" diff --git a/var/spack/repos/builtin/packages/r-tiff/package.py b/var/spack/repos/builtin/packages/r-tiff/package.py index ea2ef4b4c0a..711960574f1 100644 --- a/var/spack/repos/builtin/packages/r-tiff/package.py +++ b/var/spack/repos/builtin/packages/r-tiff/package.py @@ -13,7 +13,7 @@ class RTiff(RPackage): bitmap images stored in the TIFF format. It can read and write both files and in-memory raw vectors.""" - homepage = "http://www.rforge.net/tiff/" + homepage = "https://www.rforge.net/tiff/" url = "https://cloud.r-project.org/src/contrib/tiff_0.1-5.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/tiff" diff --git a/var/spack/repos/builtin/packages/r-trimcluster/package.py b/var/spack/repos/builtin/packages/r-trimcluster/package.py index 17f1e4600aa..c50636e6fd2 100644 --- a/var/spack/repos/builtin/packages/r-trimcluster/package.py +++ b/var/spack/repos/builtin/packages/r-trimcluster/package.py @@ -12,7 +12,7 @@ class RTrimcluster(RPackage): Trimmed k-means clustering. The method is described in Cuesta-Albertos et al. (1997) .""" - homepage = "http://www.homepages.ucl.ac.uk/~ucakche" + homepage = "https://www.homepages.ucl.ac.uk/~ucakche" url = "https://cloud.r-project.org/src/contrib/trimcluster_0.1-2.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/trimcluster" diff --git a/var/spack/repos/builtin/packages/r-trust/package.py b/var/spack/repos/builtin/packages/r-trust/package.py index 66662d89614..18efac1fc74 100644 --- a/var/spack/repos/builtin/packages/r-trust/package.py +++ b/var/spack/repos/builtin/packages/r-trust/package.py @@ -12,7 +12,7 @@ class RTrust(RPackage): Does local optimization using two derivatives and trust regions. Guaranteed to converge to local minimum of objective function.""" - homepage = "http://www.stat.umn.edu/geyer/trust" + homepage = "https://www.stat.umn.edu/geyer/trust" url = "https://cloud.r-project.org/src/contrib/trust_0.1-7.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/trust" diff --git a/var/spack/repos/builtin/packages/r-txdb-hsapiens-ucsc-hg18-knowngene/package.py b/var/spack/repos/builtin/packages/r-txdb-hsapiens-ucsc-hg18-knowngene/package.py index ddb96a7c6b0..f16d663f395 100644 --- a/var/spack/repos/builtin/packages/r-txdb-hsapiens-ucsc-hg18-knowngene/package.py +++ b/var/spack/repos/builtin/packages/r-txdb-hsapiens-ucsc-hg18-knowngene/package.py @@ -13,7 +13,7 @@ class RTxdbHsapiensUcscHg18Knowngene(RPackage): TxDb objects""" # This is a bioconductor package but ther is no available git repo - homepage = "http://bioconductor.org/packages/release/data/annotation/html/TxDb.Hsapiens.UCSC.hg18.knownGene.html" + homepage = "https://bioconductor.org/packages/release/data/annotation/html/TxDb.Hsapiens.UCSC.hg18.knownGene.html" url = "http://bioconductor.org/packages/release/data/annotation/src/contrib/TxDb.Hsapiens.UCSC.hg18.knownGene_3.2.2.tar.gz" version('3.2.2', sha256='bc9ca40b4eab87f5ca64a4b876d42502b9b8e9f5983d745bfe0ee349d97b69fa') diff --git a/var/spack/repos/builtin/packages/r-upsetr/package.py b/var/spack/repos/builtin/packages/r-upsetr/package.py index cd43237262c..77a4607ae4e 100644 --- a/var/spack/repos/builtin/packages/r-upsetr/package.py +++ b/var/spack/repos/builtin/packages/r-upsetr/package.py @@ -10,7 +10,7 @@ class RUpsetr(RPackage): """UpSetR: A More Scalable Alternative to Venn and Euler Diagrams forVisualizing Intersecting Sets""" - homepage = "http://github.com/hms-dbmi/UpSetR" + homepage = "https://github.com/hms-dbmi/UpSetR" url = "https://cloud.r-project.org/src/contrib/UpSetR_1.4.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/UpSetR" diff --git a/var/spack/repos/builtin/packages/r-uuid/package.py b/var/spack/repos/builtin/packages/r-uuid/package.py index db4c8c1ad6e..3d47bc73a4e 100644 --- a/var/spack/repos/builtin/packages/r-uuid/package.py +++ b/var/spack/repos/builtin/packages/r-uuid/package.py @@ -13,7 +13,7 @@ class RUuid(RPackage): Tools for generating and handling of UUIDs (Universally Unique Identifiers).""" - homepage = "http://www.rforge.net/uuid" + homepage = "https://www.rforge.net/uuid" url = "https://cloud.r-project.org/src/contrib/uuid_0.1-2.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/uuid" diff --git a/var/spack/repos/builtin/packages/r-varselrf/package.py b/var/spack/repos/builtin/packages/r-varselrf/package.py index 57a23d6a060..258bdb73528 100644 --- a/var/spack/repos/builtin/packages/r-varselrf/package.py +++ b/var/spack/repos/builtin/packages/r-varselrf/package.py @@ -14,7 +14,7 @@ class RVarselrf(RPackage): . Main applications in high-dimensional data (e.g., microarray data, and other genomics and proteomics applications).""" - homepage = "http://ligarto.org/rdiaz/Software/Software.html" + homepage = "https://ligarto.org/rdiaz/Software/Software.html" url = "https://cloud.r-project.org/src/contrib/varSelRF_0.7-8.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/varSelRF" diff --git a/var/spack/repos/builtin/packages/r-whisker/package.py b/var/spack/repos/builtin/packages/r-whisker/package.py index 1c95b173154..0eb07e19d12 100644 --- a/var/spack/repos/builtin/packages/r-whisker/package.py +++ b/var/spack/repos/builtin/packages/r-whisker/package.py @@ -11,7 +11,7 @@ class RWhisker(RPackage): Implements 'Mustache' logicless templating.""" - homepage = "http://github.com/edwindj/whisker" + homepage = "https://github.com/edwindj/whisker" url = "https://cloud.r-project.org/src/contrib/whisker_0.3-2.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/whisker" diff --git a/var/spack/repos/builtin/packages/r-withr/package.py b/var/spack/repos/builtin/packages/r-withr/package.py index 657572bb59c..50ba94c8a9b 100644 --- a/var/spack/repos/builtin/packages/r-withr/package.py +++ b/var/spack/repos/builtin/packages/r-withr/package.py @@ -14,7 +14,7 @@ class RWithr(RPackage): 'devtools' package, this provides a simple package with limited dependencies to provide access to these functions.""" - homepage = "http://github.com/jimhester/withr" + homepage = "https://github.com/jimhester/withr" url = "https://cloud.r-project.org/src/contrib/withr_1.0.2.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/withr" diff --git a/var/spack/repos/builtin/packages/r-xlconnect/package.py b/var/spack/repos/builtin/packages/r-xlconnect/package.py index def05e88dfa..206eb4420ec 100644 --- a/var/spack/repos/builtin/packages/r-xlconnect/package.py +++ b/var/spack/repos/builtin/packages/r-xlconnect/package.py @@ -12,7 +12,7 @@ class RXlconnect(RPackage): Provides comprehensive functionality to read, write and format Excel data.""" - homepage = "http://miraisolutions.wordpress.com/" + homepage = "https://miraisolutions.wordpress.com/" url = "https://cloud.r-project.org/src/contrib/XLConnect_0.2-11.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/XLConnect" diff --git a/var/spack/repos/builtin/packages/r-xlconnectjars/package.py b/var/spack/repos/builtin/packages/r-xlconnectjars/package.py index c38bfa4f1a6..0ec679d9015 100644 --- a/var/spack/repos/builtin/packages/r-xlconnectjars/package.py +++ b/var/spack/repos/builtin/packages/r-xlconnectjars/package.py @@ -9,7 +9,7 @@ class RXlconnectjars(RPackage): """Provides external JAR dependencies for the XLConnect package.""" - homepage = "http://miraisolutions.wordpress.com/" + homepage = "https://miraisolutions.wordpress.com/" url = "https://cloud.r-project.org/src/contrib/XLConnectJars_0.2-9.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/XLConnectJars" diff --git a/var/spack/repos/builtin/packages/r-xlsx/package.py b/var/spack/repos/builtin/packages/r-xlsx/package.py index 6c37e40212f..31983696f1c 100644 --- a/var/spack/repos/builtin/packages/r-xlsx/package.py +++ b/var/spack/repos/builtin/packages/r-xlsx/package.py @@ -12,7 +12,7 @@ class RXlsx(RPackage): Provide R functions to read/write/format Excel 2007 and Excel 97/2000/XP/2003 file formats.""" - homepage = "http://code.google.com/p/rexcel/" + homepage = "https://github.com/colearendt/xlsx" url = "https://cloud.r-project.org/src/contrib/xlsx_0.6.1.tar.gz" listurl = "https://cloud.r-project.org/src/contrib/Archive/xlsx" diff --git a/var/spack/repos/builtin/packages/r-xtable/package.py b/var/spack/repos/builtin/packages/r-xtable/package.py index 16cf26086c0..69cb6371d4f 100644 --- a/var/spack/repos/builtin/packages/r-xtable/package.py +++ b/var/spack/repos/builtin/packages/r-xtable/package.py @@ -9,7 +9,7 @@ class RXtable(RPackage): """Coerce data to LaTeX and HTML tables.""" - homepage = "http://xtable.r-forge.r-project.org/" + homepage = "https://xtable.r-forge.r-project.org/" url = "https://cloud.r-project.org/src/contrib/xtable_1.8-2.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/xtable" diff --git a/var/spack/repos/builtin/packages/r-xts/package.py b/var/spack/repos/builtin/packages/r-xts/package.py index e7763e05b43..30b2176093f 100644 --- a/var/spack/repos/builtin/packages/r-xts/package.py +++ b/var/spack/repos/builtin/packages/r-xts/package.py @@ -14,7 +14,7 @@ class RXts(RPackage): allowing for user level customization and extension, while simplifying cross-class interoperability.""" - homepage = "http://r-forge.r-project.org/projects/xts/" + homepage = "https://r-forge.r-project.org/projects/xts/" url = "https://cloud.r-project.org/src/contrib/xts_0.11-2.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/xts" diff --git a/var/spack/repos/builtin/packages/r-zoo/package.py b/var/spack/repos/builtin/packages/r-zoo/package.py index e1000200fca..d8847610c32 100644 --- a/var/spack/repos/builtin/packages/r-zoo/package.py +++ b/var/spack/repos/builtin/packages/r-zoo/package.py @@ -15,7 +15,7 @@ class RZoo(RPackage): index/date/time class and consistency with ts and base R by providing methods to extend standard generics.""" - homepage = "http://zoo.r-forge.r-project.org/" + homepage = "https://zoo.r-forge.r-project.org/" url = "https://cloud.r-project.org/src/contrib/zoo_1.7-14.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/zoo" diff --git a/var/spack/repos/builtin/packages/rabbitmq/package.py b/var/spack/repos/builtin/packages/rabbitmq/package.py index d9f5d18ad07..5912df19de7 100644 --- a/var/spack/repos/builtin/packages/rabbitmq/package.py +++ b/var/spack/repos/builtin/packages/rabbitmq/package.py @@ -14,7 +14,7 @@ class Rabbitmq(Package): high-availability requirements. """ - homepage = "http://www.rabbitmq.com/" + homepage = "https://www.rabbitmq.com/" url = "http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz" version('3.6.15', sha256='04e6a291642f80e87fc892d5e8ea309fb3fab85ebb64a79a70dfe6c6cfde36fb') diff --git a/var/spack/repos/builtin/packages/ragel/package.py b/var/spack/repos/builtin/packages/ragel/package.py index 586d08f2200..b2e240d5523 100644 --- a/var/spack/repos/builtin/packages/ragel/package.py +++ b/var/spack/repos/builtin/packages/ragel/package.py @@ -15,7 +15,7 @@ class Ragel(AutotoolsPackage): recognition of a regular language. Code embedding is done using inline operators that do not disrupt the regular language syntax. """ - homepage = "http://www.colm.net/open-source/ragel" + homepage = "https://www.colm.net/open-source/ragel" git = "git://colm.net/ragel.git" url = "http://www.colm.net/files/ragel/ragel-6.10.tar.gz" diff --git a/var/spack/repos/builtin/packages/raja/package.py b/var/spack/repos/builtin/packages/raja/package.py index 9d3cb56f52c..9756dea9568 100644 --- a/var/spack/repos/builtin/packages/raja/package.py +++ b/var/spack/repos/builtin/packages/raja/package.py @@ -3,15 +3,20 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + class Raja(CMakePackage, CudaPackage, ROCmPackage): """RAJA Parallel Framework.""" - homepage = "http://software.llnl.gov/RAJA/" + homepage = "https://software.llnl.gov/RAJA/" git = "https://github.com/LLNL/RAJA.git" + maintainers = ['davidbeckingsale'] + version('develop', branch='develop', submodules='True') version('main', branch='main', submodules='True') + version('0.14.0', tag='v0.14.0', submodules='True') version('0.13.0', tag='v0.13.0', submodules='True') version('0.12.1', tag='v0.12.1', submodules="True") version('0.12.0', tag='v0.12.0', submodules="True") @@ -37,22 +42,26 @@ class Raja(CMakePackage, CudaPackage, ROCmPackage): # and remove the +tests conflict below. variant('tests', default=False, description='Build tests') - depends_on('blt@0.4.0:', type='build', when='@0.13.1:') - depends_on('blt@:0.3.6', type='build', when='@:0.13.0') + depends_on('blt') + depends_on('blt@0.4.1:', type='build', when='@0.14.0:') + depends_on('blt@0.4.0:', type='build', when='@0.13.0') + depends_on('blt@0.3.6:', type='build', when='@:0.12.0') - # variants +rocm and amdgpu_targets are not automatically passed to - # dependencies, so do it manually. - depends_on('camp+rocm', when='+rocm') - for val in ROCmPackage.amdgpu_targets: - depends_on('camp amdgpu_target=%s' % val, when='amdgpu_target=%s' % val) + depends_on('camp@0.2.2', when='@0.14.0:') + depends_on('camp@0.1.0', when='@0.12.0:0.13.0') - depends_on('camp') - depends_on('camp+cuda', when='+cuda') - for sm_ in CudaPackage.cuda_arch_values: - depends_on('camp cuda_arch={0}'.format(sm_), - when='cuda_arch={0}'.format(sm_)) + with when('+rocm @0.12.0:'): + depends_on('camp+rocm') + for arch in ROCmPackage.amdgpu_targets: + depends_on('camp+rocm amdgpu_target={0}'.format(arch), + when='amdgpu_target={0}'.format(arch)) + conflicts('+openmp') - conflicts('+openmp', when='+rocm') + with when('+cuda @0.12.0:'): + depends_on('camp+cuda') + for sm_ in CudaPackage.cuda_arch_values: + depends_on('camp +cuda cuda_arch={0}'.format(sm_), + when='cuda_arch={0}'.format(sm_)) def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/random123/package.py b/var/spack/repos/builtin/packages/random123/package.py index 38279089b27..03315288d25 100644 --- a/var/spack/repos/builtin/packages/random123/package.py +++ b/var/spack/repos/builtin/packages/random123/package.py @@ -12,7 +12,7 @@ class Random123(Package): by applying a stateless mixing function to N instead of the conventional approach of using N iterations of a stateful transformation.""" - homepage = "http://www.deshawresearch.com/resources_random123.html" + homepage = "https://www.deshawresearch.com/resources_random123.html" url = "http://www.deshawresearch.com/downloads/download_random123.cgi/Random123-1.09.tar.gz" version('1.13.2', sha256='74a1c6bb66b2684f03d3b1008642a2e9141909103cd09f428d2c60bcaa51cb40') diff --git a/var/spack/repos/builtin/packages/randrproto/package.py b/var/spack/repos/builtin/packages/randrproto/package.py index ff16e464cc1..b133c389136 100644 --- a/var/spack/repos/builtin/packages/randrproto/package.py +++ b/var/spack/repos/builtin/packages/randrproto/package.py @@ -13,7 +13,7 @@ class Randrproto(AutotoolsPackage, XorgPackage): screens, so as to resize, rotate and reflect the root window of a screen. """ - homepage = "http://cgit.freedesktop.org/xorg/proto/randrproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/randrproto" xorg_mirror_path = "proto/randrproto-1.5.0.tar.gz" version('1.5.0', sha256='8f8a716d6daa6ba05df97d513960d35a39e040600bf04b313633f11679006fab') diff --git a/var/spack/repos/builtin/packages/rapidjson/package.py b/var/spack/repos/builtin/packages/rapidjson/package.py index 0cd7dac6c14..6b8987da916 100644 --- a/var/spack/repos/builtin/packages/rapidjson/package.py +++ b/var/spack/repos/builtin/packages/rapidjson/package.py @@ -9,7 +9,7 @@ class Rapidjson(CMakePackage): """A fast JSON parser/generator for C++ with both SAX/DOM style API""" - homepage = "http://rapidjson.org" + homepage = "https://rapidjson.org" url = "https://github.com/Tencent/rapidjson/archive/v1.1.0.tar.gz" version('1.1.0', sha256='bf7ced29704a1e696fbccf2a2b4ea068e7774fa37f6d7dd4039d0787f8bed98e') diff --git a/var/spack/repos/builtin/packages/raptor2/package.py b/var/spack/repos/builtin/packages/raptor2/package.py index 588b16573a1..deed2dc4455 100644 --- a/var/spack/repos/builtin/packages/raptor2/package.py +++ b/var/spack/repos/builtin/packages/raptor2/package.py @@ -9,7 +9,7 @@ class Raptor2(AutotoolsPackage): """libraptor2 for parsing and serializing RDF syntaxes""" - homepage = "http://librdf.org/" + homepage = "https://librdf.org/" url = "http://download.librdf.org/source/raptor2-2.0.15.tar.gz" version('2.0.15', sha256='ada7f0ba54787b33485d090d3d2680533520cd4426d2f7fb4782dd4a6a1480ed') diff --git a/var/spack/repos/builtin/packages/rasqal/package.py b/var/spack/repos/builtin/packages/rasqal/package.py index d6926edd316..8ec29bd19e3 100644 --- a/var/spack/repos/builtin/packages/rasqal/package.py +++ b/var/spack/repos/builtin/packages/rasqal/package.py @@ -12,7 +12,7 @@ class Rasqal(AutotoolsPackage): syntaxes, query construction and execution of queries returning results as bindings, boolean, RDF graphs/triples or syntaxes.""" - homepage = "http://librdf.org/" + homepage = "https://librdf.org/" url = "http://download.librdf.org/source/rasqal-0.9.33.tar.gz" version('0.9.33', sha256='6924c9ac6570bd241a9669f83b467c728a322470bf34f4b2da4f69492ccfd97c') diff --git a/var/spack/repos/builtin/packages/rccl/package.py b/var/spack/repos/builtin/packages/rccl/package.py index 60e9d6e67e2..70b7b2359f6 100644 --- a/var/spack/repos/builtin/packages/rccl/package.py +++ b/var/spack/repos/builtin/packages/rccl/package.py @@ -14,10 +14,11 @@ class Rccl(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/rccl" git = "https://github.com/RadeonOpenCompute/rccl.git" - url = "https://github.com/ROCmSoftwarePlatform/rccl/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rccl/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='b5231d8c5ab034a583feceebcef68d0cc0b05ec5a683f802fc7747c89f27d5f6') version('4.2.0', sha256='2829fae40ebc1d8be201856d2193a941c87e9cf38dca0a2f4414e675c1742f20') version('4.1.0', sha256='88ec9b43c31cb054fe6aa28bcc0f4b510213635268f951939d6980eee5bb3680') version('4.0.0', sha256='0632a15b3d6b5981c05377cf4aeb51546f4c4901fd7c37fb0c98071851ad531a') @@ -31,18 +32,16 @@ class Rccl(CMakePackage): depends_on('cmake@3:', type='build') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) depends_on('hip@' + ver, when='@' + ver) depends_on('comgr@' + ver, when='@' + ver) depends_on('hsa-rocr-dev@' + ver, when='@' + ver) - for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0']: + for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0', + '4.3.0']: depends_on('numactl@2:', when='@' + ver) - for ver in ['4.1.0', '4.2.0']: - depends_on('hip-rocclr@' + ver, when='@' + ver) - def setup_build_environment(self, env): env.set('CXX', self.spec['hip'].hipcc) @@ -53,4 +52,8 @@ def cmake_args(self): 'NUMACTL_DIR', self.spec['numactl'].prefix )) + + if self.spec.satisfies('^cmake@3.21:'): + args.append(self.define('__skip_rocmclang', 'ON')) + return args diff --git a/var/spack/repos/builtin/packages/rclone/package.py b/var/spack/repos/builtin/packages/rclone/package.py index 2a508155be4..f208a260756 100644 --- a/var/spack/repos/builtin/packages/rclone/package.py +++ b/var/spack/repos/builtin/packages/rclone/package.py @@ -10,7 +10,7 @@ class Rclone(Package): """Rclone is a command line program to sync files and directories to and from various cloud storage providers""" - homepage = "http://rclone.org" + homepage = "https://rclone.org" url = "https://github.com/ncw/rclone/releases/download/v1.43/rclone-v1.43.tar.gz" maintainers = ['alecbcs'] diff --git a/var/spack/repos/builtin/packages/rdc/package.py b/var/spack/repos/builtin/packages/rdc/package.py index 0fdbefe2e69..a5042fb6072 100644 --- a/var/spack/repos/builtin/packages/rdc/package.py +++ b/var/spack/repos/builtin/packages/rdc/package.py @@ -11,7 +11,7 @@ class Rdc(CMakePackage): """ROCm Data Center Tool""" homepage = "https://github.com/RadeonOpenCompute/rdc" - url = "https://github.com/RadeonOpenCompute/rdc/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/rdc/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] @@ -22,6 +22,7 @@ def url_for_version(self, version): url = "https://github.com/RadeonOpenCompute/rdc/archive/rocm-{0}.tar.gz" return url.format(version) + version('4.3.0', sha256='d3dda2022ec1f8c7de4de64696009125a903fcb2f82c38b3ac07e4ab35bf9190') version('4.2.0', sha256='ea2c7c07d55f607968f58d7e30326cae5db5b48c1ba354caa5727394d5bad258') version('4.1.0', sha256='dc81ee9727c8913c05dcf20a00669ce611339ef6d6db8af34e57f42bcfa804ac') version('4.0.0', sha256='e9ebfc46dfa983400909ed8a9da4fa37869ab118a8426c2e4f793e21174ca07f') @@ -34,7 +35,7 @@ def url_for_version(self, version): depends_on('protobuf', type=('build', 'link')) depends_on('libcap', type=('build', 'link')) - for ver in ['3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0']: + for ver in ['3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0', '4.3.0']: depends_on('rocm-smi-lib@' + ver, type=('build', 'link'), when='@' + ver) def patch(self): diff --git a/var/spack/repos/builtin/packages/re2c/package.py b/var/spack/repos/builtin/packages/re2c/package.py index d3849c5bfb9..7cf713c4ce7 100644 --- a/var/spack/repos/builtin/packages/re2c/package.py +++ b/var/spack/repos/builtin/packages/re2c/package.py @@ -10,11 +10,26 @@ class Re2c(AutotoolsPackage): """re2c: a free and open-source lexer generator for C and C++""" - homepage = "http://re2c.org/index.html" + homepage = "https://re2c.org/index.html" url = "https://github.com/skvadrik/re2c/releases/download/1.2.1/re2c-1.2.1.tar.xz" + version('2.2', sha256='0fc45e4130a8a555d68e230d1795de0216dfe99096b61b28e67c86dfd7d86bda') + version('2.1.1', sha256='036ee264fafd5423141ebd628890775aa9447a4c4068a6307385d7366fe711f8') + version('2.1', sha256='8cba0d95c246c670de8f97f57def83a9c0f2113eaa6f7e4867a941f48f633540') + 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') def configure_args(self): - args = ['--disable-dependency-tracking'] - return args + return [ + '--disable-benchmarks', + '--disable-debug', + '--disable-dependency-tracking', + '--disable-docs', + '--disable-lexers', # requires existing system re2c + '--disable-libs', # experimental + '--enable-golang', + ] diff --git a/var/spack/repos/builtin/packages/recola-sm/package.py b/var/spack/repos/builtin/packages/recola-sm/package.py new file mode 100644 index 00000000000..04113ca8af3 --- /dev/null +++ b/var/spack/repos/builtin/packages/recola-sm/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2021 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 import * + + +class RecolaSm(CMakePackage): + """Standard Model files for the Recola generator.""" + + tags = ['hep'] + + homepage = "https://recola.gitlab.io/recola2/modelfiles/modelfiles.html" + url = "https://recola.hepforge.org/downloads/?f=SM_2.2.3.tar.gz" + + maintainers = ['vvolkl'] + + version('2.2.3', sha256='9ebdc4fd8ca48789de0b6bbb2ab7e4845c92d19dfe0c3f67866cbf114d6242a5') + + depends_on('collier') + + def cmake_args(self): + args = ['-Dstatic=ON'] + return args diff --git a/var/spack/repos/builtin/packages/recola/package.py b/var/spack/repos/builtin/packages/recola/package.py new file mode 100644 index 00000000000..549563ed0b7 --- /dev/null +++ b/var/spack/repos/builtin/packages/recola/package.py @@ -0,0 +1,37 @@ +# Copyright 2013-2021 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 import * + + +class Recola(CMakePackage): + """REcursive Computation of One-Loop Amplitudes: + a fortran library for the perturbative computation of + next-to-leading-order transition amplitudes in the + Standard Model of particle physics.""" + + tags = ['hep'] + + homepage = "https://recola.hepforge.org" + url = "https://recola.hepforge.org/downloads/?f=recola2-2.2.3.tar.gz" + + maintainers = ['vvolkl'] + + variant('python', default=True, + description="Build py-recola python bindings.") + + version('2.2.3', sha256='db0f5e448ed603ac4073d4bbf36fd74f401a22876ad390c0d02c815a78106c5f') + + depends_on('collier') + depends_on('recola-sm') + depends_on('python@3:', when='+python') + + def cmake_args(self): + args = [ + '-DCMAKE_VERBOSE_MAKEFILE=ON', + self.define_from_variant("with_python3", 'python'), + ] + return args diff --git a/var/spack/repos/builtin/packages/recorder/package.py b/var/spack/repos/builtin/packages/recorder/package.py index 56ede19025a..1fe0a722e48 100644 --- a/var/spack/repos/builtin/packages/recorder/package.py +++ b/var/spack/repos/builtin/packages/recorder/package.py @@ -12,9 +12,14 @@ class Recorder(AutotoolsPackage): homepage = "https://github.com/uiuc-hpc/Recorder" url = "https://github.com/uiuc-hpc/Recorder/archive/v2.1.4.tar.gz" + git = "https://github.com/uiuc-hpc/Recorder.git" maintainers = ['wangvsa'] + version('master', branch='master') + version('pilgrim', branch='pilgrim') + version('2.2.1', sha256='90634a580f075e9773cab4e46eb56459e917df1676b01655dec5f61e9d6b9bea') + version('2.2.0', sha256='b47c208c18e615e0087486cc448f904d8ce7dbcc2535d06e185b5d28ad6e80f8') version('2.1.6', sha256='35985a0cb456d806952bf68f05127026f0dd8e26f70d725ae5cc37f109600889') version('2.1.5', sha256='6d2f8b942f61da498e25327e79c1a25b2244f4f78a9cf5482fb4aaa32d7332a1') version('2.1.4', sha256='f66756595a7f310929c247ae03fd08a18d9843f578fffa1e3072f557bf5a158e') diff --git a/var/spack/repos/builtin/packages/recordproto/package.py b/var/spack/repos/builtin/packages/recordproto/package.py index f02c5b88f2c..6fd63c79f0a 100644 --- a/var/spack/repos/builtin/packages/recordproto/package.py +++ b/var/spack/repos/builtin/packages/recordproto/package.py @@ -12,7 +12,7 @@ class Recordproto(AutotoolsPackage, XorgPackage): This extension defines a protocol for the recording and playback of user actions in the X Window System.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/recordproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/recordproto" xorg_mirror_path = "proto/recordproto-1.14.2.tar.gz" version('1.14.2', sha256='485f792570dd7afe49144227f325bf2827bc7d87aae6a8ab6c1de2b06b1c68c5') diff --git a/var/spack/repos/builtin/packages/redis/package.py b/var/spack/repos/builtin/packages/redis/package.py index b946c5bdc23..28c78b9ddaf 100644 --- a/var/spack/repos/builtin/packages/redis/package.py +++ b/var/spack/repos/builtin/packages/redis/package.py @@ -3,11 +3,9 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - class Redis(MakefilePackage): """Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. - It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. Redis has built-in replication, Lua scripting, @@ -15,10 +13,17 @@ class Redis(MakefilePackage): and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster """ - homepage = "https://redis.io" - url = "http://download.redis.io/releases/redis-5.0.3.tar.gz" + url = "https://download.redis.io/releases/redis-6.2.5.tar.gz" + 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') diff --git a/var/spack/repos/builtin/packages/redland-bindings/package.py b/var/spack/repos/builtin/packages/redland-bindings/package.py index 14e82fe863a..fd231a0d7b5 100644 --- a/var/spack/repos/builtin/packages/redland-bindings/package.py +++ b/var/spack/repos/builtin/packages/redland-bindings/package.py @@ -11,7 +11,7 @@ class RedlandBindings(AutotoolsPackage): """Redland Language Bindings for language APIs to Redland""" - homepage = "http://librdf.org/" + homepage = "https://librdf.org/" url = "http://download.librdf.org/source/redland-bindings-1.0.17.1.tar.gz" version('1.0.17.1', sha256='ff72b587ab55f09daf81799cb3f9d263708fad5df7a5458f0c28566a2563b7f5') diff --git a/var/spack/repos/builtin/packages/redland/package.py b/var/spack/repos/builtin/packages/redland/package.py index d0973b69c51..86e72632afd 100644 --- a/var/spack/repos/builtin/packages/redland/package.py +++ b/var/spack/repos/builtin/packages/redland/package.py @@ -10,7 +10,7 @@ class Redland(AutotoolsPackage): """Redland RDF Library - librdf providing the RDF API and triple stores""" - homepage = "http://librdf.org/" + homepage = "https://librdf.org/" url = "http://download.librdf.org/source/redland-1.0.17.tar.gz" version('1.0.17', sha256='de1847f7b59021c16bdc72abb4d8e2d9187cd6124d69156f3326dd34ee043681') diff --git a/var/spack/repos/builtin/packages/reframe/package.py b/var/spack/repos/builtin/packages/reframe/package.py index 81d9cbaf8dd..090967ace17 100644 --- a/var/spack/repos/builtin/packages/reframe/package.py +++ b/var/spack/repos/builtin/packages/reframe/package.py @@ -24,6 +24,11 @@ class Reframe(Package): maintainers = ['victorusu', 'vkarak'] version('master', branch='master') + version('3.8.0', sha256='b8a0486fd78786606586364968d1e2a4e7fc424d523b12b2c0ea8a227b485e30') + version('3.7.3', sha256='52427fbbaa558082b71f73b2b8aea37340584d14dc3b1aca1e9bdd8923fa4c65') + version('3.7.2', sha256='b4ba0f0a8788ee43471202d40be43157ec2687ad510c3b02c0869af6c48bb7d0') + version('3.7.1', sha256='fb2efc3ad31056156e797f1d4fe705c79d20ebf66472b2144e84d4e2f4b2b125') + version('3.7.0', sha256='aa2513fafef44ce31120c7d0e3e3788b6c8a57535499e646086bd01af88f2013') version('3.6.3', sha256='3616478c886c89385385d04f5bce625a690eec6bdca603cd5ac3a6f443168ac2') version('3.6.2', sha256='b4725e434f4cd721ca825a56a652e67aa77e7af5ed7ca00f281747585827060d') version('3.6.1', sha256='1ee35a2de42cdd2476c17cc15caf6a7795d976ba7b058d518da7d314e7af2136') @@ -62,6 +67,7 @@ class Reframe(Package): depends_on('py-setuptools', type='build') # runtime dependencies + depends_on('py-archspec', when='@3.7.0:', type='run') depends_on('py-argcomplete', when='@3.4.1:', type='run') depends_on('py-importlib-metadata', when='^python@:3.7', type='run') depends_on('py-jsonschema', type='run') diff --git a/var/spack/repos/builtin/packages/rendercheck/package.py b/var/spack/repos/builtin/packages/rendercheck/package.py index eeb893022fe..8a85a40bf53 100644 --- a/var/spack/repos/builtin/packages/rendercheck/package.py +++ b/var/spack/repos/builtin/packages/rendercheck/package.py @@ -10,7 +10,7 @@ class Rendercheck(AutotoolsPackage, XorgPackage): """rendercheck is a program to test a Render extension implementation against separate calculations of expected output.""" - homepage = "http://cgit.freedesktop.org/xorg/app/rendercheck" + homepage = "https://cgit.freedesktop.org/xorg/app/rendercheck" xorg_mirror_path = "app/rendercheck-1.5.tar.gz" version('1.5', sha256='1553fef61c30f2524b597c3758cc8d3f8dc1f52eb8137417fa0667b0adc8a604') diff --git a/var/spack/repos/builtin/packages/renderproto/package.py b/var/spack/repos/builtin/packages/renderproto/package.py index 83d98ed92e2..7d1ea7c0174 100644 --- a/var/spack/repos/builtin/packages/renderproto/package.py +++ b/var/spack/repos/builtin/packages/renderproto/package.py @@ -12,7 +12,7 @@ class Renderproto(AutotoolsPackage, XorgPackage): This extension defines the protcol for a digital image composition as the foundation of a new rendering model within the X Window System.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/renderproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/renderproto" xorg_mirror_path = "proto/renderproto-0.11.1.tar.gz" version('0.11.1', sha256='a0a4be3cad9381ae28279ba5582e679491fc2bec9aab8a65993108bf8dbce5fe') diff --git a/var/spack/repos/builtin/packages/repeatmasker/package.py b/var/spack/repos/builtin/packages/repeatmasker/package.py index 180e8a085a9..e6483c56667 100644 --- a/var/spack/repos/builtin/packages/repeatmasker/package.py +++ b/var/spack/repos/builtin/packages/repeatmasker/package.py @@ -12,7 +12,7 @@ class Repeatmasker(Package): """RepeatMasker is a program that screens DNA sequences for interspersed repeats and low complexity DNA sequences.""" - homepage = "http://www.repeatmasker.org" + homepage = "https://www.repeatmasker.org" version('4.1.2-p1', sha256='4be54bf6c050422b211e24a797feb06fd7954c8b4ee6f3ece94cb6faaf6b0e96') version('4.0.9', sha256='8d67415d89ed301670b7632ea411f794c6e30d8ed0f007a726c4b0a39c8638e5') diff --git a/var/spack/repos/builtin/packages/repeatmodeler/package.py b/var/spack/repos/builtin/packages/repeatmodeler/package.py index f703b19dc73..68dbaca0a53 100644 --- a/var/spack/repos/builtin/packages/repeatmodeler/package.py +++ b/var/spack/repos/builtin/packages/repeatmodeler/package.py @@ -10,7 +10,7 @@ class Repeatmodeler(Package): """RepeatModeler is a de-novo repeat family identification and modeling package.""" - homepage = "http://www.repeatmasker.org/RepeatModeler/" + homepage = "https://www.repeatmasker.org/RepeatModeler/" url = "http://www.repeatmasker.org/RepeatModeler/RepeatModeler-open-1.0.11.tar.gz" version('1.0.11', sha256='7ff0d588b40f9ad5ce78876f3ab8d2332a20f5128f6357413f741bb7fa172193') diff --git a/var/spack/repos/builtin/packages/repeatscout/package.py b/var/spack/repos/builtin/packages/repeatscout/package.py index 035c26a5bcc..acc854a47cb 100644 --- a/var/spack/repos/builtin/packages/repeatscout/package.py +++ b/var/spack/repos/builtin/packages/repeatscout/package.py @@ -11,7 +11,7 @@ class Repeatscout(MakefilePackage): """RepeatScout - De Novo Repeat Finder, Price A.L., Jones N.C. and Pevzner P.A.""" - homepage = "http://www.repeatmasker.org/RepeatModeler/" + homepage = "https://www.repeatmasker.org/RepeatModeler/" url = "http://www.repeatmasker.org/RepeatScout-1.0.5.tar.gz" version('1.0.5', sha256='bda6f782382f2b7dcb6a004b7da586d5046b3c12429b158e24787be62de6199c') diff --git a/var/spack/repos/builtin/packages/reprimand/include.patch b/var/spack/repos/builtin/packages/reprimand/include.patch new file mode 100644 index 00000000000..11d390d154e --- /dev/null +++ b/var/spack/repos/builtin/packages/reprimand/include.patch @@ -0,0 +1,32 @@ +--- a/library/EOS_Barotropic/eos_barotr_poly.cc ++++ b/library/EOS_Barotropic/eos_barotr_poly.cc +@@ -1,6 +1,7 @@ + #include "eos_barotr_poly.h" + #include "eos_barotr_poly_impl.h" + #include ++#include + #include + + using namespace std; +--- a/library/EOS_Barotropic/eos_barotr_pwpoly.cc ++++ b/library/EOS_Barotropic/eos_barotr_pwpoly.cc +@@ -1,6 +1,7 @@ + #include "eos_barotr_pwpoly.h" + #include "eos_barotr_pwpoly_impl.h" +-#include +-#include ++#include ++#include ++#include + + using namespace std; +--- a/tests/benchmarks/src/accuracy_con2prim_mhd.cc ++++ b/tests/benchmarks/src/accuracy_con2prim_mhd.cc +@@ -9,6 +9,7 @@ + #include + #include + #include ++#include + #include "con2prim_imhd.h" + #include "eos_thermal_file.h" + #include "eos_hybrid.h" diff --git a/var/spack/repos/builtin/packages/reprimand/package.py b/var/spack/repos/builtin/packages/reprimand/package.py new file mode 100644 index 00000000000..d57c60b3e2d --- /dev/null +++ b/var/spack/repos/builtin/packages/reprimand/package.py @@ -0,0 +1,57 @@ +# Copyright 2013-2021 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 import * + + +class Reprimand(MesonPackage): + """RePrimAnd is a support library for numerical simulations of general + relativistic magnetohydrodynamics. If provides methods for recovering + primitive variables like pressure and velocity from the variables evolved + in quasi-conservative formulations. Further, it provides a general + framework for handling matter equations of state.""" + + homepage = "https://www.atlas.aei.uni-hannover.de/holohome/wolfgang.kastaun/doc/reprimand/latest/index.html" + url = "https://github.com/wokast/RePrimAnd/archive/refs/tags/v1.3.tar.gz" + + maintainers = ['eschnett'] + + version('develop', git='https://github.com/wokast/RePrimAnd', branch='public') + version('1.3', sha256='8e9f05b1f065a876d1405562285a9f64d1b31c4a436d5a6bb1f023212b40314e') + + # Add missing #include statments; see + # + patch('include.patch', when='@1.3') + + variant('python', default=False, description='Enable Python bindings') + variant('shared', default=True, description='Build shared library') + + depends_on('boost') + depends_on('gsl') + depends_on('hdf5') + depends_on('python', when='+python') + depends_on('py-matplotlib', when='+python') + depends_on('py-pybind11 @2.6.0:', when='+python') + + extends('python', when='+python') + + def setup_build_environment(self, env): + env.set('CXXFLAGS', self.compiler.cxx11_flag) + env.set('BOOST_ROOT', self.spec['boost'].prefix) + + def meson_args(self): + args = [ + '-Dbuild_documentation=false', + '-Dbuild_python_api={0}'.format( + str('+python' in self.spec).lower()), + ] + return args + + @property + def libs(self): + shared = "+shared" in self.spec + return find_libraries( + "libRePrimAnd*", root=self.prefix, shared=shared, recursive=True + ) diff --git a/var/spack/repos/builtin/packages/resourceproto/package.py b/var/spack/repos/builtin/packages/resourceproto/package.py index fb565072dbf..a2517704031 100644 --- a/var/spack/repos/builtin/packages/resourceproto/package.py +++ b/var/spack/repos/builtin/packages/resourceproto/package.py @@ -12,7 +12,7 @@ class Resourceproto(AutotoolsPackage, XorgPackage): This extension defines a protocol that allows a client to query the X server about its usage of various resources.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/resourceproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/resourceproto" xorg_mirror_path = "proto/resourceproto-1.2.0.tar.gz" version('1.2.0', sha256='469029d14fdeeaa7eed1be585998ff4cb92cf664f872d1d69c04140815b78734') diff --git a/var/spack/repos/builtin/packages/rgb/package.py b/var/spack/repos/builtin/packages/rgb/package.py index ea5fc4eab40..648abe4158c 100644 --- a/var/spack/repos/builtin/packages/rgb/package.py +++ b/var/spack/repos/builtin/packages/rgb/package.py @@ -15,7 +15,7 @@ class Rgb(AutotoolsPackage, XorgPackage): The "others" subdirectory contains some alternate color databases.""" - homepage = "http://cgit.freedesktop.org/xorg/app/rgb" + homepage = "https://cgit.freedesktop.org/xorg/app/rgb" xorg_mirror_path = "app/rgb-1.0.6.tar.gz" version('1.0.6', sha256='cb998035e08b9f58ad3150cab60461c3225bdd075238cffc665e24da40718933') diff --git a/var/spack/repos/builtin/packages/rivet/package.py b/var/spack/repos/builtin/packages/rivet/package.py index c6845581554..e9f394474f3 100644 --- a/var/spack/repos/builtin/packages/rivet/package.py +++ b/var/spack/repos/builtin/packages/rivet/package.py @@ -98,7 +98,7 @@ class Rivet(AutotoolsPackage): depends_on('yoda@1.8.0', when='@3.1.0') depends_on('yoda@1.8.2', when='@3.1.1') depends_on('yoda@1.8.3', when='@3.1.2') - depends_on('yoda@1.8.5', when='@3.1.3') + depends_on('yoda@1.8.5:', when='@3.1.3:') # The following versions were not a part of LCG stack # and thus the exact version of YODA is unknown diff --git a/var/spack/repos/builtin/packages/rngstreams/package.py b/var/spack/repos/builtin/packages/rngstreams/package.py index 45a8ab04b41..3a9d973e844 100644 --- a/var/spack/repos/builtin/packages/rngstreams/package.py +++ b/var/spack/repos/builtin/packages/rngstreams/package.py @@ -9,7 +9,7 @@ class Rngstreams(AutotoolsPackage): """Multiple independent streams of pseudo-random numbers.""" - homepage = "http://statmath.wu.ac.at/software/RngStreams" + homepage = "https://statmath.wu.ac.at/software/RngStreams" url = "http://statmath.wu.ac.at/software/RngStreams/rngstreams-1.0.1.tar.gz" version('1.0.1', sha256='966195febb9fb9417e4e361948843425aee12efc8b4e85332acbcd011ff2d9b0') diff --git a/var/spack/repos/builtin/packages/rnpletal/corrections.diff b/var/spack/repos/builtin/packages/rnpletal/corrections.diff new file mode 100644 index 00000000000..1df2a3c71eb --- /dev/null +++ b/var/spack/repos/builtin/packages/rnpletal/corrections.diff @@ -0,0 +1,863 @@ +diff -ru rnpletal.orig/aclocal.m4 rnpletal/aclocal.m4 +--- rnpletal.orig/aclocal.m4 2021-06-03 19:30:17.000000000 -0400 ++++ rnpletal/aclocal.m4 2021-07-29 14:55:40.000000000 -0400 +@@ -632,7 +632,7 @@ + dnl---------------------------------------------------------------------- + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -689,7 +689,7 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +@@ -697,7 +697,7 @@ + dnl Various locations that Darwin software gets installed + dnl by various and sundry packages. + dnl ---------------------------------------------------------------------- +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +diff -ru rnpletal.orig/cliser/aclocal.m4 rnpletal/cliser/aclocal.m4 +--- rnpletal.orig/cliser/aclocal.m4 2021-06-03 19:30:17.000000000 -0400 ++++ rnpletal/cliser/aclocal.m4 2021-07-29 14:55:40.000000000 -0400 +@@ -632,7 +632,7 @@ + dnl---------------------------------------------------------------------- + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -689,7 +689,7 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +@@ -697,7 +697,7 @@ + dnl Various locations that Darwin software gets installed + dnl by various and sundry packages. + dnl ---------------------------------------------------------------------- +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +diff -ru rnpletal.orig/cvtestsdf/aclocal.m4 rnpletal/cvtestsdf/aclocal.m4 +--- rnpletal.orig/cvtestsdf/aclocal.m4 2021-06-03 19:30:17.000000000 -0400 ++++ rnpletal/cvtestsdf/aclocal.m4 2021-07-29 14:55:40.000000000 -0400 +@@ -632,7 +632,7 @@ + dnl---------------------------------------------------------------------- + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -689,7 +689,7 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +@@ -697,7 +697,7 @@ + dnl Various locations that Darwin software gets installed + dnl by various and sundry packages. + dnl ---------------------------------------------------------------------- +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +diff -ru rnpletal.orig/netlib_fftpack/aclocal.m4 rnpletal/netlib_fftpack/aclocal.m4 +--- rnpletal.orig/netlib_fftpack/aclocal.m4 2021-06-03 19:30:17.000000000 -0400 ++++ rnpletal/netlib_fftpack/aclocal.m4 2021-07-29 14:55:40.000000000 -0400 +@@ -632,7 +632,7 @@ + dnl---------------------------------------------------------------------- + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -689,7 +689,7 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +@@ -697,7 +697,7 @@ + dnl Various locations that Darwin software gets installed + dnl by various and sundry packages. + dnl ---------------------------------------------------------------------- +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +diff -ru rnpletal.orig/netlib_lapack3.0/aclocal.m4 rnpletal/netlib_lapack3.0/aclocal.m4 +--- rnpletal.orig/netlib_lapack3.0/aclocal.m4 2021-06-03 19:30:17.000000000 -0400 ++++ rnpletal/netlib_lapack3.0/aclocal.m4 2021-07-29 14:55:40.000000000 -0400 +@@ -632,7 +632,7 @@ + dnl---------------------------------------------------------------------- + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -689,7 +689,7 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +@@ -697,7 +697,7 @@ + dnl Various locations that Darwin software gets installed + dnl by various and sundry packages. + dnl ---------------------------------------------------------------------- +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +diff -ru rnpletal.orig/netlib_linpack/aclocal.m4 rnpletal/netlib_linpack/aclocal.m4 +--- rnpletal.orig/netlib_linpack/aclocal.m4 2021-06-03 19:30:17.000000000 -0400 ++++ rnpletal/netlib_linpack/aclocal.m4 2021-07-29 14:55:40.000000000 -0400 +@@ -632,7 +632,7 @@ + dnl---------------------------------------------------------------------- + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -689,7 +689,7 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +@@ -697,7 +697,7 @@ + dnl Various locations that Darwin software gets installed + dnl by various and sundry packages. + dnl ---------------------------------------------------------------------- +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +diff -ru rnpletal.orig/netlib_odepack/aclocal.m4 rnpletal/netlib_odepack/aclocal.m4 +--- rnpletal.orig/netlib_odepack/aclocal.m4 2021-06-03 19:30:17.000000000 -0400 ++++ rnpletal/netlib_odepack/aclocal.m4 2021-07-29 14:55:40.000000000 -0400 +@@ -632,7 +632,7 @@ + dnl---------------------------------------------------------------------- + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -689,7 +689,7 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +@@ -697,7 +697,7 @@ + dnl Various locations that Darwin software gets installed + dnl by various and sundry packages. + dnl ---------------------------------------------------------------------- +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +Only in rnpletal.orig/rnpl: .#configure.1.8 +diff -ru rnpletal.orig/rnpl/aclocal.m4 rnpletal/rnpl/aclocal.m4 +--- rnpletal.orig/rnpl/aclocal.m4 2021-06-03 19:30:17.000000000 -0400 ++++ rnpletal/rnpl/aclocal.m4 2021-07-29 14:55:40.000000000 -0400 +@@ -632,7 +632,7 @@ + dnl---------------------------------------------------------------------- + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -689,7 +689,7 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +@@ -697,7 +697,7 @@ + dnl Various locations that Darwin software gets installed + dnl by various and sundry packages. + dnl ---------------------------------------------------------------------- +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +diff -ru rnpletal.orig/rnpl/configure rnpletal/rnpl/configure +--- rnpletal.orig/rnpl/configure 2021-06-03 19:30:51.000000000 -0400 ++++ rnpletal/rnpl/configure 2021-07-29 14:55:34.000000000 -0400 +@@ -3353,7 +3353,7 @@ + CXXFLAGS="$CXXFLAGS -DLINUX -DPORT_GROUP -DWant_c_files" + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -3484,11 +3484,11 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +@@ -4988,7 +4988,7 @@ + CXXFLAGS="$CXXFLAGS -DLINUX -DPORT_GROUP -DWant_c_files" + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -5119,11 +5119,11 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +@@ -5887,7 +5887,7 @@ + CXXFLAGS="$CXXFLAGS -DLINUX -DPORT_GROUP -DWant_c_files" + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -6018,11 +6018,11 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +@@ -6902,7 +6902,7 @@ + CXXFLAGS="$CXXFLAGS -DLINUX -DPORT_GROUP -DWant_c_files" + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -7033,11 +7033,11 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +@@ -7867,7 +7867,7 @@ + CXXFLAGS="$CXXFLAGS -DLINUX -DPORT_GROUP -DWant_c_files" + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -7998,11 +7998,11 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +diff -ru rnpletal.orig/rnpl/etc/sdfdump.c rnpletal/rnpl/etc/sdfdump.c +--- rnpletal.orig/rnpl/etc/sdfdump.c 2019-05-04 15:12:04.000000000 -0400 ++++ rnpletal/rnpl/etc/sdfdump.c 2021-07-29 14:29:12.000000000 -0400 +@@ -5,6 +5,7 @@ + Copyright 2003- Matthew W. Choptuik, (main/1d) Frank Loeffler (2d) + */ + ++#include + #include + #include + #include +diff -ru rnpletal.orig/rnpl/etc/sdffilter.c rnpletal/rnpl/etc/sdffilter.c +--- rnpletal.orig/rnpl/etc/sdffilter.c 2013-07-09 00:30:15.000000000 -0400 ++++ rnpletal/rnpl/etc/sdffilter.c 2021-07-29 14:28:40.000000000 -0400 +@@ -7,6 +7,7 @@ + #include + #include + #include "sdffilter.h" ++#include "../src/bbhutil_f.h" + + #define ON 1 + #define OFF 0 +diff -ru rnpletal.orig/rnpl/etc/sdfinfo.c rnpletal/rnpl/etc/sdfinfo.c +--- rnpletal.orig/rnpl/etc/sdfinfo.c 2013-07-09 00:30:15.000000000 -0400 ++++ rnpletal/rnpl/etc/sdfinfo.c 2021-07-29 14:53:58.000000000 -0400 +@@ -28,7 +28,7 @@ + return dm; + } + +-main(int argc, char **argv) ++int main(int argc, char **argv) + { + int rank,csize,dsize,version,*shape=NULL; + int i; +diff -ru rnpletal.orig/rnpl/etc/sdfslice_util.c rnpletal/rnpl/etc/sdfslice_util.c +--- rnpletal.orig/rnpl/etc/sdfslice_util.c 2013-07-08 20:38:27.000000000 -0400 ++++ rnpletal/rnpl/etc/sdfslice_util.c 2021-07-29 14:31:10.000000000 -0400 +@@ -1,5 +1,9 @@ + #include "sdfslice_util.h" + ++void d3dump_(double*a,int*d1,int*d2,int*d3,char*label,int*unit,long); ++void d3slice_(double*ain,double*aout,int*d1in,int*d2in,int*d3in,int*d1out,int*d2out,int*d3out, ++ int*d1sl,int*d2sl,int*d3sl); ++ + /*---------------------------------------------------------------------- + * Slices data in 'in' according to ivec and/or fvec specificiations + * and returns pointer to sliced data. +diff -ru rnpletal.orig/rnpl/etc/sdftosv.c rnpletal/rnpl/etc/sdftosv.c +--- rnpletal.orig/rnpl/etc/sdftosv.c 2013-07-08 20:38:27.000000000 -0400 ++++ rnpletal/rnpl/etc/sdftosv.c 2021-07-29 14:20:34.000000000 -0400 +@@ -6,12 +6,16 @@ + + #include + #include ++#include ++#include + #include + #include + + #define VERSION "1.0" + #define CHUNK_SIZE (32 * (1024*1024)) + ++int dump_mser(char *nm,int nlvls,double *tv,double *x,double *y,int *nx); ++ + int rjava_ser(char *nm, double time, double *cds, double *data, int size) + { + #ifdef HAVE_LIBSV +@@ -98,7 +102,7 @@ + return s; + } + +-main(int argc, char **argv) ++int main(int argc, char **argv) + { + int rank,*shape,nlvls,ntlevs,res,n,unam=0,single=0; + double time,*data,*coords; +diff -ru rnpletal.orig/rnpl/etc/sdftranspose.c rnpletal/rnpl/etc/sdftranspose.c +--- rnpletal.orig/rnpl/etc/sdftranspose.c 2013-07-08 20:38:27.000000000 -0400 ++++ rnpletal/rnpl/etc/sdftranspose.c 2021-07-29 14:21:50.000000000 -0400 +@@ -7,6 +7,7 @@ + #include + #include + #include "sdftranspose.h" ++#include "../src/bbhutil.h" + + int main(int argc, char **argv) { + static char P[] = "sdftranspose"; +diff -ru rnpletal.orig/rnpl/examples/get_param/t_get_param.c rnpletal/rnpl/examples/get_param/t_get_param.c +--- rnpletal.orig/rnpl/examples/get_param/t_get_param.c 2014-10-18 00:06:17.000000000 -0400 ++++ rnpletal/rnpl/examples/get_param/t_get_param.c 2021-07-29 15:16:26.000000000 -0400 +@@ -1,5 +1,6 @@ + #include + #include ++#include + #include + + /* +diff -ru rnpletal.orig/rnpl/examples/get_param/t_get_param_v.c rnpletal/rnpl/examples/get_param/t_get_param_v.c +--- rnpletal.orig/rnpl/examples/get_param/t_get_param_v.c 2013-07-08 20:38:27.000000000 -0400 ++++ rnpletal/rnpl/examples/get_param/t_get_param_v.c 2021-07-29 15:16:41.000000000 -0400 +@@ -1,6 +1,5 @@ + #include + #include +-#include + #include + + /* ---------------------------------------------------- +diff -ru rnpletal.orig/rnpl/examples/get_param/t_get_str_param.c rnpletal/rnpl/examples/get_param/t_get_str_param.c +--- rnpletal.orig/rnpl/examples/get_param/t_get_str_param.c 2013-07-08 20:38:27.000000000 -0400 ++++ rnpletal/rnpl/examples/get_param/t_get_str_param.c 2021-07-29 15:17:01.000000000 -0400 +@@ -1,4 +1,5 @@ + #include ++#include + #include + + int main(int argc, char **argv) { +diff -ru rnpletal.orig/rnpl/examples/get_param/t_is_param_assigned.c rnpletal/rnpl/examples/get_param/t_is_param_assigned.c +--- rnpletal.orig/rnpl/examples/get_param/t_is_param_assigned.c 2013-07-08 20:38:27.000000000 -0400 ++++ rnpletal/rnpl/examples/get_param/t_is_param_assigned.c 2021-07-29 15:38:39.000000000 -0400 +@@ -1,4 +1,5 @@ + #include ++#include + #include + + /* +diff -ru rnpletal.orig/rnpl/examples/get_param/t_regex.c rnpletal/rnpl/examples/get_param/t_regex.c +--- rnpletal.orig/rnpl/examples/get_param/t_regex.c 2013-07-08 20:38:27.000000000 -0400 ++++ rnpletal/rnpl/examples/get_param/t_regex.c 2021-07-29 15:38:39.000000000 -0400 +@@ -1,4 +1,5 @@ + #include ++#include + #include + #include + +diff -ru rnpletal.orig/rnpl/src/bbhutil.c rnpletal/rnpl/src/bbhutil.c +--- rnpletal.orig/rnpl/src/bbhutil.c 2014-06-12 14:13:01.000000000 -0400 ++++ rnpletal/rnpl/src/bbhutil.c 2021-07-29 14:16:59.000000000 -0400 +@@ -16,6 +16,8 @@ + /* to minimize amount of file open/closes, particularly in context */ + /* of massively parallel execution. */ + ++#include ++#include + #include + #include + #include +diff -ru rnpletal.orig/rnpl/src/bbhutil.h rnpletal/rnpl/src/bbhutil.h +--- rnpletal.orig/rnpl/src/bbhutil.h 2019-10-13 19:53:48.000000000 -0400 ++++ rnpletal/rnpl/src/bbhutil.h 2021-07-28 23:04:33.000000000 -0400 +@@ -6,7 +6,6 @@ + + #include + #include +-#include + + #define MAXRANK 5 + +diff -ru rnpletal.orig/rnpl/src/genf77extern.c rnpletal/rnpl/src/genf77extern.c +--- rnpletal.orig/rnpl/src/genf77extern.c 2014-10-18 00:06:36.000000000 -0400 ++++ rnpletal/rnpl/src/genf77extern.c 2021-07-29 14:53:30.000000000 -0400 +@@ -1,3 +1,4 @@ ++#include + #include + + void fort_call(char *s) +diff -ru rnpletal.orig/rnpl/src/librnplf77.f rnpletal/rnpl/src/librnplf77.f +--- rnpletal.orig/rnpl/src/librnplf77.f 2013-07-08 20:38:27.000000000 -0400 ++++ rnpletal/rnpl/src/librnplf77.f 2021-07-29 15:16:01.000000000 -0400 +@@ -289,7 +289,7 @@ + integer ixspan, makind + c + character*(*) prstr +- integer iv(1) ++ integer iv(*) + integer liv, mxliv, prunit, sup + c + integer rdunit +@@ -479,7 +479,7 @@ + subroutine psexpr(s,curs,st,fin,inc,ngroup,sucess) + c + character*(*) s +- integer inc(1), fin(1), st(1), curs, ngroup ++ integer inc(*), fin(*), st(*), curs, ngroup + logical sucess + c + character*80 tok +@@ -525,7 +525,7 @@ + c + integer makind + c +- integer iv(1) ++ integer iv(*) + integer inf, liv, mxliv, rdunit, sup + c + character*80 cline +@@ -571,7 +571,7 @@ + c + integer makind + c +- integer iv(1) ++ integer iv(*) + integer inf, liv, mxliv, rdunit, sup + c + character*80 cline +@@ -617,7 +617,7 @@ + c + integer makind + c +- integer iv(1) ++ integer iv(*) + integer inf, liv, mxliv, sup + c + character*(*) cline +@@ -661,7 +661,7 @@ + c + integer makind + c +- integer iv(1) ++ integer iv(*) + integer inf, liv, mxliv, sup + c + character*(*) cline +@@ -833,7 +833,7 @@ + c + subroutine livrmp(v,v0,vinc,n) + c +- integer v(1) ++ integer v(*) + integer v0, vinc + integer i, n + c +@@ -856,7 +856,7 @@ + c + subroutine locivramp(v,v0,vinc,n) + c +- integer v(1) ++ integer v(*) + integer v0, vinc + integer i, n + c +@@ -913,7 +913,7 @@ + subroutine l_ivls(v1,s1,n) + implicit none + +- integer v1(1) ++ integer v1(*) + integer s1 + integer i, n + +diff -ru rnpletal.orig/rnpl/src/rnpl.y rnpletal/rnpl/src/rnpl.y +--- rnpletal.orig/rnpl/src/rnpl.y 2013-07-08 20:38:27.000000000 -0400 ++++ rnpletal/rnpl/src/rnpl.y 2021-07-29 14:52:48.000000000 -0400 +@@ -6,6 +6,7 @@ + #define VERSION "0.995" + + #include ++#include + #include "rnpl.h" + + param_dec *pd; +@@ -1360,7 +1361,7 @@ + + %% + +-main(int argc, char **argv) ++int main(int argc, char **argv) + { + int fn,rn,gn,i,err; + char *fnm,ch,line[1024],oname[100],iname[50],ifile[100],*ev; +diff -ru rnpletal.orig/rnpl/src/rnpl_sup.c rnpletal/rnpl/src/rnpl_sup.c +--- rnpletal.orig/rnpl/src/rnpl_sup.c 2013-07-08 20:38:27.000000000 -0400 ++++ rnpletal/rnpl/src/rnpl_sup.c 2021-07-29 15:13:44.000000000 -0400 +@@ -12,7 +12,9 @@ + + #define _SUPPORT_ + #define _SUPPORT_ ++#include + #include ++#include + #include "rnpl.h" + #include "rnpl.tab.h" + #ifdef __POWERPC__ +@@ -30,6 +32,8 @@ + static int f77_coord_flag=0; + static int f77_gfunc_flag=0; + ++int coordsys_to_index(const coord_table *cd); ++ + int fort_out_const(char *s, const double d) + { + int i; +diff -ru rnpletal.orig/rnpl/src/sdf.c rnpletal/rnpl/src/sdf.c +--- rnpletal.orig/rnpl/src/sdf.c 2014-07-14 19:01:47.000000000 -0400 ++++ rnpletal/rnpl/src/sdf.c 2021-07-29 14:52:18.000000000 -0400 +@@ -8,6 +8,7 @@ + /* 2012-04-02: Modified by MWC gft_make_sdf_name() so that '+' is a valid character in name. */ + /* 2012-04-19: Added utility function 'gft_is_sdf_file' */ + ++#include + #include + #include + #include +diff -ru rnpletal.orig/rvs/aclocal.m4 rnpletal/rvs/aclocal.m4 +--- rnpletal.orig/rvs/aclocal.m4 2021-06-03 19:30:17.000000000 -0400 ++++ rnpletal/rvs/aclocal.m4 2021-07-29 14:55:40.000000000 -0400 +@@ -632,7 +632,7 @@ + dnl---------------------------------------------------------------------- + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -689,7 +689,7 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +@@ -697,7 +697,7 @@ + dnl Various locations that Darwin software gets installed + dnl by various and sundry packages. + dnl ---------------------------------------------------------------------- +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +diff -ru rnpletal.orig/rvs/src/v1.c rnpletal/rvs/src/v1.c +--- rnpletal.orig/rvs/src/v1.c 2001-05-15 20:18:51.000000000 -0400 ++++ rnpletal/rvs/src/v1.c 2021-07-28 22:51:25.000000000 -0400 +@@ -1,6 +1,7 @@ + /* Remote version of v1 ... */ + + #include ++#include + #include + #include + #include "rvs_cli.h" +diff -ru rnpletal.orig/rvs/src/vn.c rnpletal/rvs/src/vn.c +--- rnpletal.orig/rvs/src/vn.c 2001-05-15 20:19:53.000000000 -0400 ++++ rnpletal/rvs/src/vn.c 2021-07-28 22:51:36.000000000 -0400 +@@ -4,6 +4,7 @@ + /* Queries vs for window tag by name, optional time argument ... */ + + #include ++#include + #include + #include + #include "rvs_cli.h" +diff -ru rnpletal.orig/svs/aclocal.m4 rnpletal/svs/aclocal.m4 +--- rnpletal.orig/svs/aclocal.m4 2021-06-03 19:30:17.000000000 -0400 ++++ rnpletal/svs/aclocal.m4 2021-07-29 14:55:40.000000000 -0400 +@@ -632,7 +632,7 @@ + dnl---------------------------------------------------------------------- + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -689,7 +689,7 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +@@ -697,7 +697,7 @@ + dnl Various locations that Darwin software gets installed + dnl by various and sundry packages. + dnl ---------------------------------------------------------------------- +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +diff -ru rnpletal.orig/utilio/aclocal.m4 rnpletal/utilio/aclocal.m4 +--- rnpletal.orig/utilio/aclocal.m4 2021-06-03 19:30:17.000000000 -0400 ++++ rnpletal/utilio/aclocal.m4 2021-07-29 14:55:40.000000000 -0400 +@@ -632,7 +632,7 @@ + dnl---------------------------------------------------------------------- + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -689,7 +689,7 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +@@ -697,7 +697,7 @@ + dnl Various locations that Darwin software gets installed + dnl by various and sundry packages. + dnl ---------------------------------------------------------------------- +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +diff -ru rnpletal.orig/utilmath/aclocal.m4 rnpletal/utilmath/aclocal.m4 +--- rnpletal.orig/utilmath/aclocal.m4 2021-06-03 19:30:17.000000000 -0400 ++++ rnpletal/utilmath/aclocal.m4 2021-07-29 14:55:40.000000000 -0400 +@@ -632,7 +632,7 @@ + dnl---------------------------------------------------------------------- + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -689,7 +689,7 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +@@ -697,7 +697,7 @@ + dnl Various locations that Darwin software gets installed + dnl by various and sundry packages. + dnl ---------------------------------------------------------------------- +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +diff -ru rnpletal.orig/visutil/aclocal.m4 rnpletal/visutil/aclocal.m4 +--- rnpletal.orig/visutil/aclocal.m4 2021-06-03 19:30:17.000000000 -0400 ++++ rnpletal/visutil/aclocal.m4 2021-07-29 14:55:40.000000000 -0400 +@@ -632,7 +632,7 @@ + dnl---------------------------------------------------------------------- + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -689,7 +689,7 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +@@ -697,7 +697,7 @@ + dnl Various locations that Darwin software gets installed + dnl by various and sundry packages. + dnl ---------------------------------------------------------------------- +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" +diff -ru rnpletal.orig/vutil/aclocal.m4 rnpletal/vutil/aclocal.m4 +--- rnpletal.orig/vutil/aclocal.m4 2021-06-03 19:30:17.000000000 -0400 ++++ rnpletal/vutil/aclocal.m4 2021-07-29 14:55:40.000000000 -0400 +@@ -632,7 +632,7 @@ + dnl---------------------------------------------------------------------- + if test "X$CCF77LIBS" = "X"; then + if $F77 --version | grep g77 > /dev/null 2>&1; then +- CCF77LIBS='-lg2c -lm'; ++ CCF77LIBS='-lgfortran -lm'; + else + CCF77LIBS='-lgfortran -lm' + fi +@@ -689,7 +689,7 @@ + if test "X$CCF77LIBS" = "X"; then + case $F77 in + gfortran*|g77*) CCF77LIBS='-lgfortran -lm';; +- *) CCF77LIBS='-lg2c -lm';; ++ *) CCF77LIBS='-lgfortran -lm';; + esac + fi + RPCGEN_CPPFLAGS="-U__STDC__" +@@ -697,7 +697,7 @@ + dnl Various locations that Darwin software gets installed + dnl by various and sundry packages. + dnl ---------------------------------------------------------------------- +- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib" ++ LDFLAGS="$LDFLAGS" + if test "X$LIBGL" = "X"; then + LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm" + LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm" diff --git a/var/spack/repos/builtin/packages/rnpletal/package.py b/var/spack/repos/builtin/packages/rnpletal/package.py new file mode 100644 index 00000000000..b8f5e170847 --- /dev/null +++ b/var/spack/repos/builtin/packages/rnpletal/package.py @@ -0,0 +1,83 @@ +# Copyright 2013-2021 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 import * + + +class Rnpletal(AutotoolsPackage): + """The acronym RNPL stands for Rapid Numerical Prototyping Language. It is + a language for expressing time-dependent systems of partial differential + equations and the information necessary for solving them using + finite-difference techniques. It has advantages over traditional + programming languages such as C and FORTRAN because it only requires the + user to enter the essential structure of the program while it fills in the + details.""" + + homepage = "http://laplace.physics.ubc.ca/People/matt/Rnpl/index.html" + url = "ftp://laplace.physics.ubc.ca/pub/rnpletal/rnpletal.tar.gz" + + # RNPL is distributed via tarballs that are updated from time to time, but + # which carry no version number. + version('develop', sha256='2886f96393b64703fccf61b3dbc34e0fa45a79297232be76352f29cb83863d4d') + + maintainers = ['eschnett'] + + variant('packages', multi=True, + description="Packages to enable", + values=( + # "rvs", + # "cliser", + "rnpl", + # "svs", + # "vutil", + # "utilmath", + # "visutil", + # "utilio", + # "cvtestsdf", + # "netlib_linpack", + # "netlib_odepack", + # "netlib_fftpack", + # "netlib_lapack3.0", + ), default="rnpl") + + patch("corrections.diff") + + depends_on('bison', type='build') + depends_on('flex', type='build') + + parallel = False + + # This is only one of the configure scripts. (We will use other scripts as + # well, depending on which packages will be installed.) We define this so + # that Spack does not try to create a configure script. + @property + def configure_abs_path(self): + return os.path.join( + os.path.abspath(self.configure_directory), 'rnpl', 'configure') + + def configure(self, spec, prefix): + options = ['--prefix={0}'.format(prefix)] + for package in self.spec.variants['packages'].value: + with working_dir(package): + configure(*options) + + def build(self, spec, prefix): + for package in self.spec.variants['packages'].value: + with working_dir(package): + make() + + def install(self, spec, prefix): + for package in self.spec.variants['packages'].value: + with working_dir(package): + make("install") + + @property + def libs(self): + return find_libraries( + ["libbbhutil", "librnpl"], + root=self.prefix, shared=False, recursive=True + ) diff --git a/var/spack/repos/builtin/packages/rocalution/0001-fix-hip-build-error.patch b/var/spack/repos/builtin/packages/rocalution/0001-fix-hip-build-error.patch deleted file mode 100644 index 9be3e0895db..00000000000 --- a/var/spack/repos/builtin/packages/rocalution/0001-fix-hip-build-error.patch +++ /dev/null @@ -1,926 +0,0 @@ -From 91a08e1a412e60a718641b1a43cd88da23ff2d49 Mon Sep 17 00:00:00 2001 -From: sreenivasaMurthy Kolam -Date: Tue, 18 Aug 2020 12:27:32 -0700 -Subject: [PATCH] fix spack error - ---- - cmake/FindHIP.cmake | 659 +++++++++++++++++++++++++++++ - cmake/FindHIP/run_hipcc.cmake | 182 ++++++++ - cmake/FindHIP/run_make2cmake.cmake | 50 +++ - 3 files changed, 891 insertions(+) - create mode 100644 cmake/FindHIP.cmake - create mode 100644 cmake/FindHIP/run_hipcc.cmake - create mode 100644 cmake/FindHIP/run_make2cmake.cmake - -diff --git a/cmake/FindHIP.cmake b/cmake/FindHIP.cmake -new file mode 100644 -index 0000000..498b5e4 ---- /dev/null -+++ b/cmake/FindHIP.cmake -@@ -0,0 +1,659 @@ -+############################################################################### -+# FindHIP.cmake -+############################################################################### -+include(CheckCXXCompilerFlag) -+############################################################################### -+# SET: Variable defaults -+############################################################################### -+# User defined flags -+set(HIP_HIPCC_FLAGS "" CACHE STRING "Semicolon delimited flags for HIPCC") -+set(HIP_HCC_FLAGS "" CACHE STRING "Semicolon delimited flags for HCC") -+set(HIP_CLANG_FLAGS "" CACHE STRING "Semicolon delimited flags for CLANG") -+set(HIP_NVCC_FLAGS "" CACHE STRING "Semicolon delimted flags for NVCC") -+mark_as_advanced(HIP_HIPCC_FLAGS HIP_HCC_FLAGS HIP_CLANG_FLAGS HIP_NVCC_FLAGS) -+set(_hip_configuration_types ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE} Debug MinSizeRel Release RelWithDebInfo) -+list(REMOVE_DUPLICATES _hip_configuration_types) -+foreach(config ${_hip_configuration_types}) -+ string(TOUPPER ${config} config_upper) -+ set(HIP_HIPCC_FLAGS_${config_upper} "" CACHE STRING "Semicolon delimited flags for HIPCC") -+ set(HIP_HCC_FLAGS_${config_upper} "" CACHE STRING "Semicolon delimited flags for HCC") -+ set(HIP_CLANG_FLAGS_${config_upper} "" CACHE STRING "Semicolon delimited flags for CLANG") -+ set(HIP_NVCC_FLAGS_${config_upper} "" CACHE STRING "Semicolon delimited flags for NVCC") -+ mark_as_advanced(HIP_HIPCC_FLAGS_${config_upper} HIP_HCC_FLAGS_${config_upper} HIP_CLANG_FLAGS_${config_upper} HIP_NVCC_FLAGS_${config_upper}) -+endforeach() -+option(HIP_HOST_COMPILATION_CPP "Host code compilation mode" ON) -+option(HIP_VERBOSE_BUILD "Print out the commands run while compiling the HIP source file. With the Makefile generator this defaults to VERBOSE variable specified on the command line, but can be forced on with this option." OFF) -+mark_as_advanced(HIP_HOST_COMPILATION_CPP) -+ -+############################################################################### -+# FIND: HIP and associated helper binaries -+############################################################################### -+ -+get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../" REALPATH) -+ -+# HIP is supported on Linux only -+if(UNIX AND NOT APPLE AND NOT CYGWIN) -+ # Search for HIP installation -+ if(NOT HIP_ROOT_DIR) -+ # Search in user specified path first -+ find_path( -+ HIP_ROOT_DIR -+ NAMES bin/hipconfig -+ PATHS -+ "$ENV{ROCM_PATH}/hip" -+ ENV HIP_PATH -+ ${_IMPORT_PREFIX} -+ /opt/rocm/hip -+ DOC "HIP installed location" -+ NO_DEFAULT_PATH -+ ) -+ if(NOT EXISTS ${HIP_ROOT_DIR}) -+ if(HIP_FIND_REQUIRED) -+ message(FATAL_ERROR "Specify HIP_ROOT_DIR") -+ elseif(NOT HIP_FIND_QUIETLY) -+ message("HIP_ROOT_DIR not found or specified") -+ endif() -+ endif() -+ # And push it back to the cache -+ set(HIP_ROOT_DIR ${HIP_ROOT_DIR} CACHE PATH "HIP installed location" FORCE) -+ endif() -+ -+ # Find HIPCC executable -+ find_program( -+ HIP_HIPCC_EXECUTABLE -+ NAMES hipcc -+ PATHS -+ "${HIP_ROOT_DIR}" -+ ENV ROCM_PATH -+ ENV HIP_PATH -+ /opt/rocm -+ /opt/rocm/hip -+ PATH_SUFFIXES bin -+ NO_DEFAULT_PATH -+ ) -+ if(NOT HIP_HIPCC_EXECUTABLE) -+ # Now search in default paths -+ find_program(HIP_HIPCC_EXECUTABLE hipcc) -+ endif() -+ mark_as_advanced(HIP_HIPCC_EXECUTABLE) -+ -+ # Find HIPCONFIG executable -+ find_program( -+ HIP_HIPCONFIG_EXECUTABLE -+ NAMES hipconfig -+ PATHS -+ "${HIP_ROOT_DIR}" -+ ENV ROCM_PATH -+ ENV HIP_PATH -+ /opt/rocm -+ /opt/rocm/hip -+ PATH_SUFFIXES bin -+ NO_DEFAULT_PATH -+ ) -+ if(NOT HIP_HIPCONFIG_EXECUTABLE) -+ # Now search in default paths -+ find_program(HIP_HIPCONFIG_EXECUTABLE hipconfig) -+ endif() -+ mark_as_advanced(HIP_HIPCONFIG_EXECUTABLE) -+ -+ # Find HIPCC_CMAKE_LINKER_HELPER executable -+ find_program( -+ HIP_HIPCC_CMAKE_LINKER_HELPER -+ NAMES hipcc_cmake_linker_helper -+ PATHS -+ "${HIP_ROOT_DIR}" -+ ENV ROCM_PATH -+ ENV HIP_PATH -+ /opt/rocm -+ /opt/rocm/hip -+ PATH_SUFFIXES bin -+ NO_DEFAULT_PATH -+ ) -+ if(NOT HIP_HIPCC_CMAKE_LINKER_HELPER) -+ # Now search in default paths -+ find_program(HIP_HIPCC_CMAKE_LINKER_HELPER hipcc_cmake_linker_helper) -+ endif() -+ mark_as_advanced(HIP_HIPCC_CMAKE_LINKER_HELPER) -+ -+ if(HIP_HIPCONFIG_EXECUTABLE AND NOT HIP_VERSION) -+ # Compute the version -+ execute_process( -+ COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --version -+ OUTPUT_VARIABLE _hip_version -+ ERROR_VARIABLE _hip_error -+ OUTPUT_STRIP_TRAILING_WHITESPACE -+ ERROR_STRIP_TRAILING_WHITESPACE -+ ) -+ if(NOT _hip_error) -+ set(HIP_VERSION ${_hip_version} CACHE STRING "Version of HIP as computed from hipcc") -+ else() -+ set(HIP_VERSION "0.0.0" CACHE STRING "Version of HIP as computed by FindHIP()") -+ endif() -+ mark_as_advanced(HIP_VERSION) -+ endif() -+ if(HIP_VERSION) -+ string(REPLACE "." ";" _hip_version_list "${HIP_VERSION}") -+ list(GET _hip_version_list 0 HIP_VERSION_MAJOR) -+ list(GET _hip_version_list 1 HIP_VERSION_MINOR) -+ list(GET _hip_version_list 2 HIP_VERSION_PATCH) -+ set(HIP_VERSION_STRING "${HIP_VERSION}") -+ endif() -+ -+ if(HIP_HIPCONFIG_EXECUTABLE AND NOT HIP_PLATFORM) -+ # Compute the platform -+ execute_process( -+ COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --platform -+ OUTPUT_VARIABLE _hip_platform -+ OUTPUT_STRIP_TRAILING_WHITESPACE -+ ) -+ set(HIP_PLATFORM ${_hip_platform} CACHE STRING "HIP platform as computed by hipconfig") -+ mark_as_advanced(HIP_PLATFORM) -+ endif() -+ -+ if(HIP_HIPCONFIG_EXECUTABLE AND NOT HIP_COMPILER) -+ # Compute the compiler -+ execute_process( -+ COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --compiler -+ OUTPUT_VARIABLE _hip_compiler -+ OUTPUT_STRIP_TRAILING_WHITESPACE -+ ) -+ set(HIP_COMPILER ${_hip_compiler} CACHE STRING "HIP compiler as computed by hipconfig") -+ mark_as_advanced(HIP_COMPILER) -+ endif() -+ -+ if(HIP_HIPCONFIG_EXECUTABLE AND NOT HIP_RUNTIME) -+ # Compute the runtime -+ execute_process( -+ COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --runtime -+ OUTPUT_VARIABLE _hip_runtime -+ OUTPUT_STRIP_TRAILING_WHITESPACE -+ ) -+ set(HIP_RUNTIME ${_hip_runtime} CACHE STRING "HIP runtime as computed by hipconfig") -+ mark_as_advanced(HIP_RUNTIME) -+ endif() -+endif() -+ -+include(FindPackageHandleStandardArgs) -+find_package_handle_standard_args( -+ HIP -+ REQUIRED_VARS -+ HIP_ROOT_DIR -+ HIP_HIPCC_EXECUTABLE -+ HIP_HIPCONFIG_EXECUTABLE -+ HIP_PLATFORM -+ HIP_COMPILER -+ HIP_RUNTIME -+ VERSION_VAR HIP_VERSION -+ ) -+ -+############################################################################### -+# Set HIP CMAKE Flags -+############################################################################### -+# Copy the invocation styles from CXX to HIP -+set(CMAKE_HIP_ARCHIVE_CREATE ${CMAKE_CXX_ARCHIVE_CREATE}) -+set(CMAKE_HIP_ARCHIVE_APPEND ${CMAKE_CXX_ARCHIVE_APPEND}) -+set(CMAKE_HIP_ARCHIVE_FINISH ${CMAKE_CXX_ARCHIVE_FINISH}) -+set(CMAKE_SHARED_LIBRARY_SONAME_HIP_FLAG ${CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG}) -+set(CMAKE_SHARED_LIBRARY_CREATE_HIP_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS}) -+set(CMAKE_SHARED_LIBRARY_HIP_FLAGS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}) -+#set(CMAKE_SHARED_LIBRARY_LINK_HIP_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS}) -+set(CMAKE_SHARED_LIBRARY_RUNTIME_HIP_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG}) -+set(CMAKE_SHARED_LIBRARY_RUNTIME_HIP_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP}) -+set(CMAKE_SHARED_LIBRARY_LINK_STATIC_HIP_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_STATIC_CXX_FLAGS}) -+set(CMAKE_SHARED_LIBRARY_LINK_DYNAMIC_HIP_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_DYNAMIC_CXX_FLAGS}) -+ -+set(HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS "") -+set(HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS "") -+ -+if("${HIP_COMPILER}" STREQUAL "hcc") -+ # Set the CMake Flags to use the HCC Compiler. -+ set(CMAKE_HIP_CREATE_SHARED_LIBRARY "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} -o ") -+ set(CMAKE_HIP_CREATE_SHARED_MODULE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} -o -shared" ) -+ set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} -o ") -+elseif("${HIP_COMPILER}" STREQUAL "clang") -+ #Number of parallel jobs by default is 1 -+ if(NOT DEFINED HIP_CLANG_NUM_PARALLEL_JOBS) -+ set(HIP_CLANG_NUM_PARALLEL_JOBS 1) -+ endif() -+ #Add support for parallel build and link -+ if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") -+ check_cxx_compiler_flag("-parallel-jobs=1" HIP_CLANG_SUPPORTS_PARALLEL_JOBS) -+ endif() -+ if(HIP_CLANG_NUM_PARALLEL_JOBS GREATER 1) -+ if(${HIP_CLANG_SUPPORTS_PARALLEL_JOBS}) -+ set(HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS "-parallel-jobs=${HIP_CLANG_NUM_PARALLEL_JOBS} -Wno-format-nonliteral") -+ set(HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS "-parallel-jobs=${HIP_CLANG_NUM_PARALLEL_JOBS}") -+ else() -+ message("clang compiler doesn't support parallel jobs") -+ endif() -+ endif() -+ -+ # Set the CMake Flags to use the HIP-Clang Compiler. -+ set(CMAKE_HIP_CREATE_SHARED_LIBRARY "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} -o ") -+ set(CMAKE_HIP_CREATE_SHARED_MODULE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} -o -shared" ) -+ set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} -o ") -+endif() -+ -+############################################################################### -+# MACRO: Locate helper files -+############################################################################### -+macro(HIP_FIND_HELPER_FILE _name _extension) -+ set(_hip_full_name "${_name}.${_extension}") -+ get_filename_component(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -+ set(HIP_${_name} "${CMAKE_CURRENT_LIST_DIR}/FindHIP/${_hip_full_name}") -+ if(NOT EXISTS "${HIP_${_name}}") -+ set(error_message "${_hip_full_name} not found in ${CMAKE_CURRENT_LIST_DIR}/FindHIP") -+ if(HIP_FIND_REQUIRED) -+ message(FATAL_ERROR "${error_message}") -+ else() -+ if(NOT HIP_FIND_QUIETLY) -+ message(STATUS "${error_message}") -+ endif() -+ endif() -+ endif() -+ # Set this variable as internal, so the user isn't bugged with it. -+ set(HIP_${_name} ${HIP_${_name}} CACHE INTERNAL "Location of ${_full_name}" FORCE) -+endmacro() -+ -+############################################################################### -+hip_find_helper_file(run_make2cmake cmake) -+hip_find_helper_file(run_hipcc cmake) -+############################################################################### -+ -+############################################################################### -+# MACRO: Reset compiler flags -+############################################################################### -+macro(HIP_RESET_FLAGS) -+ unset(HIP_HIPCC_FLAGS) -+ unset(HIP_HCC_FLAGS) -+ unset(HIP_CLANG_FLAGS) -+ unset(HIP_NVCC_FLAGS) -+ foreach(config ${_hip_configuration_types}) -+ string(TOUPPER ${config} config_upper) -+ unset(HIP_HIPCC_FLAGS_${config_upper}) -+ unset(HIP_HCC_FLAGS_${config_upper}) -+ unset(HIP_CLANG_FLAGS_${config_upper}) -+ unset(HIP_NVCC_FLAGS_${config_upper}) -+ endforeach() -+endmacro() -+ -+############################################################################### -+# MACRO: Separate the options from the sources -+############################################################################### -+macro(HIP_GET_SOURCES_AND_OPTIONS _sources _cmake_options _hipcc_options _hcc_options _clang_options _nvcc_options) -+ set(${_sources}) -+ set(${_cmake_options}) -+ set(${_hipcc_options}) -+ set(${_hcc_options}) -+ set(${_clang_options}) -+ set(${_nvcc_options}) -+ set(_hipcc_found_options FALSE) -+ set(_hcc_found_options FALSE) -+ set(_clang_found_options FALSE) -+ set(_nvcc_found_options FALSE) -+ foreach(arg ${ARGN}) -+ if("x${arg}" STREQUAL "xHIPCC_OPTIONS") -+ set(_hipcc_found_options TRUE) -+ set(_hcc_found_options FALSE) -+ set(_clang_found_options FALSE) -+ set(_nvcc_found_options FALSE) -+ elseif("x${arg}" STREQUAL "xHCC_OPTIONS") -+ set(_hipcc_found_options FALSE) -+ set(_hcc_found_options TRUE) -+ set(_clang_found_options FALSE) -+ set(_nvcc_found_options FALSE) -+ elseif("x${arg}" STREQUAL "xCLANG_OPTIONS") -+ set(_hipcc_found_options FALSE) -+ set(_hcc_found_options FALSE) -+ set(_clang_found_options TRUE) -+ set(_nvcc_found_options FALSE) -+ elseif("x${arg}" STREQUAL "xNVCC_OPTIONS") -+ set(_hipcc_found_options FALSE) -+ set(_hcc_found_options FALSE) -+ set(_clang_found_options FALSE) -+ set(_nvcc_found_options TRUE) -+ elseif( -+ "x${arg}" STREQUAL "xEXCLUDE_FROM_ALL" OR -+ "x${arg}" STREQUAL "xSTATIC" OR -+ "x${arg}" STREQUAL "xSHARED" OR -+ "x${arg}" STREQUAL "xMODULE" -+ ) -+ list(APPEND ${_cmake_options} ${arg}) -+ else() -+ if(_hipcc_found_options) -+ list(APPEND ${_hipcc_options} ${arg}) -+ elseif(_hcc_found_options) -+ list(APPEND ${_hcc_options} ${arg}) -+ elseif(_clang_found_options) -+ list(APPEND ${_clang_options} ${arg}) -+ elseif(_nvcc_found_options) -+ list(APPEND ${_nvcc_options} ${arg}) -+ else() -+ # Assume this is a file -+ list(APPEND ${_sources} ${arg}) -+ endif() -+ endif() -+ endforeach() -+endmacro() -+ -+############################################################################### -+# MACRO: Add include directories to pass to the hipcc command -+############################################################################### -+set(HIP_HIPCC_INCLUDE_ARGS_USER "") -+macro(HIP_INCLUDE_DIRECTORIES) -+ foreach(dir ${ARGN}) -+ list(APPEND HIP_HIPCC_INCLUDE_ARGS_USER $<$:-I${dir}>) -+ endforeach() -+endmacro() -+ -+############################################################################### -+# FUNCTION: Helper to avoid clashes of files with the same basename but different paths -+############################################################################### -+function(HIP_COMPUTE_BUILD_PATH path build_path) -+ # Convert to cmake style paths -+ file(TO_CMAKE_PATH "${path}" bpath) -+ if(IS_ABSOLUTE "${bpath}") -+ string(FIND "${bpath}" "${CMAKE_CURRENT_BINARY_DIR}" _binary_dir_pos) -+ if(_binary_dir_pos EQUAL 0) -+ file(RELATIVE_PATH bpath "${CMAKE_CURRENT_BINARY_DIR}" "${bpath}") -+ else() -+ file(RELATIVE_PATH bpath "${CMAKE_CURRENT_SOURCE_DIR}" "${bpath}") -+ endif() -+ endif() -+ -+ # Remove leading / -+ string(REGEX REPLACE "^[/]+" "" bpath "${bpath}") -+ # Avoid absolute paths by removing ':' -+ string(REPLACE ":" "_" bpath "${bpath}") -+ # Avoid relative paths that go up the tree -+ string(REPLACE "../" "__/" bpath "${bpath}") -+ # Avoid spaces -+ string(REPLACE " " "_" bpath "${bpath}") -+ # Strip off the filename -+ get_filename_component(bpath "${bpath}" PATH) -+ -+ set(${build_path} "${bpath}" PARENT_SCOPE) -+endfunction() -+ -+############################################################################### -+# MACRO: Parse OPTIONS from ARGN & set variables prefixed by _option_prefix -+############################################################################### -+macro(HIP_PARSE_HIPCC_OPTIONS _option_prefix) -+ set(_hip_found_config) -+ foreach(arg ${ARGN}) -+ # Determine if we are dealing with a per-configuration flag -+ foreach(config ${_hip_configuration_types}) -+ string(TOUPPER ${config} config_upper) -+ if(arg STREQUAL "${config_upper}") -+ set(_hip_found_config _${arg}) -+ # Clear arg to prevent it from being processed anymore -+ set(arg) -+ endif() -+ endforeach() -+ if(arg) -+ list(APPEND ${_option_prefix}${_hip_found_config} "${arg}") -+ endif() -+ endforeach() -+endmacro() -+ -+############################################################################### -+# MACRO: Try and include dependency file if it exists -+############################################################################### -+macro(HIP_INCLUDE_HIPCC_DEPENDENCIES dependency_file) -+ set(HIP_HIPCC_DEPEND) -+ set(HIP_HIPCC_DEPEND_REGENERATE FALSE) -+ -+ # Create the dependency file if it doesn't exist -+ if(NOT EXISTS ${dependency_file}) -+ file(WRITE ${dependency_file} "# Generated by: FindHIP.cmake. Do not edit.\n") -+ endif() -+ # Include the dependency file -+ include(${dependency_file}) -+ -+ # Verify the existence of all the included files -+ if(HIP_HIPCC_DEPEND) -+ foreach(f ${HIP_HIPCC_DEPEND}) -+ if(NOT EXISTS ${f}) -+ # If they aren't there, regenerate the file again -+ set(HIP_HIPCC_DEPEND_REGENERATE TRUE) -+ endif() -+ endforeach() -+ else() -+ # No dependencies, so regenerate the file -+ set(HIP_HIPCC_DEPEND_REGENERATE TRUE) -+ endif() -+ -+ # Regenerate the dependency file if needed -+ if(HIP_HIPCC_DEPEND_REGENERATE) -+ set(HIP_HIPCC_DEPEND ${dependency_file}) -+ file(WRITE ${dependency_file} "# Generated by: FindHIP.cmake. Do not edit.\n") -+ endif() -+endmacro() -+ -+############################################################################### -+# MACRO: Prepare cmake commands for the target -+############################################################################### -+macro(HIP_PREPARE_TARGET_COMMANDS _target _format _generated_files _source_files) -+ set(_hip_flags "") -+ string(TOUPPER "${CMAKE_BUILD_TYPE}" _hip_build_configuration) -+ if(HIP_HOST_COMPILATION_CPP) -+ set(HIP_C_OR_CXX CXX) -+ else() -+ set(HIP_C_OR_CXX C) -+ endif() -+ set(generated_extension ${CMAKE_${HIP_C_OR_CXX}_OUTPUT_EXTENSION}) -+ -+ # Initialize list of includes with those specified by the user. Append with -+ # ones specified to cmake directly. -+ set(HIP_HIPCC_INCLUDE_ARGS ${HIP_HIPCC_INCLUDE_ARGS_USER}) -+ -+ # Add the include directories -+ set(include_directories_generator "$") -+ list(APPEND HIP_HIPCC_INCLUDE_ARGS "$<$:-I$>") -+ -+ get_directory_property(_hip_include_directories INCLUDE_DIRECTORIES) -+ list(REMOVE_DUPLICATES _hip_include_directories) -+ if(_hip_include_directories) -+ foreach(dir ${_hip_include_directories}) -+ list(APPEND HIP_HIPCC_INCLUDE_ARGS $<$:-I${dir}>) -+ endforeach() -+ endif() -+ -+ HIP_GET_SOURCES_AND_OPTIONS(_hip_sources _hip_cmake_options _hipcc_options _hcc_options _clang_options _nvcc_options ${ARGN}) -+ HIP_PARSE_HIPCC_OPTIONS(HIP_HIPCC_FLAGS ${_hipcc_options}) -+ HIP_PARSE_HIPCC_OPTIONS(HIP_HCC_FLAGS ${_hcc_options}) -+ HIP_PARSE_HIPCC_OPTIONS(HIP_CLANG_FLAGS ${_clang_options}) -+ HIP_PARSE_HIPCC_OPTIONS(HIP_NVCC_FLAGS ${_nvcc_options}) -+ -+ # Add the compile definitions -+ set(compile_definition_generator "$") -+ list(APPEND HIP_HIPCC_FLAGS "$<$:-D$>") -+ -+ # Check if we are building shared library. -+ set(_hip_build_shared_libs FALSE) -+ list(FIND _hip_cmake_options SHARED _hip_found_SHARED) -+ list(FIND _hip_cmake_options MODULE _hip_found_MODULE) -+ if(_hip_found_SHARED GREATER -1 OR _hip_found_MODULE GREATER -1) -+ set(_hip_build_shared_libs TRUE) -+ endif() -+ list(FIND _hip_cmake_options STATIC _hip_found_STATIC) -+ if(_hip_found_STATIC GREATER -1) -+ set(_hip_build_shared_libs FALSE) -+ endif() -+ -+ # If we are building a shared library, add extra flags to HIP_HIPCC_FLAGS -+ if(_hip_build_shared_libs) -+ list(APPEND HIP_HCC_FLAGS "-fPIC") -+ list(APPEND HIP_CLANG_FLAGS "-fPIC") -+ list(APPEND HIP_NVCC_FLAGS "--shared -Xcompiler '-fPIC'") -+ endif() -+ -+ # Set host compiler -+ set(HIP_HOST_COMPILER "${CMAKE_${HIP_C_OR_CXX}_COMPILER}") -+ -+ # Set compiler flags -+ set(_HIP_HOST_FLAGS "set(CMAKE_HOST_FLAGS ${CMAKE_${HIP_C_OR_CXX}_FLAGS})") -+ set(_HIP_HIPCC_FLAGS "set(HIP_HIPCC_FLAGS ${HIP_HIPCC_FLAGS})") -+ set(_HIP_HCC_FLAGS "set(HIP_HCC_FLAGS ${HIP_HCC_FLAGS})") -+ set(_HIP_CLANG_FLAGS "set(HIP_CLANG_FLAGS ${HIP_CLANG_FLAGS})") -+ set(_HIP_NVCC_FLAGS "set(HIP_NVCC_FLAGS ${HIP_NVCC_FLAGS})") -+ foreach(config ${_hip_configuration_types}) -+ string(TOUPPER ${config} config_upper) -+ set(_HIP_HOST_FLAGS "${_HIP_HOST_FLAGS}\nset(CMAKE_HOST_FLAGS_${config_upper} ${CMAKE_${HIP_C_OR_CXX}_FLAGS_${config_upper}})") -+ set(_HIP_HIPCC_FLAGS "${_HIP_HIPCC_FLAGS}\nset(HIP_HIPCC_FLAGS_${config_upper} ${HIP_HIPCC_FLAGS_${config_upper}})") -+ set(_HIP_HCC_FLAGS "${_HIP_HCC_FLAGS}\nset(HIP_HCC_FLAGS_${config_upper} ${HIP_HCC_FLAGS_${config_upper}})") -+ set(_HIP_CLANG_FLAGS "${_HIP_CLANG_FLAGS}\nset(HIP_CLANG_FLAGS_${config_upper} ${HIP_CLANG_FLAGS_${config_upper}})") -+ set(_HIP_NVCC_FLAGS "${_HIP_NVCC_FLAGS}\nset(HIP_NVCC_FLAGS_${config_upper} ${HIP_NVCC_FLAGS_${config_upper}})") -+ endforeach() -+ -+ # Reset the output variable -+ set(_hip_generated_files "") -+ set(_hip_source_files "") -+ -+ # Iterate over all arguments and create custom commands for all source files -+ foreach(file ${ARGN}) -+ # Ignore any file marked as a HEADER_FILE_ONLY -+ get_source_file_property(_is_header ${file} HEADER_FILE_ONLY) -+ # Allow per source file overrides of the format. Also allows compiling non .cu files. -+ get_source_file_property(_hip_source_format ${file} HIP_SOURCE_PROPERTY_FORMAT) -+ if((${file} MATCHES "\\.cu$" OR _hip_source_format) AND NOT _is_header) -+ set(host_flag FALSE) -+ else() -+ set(host_flag TRUE) -+ endif() -+ -+ if(NOT host_flag) -+ # Determine output directory -+ HIP_COMPUTE_BUILD_PATH("${file}" hip_build_path) -+ set(hip_compile_output_dir "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${_target}.dir/${hip_build_path}") -+ -+ get_filename_component(basename ${file} NAME) -+ set(generated_file_path "${hip_compile_output_dir}/${CMAKE_CFG_INTDIR}") -+ set(generated_file_basename "${_target}_generated_${basename}${generated_extension}") -+ -+ # Set file names -+ set(generated_file "${generated_file_path}/${generated_file_basename}") -+ set(cmake_dependency_file "${hip_compile_output_dir}/${generated_file_basename}.depend") -+ set(custom_target_script_pregen "${hip_compile_output_dir}/${generated_file_basename}.cmake.pre-gen") -+ set(custom_target_script "${hip_compile_output_dir}/${generated_file_basename}.cmake") -+ -+ # Set properties for object files -+ set_source_files_properties("${generated_file}" -+ PROPERTIES -+ EXTERNAL_OBJECT true # This is an object file not to be compiled, but only be linked -+ ) -+ -+ # Don't add CMAKE_CURRENT_SOURCE_DIR if the path is already an absolute path -+ get_filename_component(file_path "${file}" PATH) -+ if(IS_ABSOLUTE "${file_path}") -+ set(source_file "${file}") -+ else() -+ set(source_file "${CMAKE_CURRENT_SOURCE_DIR}/${file}") -+ endif() -+ -+ # Bring in the dependencies -+ HIP_INCLUDE_HIPCC_DEPENDENCIES(${cmake_dependency_file}) -+ -+ # Configure the build script -+ configure_file("${HIP_run_hipcc}" "${custom_target_script_pregen}" @ONLY) -+ file(GENERATE -+ OUTPUT "${custom_target_script}" -+ INPUT "${custom_target_script_pregen}" -+ ) -+ set(main_dep DEPENDS ${source_file}) -+ if(CMAKE_GENERATOR MATCHES "Makefiles") -+ set(verbose_output "$(VERBOSE)") -+ elseif(HIP_VERBOSE_BUILD) -+ set(verbose_output ON) -+ else() -+ set(verbose_output OFF) -+ endif() -+ -+ # Create up the comment string -+ file(RELATIVE_PATH generated_file_relative_path "${CMAKE_BINARY_DIR}" "${generated_file}") -+ set(hip_build_comment_string "Building HIPCC object ${generated_file_relative_path}") -+ -+ # Build the generated file and dependency file -+ add_custom_command( -+ OUTPUT ${generated_file} -+ # These output files depend on the source_file and the contents of cmake_dependency_file -+ ${main_dep} -+ DEPENDS ${HIP_HIPCC_DEPEND} -+ DEPENDS ${custom_target_script} -+ # Make sure the output directory exists before trying to write to it. -+ COMMAND ${CMAKE_COMMAND} -E make_directory "${generated_file_path}" -+ COMMAND ${CMAKE_COMMAND} ARGS -+ -D verbose:BOOL=${verbose_output} -+ -D build_configuration:STRING=${_hip_build_configuration} -+ -D "generated_file:STRING=${generated_file}" -+ -P "${custom_target_script}" -+ WORKING_DIRECTORY "${hip_compile_output_dir}" -+ COMMENT "${hip_build_comment_string}" -+ ) -+ -+ # Make sure the build system knows the file is generated -+ set_source_files_properties(${generated_file} PROPERTIES GENERATED TRUE) -+ list(APPEND _hip_generated_files ${generated_file}) -+ list(APPEND _hip_source_files ${file}) -+ endif() -+ endforeach() -+ -+ # Set the return parameter -+ set(${_generated_files} ${_hip_generated_files}) -+ set(${_source_files} ${_hip_source_files}) -+endmacro() -+ -+############################################################################### -+# HIP_ADD_EXECUTABLE -+############################################################################### -+macro(HIP_ADD_EXECUTABLE hip_target) -+ # Separate the sources from the options -+ HIP_GET_SOURCES_AND_OPTIONS(_sources _cmake_options _hipcc_options _hcc_options _clang_options _nvcc_options ${ARGN}) -+ HIP_PREPARE_TARGET_COMMANDS(${hip_target} OBJ _generated_files _source_files ${_sources} HIPCC_OPTIONS ${_hipcc_options} HCC_OPTIONS ${_hcc_options} CLANG_OPTIONS ${_clang_options} NVCC_OPTIONS ${_nvcc_options}) -+ if(_source_files) -+ list(REMOVE_ITEM _sources ${_source_files}) -+ endif() -+ if("${HIP_COMPILER}" STREQUAL "hcc") -+ if("x${HCC_HOME}" STREQUAL "x") -+ if (DEFINED ENV{ROCM_PATH}) -+ set(HCC_HOME "$ENV{ROCM_PATH}/hcc") -+ elseif(DEFINED ENV{HIP_PATH}) -+ set(HCC_HOME "$ENV{HIP_PATH}/../hcc") -+ else() -+ set(HCC_HOME "/opt/rocm/hcc") -+ endif() -+ endif() -+ set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} -o ") -+ elseif("${HIP_COMPILER}" STREQUAL "clang") -+ if("x${HIP_CLANG_PATH}" STREQUAL "x") -+ if(DEFINED ENV{HIP_CLANG_PATH}) -+ set(HIP_CLANG_PATH $ENV{HIP_CLANG_PATH}) -+ elseif(DEFINED ENV{ROCM_PATH}) -+ set(HIP_CLANG_PATH "$ENV{ROCM_PATH}/llvm/bin") -+ elseif(DEFINED ENV{HIP_PATH}) -+ set(HIP_CLANG_PATH "$ENV{HIP_PATH}/../llvm/bin") -+ else() -+ set(HIP_CLANG_PATH "/opt/rocm/llvm/bin") -+ endif() -+ endif() -+ set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} -o ") -+ endif() -+ add_executable(${hip_target} ${_cmake_options} ${_generated_files} ${_sources}) -+ set_target_properties(${hip_target} PROPERTIES LINKER_LANGUAGE HIP) -+endmacro() -+ -+############################################################################### -+# HIP_ADD_LIBRARY -+############################################################################### -+macro(HIP_ADD_LIBRARY hip_target) -+ # Separate the sources from the options -+ HIP_GET_SOURCES_AND_OPTIONS(_sources _cmake_options _hipcc_options _hcc_options _clang_options _nvcc_options ${ARGN}) -+ HIP_PREPARE_TARGET_COMMANDS(${hip_target} OBJ _generated_files _source_files ${_sources} ${_cmake_options} HIPCC_OPTIONS ${_hipcc_options} HCC_OPTIONS ${_hcc_options} CLANG_OPTIONS ${_clang_options} NVCC_OPTIONS ${_nvcc_options}) -+ if(_source_files) -+ list(REMOVE_ITEM _sources ${_source_files}) -+ endif() -+ add_library(${hip_target} ${_cmake_options} ${_generated_files} ${_sources}) -+ set_target_properties(${hip_target} PROPERTIES LINKER_LANGUAGE ${HIP_C_OR_CXX}) -+endmacro() -+ -+# vim: ts=4:sw=4:expandtab:smartindent -diff --git a/cmake/FindHIP/run_hipcc.cmake b/cmake/FindHIP/run_hipcc.cmake -new file mode 100644 -index 0000000..63c7bb3 ---- /dev/null -+++ b/cmake/FindHIP/run_hipcc.cmake -@@ -0,0 +1,182 @@ -+############################################################################### -+# Runs commands using HIPCC -+############################################################################### -+ -+############################################################################### -+# This file runs the hipcc commands to produce the desired output file -+# along with the dependency file needed by CMake to compute dependencies. -+# -+# Input variables: -+# -+# verbose:BOOL=<> OFF: Be as quiet as possible (default) -+# ON : Describe each step -+# build_configuration:STRING=<> Build configuration. Defaults to Debug. -+# generated_file:STRING=<> File to generate. Mandatory argument. -+ -+if(NOT build_configuration) -+ set(build_configuration Debug) -+endif() -+if(NOT generated_file) -+ message(FATAL_ERROR "You must specify generated_file on the command line") -+endif() -+ -+# Set these up as variables to make reading the generated file easier -+set(HIP_HIPCC_EXECUTABLE "@HIP_HIPCC_EXECUTABLE@") # path -+set(HIP_HIPCONFIG_EXECUTABLE "@HIP_HIPCONFIG_EXECUTABLE@") #path -+set(HIP_HOST_COMPILER "@HIP_HOST_COMPILER@") # path -+set(CMAKE_COMMAND "@CMAKE_COMMAND@") # path -+set(HIP_run_make2cmake "@HIP_run_make2cmake@") # path -+set(HCC_HOME "@HCC_HOME@") #path -+set(HIP_CLANG_PATH "@HIP_CLANG_PATH@") #path -+set(HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS "@HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS@") -+ -+@HIP_HOST_FLAGS@ -+@_HIP_HIPCC_FLAGS@ -+@_HIP_HCC_FLAGS@ -+@_HIP_CLANG_FLAGS@ -+@_HIP_NVCC_FLAGS@ -+#Needed to bring the HIP_HIPCC_INCLUDE_ARGS variable in scope -+set(HIP_HIPCC_INCLUDE_ARGS @HIP_HIPCC_INCLUDE_ARGS@) # list -+ -+set(cmake_dependency_file "@cmake_dependency_file@") # path -+set(source_file "@source_file@") # path -+set(host_flag "@host_flag@") # bool -+ -+# Determine compiler and compiler flags -+execute_process(COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --platform OUTPUT_VARIABLE HIP_PLATFORM OUTPUT_STRIP_TRAILING_WHITESPACE) -+execute_process(COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --compiler OUTPUT_VARIABLE HIP_COMPILER OUTPUT_STRIP_TRAILING_WHITESPACE) -+execute_process(COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --runtime OUTPUT_VARIABLE HIP_RUNTIME OUTPUT_STRIP_TRAILING_WHITESPACE) -+if(NOT host_flag) -+ set(__CC ${HIP_HIPCC_EXECUTABLE}) -+ if("${HIP_PLATFORM}" STREQUAL "hcc") -+ if("${HIP_COMPILER}" STREQUAL "hcc") -+ if(NOT "x${HCC_HOME}" STREQUAL "x") -+ set(ENV{HCC_HOME} ${HCC_HOME}) -+ endif() -+ set(__CC_FLAGS ${HIP_HIPCC_FLAGS} ${HIP_HCC_FLAGS} ${HIP_HIPCC_FLAGS_${build_configuration}} ${HIP_HCC_FLAGS_${build_configuration}}) -+ elseif("${HIP_COMPILER}" STREQUAL "clang") -+ if(NOT "x${HIP_CLANG_PATH}" STREQUAL "x") -+ set(ENV{HIP_CLANG_PATH} ${HIP_CLANG_PATH}) -+ endif() -+ # Temporarily include HIP_HCC_FLAGS for HIP-Clang for PyTorch builds -+ set(__CC_FLAGS ${HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS} ${HIP_HIPCC_FLAGS} ${HIP_HCC_FLAGS} ${HIP_CLANG_FLAGS} ${HIP_HIPCC_FLAGS_${build_configuration}} ${HIP_HCC_FLAGS_${build_configuration}} ${HIP_CLANG_FLAGS_${build_configuration}}) -+ endif() -+ else() -+ set(__CC_FLAGS ${HIP_HIPCC_FLAGS} ${HIP_NVCC_FLAGS} ${HIP_HIPCC_FLAGS_${build_configuration}} ${HIP_NVCC_FLAGS_${build_configuration}}) -+ endif() -+else() -+ set(__CC ${HIP_HOST_COMPILER}) -+ set(__CC_FLAGS ${CMAKE_HOST_FLAGS} ${CMAKE_HOST_FLAGS_${build_configuration}}) -+endif() -+set(__CC_INCLUDES ${HIP_HIPCC_INCLUDE_ARGS}) -+ -+# hip_execute_process - Executes a command with optional command echo and status message. -+# status - Status message to print if verbose is true -+# command - COMMAND argument from the usual execute_process argument structure -+# ARGN - Remaining arguments are the command with arguments -+# HIP_result - Return value from running the command -+macro(hip_execute_process status command) -+ set(_command ${command}) -+ if(NOT "x${_command}" STREQUAL "xCOMMAND") -+ message(FATAL_ERROR "Malformed call to hip_execute_process. Missing COMMAND as second argument. (command = ${command})") -+ endif() -+ if(verbose) -+ execute_process(COMMAND "${CMAKE_COMMAND}" -E echo -- ${status}) -+ # Build command string to print -+ set(hip_execute_process_string) -+ foreach(arg ${ARGN}) -+ # Escape quotes if any -+ string(REPLACE "\"" "\\\"" arg ${arg}) -+ # Surround args with spaces with quotes -+ if(arg MATCHES " ") -+ list(APPEND hip_execute_process_string "\"${arg}\"") -+ else() -+ list(APPEND hip_execute_process_string ${arg}) -+ endif() -+ endforeach() -+ # Echo the command -+ execute_process(COMMAND ${CMAKE_COMMAND} -E echo ${hip_execute_process_string}) -+ endif() -+ # Run the command -+ execute_process(COMMAND ${ARGN} RESULT_VARIABLE HIP_result) -+endmacro() -+ -+# Delete the target file -+hip_execute_process( -+ "Removing ${generated_file}" -+ COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}" -+ ) -+ -+# Generate the dependency file -+hip_execute_process( -+ "Generating dependency file: ${cmake_dependency_file}.pre" -+ COMMAND "${__CC}" -+ -M -+ "${source_file}" -+ -o "${cmake_dependency_file}.pre" -+ ${__CC_FLAGS} -+ ${__CC_INCLUDES} -+ ) -+ -+if(HIP_result) -+ message(FATAL_ERROR "Error generating ${generated_file}") -+endif() -+ -+# Generate the cmake readable dependency file to a temp file -+hip_execute_process( -+ "Generating temporary cmake readable file: ${cmake_dependency_file}.tmp" -+ COMMAND "${CMAKE_COMMAND}" -+ -D "input_file:FILEPATH=${cmake_dependency_file}.pre" -+ -D "output_file:FILEPATH=${cmake_dependency_file}.tmp" -+ -D "verbose=${verbose}" -+ -P "${HIP_run_make2cmake}" -+ ) -+ -+if(HIP_result) -+ message(FATAL_ERROR "Error generating ${generated_file}") -+endif() -+ -+# Copy the file if it is different -+hip_execute_process( -+ "Copy if different ${cmake_dependency_file}.tmp to ${cmake_dependency_file}" -+ COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${cmake_dependency_file}.tmp" "${cmake_dependency_file}" -+ ) -+ -+if(HIP_result) -+ message(FATAL_ERROR "Error generating ${generated_file}") -+endif() -+ -+# Delete the temporary file -+hip_execute_process( -+ "Removing ${cmake_dependency_file}.tmp and ${cmake_dependency_file}.pre" -+ COMMAND "${CMAKE_COMMAND}" -E remove "${cmake_dependency_file}.tmp" "${cmake_dependency_file}.pre" -+ ) -+ -+if(HIP_result) -+ message(FATAL_ERROR "Error generating ${generated_file}") -+endif() -+ -+# Generate the output file -+hip_execute_process( -+ "Generating ${generated_file}" -+ COMMAND "${__CC}" -+ -c -+ "${source_file}" -+ -o "${generated_file}" -+ ${__CC_FLAGS} -+ ${__CC_INCLUDES} -+ ) -+ -+if(HIP_result) -+ # Make sure that we delete the output file -+ hip_execute_process( -+ "Removing ${generated_file}" -+ COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}" -+ ) -+ message(FATAL_ERROR "Error generating file ${generated_file}") -+else() -+ if(verbose) -+ message("Generated ${generated_file} successfully.") -+ endif() -+endif() -+# vim: ts=4:sw=4:expandtab:smartindent -diff --git a/cmake/FindHIP/run_make2cmake.cmake b/cmake/FindHIP/run_make2cmake.cmake -new file mode 100644 -index 0000000..d2e3eb5 ---- /dev/null -+++ b/cmake/FindHIP/run_make2cmake.cmake -@@ -0,0 +1,50 @@ -+############################################################################### -+# Computes dependencies using HIPCC -+############################################################################### -+ -+############################################################################### -+# This file converts dependency files generated using hipcc to a format that -+# cmake can understand. -+ -+# Input variables: -+# -+# input_file:STRING=<> Dependency file to parse. Required argument -+# output_file:STRING=<> Output file to generate. Required argument -+ -+if(NOT input_file OR NOT output_file) -+ message(FATAL_ERROR "You must specify input_file and output_file on the command line") -+endif() -+ -+file(READ ${input_file} depend_text) -+ -+if (NOT "${depend_text}" STREQUAL "") -+ string(REPLACE " /" "\n/" depend_text ${depend_text}) -+ string(REGEX REPLACE "^.*:" "" depend_text ${depend_text}) -+ string(REGEX REPLACE "[ \\\\]*\n" ";" depend_text ${depend_text}) -+ -+ set(dependency_list "") -+ -+ foreach(file ${depend_text}) -+ string(REGEX REPLACE "^ +" "" file ${file}) -+ if(NOT EXISTS "${file}") -+ message(WARNING " Removing non-existent dependency file: ${file}") -+ set(file "") -+ endif() -+ -+ if(NOT IS_DIRECTORY "${file}") -+ get_filename_component(file_absolute "${file}" ABSOLUTE) -+ list(APPEND dependency_list "${file_absolute}") -+ endif() -+ endforeach() -+endif() -+ -+# Remove the duplicate entries and sort them. -+list(REMOVE_DUPLICATES dependency_list) -+list(SORT dependency_list) -+ -+foreach(file ${dependency_list}) -+ set(hip_hipcc_depend "${hip_hipcc_depend} \"${file}\"\n") -+endforeach() -+ -+file(WRITE ${output_file} "# Generated by: FindHIP.cmake. Do not edit.\nSET(HIP_HIPCC_DEPEND\n ${hip_hipcc_depend})\n\n") -+# vim: ts=4:sw=4:expandtab:smartindent --- -2.22.0 - diff --git a/var/spack/repos/builtin/packages/rocalution/package.py b/var/spack/repos/builtin/packages/rocalution/package.py index fa4a1251de9..a1936ed5727 100644 --- a/var/spack/repos/builtin/packages/rocalution/package.py +++ b/var/spack/repos/builtin/packages/rocalution/package.py @@ -17,10 +17,11 @@ class Rocalution(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocALUTION" git = "https://github.com/ROCmSoftwarePlatform/rocALUTION.git" - url = "https://github.com/ROCmSoftwarePlatform/rocALUTION/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocALUTION/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='f064b96f9f04cf22b89f95f72147fcfef28e2c56ecd764008c060f869c74c144') version('4.2.0', sha256='0424adf522ded41de5b77666e04464a25c73c92e34025762f30837f90a797445') version('4.1.0', sha256='3f61be18a02dff0c152a0ad7eb4779c43dd744b0ba172aa6a4267fc596d582e4') version('4.0.0', sha256='80a224a5c19dea290e6edc0e170c3dff2e726c2b3105d599ec6858cc66f076a9') @@ -32,7 +33,7 @@ class Rocalution(CMakePackage): depends_on('cmake@3.5:', type='build') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('hip@' + ver, when='@' + ver) depends_on('rocblas@' + ver, when='@' + ver) depends_on('rocprim@' + ver, when='@' + ver) @@ -41,14 +42,9 @@ class Rocalution(CMakePackage): depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver) depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) - for ver in ['3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0']: + for ver in ['3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0', '4.3.0']: depends_on('rocrand@' + ver, when='@' + ver) - for ver in ['4.1.0', '4.2.0']: - depends_on('hip-rocclr@' + ver, when='@' + ver) - - patch('0001-fix-hip-build-error.patch') - def setup_build_environment(self, env): env.set('CXX', self.spec['hip'].hipcc) @@ -63,8 +59,14 @@ def patch(self): filter_file(match, substitute, *files, **kwargs) def cmake_args(self): - return [ + args = [ + self.define('CMAKE_MODULE_PATH', self.spec['hip'].prefix.cmake), self.define('SUPPORT_HIP', 'ON'), self.define('SUPPORT_MPI', 'OFF'), self.define('BUILD_CLIENTS_SAMPLES', 'OFF') ] + + if self.spec.satisfies('^cmake@3.21:'): + args.append(self.define('__skip_rocmclang', 'ON')) + + return args diff --git a/var/spack/repos/builtin/packages/rocblas/package.py b/var/spack/repos/builtin/packages/rocblas/package.py index 3d4e28e3df3..4b18f12496e 100644 --- a/var/spack/repos/builtin/packages/rocblas/package.py +++ b/var/spack/repos/builtin/packages/rocblas/package.py @@ -12,10 +12,11 @@ class Rocblas(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocBLAS/" git = "https://github.com/ROCmSoftwarePlatform/rocBLAS.git" - url = "https://github.com/ROCmSoftwarePlatform/rocBLAS/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocBLAS/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie'] + version('4.3.0', sha256='b15a66c861b3394cb83c56b64530b2c7e57b2b4c50f55d0e66bb3d1483b50ec4') version('4.2.0', sha256='547f6d5d38a41786839f01c5bfa46ffe9937b389193a8891f251e276a1a47fb0') version('4.1.0', sha256='8be20c722bab169bc4badd79a9eab9a1aa338e0e5ff58ad85ba6bf09e8ac60f4') version('4.0.0', sha256='78e37a7597b581d90a29e4b956fa65d0f8d1c8fb51667906b5fe2a223338d401') @@ -32,7 +33,7 @@ class Rocblas(CMakePackage): depends_on('cmake@3:', type='build') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('hip@' + ver, when='@' + ver) depends_on('llvm-amdgpu@' + ver, when='@' + ver) depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) @@ -41,12 +42,9 @@ class Rocblas(CMakePackage): for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']: depends_on('rocm-smi@' + ver, type='build', when='@' + ver) - for ver in ['4.0.0', '4.1.0', '4.2.0']: + for ver in ['4.0.0', '4.1.0', '4.2.0', '4.3.0']: depends_on('rocm-smi-lib@' + ver, type='build', when='@' + ver) - for ver in ['4.1.0', '4.2.0']: - depends_on('hip-rocclr@' + ver, when='@' + ver) - # This is the default library format since 3.7.0 depends_on('msgpack-c@3:', when='@3.7:') @@ -66,7 +64,8 @@ class Rocblas(CMakePackage): ('@3.10.0', 'ab44bf46b609b5a40053f310bef2ab7511f726ae'), ('@4.0.0', 'ab44bf46b609b5a40053f310bef2ab7511f726ae'), ('@4.1.0', 'd175277084d3253401583aa030aba121e8875bfd'), - ('@4.2.0', '3438af228dc812768b20a068b0285122f327fa5b') + ('@4.2.0', '3438af228dc812768b20a068b0285122f327fa5b'), + ('@4.3.0', '9cbabb07f81e932b9c98bf5ae48fbd7fcef615cf') ]: resource(name='Tensile', git='https://github.com/ROCmSoftwarePlatform/Tensile.git', @@ -109,4 +108,8 @@ def cmake_args(self): arch = arch + ':xnack-' args.append(self.define('Tensile_ARCHITECTURE', arch)) + # See https://github.com/ROCmSoftwarePlatform/rocBLAS/issues/1196 + if self.spec.satisfies('^cmake@3.21:'): + args.append(self.define('__skip_rocmclang', 'ON')) + return args diff --git a/var/spack/repos/builtin/packages/rocfft/package.py b/var/spack/repos/builtin/packages/rocfft/package.py index 2e8ea5851b1..26805a41eee 100644 --- a/var/spack/repos/builtin/packages/rocfft/package.py +++ b/var/spack/repos/builtin/packages/rocfft/package.py @@ -12,10 +12,11 @@ class Rocfft(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocFFT/" git = "https://github.com/ROCmSoftwarePlatform/rocFFT.git" - url = "https://github.com/ROCmSoftwarePlatform/rocfft/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocfft/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie'] + version('4.3.0', sha256='cb5b8f62330bc61b17a3a2fd1500068ee05d48cb51797901dd259dbc84610478') version('4.2.0', sha256='db29c9067f0cfa98bddd3574f6aa7200cfc790cc6da352d19e4696c3f3982163') version('4.1.0', sha256='df23fcb05aae72557461ae3687be7e3b8b78be4132daf1aa9dc07339f4eba0cc') version('4.0.0', sha256='d1d10d270f822e0bab64307313ef163ba449b058bf3352962bbb26d4f4db89d0') @@ -38,13 +39,10 @@ class Rocfft(CMakePackage): depends_on('cmake@3:', type='build') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('hip@' + ver, when='@' + ver) depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) - for ver in ['4.1.0', '4.2.0']: - depends_on('hip-rocclr@' + ver, when='@' + ver) - def setup_build_environment(self, env): env.set('CXX', self.spec['hip'].hipcc) @@ -66,4 +64,8 @@ def cmake_args(self): if tgt_sram[0] != 'none' and '@3.9.0:' in self.spec: args.append(self.define('AMDGPU_TARGETS_SRAM_ECC', ";".join(tgt_sram))) + # See https://github.com/ROCmSoftwarePlatform/rocFFT/issues/322 + if self.spec.satisfies('^cmake@3.21:'): + args.append(self.define('__skip_rocmclang', 'ON')) + return args diff --git a/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py b/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py index 5dc95cfed83..12b88bdce36 100644 --- a/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py +++ b/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py @@ -12,12 +12,12 @@ class RocmBandwidthTest(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/rocm_bandwidth_test" git = "https://github.com/RadeonOpenCompute/rocm_bandwidth_test.git" - url = "https://github.com/RadeonOpenCompute/rocm_bandwidth_test/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/rocm_bandwidth_test/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] version('master', branch='master') - + version('4.3.0', sha256='c6eb406cd2836af61dd5987f6b761340a1be20f66a9325f480423d10b9d3ec1b') version('4.2.0', sha256='d268365e3bb8031c1201c05e705074d1fd794d236843f80064855cf31e4412f5') version('4.1.0', sha256='4e34b60a7e4090d6475f0cdd86594b1b9a7b85d4e343999b9e148e196f0c2f4c') version('4.0.0', sha256='bde2aa743979eac195dd13ec8d0fcb7da183fff489da32c28b872eed7f6681b3') @@ -32,7 +32,7 @@ class RocmBandwidthTest(CMakePackage): depends_on('cmake@3:', type='build') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0', 'master']: + '4.2.0', '4.3.0', 'master']: depends_on('hsa-rocr-dev@' + ver, when='@' + ver) depends_on('hsakmt-roct@' + ver, when='@' + ver) diff --git a/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py b/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py index 84d09f5bcc1..3e2b7964f45 100644 --- a/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py +++ b/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py @@ -11,11 +11,12 @@ class RocmClangOcl(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/clang-ocl" git = "https://github.com/RadeonOpenCompute/clang-ocl.git" - url = "https://github.com/RadeonOpenCompute/clang-ocl/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/clang-ocl/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] version('master', branch='master') + version('4.3.0', sha256='bc5650f2f105b10a1e22d8e5cc9464b0f960252a08e5e1fdee222af1fc5c022c') version('4.2.0', sha256='702796f4e31f6119173d915db9bee13c060a75d9eb5b1f8e3d20779d6702dfdc') version('4.1.0', sha256='c6e65da5541df9ee940caeeffe1b87c92547edc1770538fd2010c9c998a593b5') version('4.0.0', sha256='c8f9091396ee0096f6d7c1cd13d80532c424e838bec1e4cebf903ebaf649e82e') @@ -30,7 +31,7 @@ class RocmClangOcl(CMakePackage): depends_on('cmake@3:', type='build') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0', 'master']: + '4.2.0', '4.3.0', 'master']: depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) depends_on('llvm-amdgpu@' + ver, when='@' + ver) diff --git a/var/spack/repos/builtin/packages/rocm-cmake/package.py b/var/spack/repos/builtin/packages/rocm-cmake/package.py index 4b8657a064c..3218a66c45c 100644 --- a/var/spack/repos/builtin/packages/rocm-cmake/package.py +++ b/var/spack/repos/builtin/packages/rocm-cmake/package.py @@ -13,11 +13,12 @@ class RocmCmake(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/rocm-cmake" git = "https://github.com/RadeonOpenCompute/rocm-cmake.git" - url = "https://github.com/RadeonOpenCompute/rocm-cmake/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/rocm-cmake/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] version('master', branch='master') + version('4.3.0', sha256='bb752d8d2727b7ef2754838e389075dd4212cf5439d099392141f93d05391415') version('4.2.0', sha256='299e190ec3d38c2279d9aec762469628f0b2b1867adc082edc5708d1ac785c3b') version('4.1.0', sha256='a4521d119fa07954e529d5e717ad1b338992c0694690dbce00fee26c01129c8c') version('4.0.0', sha256='4577487acaa6e041a1316145867584f31caaf0d4aa2dd8fd7f82f81c269cada6') diff --git a/var/spack/repos/builtin/packages/rocm-dbgapi/package.py b/var/spack/repos/builtin/packages/rocm-dbgapi/package.py index 72d29f517dc..cab391f3af5 100644 --- a/var/spack/repos/builtin/packages/rocm-dbgapi/package.py +++ b/var/spack/repos/builtin/packages/rocm-dbgapi/package.py @@ -15,12 +15,13 @@ class RocmDbgapi(CMakePackage): homepage = "https://github.com/ROCm-Developer-Tools/ROCdbgapi" git = "https://github.com/ROCm-Developer-Tools/ROCdbgapi.git" - url = "https://github.com/ROCm-Developer-Tools/ROCdbgapi/archive/rocm-4.1.0.tar.gz" + url = "https://github.com/ROCm-Developer-Tools/ROCdbgapi/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] version('master', branch='amd-master') + version('4.3.0', sha256='4255d83d218bb0db8be9fef18e03a955ea1c6de1c635c31685ee5fc1540ddde6') version('4.2.0', sha256='fcdee5aaf5ed40c0377ce007a2947da9e718eeee86ca3e13192ff9e96a1b7373') version('4.1.0', sha256='d04fd9b2005691313547c4134b027b56b0ec6089f67d3bccbdb8fb1c92cde9bd') version('4.0.0', sha256='e87f31b3a22861397eb62d8363dd1e153596097ccfe68c6eefc1a83a2432ae18') @@ -33,7 +34,7 @@ class RocmDbgapi(CMakePackage): depends_on('cmake@3:', type='build') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0', 'master']: + '4.2.0', '4.3.0', 'master']: depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver) depends_on('comgr@' + ver, type=('build', 'link'), when='@' + ver) diff --git a/var/spack/repos/builtin/packages/rocm-debug-agent/0002-add-hip-architecture.patch b/var/spack/repos/builtin/packages/rocm-debug-agent/0002-add-hip-architecture.patch new file mode 100644 index 00000000000..b1361321572 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocm-debug-agent/0002-add-hip-architecture.patch @@ -0,0 +1,12 @@ +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 62ee104..e1dd0d5 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -42,6 +42,7 @@ find_package(HIP REQUIRED MODULE) + file(GLOB SOURCES "*.cpp") + + set_source_files_properties(${SOURCES} PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1) ++set(CMAKE_HIP_ARCHITECTURES gfx900 gfx906 gfx908 gfx90a ) + hip_add_executable(rocm-debug-agent-test ${SOURCES} + HIPCC_OPTIONS --amdgpu-target=gfx900 --amdgpu-target=gfx906 + --amdgpu-target=gfx908 --amdgpu-target=gfx90a diff --git a/var/spack/repos/builtin/packages/rocm-debug-agent/package.py b/var/spack/repos/builtin/packages/rocm-debug-agent/package.py index fc17cf95881..28962a982bb 100644 --- a/var/spack/repos/builtin/packages/rocm-debug-agent/package.py +++ b/var/spack/repos/builtin/packages/rocm-debug-agent/package.py @@ -16,6 +16,7 @@ class RocmDebugAgent(CMakePackage): maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='0cdee5792b808e03b839070da0d1b08dc4078a7d1fc295f0c99c6a5ae7d636a6') version('4.2.0', sha256='ce02a5b752291882daa0a2befa23944e59087ce9fe65a91061476c3c399e4a0c') version('4.1.0', sha256='b1ae874887e5ee037070f1dd46b145ad02ec9fd8a724c6b6ae194b534f01acdb') version('4.0.0', sha256='a9e64834d56a9221c242e71aa110c2cef0087aa8f86f50428dd618e5e623cc3c') @@ -37,19 +38,21 @@ def url_for_version(self, version): variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') depends_on('cmake@3:', type='build') - depends_on("elfutils", type='link') + depends_on('elfutils@:0.168', type='link') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('hsa-rocr-dev@' + ver, when='@' + ver) depends_on('hsakmt-roct@' + ver, when='@' + ver) - for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0']: + for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0', + '4.3.0']: depends_on('rocm-dbgapi@' + ver, when='@' + ver) depends_on('hip@' + ver, when='@' + ver) # https://github.com/ROCm-Developer-Tools/rocr_debug_agent/pull/4 patch('0001-Drop-overly-strict-Werror-flag.patch', when='@3.7.0:') + patch('0002-add-hip-architecture.patch', when='@3.9.0:') @property def root_cmakelists_dir(self): diff --git a/var/spack/repos/builtin/packages/rocm-device-libs/package.py b/var/spack/repos/builtin/packages/rocm-device-libs/package.py index ebe54108c2e..dab53828b0f 100644 --- a/var/spack/repos/builtin/packages/rocm-device-libs/package.py +++ b/var/spack/repos/builtin/packages/rocm-device-libs/package.py @@ -17,6 +17,7 @@ class RocmDeviceLibs(CMakePackage): maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie'] version('master', branch='amd-stg-open') + version('4.3.0', sha256='055a67e63da6491c84cd45865500043553fb33c44d538313dd87040a6f3826f2') version('4.2.0', sha256='34a2ac39b9bb7cfa8175cbab05d30e7f3c06aaffce99eed5f79c616d0f910f5f') version('4.1.0', sha256='f5f5aa6bfbd83ff80a968fa332f80220256447c4ccb71c36f1fbd2b4a8e9fc1b') version('4.0.0', sha256='d0aa495f9b63f6d8cf8ac668f4dc61831d996e9ae3f15280052a37b9d7670d2a') @@ -37,7 +38,7 @@ class RocmDeviceLibs(CMakePackage): depends_on('llvm-amdgpu ~rocm-device-libs') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0', 'master']: + '4.2.0', '4.3.0', 'master']: depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) depends_on('llvm-amdgpu@' + ver, when='@' + ver) diff --git a/var/spack/repos/builtin/packages/rocm-gdb/package.py b/var/spack/repos/builtin/packages/rocm-gdb/package.py index 970c98d0398..eb0f274183b 100644 --- a/var/spack/repos/builtin/packages/rocm-gdb/package.py +++ b/var/spack/repos/builtin/packages/rocm-gdb/package.py @@ -12,10 +12,10 @@ class RocmGdb(AutotoolsPackage): based on GDB, the GNU source-level debugger.""" homepage = "https://github.com/ROCm-Developer-Tools/ROCgdb/" - url = "https://github.com/ROCm-Developer-Tools/ROCgdb/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCm-Developer-Tools/ROCgdb/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] - + version('4.3.0', sha256='8ee0667ab2cd91b2cc41d3a7af046d36a6b4e2007f050265aa65e0aedec83fd7') version('4.2.0', sha256='4bc579584a1f8614111e7e44d8aa1c6d5d06be3f5db055aba2cf1abc140122ac') version('4.1.0', sha256='28dc806e48695d654d52fb1a634df6d4c1243f00846ae90161e7a5e9f4d88b24') version('4.0.0', sha256='b90291b0a8409fe66d8a65d2731dcb87b9f5a22bac9ce3ffbab726eb129ba13d') @@ -36,7 +36,7 @@ class RocmGdb(AutotoolsPackage): depends_on('babeltrace@1.2.4', type='link') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('rocm-dbgapi@' + ver, type='link', when='@' + ver) depends_on('comgr@' + ver, type='link', when='@' + ver) diff --git a/var/spack/repos/builtin/packages/rocm-opencl-runtime/package.py b/var/spack/repos/builtin/packages/rocm-opencl-runtime/package.py deleted file mode 100644 index feed4088977..00000000000 --- a/var/spack/repos/builtin/packages/rocm-opencl-runtime/package.py +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright 2013-2021 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 import * - - -class RocmOpenclRuntime(CMakePackage): - """ROCm OpenCL 2.0 compatible language runtime. - It Supports offline and in-process/in-memory compilation""" - - homepage = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime" - git = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime.git" - url = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/rocm-4.1.0.tar.gz" - - maintainers = ['srekolam', 'arjun-raj-kuppala'] - - version('master', branch='main') - version('4.1.0', sha256='0729e6c2adf1e3cf649dc6e679f9cb936f4f423f4954ad9852857c0a53ef799c') - version('4.0.0', sha256='d43ea5898c6b9e730b5efabe8367cc136a9260afeac5d0fe85b481d625dd7df1') - version('3.10.0', sha256='3aa9dc5a5f570320b04b35ee129ce9ff21062d2770df934c6c307913f975e93d') - version('3.9.0', sha256='286ff64304905384ce524cd8794c28aee216befd6c9267d4187a12e5a21e2daf') - version('3.8.0', sha256='7f75dd1abf3d771d554b0e7b0a7d915ab5f11a74962c92b013ee044a23c1270a') - version('3.7.0', sha256='283e1dfe4c3d2e8af4d677ed3c20e975393cdb0856e3ccd77b9c7ed2a151650b') - - depends_on('cmake@3:', type='build') - depends_on('mesa18~llvm@18.3: swr=none', type='link') - depends_on('libelf', type='link', when="@3.7.0:3.8.0") - depends_on('numactl', type='link', when="@3.7.0:") - - for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', 'master']: - depends_on('hsakmt-roct@' + ver, when='@' + ver) - depends_on('hsa-rocr-dev@' + ver, when='@' + ver) - depends_on('comgr@' + ver, when='@' + ver) - depends_on('hip-rocclr@' + ver, when='@' + ver) - - def flag_handler(self, name, flags): - if name == 'cxxflags' and '@3.7.0:' in self.spec: - incl = self.spec['hip-rocclr'].prefix.include - flags.append('-I {0}/compiler/lib/include'.format(incl)) - flags.append('-I {0}/elf'.format(incl)) - - return (flags, None, None) - - def cmake_args(self): - args = [ - '-DUSE_COMGR_LIBRARY=yes' - ] - - return args diff --git a/var/spack/repos/builtin/packages/rocm-opencl/package.py b/var/spack/repos/builtin/packages/rocm-opencl/package.py index c8b440926ae..febd3b5a54d 100644 --- a/var/spack/repos/builtin/packages/rocm-opencl/package.py +++ b/var/spack/repos/builtin/packages/rocm-opencl/package.py @@ -21,6 +21,8 @@ def url_for_version(self, version): url = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/rocm-{0}.tar.gz" return url.format(version) version('master', branch='main') + + version('4.3.0', sha256='d37bddcc6835b6c0fecdf4d02c204ac1d312076f3eef2b1faded1c4c1bc651e9') version('4.2.0', sha256='18133451948a83055ca5ebfb5ba1bd536ed0bcb611df98829f1251a98a38f730') version('4.1.0', sha256='0729e6c2adf1e3cf649dc6e679f9cb936f4f423f4954ad9852857c0a53ef799c') version('4.0.0', sha256='d43ea5898c6b9e730b5efabe8367cc136a9260afeac5d0fe85b481d625dd7df1') @@ -35,7 +37,7 @@ def url_for_version(self, version): depends_on('numactl', type='link', when='@3.7.0:') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0', 'master']: + '4.2.0', '4.3.0', 'master']: depends_on('hip-rocclr@' + ver, type='build', when='@' + ver) depends_on('comgr@' + ver, type='build', when='@' + ver) depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver) diff --git a/var/spack/repos/builtin/packages/rocm-smi-lib/package.py b/var/spack/repos/builtin/packages/rocm-smi-lib/package.py index 00a6b57b403..a837a00bb88 100644 --- a/var/spack/repos/builtin/packages/rocm-smi-lib/package.py +++ b/var/spack/repos/builtin/packages/rocm-smi-lib/package.py @@ -16,11 +16,12 @@ class RocmSmiLib(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/rocm_smi_lib" git = "https://github.com/RadeonOpenCompute/rocm_smi_lib.git" - url = "https://github.com/RadeonOpenCompute/rocm_smi_lib/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/rocm_smi_lib/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] version('master', branch='master') + version('4.3.0', sha256='c3ff56a14d334cb688a2e9a748dac46d9c2f7f576fe1f53416b1a0edbe842f8b') version('4.2.0', sha256='c31bf91c492f00d0c5ab21e45afbd7baa990e4a8d7ce9b01e3b988e5fdd53f50') version('4.1.0', sha256='0c1d2152e40e14bb385071ae16e7573290fb9f74afa5ab887c54f4dd75849a6b') version('4.0.0', sha256='93d19229b5a511021bf836ddc2a9922e744bf8ee52ee0e2829645064301320f4') diff --git a/var/spack/repos/builtin/packages/rocm-tensile/package.py b/var/spack/repos/builtin/packages/rocm-tensile/package.py index 619cd1a60c2..f460cacf1fb 100644 --- a/var/spack/repos/builtin/packages/rocm-tensile/package.py +++ b/var/spack/repos/builtin/packages/rocm-tensile/package.py @@ -12,10 +12,11 @@ class RocmTensile(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/Tensile/" git = "https://github.com/ROCmSoftwarePlatform/Tensile.git" - url = "https://github.com/ROCmSoftwarePlatform/Tensile/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/Tensile/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie'] + version('4.3.0', sha256='911c0cdb0146d43a2a59170e6a803f414a2b68df7d9ff369ab784d11a08d7264') version('4.2.0', sha256='198e357a14a79366b27b1097856d4821996bc36163be0cd2668910b253721060') version('4.1.0', sha256='92b8ee13dfc11a67d5136227ee985622685790fd3f0f0e1ec6db411d4e9a3419') version('4.0.0', sha256='cf105ce8c3e352d19713b3bf8bda77f25c1a692c4f2ca82d631ba15523ecc1cd') @@ -36,7 +37,7 @@ class RocmTensile(CMakePackage): depends_on('boost', type=('build', 'link')) for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) depends_on('hip@' + ver, when='@' + ver) depends_on('comgr@' + ver, when='@' + ver) @@ -47,12 +48,9 @@ class RocmTensile(CMakePackage): for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']: depends_on('rocm-smi@' + ver, type='build', when='@' + ver) - for ver in ['4.0.0', '4.1.0', '4.2.0']: + for ver in ['4.0.0', '4.1.0', '4.2.0', '4.3.0']: depends_on('rocm-smi-lib@' + ver, type='build', when='@' + ver) - for ver in ['4.1.0', '4.2.0']: - depends_on('hip-rocclr@' + ver, when='@' + ver) - root_cmakelists_dir = 'Tensile/Source' # Status: https://github.com/ROCmSoftwarePlatform/Tensile/commit/a488f7dadba34f84b9658ba92ce9ec5a0615a087 # Not yet landed in 3.7.0, nor 3.8.0. @@ -85,6 +83,9 @@ def cmake_args(self): arch = arch + ':xnack-' args.append(self.define('Tensile_ARCHITECTURE', arch)) + if self.spec.satisfies('^cmake@3.21:'): + args.append(self.define('__skip_rocmclang', 'ON')) + return args def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/rocm-validation-suite/002-remove-force-setting-hip-inc-path.patch b/var/spack/repos/builtin/packages/rocm-validation-suite/002-remove-force-setting-hip-inc-path.patch index a95e0836b08..e1a40ac16d3 100644 --- a/var/spack/repos/builtin/packages/rocm-validation-suite/002-remove-force-setting-hip-inc-path.patch +++ b/var/spack/repos/builtin/packages/rocm-validation-suite/002-remove-force-setting-hip-inc-path.patch @@ -1,11 +1,12 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index a3301ec..f62005a 100644 +index 07048b8..2bfb6c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -33,7 +33,7 @@ set(CMAKE_INSTALL_PREFIX "/opt/rocm" CACHE PATH "CMAKE installation directory") +@@ -32,8 +32,7 @@ set(ROCM_PATH "/opt/rocm" CACHE PATH "ROCM install path") + set(CMAKE_INSTALL_PREFIX "/opt/rocm" CACHE PATH "CMAKE installation directory") 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}/hip" ) +-set(HIP_INC_DIR "${ROCM_PATH}/hip" ) -set(HIP_INC_DIR "${ROCM_PATH}/hip" CACHE PATH "Contains header files exported by ROC Runtime" FORCE) +set(HIP_INC_DIR "${ROCM_PATH}/hip" 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) diff --git a/var/spack/repos/builtin/packages/rocm-validation-suite/003-cmake-change-to-remove-installs-and-sudo.patch b/var/spack/repos/builtin/packages/rocm-validation-suite/003-cmake-change-to-remove-installs-and-sudo.patch new file mode 100644 index 00000000000..edd95076737 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocm-validation-suite/003-cmake-change-to-remove-installs-and-sudo.patch @@ -0,0 +1,88 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 780e1f17..35a2b391 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -24,10 +24,21 @@ + ################################################################################ + + cmake_minimum_required ( VERSION 3.5.0 ) ++project ("rocm-validation-suite") + if ( ${CMAKE_BINARY_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}) + message(FATAL "In-source build is not allowed") + endif () + ++enable_testing() ++ ++# Prerequisite - Check if rocblas was already installed ++find_package (rocblas) ++if(rocblas_FOUND) ++ message(STATUS "rocblas found") ++else() ++ message(FATAL_ERROR "rocblas not found !!! Install rocblas to proceed ...") ++endif(rocblas_FOUND) ++ + set(ROCM_PATH "/opt/rocm" CACHE PATH "ROCM install path") + set(CMAKE_INSTALL_PREFIX "/opt/rocm" CACHE PATH "CMAKE installation directory") + set(ROCR_INC_DIR "${ROCM_PATH}/include" CACHE PATH "Contains header files exported by ROC Runtime" FORCE) +@@ -36,7 +47,6 @@ set(HIP_INC_DIR "${ROCM_PATH}/hip" ) + set(HIP_INC_DIR "${ROCM_PATH}/hip" CACHE PATH "Contains header files exported by ROC Runtime" FORCE) + set(ROCT_INC_DIR "${ROCM_PATH}/include" CACHE PATH "Contains header files exported by ROC Trunk" FORCE) + +-execute_process(COMMAND ln -s /usr/bin/python3 /usr/bin/python) + + # + # If the user specifies -DCMAKE_BUILD_TYPE on the command line, take their +@@ -45,20 +55,17 @@ execute_process(COMMAND ln -s /usr/bin/python3 /usr/bin/python) + # + if(DEFINED CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "Choose the type of +-build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug +-Release RelWithDebInfo MinSizeRel.") ++ build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug ++ Release RelWithDebInfo MinSizeRel.") + else() + set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build, +-options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release +-RelWithDebInfo MinSizeRel.") ++ options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release ++ RelWithDebInfo MinSizeRel.") + endif() + +-project ("rocm-validation-suite") +-enable_testing() + #include ( CTest ) + +-if (NOT CMAKE_CONFIGURATION_TYPES) +-# message( "CMAKE_CONFIGURATION_TYPES not set") ++if(NOT CMAKE_CONFIGURATION_TYPES) + # Set the possible values of build type for cmake-gui + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Release" "MinSizeRel" "RelWithDebInfo") +@@ -70,17 +77,15 @@ execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/rvs_os_helper.sh + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + OUTPUT_STRIP_TRAILING_WHITESPACE + ) +-if(result) ++if (result) + message(FATAL_ERROR "Could not obtain OS type: ${result}") + endif() + message(STATUS "RVS_OS_TYPE: ${RVS_OS_TYPE}") + if (${RVS_OS_TYPE} STREQUAL "ubuntu") + set(RVS_OS_TYPE_NUM 1) +- execute_process(COMMAND sudo apt-get install rocblas --assume-yes) + elseif ((${RVS_OS_TYPE} STREQUAL "centos") OR (${RVS_OS_TYPE} STREQUAL "rhel") + OR (${RVS_OS_TYPE} STREQUAL "sles")) + set(RVS_OS_TYPE_NUM 2) +- execute_process(COMMAND sudo yum -y install rocblas ) + else() + set(RVS_OS_TYPE_NUM 0) + endif() +@@ -89,7 +94,7 @@ message(STATUS "RVS_OS_TYPE_NUM: ${RVS_OS_TYPE_NUM}") + ## Set default module path if not already set + if ( NOT DEFINED CMAKE_MODULE_PATH ) + set ( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/" ) +-endif () ++endif() + + ## Include common cmake modules + include ( utils ) diff --git a/var/spack/repos/builtin/packages/rocm-validation-suite/package.py b/var/spack/repos/builtin/packages/rocm-validation-suite/package.py index 999581d55ef..76b7d7c29f0 100644 --- a/var/spack/repos/builtin/packages/rocm-validation-suite/package.py +++ b/var/spack/repos/builtin/packages/rocm-validation-suite/package.py @@ -19,6 +19,7 @@ class RocmValidationSuite(CMakePackage): maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='f7a918b513c51dd5eadce3f2e091679b2dfe6544a913960ac483567792a06a4c') version('4.2.0', sha256='b25e58a842a8eb90bfd6c4ae426ca5cfdd5de2f8a091761f83597f7cfc2cd0f3') version('4.1.0', sha256='f9618f89384daa0ae897b36638a3737bcfa47e98778e360338267cd1fe2bbc66') version('4.0.0', sha256='04743ca8901b94a801759a3c13c8caf3e6ea950ffcda6408173e6f9ef7b86e74') @@ -32,6 +33,7 @@ class RocmValidationSuite(CMakePackage): patch('001-fixes-for-rocblas-rocm-smi-install-prefix-path.patch') patch('002-remove-force-setting-hip-inc-path.patch', when='@4.1.0:') + patch('003-cmake-change-to-remove-installs-and-sudo.patch', when='@4.1.0:') depends_on('cmake@3.5:', type='build') depends_on('zlib', type='link') @@ -41,7 +43,7 @@ def setup_build_environment(self, build_env): build_env.set("HIPCC_PATH", spec['hip'].prefix) for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('hip@' + ver, when='@' + ver) depends_on('hip-rocclr@' + ver, when='@' + ver) depends_on('rocminfo@' + ver, when='@' + ver) diff --git a/var/spack/repos/builtin/packages/rocminfo/package.py b/var/spack/repos/builtin/packages/rocminfo/package.py index 4dadcda9dff..8c946df3852 100644 --- a/var/spack/repos/builtin/packages/rocminfo/package.py +++ b/var/spack/repos/builtin/packages/rocminfo/package.py @@ -18,6 +18,7 @@ class Rocminfo(CMakePackage): version('master', branch='master') + version('4.3.0', sha256='2cc1f251c0ed9c3ea413cc15cb5ce11559e4497540eebbf5e8dcfd52b03e53d1') version('4.2.0', sha256='6952b6e28128ab9f93641f5ccb66201339bb4177bb575b135b27b69e2e241996') version('4.1.0', sha256='5b994ad02b6d250160770f6f7730835f3a52127193ac9a8dee40c53aec911f4f') version('4.0.0', sha256='0b3d692959dd4bc2d1665ab3a838592fcd08d2b5e373593b9192ca369e2c4aa7') @@ -30,7 +31,7 @@ class Rocminfo(CMakePackage): depends_on('cmake@3:', type='build') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0', 'master']: + '4.2.0', '4.3.0', 'master']: depends_on('hsakmt-roct@' + ver, when='@' + ver) depends_on('hsa-rocr-dev@' + ver, when='@' + ver) diff --git a/var/spack/repos/builtin/packages/rocprim/package.py b/var/spack/repos/builtin/packages/rocprim/package.py index 55f8292d137..827a28544df 100644 --- a/var/spack/repos/builtin/packages/rocprim/package.py +++ b/var/spack/repos/builtin/packages/rocprim/package.py @@ -11,10 +11,11 @@ class Rocprim(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocPRIM" git = "https://github.com/ROCmSoftwarePlatform/rocPRIM.git" - url = "https://github.com/ROCmSoftwarePlatform/rocPRIM/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocPRIM/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='f6cf53b5fa07a0d6f508e39c7da5b11f562c0cac4b041ec5c41a8fc733f707c7') version('4.2.0', sha256='3932cd3a532eea0d227186febc56747dd95841732734d9c751c656de9dd770c8') version('4.1.0', sha256='c46d789f85d15f8ec97f90d67b9d49fb87239912fe8d5f60a7b4c59f9d0e3da8') version('4.0.0', sha256='61abf4d51853ae71e54258f43936bbbb096bf06f5891d224d359bfe3104015d0') @@ -30,24 +31,26 @@ class Rocprim(CMakePackage): depends_on('numactl', type='link', when='@3.7.0:') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('hip@' + ver, when='@' + ver) depends_on('comgr@' + ver, when='@' + ver) depends_on('hsa-rocr-dev@' + ver, when='@' + ver) depends_on('llvm-amdgpu@' + ver, when='@' + ver) depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) - for ver in ['4.1.0', '4.2.0']: - depends_on('hip-rocclr@' + ver, type='build', when='@' + ver) - def setup_build_environment(self, env): env.set('CXX', self.spec['hip'].hipcc) def cmake_args(self): - return [ + args = [ self.define('CMAKE_MODULE_PATH', self.spec['hip'].prefix.cmake), self.define('ONLY_INSTALL', 'ON'), self.define('BUILD_TEST', 'OFF'), self.define('BUILD_BENCHMARK', 'OFF'), self.define('BUILD_EXAMPLE', 'OFF') ] + + if self.spec.satisfies('^cmake@3.21:'): + args.append(self.define('__skip_rocmclang', 'ON')) + + return args diff --git a/var/spack/repos/builtin/packages/rocprofiler-dev/package.py b/var/spack/repos/builtin/packages/rocprofiler-dev/package.py index c7e6cd5962c..41a8855b39b 100644 --- a/var/spack/repos/builtin/packages/rocprofiler-dev/package.py +++ b/var/spack/repos/builtin/packages/rocprofiler-dev/package.py @@ -12,10 +12,11 @@ class RocprofilerDev(CMakePackage): homepage = "https://github.com/ROCm-Developer-Tools/rocprofiler" git = "https://github.com/ROCm-Developer-Tools/rocprofiler.git" - url = "https://github.com/ROCm-Developer-Tools/rocprofiler/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCm-Developer-Tools/rocprofiler/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='3b876a0e601d2c6ae56ddf2a6027afe45b3533f4445b0c2da748d020b6b00cf2') version('4.2.0', sha256='c5888eda1404010f88219055778cfeb00d9c21901e172709708720008b1af80f') version('4.1.0', sha256='2eead5707016da606d636b97f3af1c98cb471da78659067d5a77d4a2aa43ef4c') version('4.0.0', sha256='e9960940d1ec925814a0e55ee31f5fc2fb23fa839d1c6a909f72dd83f657fb25') @@ -27,7 +28,7 @@ class RocprofilerDev(CMakePackage): depends_on('cmake@3:', type='build') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('hsakmt-roct@' + ver, when='@' + ver) depends_on('hsa-rocr-dev@' + ver, when='@' + ver) depends_on('rocminfo@' + ver, when='@' + ver) diff --git a/var/spack/repos/builtin/packages/rocrand/package.py b/var/spack/repos/builtin/packages/rocrand/package.py index 68e80830cff..d593d049069 100644 --- a/var/spack/repos/builtin/packages/rocrand/package.py +++ b/var/spack/repos/builtin/packages/rocrand/package.py @@ -15,10 +15,11 @@ class Rocrand(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocRAND" git = "https://github.com/ROCmSoftwarePlatform/rocRAND.git" - url = "https://github.com/ROCmSoftwarePlatform/rocRAND/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocRAND/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='a85ced6c155befb7df8d58365518f4d9afc4407ee4e01d4640b5fd94604ca3e0') version('4.2.0', sha256='15725c89e9cc9cc76bd30415fd2c0c5b354078831394ab8b23fe6633497b92c8') version('4.1.0', sha256='94327e38739030ab6719a257f5a928a35842694750c7f46d9e11ff2164c2baed') version('4.0.0', sha256='1cafdbfa15cde635bd424d2a858dc5cc94d668f9a211ff39606ee01ed1715f41') @@ -32,15 +33,15 @@ class Rocrand(CMakePackage): depends_on('numactl', when='@3.7.0:') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('hip@' + ver, type='build', when='@' + ver) depends_on('comgr@' + ver, type='build', when='@' + ver) depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver) depends_on('rocminfo@' + ver, type='build', when='@' + ver) depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver) depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) - for ver in ['4.1.0', '4.2.0']: - depends_on('hip-rocclr@' + ver, type='link', when='@' + ver) + for ver in ['4.1.0', '4.2.0', '4.3.0']: + depends_on('hip-rocclr@' + ver, when='@' + ver) def setup_build_environment(self, env): env.set('CXX', self.spec['hip'].hipcc) @@ -66,6 +67,12 @@ def fix_library_locations(self): join_path(self.prefix.lib, lib)) def cmake_args(self): - args = ['-DBUILD_BENCHMARK=OFF', - '-DBUILD_TEST=OFF'] + args = [ + self.define('BUILD_BENCHMARK', 'OFF'), + self.define('BUILD_TEST', 'OFF') + ] + + if self.spec.satisfies('^cmake@3.21:'): + args.append(self.define('__skip_rocmclang', 'ON')) + return args diff --git a/var/spack/repos/builtin/packages/rocsolver/package.py b/var/spack/repos/builtin/packages/rocsolver/package.py index d10e9518bf9..fd179ffb429 100644 --- a/var/spack/repos/builtin/packages/rocsolver/package.py +++ b/var/spack/repos/builtin/packages/rocsolver/package.py @@ -12,15 +12,21 @@ class Rocsolver(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocSOLVER" git = "https://github.com/ROCmSoftwarePlatform/rocSOLVER.git" - url = "https://github.com/ROCmSoftwarePlatform/rocSOLVER/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocSOLVER/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie'] + amdgpu_targets = ( + 'none', 'gfx803', 'gfx900', 'gfx906:xnack-', 'gfx908:xnack-', + 'gfx90a:xnack-', 'gfx90a:xnack+', 'gfx1010', 'gfx1011', 'gfx1012', 'gfx1030' + ) + variant('amdgpu_target', default='gfx906:xnack-', multi=True, values=amdgpu_targets) variant('optimal', default=True, description='This option improves performance at the cost of increased binary \ size and compile time by adding specialized kernels \ for small matrix sizes') + version('4.3.0', sha256='63cc88dd285c0fe01ec2394321ec3b4e1e59bb98ce05b06e4b4d8fadcf1ff028') version('4.2.0', sha256='e9ef72d7c29e7c36bf02be63a64ca23b444e1ca71751749f7d66647873d9fdea') version('4.1.0', sha256='da5cc800dabf7367b02b73c93780b2967f112bb45232e4b06e5fd07b4d5b8d88') version('4.0.0', sha256='be9a52644c276813f76d78f2c11eddaf8c2d7f9dd04f4570f23d328ad30d5880') @@ -33,17 +39,19 @@ class Rocsolver(CMakePackage): depends_on('cmake@3:', type='build') depends_on('numactl', type='link', when='@3.7.0:') - for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0']: + for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0', + '4.3.0']: depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver) for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('hip@' + ver, type='build', when='@' + ver) depends_on('comgr@' + ver, type='build', when='@' + ver) depends_on('rocblas@' + ver, type='link', when='@' + ver) depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) def cmake_args(self): + tgt = self.spec.variants['amdgpu_target'].value args = [ self.define('BUILD_CLIENTS_SAMPLES', 'OFF'), self.define('BUILD_CLIENTS_TESTS', 'OFF'), @@ -59,6 +67,16 @@ def cmake_args(self): if self.spec.satisfies('@3.7.0:'): args.append(self.define_from_variant('OPTIMAL', 'optimal')) + if tgt[0] != 'none': + if '@:3.8.0' in self.spec: + args.append(self.define('CMAKE_CXX_FLAGS', + '--amdgpu-target={0}'.format(",".join(tgt)))) + else: + args.append(self.define('AMDGPU_TARGETS', ";".join(tgt))) + + if self.spec.satisfies('^cmake@3.21:'): + args.append(self.define('__skip_rocmclang', 'ON')) + return args def setup_build_environment(self, env): diff --git a/var/spack/repos/builtin/packages/rocsparse/package.py b/var/spack/repos/builtin/packages/rocsparse/package.py index 711673dee28..78f52eeef3e 100644 --- a/var/spack/repos/builtin/packages/rocsparse/package.py +++ b/var/spack/repos/builtin/packages/rocsparse/package.py @@ -15,10 +15,11 @@ class Rocsparse(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocSPARSE" git = "https://github.com/ROCmSoftwarePlatform/rocSPARSE.git" - url = "https://github.com/ROCmSoftwarePlatform/rocSPARSE/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocSPARSE/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='1a8109bdc8863b3acfe991449360c9361cae7cabdbe753c553bc57872cd0ad5e') version('4.2.0', sha256='8a86ed49d278e234c82e406a1430dc28f50d416f8f1065cf5bdf25cc5721129c') version('4.1.0', sha256='7514968ed2342dc274acce8b269c128a6aa96cce769a37fd3880b5269c2ed17f') version('4.0.0', sha256='2b41bc6623d204ad7f351a902810f34cd32b762d1bf59081dbb00f83e689a794') @@ -31,13 +32,21 @@ class Rocsparse(CMakePackage): depends_on('cmake@3:', type='build') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('hip@' + ver, when='@' + ver) depends_on('rocprim@' + ver, when='@' + ver) depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) - for ver in ['4.1.0', '4.2.0']: - depends_on('hip-rocclr@' + ver, when='@' + ver) - def setup_build_environment(self, env): env.set('CXX', self.spec['hip'].hipcc) + + def cmake_args(self): + args = [ + self.define('BUILD_CLIENTS_SAMPLES', 'OFF'), + self.define('BUILD_CLIENTS_TESTS', 'OFF'), + self.define('BUILD_CLIENTS_BENCHMARKS', 'OFF') + ] + if self.spec.satisfies('^cmake@3.21:'): + args.append(self.define('__skip_rocmclang', 'ON')) + + return args diff --git a/var/spack/repos/builtin/packages/rocthrust/package.py b/var/spack/repos/builtin/packages/rocthrust/package.py index 70e16ec8b62..00e380ecc46 100644 --- a/var/spack/repos/builtin/packages/rocthrust/package.py +++ b/var/spack/repos/builtin/packages/rocthrust/package.py @@ -14,10 +14,11 @@ class Rocthrust(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocThrust" git = "https://github.com/ROCmSoftwarePlatform/rocThrust.git" - url = "https://github.com/ROCmSoftwarePlatform/rocThrust/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocThrust/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='a50eb6500687b4ea9e0b3affb1daff8bbc56199d39fbed3ee61d2d5bfc1a0271') version('4.2.0', sha256='da2b6c831c26c26058218b0c5b7b2e43fd7f0dac3b2e3a8e39a839145592c727') version('4.1.0', sha256='e3d06c0387a2a6880776c7423b1acf0808fb8833bc822be75793da8c2f521efd') version('4.0.0', sha256='120c87316f44ce8e8975e57c9b9bf1246b1ffc00879d31d744289ba9438a976c') @@ -34,23 +35,23 @@ class Rocthrust(CMakePackage): depends_on('numactl', when='@3.7.0:') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('hip@' + ver, when='@' + ver) depends_on('rocprim@' + ver, when='@' + ver) depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) - for ver in ['4.1.0', '4.2.0']: - depends_on('hip-rocclr@' + ver, when='@' + ver) - def setup_build_environment(self, env): env.set('CXX', self.spec['hip'].hipcc) def cmake_args(self): - spec = self.spec - - return [ + args = [ self.define( 'CMAKE_MODULE_PATH', - '{0}/cmake'.format(spec['hip'].prefix) + '{0}/cmake'.format(self.spec['hip'].prefix) ) ] + + if self.spec.satisfies('^cmake@3.21:'): + args.append(self.define('__skip_rocmclang', 'ON')) + + return args diff --git a/var/spack/repos/builtin/packages/roctracer-dev-api/package.py b/var/spack/repos/builtin/packages/roctracer-dev-api/package.py index eb23b4f152b..fb07dd7a9ec 100644 --- a/var/spack/repos/builtin/packages/roctracer-dev-api/package.py +++ b/var/spack/repos/builtin/packages/roctracer-dev-api/package.py @@ -13,10 +13,11 @@ class RoctracerDevApi(Package): homepage = "https://github.com/ROCm-Developer-Tools/roctracer" git = "https://github.com/ROCm-Developer-Tools/roctracer.git" - url = "https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='c3d9f408df8d4dc0e9c0026217b8c684f68e775da80b215fecb3cd24419ee6d3') version('4.2.0', sha256='62a9c0cb1ba50b1c39a0636c886ac86e75a1a71cbf5fec05801517ceb0e67a37') version('4.1.0', sha256='5d93de4e92895b6eb5f9d098f5dbd182d33923bd9b2ab69cf5a1abbf91d70695') version('4.0.0', sha256='f47859a46173228b597c463eda850b870e810534af5efd5f2a746067ef04edee') diff --git a/var/spack/repos/builtin/packages/roctracer-dev/package.py b/var/spack/repos/builtin/packages/roctracer-dev/package.py index f02f0f715d0..a3452f288e6 100644 --- a/var/spack/repos/builtin/packages/roctracer-dev/package.py +++ b/var/spack/repos/builtin/packages/roctracer-dev/package.py @@ -14,10 +14,11 @@ class RoctracerDev(CMakePackage): homepage = "https://github.com/ROCm-Developer-Tools/roctracer" git = "https://github.com/ROCm-Developer-Tools/roctracer.git" - url = "https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-4.2.0.tar.gz" + url = "https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('4.3.0', sha256='c3d9f408df8d4dc0e9c0026217b8c684f68e775da80b215fecb3cd24419ee6d3') version('4.2.0', sha256='62a9c0cb1ba50b1c39a0636c886ac86e75a1a71cbf5fec05801517ceb0e67a37') version('4.1.0', sha256='5d93de4e92895b6eb5f9d098f5dbd182d33923bd9b2ab69cf5a1abbf91d70695') version('4.0.0', sha256='f47859a46173228b597c463eda850b870e810534af5efd5f2a746067ef04edee') @@ -33,13 +34,13 @@ class RoctracerDev(CMakePackage): depends_on('py-cppheaderparser', type='build') for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', - '4.2.0']: + '4.2.0', '4.3.0']: depends_on('hsakmt-roct@' + ver, when='@' + ver) depends_on('hsa-rocr-dev@' + ver, when='@' + ver) depends_on('rocminfo@' + ver, when='@' + ver) depends_on('hip@' + ver, when='@' + ver) - for ver in ['4.2.0']: + for ver in ['4.2.0', '4.3.0']: depends_on('rocprofiler-dev@' + ver, when='@' + ver) def setup_build_environment(self, build_env): diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py index 9111ab2e599..620bdc998a7 100644 --- a/var/spack/repos/builtin/packages/root/package.py +++ b/var/spack/repos/builtin/packages/root/package.py @@ -326,6 +326,79 @@ def determine_version(cls, exe): # into the format used in this recipe (6.22.06) return output.strip().replace('/', '.') + @classmethod + def determine_variants(cls, exes, version_str): + v = [] # list of determined variants + # there is a fairly direct mapping between build options ( which + # root-config helpfully outputs) and variants + output = Executable(exes[0])('--features', output=str, error=str) + f = set(output.strip().split()) # features as reported by root-config + # only multivalued variant: cxxstd + if "cxx11" in f: + v.append("cxxstd=11") + elif "cxx14" in f: + v.append("cxxstd=14") + elif "cxx17" in f: + v.append("cxxstd=17") + + # helper function: check if featurename is in features, and if it is, + # append variantname to variants. featurename may be a list/tuple, in + # which case the variant is only added if all of them are present + def _add_variant(variants, features, featurename, variantname): + if isinstance(featurename, str): + if featurename in features: + variants.append('%s' % variantname) + else: + variants.append('~%s' % variantname[1:]) + else: + if set(featurename).issubset(features): + variants.append('%s' % variantname) + else: + variants.append('~%s' % variantname[1:]) + + _add_variant(v, f, 'cocoa', '+aqua') + _add_variant(v, f, 'davix', '+davix') + _add_variant(v, f, 'dcache', '+dcache') + _add_variant(v, f, 'fftw3', '+fftw') + _add_variant(v, f, 'fitsio', '+fits') + _add_variant(v, f, ('ftgl', 'opengl'), '+opengl') + _add_variant(v, f, 'gdml', '+gdml') + _add_variant(v, f, 'mathmore', '+math') + _add_variant(v, f, 'gviz', '+graphviz') + _add_variant(v, f, 'http', '+http') + _add_variant(v, f, ('imt', 'tbb'), '+tbb') + _add_variant(v, f, 'jemalloc', '+jemalloc') + _add_variant(v, f, 'memstat', '+memstat') + _add_variant(v, f, ('minuit', 'minuit2'), '+minuit') + _add_variant(v, f, 'mlp', '+mlp') + _add_variant(v, f, 'mysql', '+mysql') + _add_variant(v, f, 'oracle', '+oracle') + _add_variant(v, f, 'pgsql', '+postgres') + _add_variant(v, f, 'pythia6', '+pythia6') + _add_variant(v, f, 'pythia8', '+pythia8') + _add_variant(v, f, 'pyroot', '+python') + _add_variant(v, f, ('qt', 'qtgsi'), '+qt4') + _add_variant(v, f, 'r', '+r') + _add_variant(v, f, 'roofit', '+roofit') + _add_variant(v, f, ('root7', 'webui'), '+root7') + _add_variant(v, f, 'rpath', '+rpath') + _add_variant(v, f, 'shadowpw', '+shadow') + _add_variant(v, f, 'spectrum', '+spectrum') + _add_variant(v, f, 'sqlite', '+sqlite') + _add_variant(v, f, 'ssl', '+ssl') + _add_variant(v, f, 'table', '+table') + _add_variant(v, f, 'thread', '+threads') + _add_variant(v, f, 'tmva', '+tmva') + _add_variant(v, f, 'unuran', '+unuran') + _add_variant(v, f, 'vc', '+vc') + _add_variant(v, f, 'vdt', '+vdt') + _add_variant(v, f, 'veccore', '+veccore') + _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 cmake_args(self): spec = self.spec define = self.define diff --git a/var/spack/repos/builtin/packages/ross/package.py b/var/spack/repos/builtin/packages/ross/package.py index 21e99499ba6..215942284a8 100644 --- a/var/spack/repos/builtin/packages/ross/package.py +++ b/var/spack/repos/builtin/packages/ross/package.py @@ -9,7 +9,7 @@ class Ross(CMakePackage): """Rensselaer Optimistic Simulation System""" - homepage = "http://ross-org.github.io" + homepage = "https://ross-org.github.io" git = "https://github.com/ROSS-org/ROSS.git" url = "https://github.com/ROSS-org/ROSS/archive/v7.0.0.tar.gz" diff --git a/var/spack/repos/builtin/packages/rr/package.py b/var/spack/repos/builtin/packages/rr/package.py index 0d3539135d1..6a0865923f4 100644 --- a/var/spack/repos/builtin/packages/rr/package.py +++ b/var/spack/repos/builtin/packages/rr/package.py @@ -8,7 +8,7 @@ class Rr(CMakePackage): """Application execution recorder, player and debugger""" - homepage = "http://rr-project.org/" + homepage = "https://rr-project.org/" url = "https://github.com/mozilla/rr/archive/4.5.0.tar.gz" version('4.5.0', sha256='19f28259c0aa562c9518ae51207377fa93071a7dc270a0738d8d39e45ae2b1c0') diff --git a/var/spack/repos/builtin/packages/rrdtool/package.py b/var/spack/repos/builtin/packages/rrdtool/package.py index 99d5170d731..5c615127d9f 100644 --- a/var/spack/repos/builtin/packages/rrdtool/package.py +++ b/var/spack/repos/builtin/packages/rrdtool/package.py @@ -9,7 +9,7 @@ class Rrdtool(AutotoolsPackage): """RA tool for data logging and analysis.""" - homepage = "http://oss.oetiker.ch/rrdtool" + homepage = "https://oss.oetiker.ch/rrdtool" url = "http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.7.0.tar.gz" version('1.7.2', sha256='a199faeb7eff7cafc46fac253e682d833d08932f3db93a550a4a5af180ca58db') diff --git a/var/spack/repos/builtin/packages/rsbench/package.py b/var/spack/repos/builtin/packages/rsbench/package.py index 5e16563e998..b3b5f852edf 100644 --- a/var/spack/repos/builtin/packages/rsbench/package.py +++ b/var/spack/repos/builtin/packages/rsbench/package.py @@ -14,26 +14,36 @@ class Rsbench(MakefilePackage): homepage = "https://github.com/ANL-CESAR/RSBench" url = "https://github.com/ANL-CESAR/RSBench/archive/v2.tar.gz" + version('12', sha256='2e437dbdaf7bf12bb9ade429d46a9e74fd519fc4686777a452770790d0546499') version('2', sha256='1e97a38a863836e98cedc5cc669f8fdcaed905fafdc921d2bce32319b3e157ff') version('0', sha256='95c06cf4cb6f396f9964d5e4b58a477bf9d7131cd39804480f1cb74e9310b271') tags = ['proxy-app'] - build_directory = 'src' + # To-Do: Add build support for other parallelism versions in v12: + # CUDA, Sycl, OpenCL, OpenMP Offload + + @property + def build_directory(self): + if self.spec.satisfies('@:2'): + return 'src' + return 'openmp-threading' @property def build_targets(self): targets = [] - cflags = '-std=gnu99' + cflags = '-std=gnu99 -O3' ldflags = '-lm' if self.compiler.name == 'gcc': cflags += ' -ffast-math ' elif self.compiler.name == 'intel': cflags += ' -xhost -ansi-alias -no-prec-div ' - elif self.compiler.name == 'pgi': + elif self.compiler.name == 'pgi' or self.compiler.name == 'nvhpc': cflags += ' -fastsse ' + elif self.compiler.name == 'arm': + cflags += ' -ffast-math ' cflags += self.compiler.openmp_flag @@ -44,4 +54,4 @@ def build_targets(self): def install(self, spec, prefix): mkdir(prefix.bin) - install('src/rsbench', prefix.bin) + install(join_path(self.build_directory, 'rsbench'), prefix.bin) diff --git a/var/spack/repos/builtin/packages/rsem/package.py b/var/spack/repos/builtin/packages/rsem/package.py index eebce12929e..dfad6f33d10 100644 --- a/var/spack/repos/builtin/packages/rsem/package.py +++ b/var/spack/repos/builtin/packages/rsem/package.py @@ -10,7 +10,7 @@ class Rsem(MakefilePackage): """RSEM is a software package for estimating gene and isoform expression levels from RNA-Seq data.""" - homepage = "http://deweylab.github.io/RSEM/" + homepage = "https://deweylab.github.io/RSEM/" url = "https://github.com/deweylab/RSEM/archive/v1.3.0.tar.gz" version('1.3.1', sha256='93c749a03ac16e94b1aab94d032d4fd5687d3261316ce943ecb89d3ae3ec2e11') diff --git a/var/spack/repos/builtin/packages/rstart/package.py b/var/spack/repos/builtin/packages/rstart/package.py index ee13a1987be..33fcb09f217 100644 --- a/var/spack/repos/builtin/packages/rstart/package.py +++ b/var/spack/repos/builtin/packages/rstart/package.py @@ -14,7 +14,7 @@ class Rstart(AutotoolsPackage, XorgPackage): This software has been deprecated in favor of the X11 forwarding provided in common ssh implementations.""" - homepage = "http://cgit.freedesktop.org/xorg/app/rstart" + homepage = "https://cgit.freedesktop.org/xorg/app/rstart" xorg_mirror_path = "app/rstart-1.0.5.tar.gz" version('1.0.5', sha256='5271c0c2675b4ad09aace7edddfdd137af10fc754afa6260d8eb5d0bba7098c7') diff --git a/var/spack/repos/builtin/packages/rsync/package.py b/var/spack/repos/builtin/packages/rsync/package.py index bac8e8a4945..b899aed17d9 100644 --- a/var/spack/repos/builtin/packages/rsync/package.py +++ b/var/spack/repos/builtin/packages/rsync/package.py @@ -13,6 +13,7 @@ class Rsync(AutotoolsPackage): homepage = "https://rsync.samba.org" url = "https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz" + version('3.2.3', sha256='becc3c504ceea499f4167a260040ccf4d9f2ef9499ad5683c179a697146ce50e') version('3.2.2', sha256='644bd3841779507665211fd7db8359c8a10670c57e305b4aab61b4e40037afa8') version('3.1.3', sha256='55cc554efec5fdaad70de921cd5a5eeb6c29a95524c715f3bbf849235b0800c0') version('3.1.2', sha256='ecfa62a7fa3c4c18b9eccd8c16eaddee4bd308a76ea50b5c02a5840f09c0a1c2') diff --git a/var/spack/repos/builtin/packages/rust-bindgen/package.py b/var/spack/repos/builtin/packages/rust-bindgen/package.py index 59f9a887746..1993a2d0ad8 100644 --- a/var/spack/repos/builtin/packages/rust-bindgen/package.py +++ b/var/spack/repos/builtin/packages/rust-bindgen/package.py @@ -10,7 +10,7 @@ class RustBindgen(Package): """The rust programming language toolchain""" - homepage = "http://www.rust-lang.org" + homepage = "https://www.rust-lang.org" url = "https://github.com/servo/rust-bindgen/archive/v0.20.5.tar.gz" version('0.20.5', sha256='4f5236e7979d262c43267afba365612b1008b91b8f81d1efc6a8a2199d52bb37') diff --git a/var/spack/repos/builtin/packages/sailfish/package.py b/var/spack/repos/builtin/packages/sailfish/package.py index cb354e89736..dfd4f40b643 100644 --- a/var/spack/repos/builtin/packages/sailfish/package.py +++ b/var/spack/repos/builtin/packages/sailfish/package.py @@ -9,7 +9,7 @@ class Sailfish(CMakePackage): """Sailfish is a tool for transcript quantification from RNA-seq data.""" - homepage = "http://www.cs.cmu.edu/~ckingsf/software/sailfish" + homepage = "https://www.cs.cmu.edu/~ckingsf/software/sailfish" url = "https://github.com/kingsfordgroup/sailfish/archive/v0.10.1.tar.gz" version('0.10.1', sha256='a0d6d944382f2e07ffbfd0371132588e2f22bb846ecfc3d3435ff3d81b30d6c6') diff --git a/var/spack/repos/builtin/packages/salmon/package.py b/var/spack/repos/builtin/packages/salmon/package.py index bdbc4aca9db..0a6388b34ad 100644 --- a/var/spack/repos/builtin/packages/salmon/package.py +++ b/var/spack/repos/builtin/packages/salmon/package.py @@ -8,7 +8,7 @@ class Salmon(CMakePackage): """Salmon is a tool for quantifying the expression of transcripts using RNA-seq data.""" - homepage = "http://combine-lab.github.io/salmon/" + homepage = "https://combine-lab.github.io/salmon/" url = "https://github.com/COMBINE-lab/salmon/archive/v0.8.2.tar.gz" version('1.4.0', sha256='6d3e25387450710f0aa779a1e9aaa9b4dec842324ff8551d66962d7c7606e71d') diff --git a/var/spack/repos/builtin/packages/sambamba/package.py b/var/spack/repos/builtin/packages/sambamba/package.py index afcac2874bd..a337cddd908 100644 --- a/var/spack/repos/builtin/packages/sambamba/package.py +++ b/var/spack/repos/builtin/packages/sambamba/package.py @@ -9,7 +9,7 @@ class Sambamba(Package): """Sambamba: process your BAM data faster (bioinformatics)""" - homepage = "http://lomereiter.github.io/sambamba/" + homepage = "https://lomereiter.github.io/sambamba/" git = "https://github.com/lomereiter/sambamba.git" version('0.6.6', tag='v0.6.6', submodules=True) diff --git a/var/spack/repos/builtin/packages/samtools/package.py b/var/spack/repos/builtin/packages/samtools/package.py index c7db0c0157b..c0c27ae32d6 100644 --- a/var/spack/repos/builtin/packages/samtools/package.py +++ b/var/spack/repos/builtin/packages/samtools/package.py @@ -11,7 +11,7 @@ class Samtools(Package): the SAM format, including sorting, merging, indexing and generating alignments in a per-position format""" - homepage = "http://www.htslib.org" + homepage = "https://www.htslib.org" url = "https://github.com/samtools/samtools/releases/download/1.3.1/samtools-1.3.1.tar.bz2" version('1.12', sha256='6da3770563b1c545ca8bdf78cf535e6d1753d6383983c7929245d5dba2902dcb') @@ -33,7 +33,9 @@ class Samtools(Package): depends_on('python', type='run') # htslib became standalone @1.3.1, must use corresponding version + depends_on('htslib@1.13', when='@1.13') depends_on('htslib@1.12', when='@1.12') + depends_on('htslib@1.11', when='@1.11') depends_on('htslib@1.10.2', when='@1.10') depends_on('htslib@1.9', when='@1.9') depends_on('htslib@1.8', when='@1.8') diff --git a/var/spack/repos/builtin/packages/sblim-sfcc/package.py b/var/spack/repos/builtin/packages/sblim-sfcc/package.py index 1105e05a008..79cc3ae7fd7 100644 --- a/var/spack/repos/builtin/packages/sblim-sfcc/package.py +++ b/var/spack/repos/builtin/packages/sblim-sfcc/package.py @@ -9,7 +9,7 @@ class SblimSfcc(AutotoolsPackage): """Small Footprint CIM Client Library""" - homepage = "http://sourceforge.net/projects/sblim" + homepage = "https://sourceforge.net/projects/sblim" url = "https://github.com/kkaempf/sblim-sfcc/archive/SFCC_2_2_1.tar.gz" version('2_2_8', sha256='d8d0bf06a487483df507f512ddf0c7b2c1b878a1c9b039bf5c2357c4ba13b882') diff --git a/var/spack/repos/builtin/packages/sbp/package.py b/var/spack/repos/builtin/packages/sbp/package.py new file mode 100644 index 00000000000..cc031f7f997 --- /dev/null +++ b/var/spack/repos/builtin/packages/sbp/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2021 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 import * + + +class Sbp(CMakePackage): + """Library providing an API for Piksi GNSS devices.""" + + homepage = 'https://github.com/swift-nav/libsbp' + git = 'https://github.com/swift-nav/libsbp' + + maintainers = ['jayvdb'] + + version('3.4.10', tag='v3.4.10', submodules=True) + + root_cmakelists_dir = 'c' + + def cmake_args(self): + args = [ + self.define('BUILD_SHARED_LIBS', 'ON'), + self.define('libsbp_ENABLE_TESTS', 'OFF'), + self.define('libsbp_ENABLE_DOCS', 'OFF'), + ] + return args diff --git a/var/spack/repos/builtin/packages/sbt/package.py b/var/spack/repos/builtin/packages/sbt/package.py index 64a0b192302..9b68d95e628 100644 --- a/var/spack/repos/builtin/packages/sbt/package.py +++ b/var/spack/repos/builtin/packages/sbt/package.py @@ -9,7 +9,7 @@ class Sbt(Package): """Scala Build Tool""" - homepage = 'http://www.scala-sbt.org' + homepage = 'https://www.scala-sbt.org' url = "https://github.com/sbt/sbt/releases/download/v1.1.4/sbt-1.1.4.tgz" version('1.1.6', sha256='f545b530884e3abbca026df08df33d5a15892e6d98da5b8c2297413d1c7b68c1') diff --git a/var/spack/repos/builtin/packages/scalasca/package.py b/var/spack/repos/builtin/packages/scalasca/package.py index 421c629e268..b172d199583 100644 --- a/var/spack/repos/builtin/packages/scalasca/package.py +++ b/var/spack/repos/builtin/packages/scalasca/package.py @@ -16,7 +16,7 @@ class Scalasca(AutotoolsPackage): """ - homepage = "http://www.scalasca.org" + homepage = "https://www.scalasca.org" url = "http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz" list_url = "https://scalasca.org/scalasca/front_content.php?idart=1072" diff --git a/var/spack/repos/builtin/packages/scan-for-matches/package.py b/var/spack/repos/builtin/packages/scan-for-matches/package.py index d76ebff32a2..31a23510a7a 100644 --- a/var/spack/repos/builtin/packages/scan-for-matches/package.py +++ b/var/spack/repos/builtin/packages/scan-for-matches/package.py @@ -10,7 +10,7 @@ class ScanForMatches(Package): """scan_for_matches is a utility written in C for locating patterns in DNA or protein FASTA files.""" - homepage = "http://blog.theseed.org/servers/2010/07/scan-for-matches.html" + homepage = "https://blog.theseed.org/servers/2010/07/scan-for-matches.html" url = "http://www.theseed.org/servers/downloads/scan_for_matches.tgz" version('2010-7-16', sha256='c6b17930efbdfbac28b57c3a0b4f8c26effb36c48988d82e41c81c6962e2d68f') diff --git a/var/spack/repos/builtin/packages/scantailor/package.py b/var/spack/repos/builtin/packages/scantailor/package.py index 97d90b73c09..86cb133972c 100644 --- a/var/spack/repos/builtin/packages/scantailor/package.py +++ b/var/spack/repos/builtin/packages/scantailor/package.py @@ -14,7 +14,7 @@ class Scantailor(CMakePackage): recognition, and assembling multi-page documents are out of scope of this project.""" - homepage = "http://www.scantailor.org" + homepage = "https://www.scantailor.org" url = "https://github.com/trufanov-nok/scantailor/archive/0.2.7.tar.gz" version( diff --git a/var/spack/repos/builtin/packages/scons/package.py b/var/spack/repos/builtin/packages/scons/package.py index 98730613339..350c7e3e5cc 100644 --- a/var/spack/repos/builtin/packages/scons/package.py +++ b/var/spack/repos/builtin/packages/scons/package.py @@ -9,7 +9,7 @@ class Scons(PythonPackage): """SCons is a software construction tool""" - homepage = "http://scons.org" + homepage = "https://scons.org" pypi = "scons/scons-3.1.1.tar.gz" version('3.1.2', sha256='8aaa483c303efeb678e6f7c776c8444a482f8ddc3ad891f8b6cdd35264da9a1f') diff --git a/var/spack/repos/builtin/packages/scorep/package.py b/var/spack/repos/builtin/packages/scorep/package.py index 1f36a17fbcd..4ea8337b0c9 100644 --- a/var/spack/repos/builtin/packages/scorep/package.py +++ b/var/spack/repos/builtin/packages/scorep/package.py @@ -12,7 +12,7 @@ class Scorep(AutotoolsPackage): of HPC applications. """ - homepage = "http://www.vi-hps.org/projects/score-p" + homepage = "https://www.vi-hps.org/projects/score-p" url = "https://www.vi-hps.org/cms/upload/packages/scorep/scorep-4.1.tar.gz" version('7.0', sha256='68f24a68eb6f94eaecf500e17448f566031946deab74f2cba072ee8368af0996', url='https://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-7.0/scorep-7.0.tar.gz') diff --git a/var/spack/repos/builtin/packages/scr/package.py b/var/spack/repos/builtin/packages/scr/package.py index dfb8d1962ee..d77d6bca636 100644 --- a/var/spack/repos/builtin/packages/scr/package.py +++ b/var/spack/repos/builtin/packages/scr/package.py @@ -22,7 +22,7 @@ class Scr(CMakePackage): Linux cluster to provide a fast, scalable checkpoint/restart capability for MPI codes""" - homepage = "http://computing.llnl.gov/projects/scalable-checkpoint-restart-for-mpi" + homepage = "https://computing.llnl.gov/projects/scalable-checkpoint-restart-for-mpi" url = "https://github.com/LLNL/scr/archive/v1.2.0.tar.gz" git = "https://github.com/llnl/scr.git" diff --git a/var/spack/repos/builtin/packages/scripts/package.py b/var/spack/repos/builtin/packages/scripts/package.py index d4346da1bf8..756c93aa55d 100644 --- a/var/spack/repos/builtin/packages/scripts/package.py +++ b/var/spack/repos/builtin/packages/scripts/package.py @@ -9,7 +9,7 @@ class Scripts(AutotoolsPackage, XorgPackage): """Various X related scripts.""" - homepage = "http://cgit.freedesktop.org/xorg/app/scripts" + homepage = "https://cgit.freedesktop.org/xorg/app/scripts" xorg_mirror_path = "app/scripts-1.0.1.tar.gz" version('1.0.1', sha256='0ed6dabdbe821944d61830489ad5f21bd934550456b9157a1cd8a32f76e08279') diff --git a/var/spack/repos/builtin/packages/scrnsaverproto/package.py b/var/spack/repos/builtin/packages/scrnsaverproto/package.py index 4365b7afca2..3894926f5d6 100644 --- a/var/spack/repos/builtin/packages/scrnsaverproto/package.py +++ b/var/spack/repos/builtin/packages/scrnsaverproto/package.py @@ -12,7 +12,7 @@ class Scrnsaverproto(AutotoolsPackage, XorgPackage): This extension defines a protocol to control screensaver features and also to query screensaver info on specific windows.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/scrnsaverproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/scrnsaverproto" xorg_mirror_path = "proto/scrnsaverproto-1.2.2.tar.gz" version('1.2.2', sha256='d8dee19c52977f65af08fad6aa237bacee11bc5a33e1b9b064e8ac1fd99d6e79') diff --git a/var/spack/repos/builtin/packages/scrot/package.py b/var/spack/repos/builtin/packages/scrot/package.py index 8c47b0176f4..7e511db5434 100644 --- a/var/spack/repos/builtin/packages/scrot/package.py +++ b/var/spack/repos/builtin/packages/scrot/package.py @@ -13,13 +13,12 @@ class Scrot(AutotoolsPackage): dynamic saver modules.""" homepage = "https://github.com/resurrecting-open-source-projects/scrot" - url = "https://github.com/resurrecting-open-source-projects/scrot/archive/refs/tags/1.5.tar.gz" + url = "https://github.com/resurrecting-open-source-projects/scrot/releases/download/1.5/scrot-1.5.tar.gz" - version('1.5', sha256='87afba3998aac097f13231f3b0452c21188bf4b5cc6ac0747693a1da1a0ae40f') + version('1.6', sha256='42f64d38f04ec530c8b4ebdae04cce8b6893b2f8d30627391d390edcba917090') + version('1.5', sha256='42fcf1c97940f4b4e34ca69990a0fc9b98991357bd6a4b67f30ebe0ccc10f093') - depends_on('autoconf-archive', type='build') - depends_on('automake', type='build') - depends_on('giblib', when='@:1.5') # @master already has this dependency removed + depends_on('giblib', when='@:1.5') depends_on('imlib2') depends_on('libtool') depends_on('libxcomposite') diff --git a/var/spack/repos/builtin/packages/seacas/package.py b/var/spack/repos/builtin/packages/seacas/package.py index 1fa8fb193d9..c52595d8e90 100644 --- a/var/spack/repos/builtin/packages/seacas/package.py +++ b/var/spack/repos/builtin/packages/seacas/package.py @@ -20,7 +20,7 @@ class Seacas(CMakePackage): translate exodus databases. Default is to build the exodus and IOSS libraries and the io_shell, io_info, struc_to_unstruc apps. """ - homepage = "http://gsjaardema.github.io/seacas/" + homepage = "https://gsjaardema.github.io/seacas/" git = "https://github.com/gsjaardema/seacas.git" url = "https://github.com/gsjaardema/seacas/archive/v2019-08-20.tar.gz" maintainers = ['gsjaardema'] @@ -98,6 +98,9 @@ class Seacas(CMakePackage): depends_on('cmake@3.1:', type='build') + def setup_run_environment(self, env): + env.prepend_path('PYTHONPATH', self.prefix.lib) + def cmake_args(self): spec = self.spec from_variant = self.define_from_variant diff --git a/var/spack/repos/builtin/packages/sed/package.py b/var/spack/repos/builtin/packages/sed/package.py index 98ac82b36fb..836c86c71fa 100644 --- a/var/spack/repos/builtin/packages/sed/package.py +++ b/var/spack/repos/builtin/packages/sed/package.py @@ -3,12 +3,23 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re + from spack import * class Sed(AutotoolsPackage, GNUMirrorPackage): """GNU implementation of the famous stream editor.""" - homepage = "http://www.gnu.org/software/sed/" + homepage = "https://www.gnu.org/software/sed/" gnu_mirror_path = "sed/sed-4.2.2.tar.bz2" version('4.2.2', sha256='f048d1838da284c8bc9753e4506b85a1e0cc1ea8999d36f6995bcb9460cddbd7') + + executables = ['^sed$'] + + @classmethod + def determine_version(cls, exe): + output = Executable(exe)('--version', output=str, error=str) + version_regexp = r'{:s} \(GNU sed\) (\S+)'.format(exe) + match = re.search(version_regexp, output) + return match.group(1) if match else None diff --git a/var/spack/repos/builtin/packages/sentencepiece/package.py b/var/spack/repos/builtin/packages/sentencepiece/package.py index d96c99ad9e4..0cf364e6618 100644 --- a/var/spack/repos/builtin/packages/sentencepiece/package.py +++ b/var/spack/repos/builtin/packages/sentencepiece/package.py @@ -14,6 +14,7 @@ class Sentencepiece(CMakePackage): maintainers = ['adamjstewart'] + version('0.1.91', sha256='acbc7ea12713cd2a8d64892f8d2033c7fd2bb4faecab39452496120ace9a4b1b') version('0.1.85', sha256='dd4956287a1b6af3cbdbbd499b7227a859a4e3f41c9882de5e6bdd929e219ae6') depends_on('cmake@3.1:', type='build') diff --git a/var/spack/repos/builtin/packages/seqkit/package.py b/var/spack/repos/builtin/packages/seqkit/package.py index 386de590579..bb85b1e03bf 100644 --- a/var/spack/repos/builtin/packages/seqkit/package.py +++ b/var/spack/repos/builtin/packages/seqkit/package.py @@ -10,7 +10,7 @@ class Seqkit(Package): """A cross-platform and ultrafast toolkit for FASTA/Q file manipulation in Golang.""" - homepage = "http://bioinf.shenwei.me/seqkit" + homepage = "https://bioinf.shenwei.me/seqkit" url = "https://github.com/shenwei356/seqkit/releases/download/v0.10.1/seqkit_linux_amd64.tar.gz" version('0.10.1', sha256='82f1c86dc4bd196403a56c2bf3ec063e5674a71777e68d940c4cc3d8411d2e9d') diff --git a/var/spack/repos/builtin/packages/serf/package.py b/var/spack/repos/builtin/packages/serf/package.py index 8d15cbdb014..5367f5b6f2e 100644 --- a/var/spack/repos/builtin/packages/serf/package.py +++ b/var/spack/repos/builtin/packages/serf/package.py @@ -19,13 +19,13 @@ class Serf(SConsPackage): variant('debug', default=False, description='Enable debugging info and strict compile warnings') - depends_on('scons@2.3.0:', type='build') - depends_on('apr') depends_on('apr-util') depends_on('openssl') - depends_on('zlib') + depends_on('python+pythoncmd', type='build') + depends_on('scons@2.3.0:', type='build') depends_on('uuid') + depends_on('zlib') patch('py3syntax.patch') diff --git a/var/spack/repos/builtin/packages/sessreg/package.py b/var/spack/repos/builtin/packages/sessreg/package.py index 0d0cf125cb8..2eb69fa164b 100644 --- a/var/spack/repos/builtin/packages/sessreg/package.py +++ b/var/spack/repos/builtin/packages/sessreg/package.py @@ -11,7 +11,7 @@ class Sessreg(AutotoolsPackage, XorgPackage): sessions. It was originally written for use with xdm, but may also be used with other display managers such as gdm or kdm.""" - homepage = "http://cgit.freedesktop.org/xorg/app/sessreg" + homepage = "https://cgit.freedesktop.org/xorg/app/sessreg" xorg_mirror_path = "app/sessreg-1.1.0.tar.gz" version('1.1.0', sha256='e561edb48dfc3b0624554169c15f9dd2c3139e83084cb323b0c712724f2b6043') diff --git a/var/spack/repos/builtin/packages/setserial/package.py b/var/spack/repos/builtin/packages/setserial/package.py index 782024a5f6e..82099154392 100644 --- a/var/spack/repos/builtin/packages/setserial/package.py +++ b/var/spack/repos/builtin/packages/setserial/package.py @@ -9,7 +9,7 @@ class Setserial(AutotoolsPackage): """A utility for configuring serial ports.""" - homepage = "https://setserial.sourceforge.net" + homepage = "http://setserial.sourceforge.net" url = "https://udomain.dl.sourceforge.net/project/setserial/setserial/2.17/setserial-2.17.tar.gz" version('2.17', sha256='7e4487d320ac31558563424189435d396ddf77953bb23111a17a3d1487b5794a') diff --git a/var/spack/repos/builtin/packages/setxkbmap/package.py b/var/spack/repos/builtin/packages/setxkbmap/package.py index 015fd23146d..df4c3302fa8 100644 --- a/var/spack/repos/builtin/packages/setxkbmap/package.py +++ b/var/spack/repos/builtin/packages/setxkbmap/package.py @@ -11,7 +11,7 @@ class Setxkbmap(AutotoolsPackage, XorgPackage): specified keyboard to use the layout determined by the options listed on the command line.""" - homepage = "http://cgit.freedesktop.org/xorg/app/setxkbmap" + homepage = "https://cgit.freedesktop.org/xorg/app/setxkbmap" xorg_mirror_path = "app/setxkbmap-1.3.1.tar.gz" version('1.3.1', sha256='e24a73669007fa3b280eba4bdc7f75715aeb2e394bf2d63f5cc872502ddde264') diff --git a/var/spack/repos/builtin/packages/sfcio/package.py b/var/spack/repos/builtin/packages/sfcio/package.py new file mode 100644 index 00000000000..c2a6c750ec9 --- /dev/null +++ b/var/spack/repos/builtin/packages/sfcio/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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 import * + + +class Sfcio(CMakePackage): + """The SFCIO library provides an API to read the NCEP Spectral model surface + files.""" + + homepage = "https://noaa-emc.github.io/NCEPLIBS-sfcio" + url = "https://github.com/NOAA-EMC/NCEPLIBS-sfcio/archive/refs/tags/v1.4.1.tar.gz" + + maintainers = ['t-brown'] + + version('1.4.1', sha256='d9f900cf18ec1a839b4128c069b1336317ffc682086283443354896746b89c59') diff --git a/var/spack/repos/builtin/packages/shark/package.py b/var/spack/repos/builtin/packages/shark/package.py index d163dcc96e6..71b11ae611e 100644 --- a/var/spack/repos/builtin/packages/shark/package.py +++ b/var/spack/repos/builtin/packages/shark/package.py @@ -10,7 +10,7 @@ class Shark(CMakePackage): """Shark is a fast, modular, general open-source C++ machine learning library. """ - homepage = "http://www.shark-ml.org/" + homepage = "https://www.shark-ml.org/" url = "https://github.com/Shark-ML/Shark/archive/v4.0.1.tar.gz" version('4.0.1', sha256='1caf9c73c5ebf54f9543a090e2b05ac646f95559aa1de483cd7662c378c1ec21') diff --git a/var/spack/repos/builtin/packages/shortstack/package.py b/var/spack/repos/builtin/packages/shortstack/package.py index d28aef0c79e..ced100a5e9a 100644 --- a/var/spack/repos/builtin/packages/shortstack/package.py +++ b/var/spack/repos/builtin/packages/shortstack/package.py @@ -11,7 +11,7 @@ class Shortstack(Package): with respect to a reference genome, and output a comprehensive and informative annotation of all discovered small RNA genes.""" - homepage = "http://sites.psu.edu/axtell/software/shortstack/" + homepage = "https://sites.psu.edu/axtell/software/shortstack/" url = "https://github.com/MikeAxtell/ShortStack/archive/v3.8.3.tar.gz" version('3.8.3', sha256='7c76f51ed949ca95ec5df7cb54803ae2350658fd64c75909351d5a856abb0dbe') diff --git a/var/spack/repos/builtin/packages/showfont/package.py b/var/spack/repos/builtin/packages/showfont/package.py index ef2b09d9b0c..e6d1822d4d9 100644 --- a/var/spack/repos/builtin/packages/showfont/package.py +++ b/var/spack/repos/builtin/packages/showfont/package.py @@ -11,7 +11,7 @@ class Showfont(AutotoolsPackage, XorgPackage): The information shown includes font information, font properties, character metrics, and character bitmaps.""" - homepage = "http://cgit.freedesktop.org/xorg/app/showfont" + homepage = "https://cgit.freedesktop.org/xorg/app/showfont" xorg_mirror_path = "app/showfont-1.0.5.tar.gz" version('1.0.5', sha256='566e34a145ea73397724d46e84f6a9b3691cf55d0fcb96ec7f917b2b39265ebb') diff --git a/var/spack/repos/builtin/packages/sigio/package.py b/var/spack/repos/builtin/packages/sigio/package.py new file mode 100644 index 00000000000..c793de14c23 --- /dev/null +++ b/var/spack/repos/builtin/packages/sigio/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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 import * + + +class Sigio(CMakePackage): + """The SIGIO library provides an Application Program Interface for performing + I/O on the sigma restart file of the global spectral model.""" + + homepage = "https://noaa-emc.github.io/NCEPLIBS-sigio" + url = "https://github.com/NOAA-EMC/NCEPLIBS-sigio/archive/refs/tags/v2.3.2.tar.gz" + + maintainers = ['t-brown'] + + version('2.3.2', sha256='333f3cf3a97f97103cbafcafc2ad89b24faa55b1332a98adc1637855e8a5b613') diff --git a/var/spack/repos/builtin/packages/signalp/package.py b/var/spack/repos/builtin/packages/signalp/package.py index 831cbb1515d..73d69cf2471 100644 --- a/var/spack/repos/builtin/packages/signalp/package.py +++ b/var/spack/repos/builtin/packages/signalp/package.py @@ -18,7 +18,7 @@ class Signalp(Package): For instructions on how to set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" - homepage = "http://www.cbs.dtu.dk/services/SignalP/" + homepage = "https://www.cbs.dtu.dk/services/SignalP/" url = "file://{0}/signalp-4.1f.Linux.tar.gz".format(os.getcwd()) manual_download = True diff --git a/var/spack/repos/builtin/packages/silo/package.py b/var/spack/repos/builtin/packages/silo/package.py index 5eb541a918b..3f234473b2b 100644 --- a/var/spack/repos/builtin/packages/silo/package.py +++ b/var/spack/repos/builtin/packages/silo/package.py @@ -40,8 +40,7 @@ class Silo(AutotoolsPackage): depends_on('libtool', type='build', when='+shared') depends_on('mpi', when='+mpi') depends_on('hdf5@:1.10.999', when='@:4.10.2+hdf5') - depends_on('hdf5~mpi', when='~mpi+hdf5') - depends_on('hdf5+mpi', when='+mpi+hdf5') + depends_on('hdf5', when='+hdf5') depends_on('qt+gui~framework@4.8:4.9', when='+silex') depends_on('libx11', when='+silex') # Xmu dependency is required on Ubuntu 18-20 diff --git a/var/spack/repos/builtin/packages/simgrid/package.py b/var/spack/repos/builtin/packages/simgrid/package.py index 188f227c17b..e22cd1d2586 100644 --- a/var/spack/repos/builtin/packages/simgrid/package.py +++ b/var/spack/repos/builtin/packages/simgrid/package.py @@ -10,7 +10,7 @@ class Simgrid(CMakePackage): """To study the behavior of large-scale distributed systems such as Grids, Clouds, HPC or P2P systems.""" - homepage = "http://simgrid.org/" + homepage = "https://simgrid.org/" url = "https://github.com/simgrid/simgrid/releases/download/v3.27/simgrid-3.27.tar.gz" git = 'https://framagit.org/simgrid/simgrid.git' diff --git a/var/spack/repos/builtin/packages/smalt/package.py b/var/spack/repos/builtin/packages/smalt/package.py index 8998620d922..47d5cde7f0d 100644 --- a/var/spack/repos/builtin/packages/smalt/package.py +++ b/var/spack/repos/builtin/packages/smalt/package.py @@ -9,7 +9,7 @@ class Smalt(AutotoolsPackage, SourceforgePackage): """SMALT aligns DNA sequencing reads with a reference genome.""" - homepage = "http://www.sanger.ac.uk/science/tools/smalt-0" + homepage = "https://www.sanger.ac.uk/science/tools/smalt-0" sourceforge_mirror_path = "smalt/smalt-0.7.6.tar.gz" version('0.7.6', sha256='89ccdfe471edba3577b43de9ebfdaedb5cd6e26b02bf4000c554253433796b31') diff --git a/var/spack/repos/builtin/packages/smartmontools/package.py b/var/spack/repos/builtin/packages/smartmontools/package.py index 69fc9434c16..f4c01277c1a 100644 --- a/var/spack/repos/builtin/packages/smartmontools/package.py +++ b/var/spack/repos/builtin/packages/smartmontools/package.py @@ -9,7 +9,7 @@ class Smartmontools(AutotoolsPackage): """S.M.A.R.T. utility toolset.""" - homepage = "http://smartmontools.sourceforge.net" + homepage = "https://smartmontools.sourceforge.net" url = "https://nchc.dl.sourceforge.net/project/smartmontools/smartmontools/6.6/smartmontools-6.6.tar.gz" version('6.6', sha256='51f43d0fb064fccaf823bbe68cf0d317d0895ff895aa353b3339a3b316a53054') diff --git a/var/spack/repos/builtin/packages/smproxy/package.py b/var/spack/repos/builtin/packages/smproxy/package.py index c487121c065..e2aed9086a9 100644 --- a/var/spack/repos/builtin/packages/smproxy/package.py +++ b/var/spack/repos/builtin/packages/smproxy/package.py @@ -10,7 +10,7 @@ class Smproxy(AutotoolsPackage, XorgPackage): """smproxy allows X applications that do not support X11R6 session management to participate in an X11R6 session.""" - homepage = "http://cgit.freedesktop.org/xorg/app/smproxy" + homepage = "https://cgit.freedesktop.org/xorg/app/smproxy" xorg_mirror_path = "app/smproxy-1.0.6.tar.gz" version('1.0.6', sha256='a01374763426a5fdcbc7a65edc54e2070cdbca4df41dddd3051c7586e4c814c9') diff --git a/var/spack/repos/builtin/packages/snap-berkeley/package.py b/var/spack/repos/builtin/packages/snap-berkeley/package.py index 7cf465a4ca9..c120e4d9e0a 100644 --- a/var/spack/repos/builtin/packages/snap-berkeley/package.py +++ b/var/spack/repos/builtin/packages/snap-berkeley/package.py @@ -12,7 +12,7 @@ class SnapBerkeley(MakefilePackage): advantage of these reads to align data quickly through a hash-based indexing scheme.""" - homepage = "http://snap.cs.berkeley.edu/" + homepage = "https://snap.cs.berkeley.edu/" url = "https://github.com/amplab/snap/archive/v1.0beta.18.tar.gz" version('1.0beta.18', sha256='9e8a8dc3f17e3f533d34011afe98316c19cbd70cc8b4830375611e003697daee') diff --git a/var/spack/repos/builtin/packages/soapdenovo-trans/package.py b/var/spack/repos/builtin/packages/soapdenovo-trans/package.py index 6c76590c318..93e0d61cd08 100644 --- a/var/spack/repos/builtin/packages/soapdenovo-trans/package.py +++ b/var/spack/repos/builtin/packages/soapdenovo-trans/package.py @@ -11,7 +11,7 @@ class SoapdenovoTrans(MakefilePackage): SOAPdenovo framework, adapt to alternative splicing and different expression level among transcripts.""" - homepage = "http://soap.genomics.org.cn/SOAPdenovo-Trans.html" + homepage = "https://github.com/aquaskyline/SOAPdenovo-Trans" url = "https://github.com/aquaskyline/SOAPdenovo-Trans/archive/1.0.4.tar.gz" version('1.0.4', sha256='378a54cde0ebe240fb515ba67197c053cf95393645c1ae1399b3a611be2a9795') diff --git a/var/spack/repos/builtin/packages/somatic-sniper/package.py b/var/spack/repos/builtin/packages/somatic-sniper/package.py index adabe87392a..37548e856ca 100644 --- a/var/spack/repos/builtin/packages/somatic-sniper/package.py +++ b/var/spack/repos/builtin/packages/somatic-sniper/package.py @@ -9,7 +9,7 @@ class SomaticSniper(CMakePackage): """A tool to call somatic single nucleotide variants.""" - homepage = "http://gmt.genome.wustl.edu/packages/somatic-sniper" + homepage = "https://gmt.genome.wustl.edu/packages/somatic-sniper" url = "https://github.com/genome/somatic-sniper/archive/v1.0.5.0.tar.gz" version('1.0.5.0', sha256='fc41e90237b059fcc591e404830c4b1be678642dd5afd76ce545b97b4b7b3de1') diff --git a/var/spack/repos/builtin/packages/sombrero/package.py b/var/spack/repos/builtin/packages/sombrero/package.py index 8e117a1e2cb..84459c4a416 100644 --- a/var/spack/repos/builtin/packages/sombrero/package.py +++ b/var/spack/repos/builtin/packages/sombrero/package.py @@ -3,6 +3,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from os import symlink + from llnl.util.filesystem import join_path from spack import * @@ -14,9 +16,12 @@ class Sombrero(MakefilePackage): homepage = "https://github.com/sa2c/sombrero" url = "https://github.com/sa2c/sombrero/archive/refs/tags/1.0.tar.gz" + version('2021-07-31', + sha256='9c59693f330904b1f444187d1974a179c61d801f063581acb94a7a77955151e0') + version('2021-07-14', + sha256='d2801a4efea312a14fc34775b0dea862e958ccb9b7721a63b6c29e1224e12257') 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', @@ -41,5 +46,7 @@ def install(self, spec, prefix): install('sombrero.sh', prefix.bin) # Install all executables for i in range(1, 7): - install(join_path('sombrero', 'sombrero{0}'.format(i)), - sombrero_dir) + src = join_path('sombrero', 'sombrero{0}'.format(i)) + install(src, sombrero_dir) + symlink(join_path(sombrero_dir, 'sombrero{0}'.format(i)), + join_path(prefix.bin, 'sombrero{0}'.format(i))) diff --git a/var/spack/repos/builtin/packages/sos/package.py b/var/spack/repos/builtin/packages/sos/package.py index 474e11a41a2..9663da0528d 100644 --- a/var/spack/repos/builtin/packages/sos/package.py +++ b/var/spack/repos/builtin/packages/sos/package.py @@ -18,12 +18,17 @@ class Sos(AutotoolsPackage): version('1.5.0', sha256='02679da6085cca2919f900022c46bad48479690586cb4e7f971ec3a735bab4d4') version('1.4.5', sha256='42778ba3cedb632ac3fbbf8917f415a804f8ca3b67fb3da6d636e6c50c501906') + variant('xpmem', default=False, description='Enable xpmem for transport') + variant('ofi', default=True, description='Enable ofi for transport') + variant('shr-atomics', default=False, description='Enable shared memory atomic operations') + depends_on('autoconf', type='build') depends_on('automake', type='build') depends_on('libtool', type='build') depends_on('m4', type='build') - depends_on('libfabric', type='link') + depends_on('libfabric', type='link', when='+ofi') + depends_on('xpmem', type='link', when='+xpmem') # Enable use of the OSH wrappers outside of Spack by preventing # them from using the spack wrappers @@ -46,6 +51,9 @@ def autoreconf(self, spec, prefix): def configure_args(self): args = [] - args.append('--with-ofi') + args.extend(self.with_or_without('xpmem')) + args.extend(self.with_or_without('ofi')) + # This option is not compatiable with remote atomics + args.extend(self.enable_or_disable('shr-atomics')) args.append('--enable-pmi-simple') return args diff --git a/var/spack/repos/builtin/packages/sowing/package.py b/var/spack/repos/builtin/packages/sowing/package.py index 55dbb3017fe..b6ab80d442e 100644 --- a/var/spack/repos/builtin/packages/sowing/package.py +++ b/var/spack/repos/builtin/packages/sowing/package.py @@ -12,7 +12,7 @@ class Sowing(AutotoolsPackage): and MPICH. """ - homepage = "http://www.mcs.anl.gov/petsc/index.html" + homepage = "https://www.mcs.anl.gov/petsc/index.html" url = "http://ftp.mcs.anl.gov/pub/petsc/externalpackages/sowing-1.1.23-p1.tar.gz" version('1.1.26-p1', sha256='fa0bd07295e5d768f2c33c8ab32205cc6411d42cb40bde0700fb57f9ee31c3d9') diff --git a/var/spack/repos/builtin/packages/sp/package.py b/var/spack/repos/builtin/packages/sp/package.py new file mode 100644 index 00000000000..5616c10cb80 --- /dev/null +++ b/var/spack/repos/builtin/packages/sp/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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 import * + + +class Sp(CMakePackage): + """The spectral transform library splib contains FORTRAN subprograms to be + used for a variety of spectral transform functions.""" + + homepage = "https://noaa-emc.github.io/NCEPLIBS-sp" + url = "https://github.com/NOAA-EMC/NCEPLIBS-sp/archive/refs/tags/v2.3.3.tar.gz" + + maintainers = ['t-brown'] + + version('2.3.3', sha256='c0d465209e599de3c0193e65671e290e9f422f659f1da928505489a3edeab99f') diff --git a/var/spack/repos/builtin/packages/spades/package.py b/var/spack/repos/builtin/packages/spades/package.py index 9c535b2be16..ddcf5ffcc05 100644 --- a/var/spack/repos/builtin/packages/spades/package.py +++ b/var/spack/repos/builtin/packages/spades/package.py @@ -10,7 +10,7 @@ class Spades(CMakePackage): """SPAdes - St. Petersburg genome assembler - is intended for both standard isolates and single-cell MDA bacteria assemblies.""" - homepage = "http://cab.spbu.ru/software/spades/" + homepage = "https://cab.spbu.ru/software/spades/" url = "https://github.com/ablab/spades/releases/download/v3.15.0/SPAdes-3.15.0.tar.gz" version('3.15.0', sha256='6719489fa4bed6dd96d78bdd4001a30806d5469170289085836711d1ffb8b28b') diff --git a/var/spack/repos/builtin/packages/spark/package.py b/var/spack/repos/builtin/packages/spark/package.py index 3d341bf9dbc..24f228bc122 100644 --- a/var/spack/repos/builtin/packages/spark/package.py +++ b/var/spack/repos/builtin/packages/spark/package.py @@ -13,7 +13,7 @@ class Spark(Package): for large-scale data processing. """ - homepage = "http://spark.apache.org" + homepage = "https://spark.apache.org" url = "http://archive.apache.org/dist/spark/spark-2.0.0/spark-2.0.0-bin-without-hadoop.tgz" variant('hadoop', default=False, diff --git a/var/spack/repos/builtin/packages/sparskit/package.py b/var/spack/repos/builtin/packages/sparskit/package.py index a1ca7758286..5b2e737d9ea 100644 --- a/var/spack/repos/builtin/packages/sparskit/package.py +++ b/var/spack/repos/builtin/packages/sparskit/package.py @@ -14,7 +14,7 @@ class Sparskit(MakefilePackage): Made by Yousef Saad, University of Minnesota. """ - homepage = "https://www-users.cs.umn.edu/~saad/software/SPARSKIT/" + homepage = "https://www-users.cse.umn.edu/~saad/software/SPARSKIT/" version('develop', sha256='ecdd0a9968d6b45153a328710a42fe87600f0bba0e3c53896090b8ae1c113b7a', url='http://www-users.cs.umn.edu/~saad/software/SPARSKIT/SPARSKIT2.tar.gz') diff --git a/var/spack/repos/builtin/packages/spectrum-mpi/package.py b/var/spack/repos/builtin/packages/spectrum-mpi/package.py index b1e03f15932..ceca784288f 100644 --- a/var/spack/repos/builtin/packages/spectrum-mpi/package.py +++ b/var/spack/repos/builtin/packages/spectrum-mpi/package.py @@ -11,7 +11,7 @@ class SpectrumMpi(Package): has_code = False - homepage = "http://www-03.ibm.com/systems/spectrum-computing/products/mpi" + homepage = "https://www-03.ibm.com/systems/spectrum-computing/products/mpi" provides('mpi') diff --git a/var/spack/repos/builtin/packages/sqoop/package.py b/var/spack/repos/builtin/packages/sqoop/package.py index e29293ce796..2dad3cc2662 100644 --- a/var/spack/repos/builtin/packages/sqoop/package.py +++ b/var/spack/repos/builtin/packages/sqoop/package.py @@ -9,7 +9,7 @@ class Sqoop(MavenPackage): data between Apache Hadoop and structured datastores such as relational databases.""" - homepage = "http://sqoop.apache.org/" + homepage = "https://sqoop.apache.org/" url = "https://downloads.apache.org/sqoop/1.99.7/sqoop-1.99.7.tar.gz" list_url = "https://downloads.apache.org/sqoop/" list_depth = 1 diff --git a/var/spack/repos/builtin/packages/ssht/package.py b/var/spack/repos/builtin/packages/ssht/package.py index db8bb435be6..b76e1c2c8cf 100644 --- a/var/spack/repos/builtin/packages/ssht/package.py +++ b/var/spack/repos/builtin/packages/ssht/package.py @@ -21,6 +21,7 @@ class Ssht(CMakePackage): maintainers = ['eschnett'] + version('1.5.0', sha256='ff42103463c973a11da84b757d2a6661679c8a60745e44f0ccf697f88593083a') version('1.4.0', sha256='b33f1b763a240df773a1900139aad6f6b5c676bb2b64a8c1062077fd95c08769') version('1.3.7', sha256='947c11b104734acb124171ff5115d14279b4d09bc297ac989204633919df422e') version('1.3.6', sha256='db652e0f550229a630643bbf4bdb270def25c158be5ccdcf594a24fd8054430d') diff --git a/var/spack/repos/builtin/packages/sst-core/package.py b/var/spack/repos/builtin/packages/sst-core/package.py index d5ac62639a9..09d7dce40d8 100644 --- a/var/spack/repos/builtin/packages/sst-core/package.py +++ b/var/spack/repos/builtin/packages/sst-core/package.py @@ -16,7 +16,7 @@ class SstCore(AutotoolsPackage): git = "https://github.com/sstsimulator/sst-core.git" url = "https://github.com/sstsimulator/sst-core/releases/download/v11.0.0_Final/sstcore-11.0.0.tar.gz" - maintainers = ['jjwilke'] + maintainers = ['sknigh'] version('11.0.0', sha256="25d17c35d1121330ad74375b6d27fe5c5592d1add3edf0bbb356aa3b5f59f401") version('10.1.0', sha256="e464213a81c7b3ccec994fdba2b56992b52fb9a6db089ef7c3445b54306d4b87") @@ -42,9 +42,9 @@ class SstCore(AutotoolsPackage): depends_on("hdf5", when="+hdf5") depends_on("zlib", when="+zlib") - depends_on('autoconf@1.68:', type='build', when='@master:') - depends_on('automake@1.11.1:', type='build', when='@master:') - depends_on('libtool@1.2.4:', type='build', when='@master:') + depends_on('autoconf@1.68:', type='build') + depends_on('automake@1.11.1:', type='build') + depends_on('libtool@1.2.4:', type='build') depends_on('m4', type='build', when='@master:') depends_on('gettext') diff --git a/var/spack/repos/builtin/packages/sst-dumpi/package.py b/var/spack/repos/builtin/packages/sst-dumpi/package.py index d17717725e3..bc62971190e 100644 --- a/var/spack/repos/builtin/packages/sst-dumpi/package.py +++ b/var/spack/repos/builtin/packages/sst-dumpi/package.py @@ -22,7 +22,10 @@ class SstDumpi(AutotoolsPackage): url = "https://github.com/sstsimulator/sst-dumpi/archive/6.1.0.tar.gz" git = "https://github.com/sstsimulator/sst-dumpi.git" + maintainers = ['sknigh', 'jpkenny', 'calewis'] + version('master', branch='master') + version('7.1.0', sha256='628eb3f7c2d0975461d45065f91c723d3abac756fa36af93c09f4fed195794bf') version('6.1.0', sha256='d4f6afcff5ba67fcc3a29f461afbb59855053840f5f320552a77b4e14c687bb6') depends_on('autoconf@1.68:', type='build') diff --git a/var/spack/repos/builtin/packages/sst-elements/package.py b/var/spack/repos/builtin/packages/sst-elements/package.py index 9a61a8c6539..ac377164882 100644 --- a/var/spack/repos/builtin/packages/sst-elements/package.py +++ b/var/spack/repos/builtin/packages/sst-elements/package.py @@ -9,14 +9,14 @@ class SstElements(AutotoolsPackage): """SST Elements implements a range of components for performing architecture simulation from node-level to system-level using - the SST discrete event core + the SST discrete event core. """ homepage = "https://github.com/sstsimulator" git = "https://github.com/sstsimulator/sst-elements.git" url = "https://github.com/sstsimulator/sst-elements/releases/download/v11.0.0_Final/sstelements-11.0.0.tar.gz" - maintainers = ['jjwilke'] + maintainers = ['sknigh'] version('11.0.0', sha256="bf265cb25afc041b74422cc5cddc8e3ae1e7c3efa3e37e699dac4e3f7629be6e") version('10.1.0', sha256="a790561449795dac48a84c525b8e0b09f05d0b0bff1a0da1aa2e903279a03c4a") @@ -26,20 +26,36 @@ class SstElements(AutotoolsPackage): version('develop', branch='devel') version('master', branch='master') - variant("pin", default=False, + # Contact SST developers (http://github.com/sstsimulator) + # if your use case requires support for: + # - balar + # - OTF2 + # - stake (riscv simulator) + + variant("pin", default=False, description="Enable the Ariel CPU model") - variant("dramsim2", default=False, + variant("dramsim2", default=False, description="Build with DRAMSim2 support") - variant("nvdimmsim", default=False, + variant("dramsim3", default=False, + description="Build with DRAMSim3 support") + variant("dumpi", default=False, + description="Build with Dumpi support") + variant("flashdimmsim", default=False, + description="Build with FlashDIMMSim support") + variant("nvdimmsim", default=False, description="Build with NVDimmSim support") - variant("hybridsim", default=False, + variant("hybridsim", default=False, description="Build with HybridSim support") - variant("goblin", default=False, + variant("goblin", default=False, description="Build with GoblinHMCSim support") - variant("hbm", default=False, + variant("hbm", default=False, description="Build with HBM DRAMSim2 support") - variant("ramulator", default=False, + variant("ramulator", default=False, description="Build with Ramulator support") + variant("otf", default=False, + description="Build with OTF") + variant("otf2", default=False, + description="Build with OTF2") depends_on("python", type=('build', 'run')) depends_on("sst-core") @@ -48,18 +64,31 @@ class SstElements(AutotoolsPackage): depends_on("intel-pin", when="+pin") depends_on("dramsim2@2:", when="+dramsim2") + depends_on("dramsim3@master", when="+dramsim3") + depends_on("sst-dumpi@master", when="+dumpi") + depends_on("flashdimmsim", when="+flashdimmsim") depends_on("hybridsim@2.0.1", when="+hybridsim") + depends_on("dramsim3@master", when="+hybridsim") + depends_on("nvdimmsim@2.0.0", when="+hybridsim") depends_on("nvdimmsim@2.0.0", when="+nvdimmsim") depends_on("goblin-hmc-sim", when="+goblin") depends_on("ramulator@sst", when="+ramulator") depends_on("hbm-dramsim2", when="+hbm") - depends_on("nvdimmsim@2.0.0", when="+hybridsim") + depends_on("otf", when="+otf") + depends_on("otf2", when="+otf2") depends_on("gettext") + depends_on("zlib") - depends_on('autoconf@1.68:', type='build', when='@master:') - depends_on('automake@1.11.1:', type='build', when='@master:') - depends_on('libtool@1.2.4:', type='build', when='@master:') - depends_on('m4', type='build', when='@master:') + depends_on('autoconf@1.68:', type='build') + depends_on('automake@1.11.1:', type='build') + depends_on('libtool@1.2.4:', type='build') + depends_on('m4', type='build') + + conflicts('+dumpi', msg='Dumpi not currently supported, contact SST Developers for help') + conflicts('+otf', msg='OTF not currently supported, contact SST Developers for help') + conflicts('+otf2', msg='OTF2 not currently supported, contact SST Developers for help') + conflicts('~dramsim2', when='+hybridsim', msg='hybridsim requires dramsim2, spec should include +dramsim2') + conflicts('~nvdimmsim', when='+hybridsim', msg='hybridsim requires nvdimmsim, spec should include +nvdimmsim') # force out-of-source builds build_directory = 'spack-build' @@ -69,35 +98,52 @@ def autoreconf(self, spec, prefix): bash('autogen.sh') def configure_args(self): + spec = self.spec args = [] - if '+pdes_mpi' in self.spec["sst-core"]: - env['CC'] = self.spec['mpi'].mpicc - env['CXX'] = self.spec['mpi'].mpicxx - env['F77'] = self.spec['mpi'].mpif77 - env['FC'] = self.spec['mpi'].mpifc - if "+pin" in self.spec: - args.append("--with-pin=%s" % self.spec["intel-pin"].prefix) + if '+pdes_mpi' in spec["sst-core"]: + env['CC'] = spec['mpi'].mpicc + env['CXX'] = spec['mpi'].mpicxx + env['F77'] = spec['mpi'].mpif77 + env['FC'] = spec['mpi'].mpifc - if "+dramsim2" in self.spec or "+hybridsim" in self.spec: - args.append("--with-dramsim=%s" % self.spec["dramsim2"].prefix) + if "+pin" in spec: + args.append("--with-pin=%s" % spec["intel-pin"].prefix) - if "+nvdimmsim" in self.spec or "+hybridsim" in self.spec: - args.append("--with-nvdimmsim=%s" % self.spec["nvdimmsim"].prefix) + if "+dramsim2" in spec or "+hybridsim" in spec: + args.append("--with-dramsim=%s" % spec["dramsim2"].prefix) - if "+hybridsim" in self.spec: - args.append("--with-hybridsim=%s" % self.spec["hybridsim"].prefix) + if "+dramsim3" in spec: + args.append("--with-dramsim3=%s" % spec["dramsim3"].prefix) - if "+goblin" in self.spec: + if "+dumpi" in spec: + args.append("--with-dumpi=%s" % spec["sst-dumpi"].prefix) + + if "+flashdimmsim" in spec: + args.append("--with-fdsim=%s" % spec["flashdimmsim"].prefix) + + if "+nvdimmsim" in spec or "+hybridsim" in spec: + args.append("--with-nvdimmsim=%s" % spec["nvdimmsim"].prefix) + + if "+hybridsim" in spec: + args.append("--with-hybridsim=%s" % spec["hybridsim"].prefix) + + if "+goblin" in spec: args.append("--with-goblin-hmcsim=%s" % - self.spec["goblin-hmc-sim"].prefix) + spec["goblin-hmc-sim"].prefix) - if "+hbm" in self.spec: + if "+hbm" in spec: args.append("--with-hbmdramsim=%s" % - self.spec["hbm-dramsim2"].prefix) + spec["hbm-dramsim2"].prefix) - if "+ramulator" in self.spec: - args.append("--with-ramulator=%s" % self.spec["ramulator"].prefix) + if "+ramulator" in spec: + args.append("--with-ramulator=%s" % spec["ramulator"].prefix) - args.append("--with-sst-core=%s" % self.spec["sst-core"].prefix) + if "+otf2" in spec: + args.append("--with-otf2=%s" % spec["otf2"].prefix) + + if "+otf" in spec: + args.append("--with-otf=%s" % spec["otf"].prefix) + + args.append("--with-sst-core=%s" % spec["sst-core"].prefix) return args diff --git a/var/spack/repos/builtin/packages/stacks/package.py b/var/spack/repos/builtin/packages/stacks/package.py index 2fa6c1f4cdb..68cbef188c7 100644 --- a/var/spack/repos/builtin/packages/stacks/package.py +++ b/var/spack/repos/builtin/packages/stacks/package.py @@ -10,7 +10,7 @@ class Stacks(AutotoolsPackage): """Stacks is a software pipeline for building loci from short-read sequences, such as those generated on the Illumina platform.""" - homepage = "http://catchenlab.life.illinois.edu/stacks/" + homepage = "https://catchenlab.life.illinois.edu/stacks/" url = "http://catchenlab.life.illinois.edu/stacks/source/stacks-1.46.tar.gz" version('2.53', sha256='ee1efceaeeeb7a39f0c2e804ad7c0a003094db28c9101120c38ddb02846e90fd') diff --git a/var/spack/repos/builtin/packages/star-ccm-plus/package.py b/var/spack/repos/builtin/packages/star-ccm-plus/package.py index 0b39c0d6c71..80671994852 100644 --- a/var/spack/repos/builtin/packages/star-ccm-plus/package.py +++ b/var/spack/repos/builtin/packages/star-ccm-plus/package.py @@ -12,7 +12,7 @@ class StarCcmPlus(Package): """STAR-CCM+ (Computational Continuum Mechanics) CFD solver.""" - homepage = "http://mdx.plm.automation.siemens.com/star-ccm-plus" + homepage = "https://mdx.plm.automation.siemens.com/star-ccm-plus" url = "file://{0}/STAR-CCM+11.06.010_02_linux-x86_64.tar.gz".format(os.getcwd()) manual_download = True diff --git a/var/spack/repos/builtin/packages/stat/package.py b/var/spack/repos/builtin/packages/stat/package.py index a36c073651a..0027cfd1ea3 100644 --- a/var/spack/repos/builtin/packages/stat/package.py +++ b/var/spack/repos/builtin/packages/stat/package.py @@ -9,7 +9,7 @@ class Stat(AutotoolsPackage): """Library to create, manipulate, and export graphs Graphlib.""" - homepage = "http://paradyn.org/STAT/STAT.html" + homepage = "https://paradyn.org/STAT/STAT.html" url = "https://github.com/LLNL/STAT/archive/v2.0.0.tar.gz" git = "https://github.com/llnl/stat.git" maintainers = ['lee218llnl'] diff --git a/var/spack/repos/builtin/packages/structure/package.py b/var/spack/repos/builtin/packages/structure/package.py index adf52faefa4..a1388f9c5a0 100644 --- a/var/spack/repos/builtin/packages/structure/package.py +++ b/var/spack/repos/builtin/packages/structure/package.py @@ -10,7 +10,7 @@ class Structure(MakefilePackage): """Structure is a free software package for using multi-locus genotype data to investigate population structure.""" - homepage = "http://web.stanford.edu/group/pritchardlab/structure.html" + homepage = "https://web.stanford.edu/group/pritchardlab/structure.html" url = "http://web.stanford.edu/group/pritchardlab/structure_software/release_versions/v2.3.4/structure_kernel_source.tar.gz" version('2.3.4', sha256='f2b72b9189a514f53e921bbdc1aa3dbaca7ac34a8467af1f972c7e4fc9c0bb37') diff --git a/var/spack/repos/builtin/packages/strumpack/package.py b/var/spack/repos/builtin/packages/strumpack/package.py index e949db7dad7..746cb203108 100644 --- a/var/spack/repos/builtin/packages/strumpack/package.py +++ b/var/spack/repos/builtin/packages/strumpack/package.py @@ -35,7 +35,7 @@ class Strumpack(CMakePackage, CudaPackage, ROCmPackage): version('3.2.0', sha256='34d93e1b2a3b8908ef89804b7e08c5a884cbbc0b2c9f139061627c0d2de282c1') version('3.1.1', sha256='c1c3446ee023f7b24baa97b24907735e89ce4ae9f5ef516645dfe390165d1778') - variant('shared', default=False, description='Build shared libraries') + 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') @@ -93,6 +93,7 @@ class Strumpack(CMakePackage, CudaPackage, ROCmPackage): msg='STRUMPACK requires openblas with OpenMP threading support') patch('intel-19-compile.patch', when='@3.1.1') + patch('shared-rocm.patch', when='@5.1.1') def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/strumpack/shared-rocm.patch b/var/spack/repos/builtin/packages/strumpack/shared-rocm.patch new file mode 100644 index 00000000000..a7ebba24adb --- /dev/null +++ b/var/spack/repos/builtin/packages/strumpack/shared-rocm.patch @@ -0,0 +1,141 @@ +From dea93a02299c9c2ac6143d7f6f170310316d5989 Mon Sep 17 00:00:00 2001 +From: Pieter Ghysels +Date: Wed, 4 Aug 2021 15:15:21 -0700 +Subject: [PATCH 1/2] patch for building shared lib with ROCm + +--- + CMakeLists.txt | 7 ++++++- + cmake/Modules/FindHIP.cmake | 31 ++++++++++++++++++++++++++++--- + 2 files changed, 34 insertions(+), 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c63e8f0..e362d4c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -439,7 +439,12 @@ if(STRUMPACK_USE_HIP) + set_source_files_properties( + src/sparse/fronts/FrontalMatrixHIP.hip.cpp + PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1) +- hip_add_library(strumpack "src/sparse/fronts/FrontalMatrixHIP.hip.cpp") ++ if (BUILD_SHARED_LIBS) ++ set(STATIC_OR_SHARED SHARED) ++ else() ++ set(STATIC_OR_SHARED STATIC) ++ endif() ++ hip_add_library(strumpack "src/sparse/fronts/FrontalMatrixHIP.hip.cpp" ${STATIC_OR_SHARED}) + else() + add_library(strumpack "") + endif() +diff --git a/cmake/Modules/FindHIP.cmake b/cmake/Modules/FindHIP.cmake +index b4a5cb2..6b69837 100644 +--- a/cmake/Modules/FindHIP.cmake ++++ b/cmake/Modules/FindHIP.cmake +@@ -11,6 +11,7 @@ set(HIP_HCC_FLAGS "" CACHE STRING "Semicolon delimited flags for HCC") + set(HIP_CLANG_FLAGS "" CACHE STRING "Semicolon delimited flags for CLANG") + set(HIP_NVCC_FLAGS "" CACHE STRING "Semicolon delimted flags for NVCC") + mark_as_advanced(HIP_HIPCC_FLAGS HIP_HCC_FLAGS HIP_CLANG_FLAGS HIP_NVCC_FLAGS) ++ + set(_hip_configuration_types ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE} Debug MinSizeRel Release RelWithDebInfo) + list(REMOVE_DUPLICATES _hip_configuration_types) + foreach(config ${_hip_configuration_types}) +@@ -205,8 +206,13 @@ set(CMAKE_SHARED_LIBRARY_LINK_DYNAMIC_HIP_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_DYNA + set(HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS "") + set(HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS "") + +-if("${HIP_COMPILER}" STREQUAL "hcc") +- # Set the CMake Flags to use the HCC Compiler. ++if("${HIP_COMPILER}" STREQUAL "nvcc") ++ # Set the CMake Flags to use the nvcc Compiler. ++ set(CMAKE_HIP_CREATE_SHARED_LIBRARY "${HIP_HIPCC_CMAKE_LINKER_HELPER} -o ") ++ set(CMAKE_HIP_CREATE_SHARED_MODULE "${HIP_HIPCC_CMAKE_LINKER_HELPER} -o -shared" ) ++ set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} -o ") ++elseif("${HIP_COMPILER}" STREQUAL "hcc") ++ # Set the CMake Flags to use the hcc Compiler. + set(CMAKE_HIP_CREATE_SHARED_LIBRARY "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} -o ") + set(CMAKE_HIP_CREATE_SHARED_MODULE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} -o -shared" ) + set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} -o ") +@@ -221,7 +227,7 @@ elseif("${HIP_COMPILER}" STREQUAL "clang") + endif() + if(HIP_CLANG_NUM_PARALLEL_JOBS GREATER 1) + if(${HIP_CLANG_SUPPORTS_PARALLEL_JOBS}) +- set(HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS "-parallel-jobs=${HIP_CLANG_NUM_PARALLEL_JOBS} -Wno-format-nonliteral") ++ set(HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS "-Wno-format-nonliteral -parallel-jobs=${HIP_CLANG_NUM_PARALLEL_JOBS}") + set(HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS "-parallel-jobs=${HIP_CLANG_NUM_PARALLEL_JOBS}") + else() + message("clang compiler doesn't support parallel jobs") +@@ -232,6 +238,13 @@ elseif("${HIP_COMPILER}" STREQUAL "clang") + set(CMAKE_HIP_CREATE_SHARED_LIBRARY "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} -o ") + set(CMAKE_HIP_CREATE_SHARED_MODULE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} -o -shared" ) + set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} -o ") ++ ++ if("${HIP_RUNTIME}" STREQUAL "rocclr") ++ if(TARGET host) ++ message(STATUS "host interface - found") ++ set(HIP_HOST_INTERFACE host) ++ endif() ++ endif() + endif() + + ############################################################################### +@@ -637,6 +650,8 @@ macro(HIP_ADD_EXECUTABLE hip_target) + endif() + endif() + set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} -o ") ++ else() ++ set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} -o ") + endif() + if ("${_sources}" STREQUAL "") + add_executable(${hip_target} ${_cmake_options} ${_generated_files} "") +@@ -644,6 +659,11 @@ macro(HIP_ADD_EXECUTABLE hip_target) + add_executable(${hip_target} ${_cmake_options} ${_generated_files} ${_sources}) + endif() + set_target_properties(${hip_target} PROPERTIES LINKER_LANGUAGE HIP) ++ # Link with host ++ if (HIP_HOST_INTERFACE) ++ # hip rt should be rocclr, compiler should be clang ++ target_link_libraries(${hip_target} ${HIP_HOST_INTERFACE}) ++ endif() + endmacro() + + ############################################################################### +@@ -662,6 +682,11 @@ macro(HIP_ADD_LIBRARY hip_target) + add_library(${hip_target} ${_cmake_options} ${_generated_files} ${_sources}) + endif() + set_target_properties(${hip_target} PROPERTIES LINKER_LANGUAGE ${HIP_C_OR_CXX}) ++ # Link with host ++ if (HIP_HOST_INTERFACE) ++ # hip rt should be rocclr, compiler should be clang ++ target_link_libraries(${hip_target} ${HIP_HOST_INTERFACE}) ++ endif() + endmacro() + + # vim: ts=4:sw=4:expandtab:smartindent +-- +2.30.2 + + +From 66c79092ee9aabd8b76f2c510d6ac1310cf3646b Mon Sep 17 00:00:00 2001 +From: Pieter Ghysels +Date: Wed, 11 Aug 2021 15:45:04 -0700 +Subject: [PATCH 2/2] extra fix for HIP + +--- + cmake/Modules/FindHIP/run_hipcc.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmake/Modules/FindHIP/run_hipcc.cmake b/cmake/Modules/FindHIP/run_hipcc.cmake +index 63c7bb3..ce0b406 100644 +--- a/cmake/Modules/FindHIP/run_hipcc.cmake ++++ b/cmake/Modules/FindHIP/run_hipcc.cmake +@@ -48,7 +48,7 @@ execute_process(COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --compiler OUTPUT_VARIABLE H + execute_process(COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --runtime OUTPUT_VARIABLE HIP_RUNTIME OUTPUT_STRIP_TRAILING_WHITESPACE) + if(NOT host_flag) + set(__CC ${HIP_HIPCC_EXECUTABLE}) +- if("${HIP_PLATFORM}" STREQUAL "hcc") ++ if("${HIP_PLATFORM}" STREQUAL "amd") + if("${HIP_COMPILER}" STREQUAL "hcc") + if(NOT "x${HCC_HOME}" STREQUAL "x") + set(ENV{HCC_HOME} ${HCC_HOME}) +-- +2.30.2 + diff --git a/var/spack/repos/builtin/packages/sublime-text/package.py b/var/spack/repos/builtin/packages/sublime-text/package.py index f16a6a3ea13..52e6a0ad046 100644 --- a/var/spack/repos/builtin/packages/sublime-text/package.py +++ b/var/spack/repos/builtin/packages/sublime-text/package.py @@ -10,7 +10,7 @@ class SublimeText(Package): """Sublime Text is a sophisticated text editor for code, markup and prose.""" - homepage = "http://www.sublimetext.com/" + homepage = "https://www.sublimetext.com/" url = "https://download.sublimetext.com/sublime_text_3_build_3211_x64.tar.bz2" version('3.2.2.3211', sha256='0b3c8ca5e6df376c3c24a4b9ac2e3b391333f73b229bc6e87d0b4a5f636d74ee') diff --git a/var/spack/repos/builtin/packages/sumo/package.py b/var/spack/repos/builtin/packages/sumo/package.py index 93339afe149..3d67eaeddd7 100644 --- a/var/spack/repos/builtin/packages/sumo/package.py +++ b/var/spack/repos/builtin/packages/sumo/package.py @@ -12,7 +12,7 @@ class Sumo(CMakePackage): networks. It allows for intermodal simulation including pedestrians and comes with a large set of tools for scenario creation.""" - homepage = "http://projects.eclipse.org/projects/technology.sumo" + homepage = "https://projects.eclipse.org/projects/technology.sumo" url = "https://github.com/eclipse/sumo/archive/v1_5_0.tar.gz" version('1.5.0', sha256='be6ba0361b487a5e71c81e60b4c07a67826d5e170500c10c37374c1086ac2cb6') diff --git a/var/spack/repos/builtin/packages/superlu-dist/package.py b/var/spack/repos/builtin/packages/superlu-dist/package.py index adb53a740e5..8f4a9dc2606 100644 --- a/var/spack/repos/builtin/packages/superlu-dist/package.py +++ b/var/spack/repos/builtin/packages/superlu-dist/package.py @@ -10,14 +10,13 @@ class SuperluDist(CMakePackage, CudaPackage): """A general purpose library for the direct solution of large, sparse, nonsymmetric systems of linear equations on high performance machines.""" - homepage = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/" + homepage = "https://crd-legacy.lbl.gov/~xiaoye/SuperLU/" url = "https://github.com/xiaoyeli/superlu_dist/archive/v6.0.0.tar.gz" git = "https://github.com/xiaoyeli/superlu_dist.git" maintainers = ['xiaoye', 'gchavez2', 'balay', 'pghysels'] version('develop', branch='master') - version('xsdk-0.2.0', tag='xsdk-0.2.0') version('6.4.0', sha256='cb9c0b2ba4c28e5ed5817718ba19ae1dd63ccd30bc44c8b8252b54f5f04a44cc') version('6.3.1', sha256='3787c2755acd6aadbb4d9029138c293a7570a2ed228806676edcc7e1d3f5a1d3') version('6.3.0', sha256='daf3264706caccae2b8fd5a572e40275f1e128fa235cb7c21ee2f8051c11af95') diff --git a/var/spack/repos/builtin/packages/superlu-mt/package.py b/var/spack/repos/builtin/packages/superlu-mt/package.py index 56c73e17425..e82d1416cf4 100644 --- a/var/spack/repos/builtin/packages/superlu-mt/package.py +++ b/var/spack/repos/builtin/packages/superlu-mt/package.py @@ -14,7 +14,7 @@ class SuperluMt(Package): sparse, nonsymmetric systems of linear equations on high performance machines. SuperLU_MT is designed for shared memory parallel machines.""" - homepage = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/#superlu_mt" + homepage = "https://crd-legacy.lbl.gov/~xiaoye/SuperLU/#superlu_mt" url = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_mt_3.1.tar.gz" version('3.1', sha256='407b544b9a92b2ed536b1e713e80f986824cf3016657a4bfc2f3e7d2a76ecab6') diff --git a/var/spack/repos/builtin/packages/superlu/package.py b/var/spack/repos/builtin/packages/superlu/package.py index d77b1666a99..58081298bec 100644 --- a/var/spack/repos/builtin/packages/superlu/package.py +++ b/var/spack/repos/builtin/packages/superlu/package.py @@ -9,7 +9,7 @@ class Superlu(CMakePackage): sparse, nonsymmetric systems of linear equations on high performance machines. SuperLU is designed for sequential machines.""" - homepage = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/#superlu" + homepage = "https://crd-legacy.lbl.gov/~xiaoye/SuperLU/#superlu" url = "https://github.com/xiaoyeli/superlu/archive/refs/tags/v5.2.2.tar.gz" version('5.2.2', sha256='470334a72ba637578e34057f46948495e601a5988a602604f5576367e606a28c') diff --git a/var/spack/repos/builtin/packages/sympol/package.py b/var/spack/repos/builtin/packages/sympol/package.py index 746c55ac8ca..016cd8e76d8 100644 --- a/var/spack/repos/builtin/packages/sympol/package.py +++ b/var/spack/repos/builtin/packages/sympol/package.py @@ -9,7 +9,7 @@ class Sympol(CMakePackage): """SymPol is a C++ tool to work with symmetric polyhedra""" - homepage = "http://www.math.uni-rostock.de/~rehn/software/sympol.html" + homepage = "https://www.math.uni-rostock.de/~rehn/software/sympol.html" url = "http://www.math.uni-rostock.de/~rehn/software/sympol-0.1.8.tar.gz" version('0.1.8', sha256='8f4c013fa563e696fc8c27c408fd1f3d47783639815e8141e3a99826f1f3d54f') diff --git a/var/spack/repos/builtin/packages/tajo/package.py b/var/spack/repos/builtin/packages/tajo/package.py index 0c4be5927eb..6c25df22616 100644 --- a/var/spack/repos/builtin/packages/tajo/package.py +++ b/var/spack/repos/builtin/packages/tajo/package.py @@ -18,7 +18,7 @@ class Tajo(Package): and and its optimizer. """ - homepage = "http://tajo.apache.org/" + homepage = "https://tajo.apache.org/" url = "https://www-eu.apache.org/dist/tajo/tajo-0.11.3/tajo-0.11.3.tar.gz" list_url = "https://www-eu.apache.org/dist/tajo/" list_depth = 1 diff --git a/var/spack/repos/builtin/packages/targetp/package.py b/var/spack/repos/builtin/packages/targetp/package.py index 2a4daf56578..32fc0c97397 100644 --- a/var/spack/repos/builtin/packages/targetp/package.py +++ b/var/spack/repos/builtin/packages/targetp/package.py @@ -17,7 +17,7 @@ class Targetp(Package): For instructions on how to set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" - homepage = "http://www.cbs.dtu.dk/services/TargetP/" + homepage = "https://www.cbs.dtu.dk/services/TargetP/" url = "file://{0}/targetp-1.1b.Linux.tar.gz".format(os.getcwd()) manual_download = True diff --git a/var/spack/repos/builtin/packages/task/package.py b/var/spack/repos/builtin/packages/task/package.py index 52d07136696..5ff196e456c 100644 --- a/var/spack/repos/builtin/packages/task/package.py +++ b/var/spack/repos/builtin/packages/task/package.py @@ -8,7 +8,7 @@ class Task(CMakePackage): """Feature-rich console based todo list manager""" - homepage = "http://www.taskwarrior.org" + homepage = "https://www.taskwarrior.org" url = "http://taskwarrior.org/download/task-2.4.4.tar.gz" version('2.5.1', sha256='d87bcee58106eb8a79b850e9abc153d98b79e00d50eade0d63917154984f2a15') diff --git a/var/spack/repos/builtin/packages/taskd/package.py b/var/spack/repos/builtin/packages/taskd/package.py index 6f906e70ff0..6c3b5d35e53 100644 --- a/var/spack/repos/builtin/packages/taskd/package.py +++ b/var/spack/repos/builtin/packages/taskd/package.py @@ -9,7 +9,7 @@ class Taskd(CMakePackage): """TaskWarrior task synchronization daemon""" - homepage = "http://www.taskwarrior.org" + homepage = "https://www.taskwarrior.org" url = "http://taskwarrior.org/download/taskd-1.1.0.tar.gz" version('1.1.0', sha256='7b8488e687971ae56729ff4e2e5209ff8806cf8cd57718bfd7e521be130621b4') diff --git a/var/spack/repos/builtin/packages/tassel/package.py b/var/spack/repos/builtin/packages/tassel/package.py index 1b51edbc0e6..51d788934ab 100644 --- a/var/spack/repos/builtin/packages/tassel/package.py +++ b/var/spack/repos/builtin/packages/tassel/package.py @@ -10,7 +10,7 @@ class Tassel(Package): """TASSEL is a software package to evaluate traits associations, evolutionary patterns, and linkage disequilibrium.""" - homepage = "http://www.maizegenetics.net/tassel" + homepage = "https://www.maizegenetics.net/tassel" git = "https://bitbucket.org/tasseladmin/tassel-5-standalone.git" version('2017-07-22', commit='ae96ae75c3c9a9e8026140b6c775fa4685bdf531') diff --git a/var/spack/repos/builtin/packages/tau/package.py b/var/spack/repos/builtin/packages/tau/package.py index ae20635829a..b9da99973b1 100644 --- a/var/spack/repos/builtin/packages/tau/package.py +++ b/var/spack/repos/builtin/packages/tau/package.py @@ -21,7 +21,7 @@ class Tau(Package): """ maintainers = ['wspear', 'eugeneswalker', 'khuck', 'sameershende'] - homepage = "http://www.cs.uoregon.edu/research/tau" + 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" diff --git a/var/spack/repos/builtin/packages/tcsh/package.py b/var/spack/repos/builtin/packages/tcsh/package.py index e718e4d734f..92559cade13 100644 --- a/var/spack/repos/builtin/packages/tcsh/package.py +++ b/var/spack/repos/builtin/packages/tcsh/package.py @@ -14,7 +14,7 @@ class Tcsh(AutotoolsPackage): correction, a history mechanism, job control and a C language like syntax.""" - homepage = "http://www.tcsh.org/" + homepage = "https://www.tcsh.org/" url = "http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/tcsh-6.20.00.tar.gz" list_url = "http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/old/" diff --git a/var/spack/repos/builtin/packages/tealeaf/package.py b/var/spack/repos/builtin/packages/tealeaf/package.py index a25c605034a..e878e4f7124 100644 --- a/var/spack/repos/builtin/packages/tealeaf/package.py +++ b/var/spack/repos/builtin/packages/tealeaf/package.py @@ -15,7 +15,7 @@ class Tealeaf(MakefilePackage): regularly grid using a 5 point stencil with implicit solvers. """ - homepage = "http://uk-mac.github.io/TeaLeaf/" + homepage = "https://uk-mac.github.io/TeaLeaf/" url = "http://downloads.mantevo.org/releaseTarballs/miniapps/TeaLeaf/TeaLeaf-1.0.tar.gz" tags = ['proxy-app'] diff --git a/var/spack/repos/builtin/packages/tengine/package.py b/var/spack/repos/builtin/packages/tengine/package.py index e7cf6f03a3f..a5ae78a45f3 100644 --- a/var/spack/repos/builtin/packages/tengine/package.py +++ b/var/spack/repos/builtin/packages/tengine/package.py @@ -9,7 +9,7 @@ class Tengine(AutotoolsPackage): """A distribution of Nginx with some advanced features.""" - homepage = "http://tengine.taobao.org/" + homepage = "https://tengine.taobao.org/" url = "https://github.com/alibaba/tengine/archive/2.3.2.tar.gz" version('2.3.2', sha256='a65998a35739a59f8a16ec4c6090a59e569ba5a1a3f68fecad952057c1a18fea') diff --git a/var/spack/repos/builtin/packages/termcap/package.py b/var/spack/repos/builtin/packages/termcap/package.py index cdacf46938e..b03d8aae600 100644 --- a/var/spack/repos/builtin/packages/termcap/package.py +++ b/var/spack/repos/builtin/packages/termcap/package.py @@ -11,7 +11,7 @@ class Termcap(AutotoolsPackage): enable programs to send control strings to terminals in a way independent of the terminal type.""" - homepage = "http://www.gnu.org/software/termutils/manual/termcap-1.3/html_mono/termcap.html" + homepage = "https://www.gnu.org/software/termutils/manual/termcap-1.3/html_mono/termcap.html" url = "http://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz" version('1.3.1', sha256='91a0e22e5387ca4467b5bcb18edf1c51b930262fd466d5fda396dd9d26719100') diff --git a/var/spack/repos/builtin/packages/tetgen/package.py b/var/spack/repos/builtin/packages/tetgen/package.py index 1efff4ea650..a3bb57569a0 100644 --- a/var/spack/repos/builtin/packages/tetgen/package.py +++ b/var/spack/repos/builtin/packages/tetgen/package.py @@ -16,11 +16,12 @@ class Tetgen(Package): boundary conforming Delaunay meshes, and Voronoi paritions. """ - homepage = "http://wias-berlin.de/software/tetgen/" + homepage = "https://wias-berlin.de/software/tetgen/" version('1.5.0', sha256='4d114861d5ef2063afd06ef38885ec46822e90e7b4ea38c864f76493451f9cf3', url='http://www.tetgen.org/1.5/src/tetgen1.5.0.tar.gz') version('1.4.3', sha256='952711bb06b7f64fd855eb24c33f08e3faf40bdd54764de10bbe5ed5b0dce034', url='http://www.tetgen.org/files/tetgen1.4.3.tar.gz') + variant('pic', default=True, description='Builds the library in pic mode.') variant('debug', default=False, description='Builds the library in debug mode.') variant('except', default=False, description='Replaces asserts with exceptions for better C++ compatibility.') @@ -28,9 +29,12 @@ class Tetgen(Package): def patch(self): cflags = '-g -O0' if '+debug' in self.spec else '-g0 -O3' + cflags = cflags + ' -fPIC' if '+pic' in self.spec else cflags + predcflags = '-fPIC' if '+pic' in self.spec else '' mff = FileFilter('makefile') mff.filter(r'^(C(XX)?FLAGS\s*=)(.*)$', r'\1 {0}'.format(cflags)) + mff.filter(r'^(PREDC(XX)?FLAGS\s*=.*)$', r'\1 {0}'.format(predcflags)) if '+except' in self.spec: hff = FileFilter('tetgen.h') diff --git a/var/spack/repos/builtin/packages/texlive/package.py b/var/spack/repos/builtin/packages/texlive/package.py index 6447a51a4db..0ef1b56edf3 100644 --- a/var/spack/repos/builtin/packages/texlive/package.py +++ b/var/spack/repos/builtin/packages/texlive/package.py @@ -19,7 +19,7 @@ class Texlive(AutotoolsPackage): and fonts that are free software, including support for many languages around the world.""" - homepage = "http://www.tug.org/texlive" + homepage = "https://www.tug.org/texlive" url = 'http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2020/texlive-20200406-source.tar.xz' base_url = 'http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/{year}/texlive-{version}-{dist}.tar.xz' list_url = 'http://ftp.math.utah.edu/pub/tex/historic/systems/texlive' diff --git a/var/spack/repos/builtin/packages/texstudio/package.py b/var/spack/repos/builtin/packages/texstudio/package.py index 13d1daba11b..b47b0e11afd 100644 --- a/var/spack/repos/builtin/packages/texstudio/package.py +++ b/var/spack/repos/builtin/packages/texstudio/package.py @@ -10,7 +10,7 @@ class Texstudio(QMakePackage): """TeXstudio is a fully featured LaTeX editor, whose goal is to make writing LaTeX documents as easy and comfortable as possible.""" - homepage = "http://www.texstudio.org" + homepage = "https://www.texstudio.org" url = "https://github.com/texstudio-org/texstudio/archive/2.12.16.tar.gz" git = "https://github.com/texstudio-org/texstudio.git" diff --git a/var/spack/repos/builtin/packages/the-silver-searcher/package.py b/var/spack/repos/builtin/packages/the-silver-searcher/package.py index 3afe1bc4f1f..a16a39421f8 100644 --- a/var/spack/repos/builtin/packages/the-silver-searcher/package.py +++ b/var/spack/repos/builtin/packages/the-silver-searcher/package.py @@ -9,7 +9,7 @@ class TheSilverSearcher(AutotoolsPackage): """Fast recursive grep alternative""" - homepage = "http://geoff.greer.fm/ag/" + homepage = "https://geoff.greer.fm/ag/" url = "http://geoff.greer.fm/ag/releases/the_silver_searcher-0.32.0.tar.gz" version('2.2.0', sha256='d9621a878542f3733b5c6e71c849b9d1a830ed77cb1a1f6c2ea441d4b0643170') diff --git a/var/spack/repos/builtin/packages/thrift/package.py b/var/spack/repos/builtin/packages/thrift/package.py index 56f0edec41e..1919a08529d 100644 --- a/var/spack/repos/builtin/packages/thrift/package.py +++ b/var/spack/repos/builtin/packages/thrift/package.py @@ -16,7 +16,7 @@ class Thrift(Package): """ - homepage = "http://thrift.apache.org" + homepage = "https://thrift.apache.org" url = "http://apache.mirrors.ionfish.org/thrift/0.11.0/thrift-0.11.0.tar.gz" version('0.13.0', sha256='7ad348b88033af46ce49148097afe354d513c1fca7c607b59c33ebb6064b5179') diff --git a/var/spack/repos/builtin/packages/tmalign/package.py b/var/spack/repos/builtin/packages/tmalign/package.py index 9a11d590d04..0635d7a70c1 100644 --- a/var/spack/repos/builtin/packages/tmalign/package.py +++ b/var/spack/repos/builtin/packages/tmalign/package.py @@ -10,7 +10,7 @@ class Tmalign(Package): """TM-align is an algorithm for sequence-order independent protein structure comparisons.""" - homepage = "http://zhanglab.ccmb.med.umich.edu/TM-align" + homepage = "https://zhanglab.ccmb.med.umich.edu/TM-align" url = "http://zhanglab.ccmb.med.umich.edu/TM-align/TM-align-C/TMalignc.tar.gz" version('2016-05-25', sha256='ce7f68289f3766d525afb0a58e3acfc28ae05f538d152bd33d57f8708c60e2af') diff --git a/var/spack/repos/builtin/packages/tmux/package.py b/var/spack/repos/builtin/packages/tmux/package.py index 04b0656b83b..f073df0fdee 100644 --- a/var/spack/repos/builtin/packages/tmux/package.py +++ b/var/spack/repos/builtin/packages/tmux/package.py @@ -14,11 +14,18 @@ class Tmux(AutotoolsPackage): background) and reattach them to a different terminal. And do a lot more. """ - homepage = "http://tmux.github.io" + homepage = "https://tmux.github.io" url = "https://github.com/tmux/tmux/releases/download/2.6/tmux-2.6.tar.gz" + version('3.2a', sha256='551553a4f82beaa8dadc9256800bcc284d7c000081e47aa6ecbb6ff36eacd05f') + version('3.2', sha256='664d345338c11cbe429d7ff939b92a5191e231a7c1ef42f381cebacb1e08a399') + version('3.1c', sha256='918f7220447bef33a1902d4faff05317afd9db4ae1c9971bef5c787ac6c88386') version('3.1b', sha256='d93f351d50af05a75fe6681085670c786d9504a5da2608e481c47cf5e1486db9') + version('3.1a', sha256='10687cbb02082b8b9e076cf122f1b783acc2157be73021b4bedb47e958f4e484') + version('3.1', sha256='979bf38db2c36193de49149aaea5c540d18e01ccc27cf76e2aff5606bd186722') version('3.0a', sha256='4ad1df28b4afa969e59c08061b45082fdc49ff512f30fc8e43217d7b0e5f8db9') + version('3.0', sha256='9edcd78df80962ee2e6471a8f647602be5ded62bb41c574172bb3dc3d0b9b4b4') + version('2.9a', sha256='839d167a4517a6bffa6b6074e89a9a8630547b2dea2086f1fad15af12ab23b25') version('2.9', sha256='34901232f486fd99f3a39e864575e658b5d49f43289ccc6ee57c365f2e2c2980') version('2.8', sha256='7f6bf335634fafecff878d78de389562ea7f73a7367f268b66d37ea13617a2ba') version('2.7', sha256='9ded7d100313f6bc5a87404a4048b3745d61f2332f99ec1400a7c4ed9485d452') diff --git a/var/spack/repos/builtin/packages/tophat/package.py b/var/spack/repos/builtin/packages/tophat/package.py index cc6ed66a6f4..4ff94d4a24e 100644 --- a/var/spack/repos/builtin/packages/tophat/package.py +++ b/var/spack/repos/builtin/packages/tophat/package.py @@ -9,7 +9,7 @@ class Tophat(AutotoolsPackage): """Spliced read mapper for RNA-Seq.""" - homepage = "http://ccb.jhu.edu/software/tophat/index.shtml" + homepage = "https://ccb.jhu.edu/software/tophat/index.shtml" url = "https://github.com/infphilo/tophat/archive/v2.1.1.tar.gz" version('2.1.2', sha256='15016b82255dad085d4ee7d970e50f0e53a280d466335553d47790d8344ff4b1') diff --git a/var/spack/repos/builtin/packages/transabyss/package.py b/var/spack/repos/builtin/packages/transabyss/package.py index f867732d0a5..0813edef1ca 100644 --- a/var/spack/repos/builtin/packages/transabyss/package.py +++ b/var/spack/repos/builtin/packages/transabyss/package.py @@ -9,7 +9,7 @@ class Transabyss(Package): """De novo assembly of RNAseq data using ABySS""" - homepage = "http://www.bcgsc.ca/platform/bioinfo/software/trans-abyss" + homepage = "https://www.bcgsc.ca/platform/bioinfo/software/trans-abyss" url = "http://www.bcgsc.ca/platform/bioinfo/software/trans-abyss/releases/1.5.5/transabyss-1.5.5.zip" version('1.5.5', sha256='7804961c13296c587a1b22180dd3f02091a4494cbbd04fc33c2060599caadb0b') diff --git a/var/spack/repos/builtin/packages/transdecoder/package.py b/var/spack/repos/builtin/packages/transdecoder/package.py index c173f3e6c28..0d8d0641101 100644 --- a/var/spack/repos/builtin/packages/transdecoder/package.py +++ b/var/spack/repos/builtin/packages/transdecoder/package.py @@ -12,7 +12,7 @@ class Transdecoder(MakefilePackage): assembly using Trinity, or constructed based on RNA-Seq alignments to the genome using Tophat and Cufflinks.""" - homepage = "http://transdecoder.github.io/" + homepage = "https://transdecoder.github.io/" url = "https://github.com/TransDecoder/TransDecoder/archive/TransDecoder-v5.5.0.tar.gz" version('5.5.0', sha256='c800d9226350817471e9f51267c91f7cab99dbc9b26c980527fc1019e7d90a76') diff --git a/var/spack/repos/builtin/packages/transrate/package.py b/var/spack/repos/builtin/packages/transrate/package.py index b9d1f6bf995..9db7a278db8 100644 --- a/var/spack/repos/builtin/packages/transrate/package.py +++ b/var/spack/repos/builtin/packages/transrate/package.py @@ -12,7 +12,7 @@ class Transrate(Package): """Transrate is software for de-novo transcriptome assembly quality analysis.""" - homepage = "http://hibberdlab.com/transrate/" + homepage = "https://hibberdlab.com/transrate/" if sys.platform == 'darwin': version('1.0.3', sha256='039eba81747dd53f65a99a61923369aae4ba341891215d31a2babe574ac99ca8', diff --git a/var/spack/repos/builtin/packages/transset/package.py b/var/spack/repos/builtin/packages/transset/package.py index 49dcdcf98d6..69de59dc8e2 100644 --- a/var/spack/repos/builtin/packages/transset/package.py +++ b/var/spack/repos/builtin/packages/transset/package.py @@ -9,7 +9,7 @@ class Transset(AutotoolsPackage, XorgPackage): """transset is an utility for setting opacity property.""" - homepage = "http://cgit.freedesktop.org/xorg/app/transset" + homepage = "https://cgit.freedesktop.org/xorg/app/transset" xorg_mirror_path = "app/transset-1.0.1.tar.gz" version('1.0.1', sha256='87c560e69e05ae8a5bad17ff62ac31cda43a5065508205b109c756c0ab857d55') diff --git a/var/spack/repos/builtin/packages/triangle/package.py b/var/spack/repos/builtin/packages/triangle/package.py index c7528b7078d..df2513de14e 100644 --- a/var/spack/repos/builtin/packages/triangle/package.py +++ b/var/spack/repos/builtin/packages/triangle/package.py @@ -13,7 +13,7 @@ class Triangle(Package): triangulations, Voronoi diagrams, and high-quality triangular meshes.""" - homepage = "http://www.cs.cmu.edu/~quake/triangle.html" + homepage = "https://www.cs.cmu.edu/~quake/triangle.html" url = "http://www.netlib.org/voronoi/triangle.zip" version('1.6', sha256='1766327add038495fa3499e9b7cc642179229750f7201b94f8e1b7bee76f8480') diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index ec16906cc13..7a2a1c8509c 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -34,9 +34,8 @@ class Trilinos(CMakePackage, CudaPackage): # ###################### Versions ########################## - version('xsdk-0.2.0', tag='xsdk-0.2.0') - version('develop', branch='develop') version('master', branch='master') + version('develop', branch='develop') version('13.0.1', commit='4796b92fb0644ba8c531dd9953e7a4878b05c62d') # tag trilinos-release-13-0-1 version('13.0.0', commit='9fec35276d846a667bc668ff4cbdfd8be0dfea08') # tag trilinos-release-13-0-0 version('12.18.1', commit='55a75997332636a28afc9db1aee4ae46fe8d93e7') # tag trilinos-release-12-8-1 @@ -91,24 +90,16 @@ class Trilinos(CMakePackage, CudaPackage): # TPLs (alphabet order) variant('boost', default=False, description='Compile with Boost') - variant('cgns', default=False, - description='Enable CGNS') variant('adios2', default=False, description='Enable ADIOS2') variant('hdf5', default=False, description='Compile with HDF5') variant('hypre', default=False, description='Compile with Hypre preconditioner') - variant('matio', default=False, - description='Compile with Matio') variant('mpi', default=True, description='Compile with MPI parallelism') variant('mumps', default=False, description='Compile with support for MUMPS solvers') - variant('netcdf', default=False, - description='Compile with netcdf') - variant('pnetcdf', default=False, - description='Compile with parallel-netcdf') variant('suite-sparse', default=False, description='Compile with SuiteSparse solvers') variant('superlu-dist', default=False, @@ -140,7 +131,6 @@ class Trilinos(CMakePackage, CudaPackage): description='Compile with Epetra') variant('epetraext', default=True, description='Compile with EpetraExt') - # Disable Exodus by default as it requires netcdf variant('exodus', default=False, description='Compile with Exodus from SEACAS') variant('ifpack', default=True, @@ -225,12 +215,6 @@ class Trilinos(CMakePackage, CudaPackage): placement='DataTransferKit', submodules=True, when='+dtk @12.18:12.18.99') - resource(name='dtk', - git='https://github.com/ornl-cees/DataTransferKit.git', - branch='master', - placement='DataTransferKit', - submodules=True, - when='+dtk @develop') resource(name='scorec', git='https://github.com/SCOREC/core.git', commit='73c16eae073b179e45ec625a5abe4915bc589af2', # tag v2.2.5 @@ -250,7 +234,7 @@ class Trilinos(CMakePackage, CudaPackage): git='https://github.com/trilinos/mesquite.git', tag='develop', placement='packages/mesquite', - when='+mesquite @develop') + when='+mesquite @master') # ###################### Conflicts ########################## @@ -287,7 +271,6 @@ class Trilinos(CMakePackage, CudaPackage): conflicts('+zoltan2') conflicts('+basker', when='~amesos2') - conflicts('+exodus', when='~netcdf') conflicts('+ifpack2', when='~belos') conflicts('+intrepid', when='~sacado') conflicts('+intrepid', when='~shards') @@ -299,13 +282,13 @@ class Trilinos(CMakePackage, CudaPackage): conflicts('+tempus', when='~nox') conflicts('+zoltan2', when='~zoltan') - # Only allow DTK with Trilinos 12 + # Only allow DTK with Trilinos 12.14, 12.18 conflicts('+dtk', when='~boost') conflicts('+dtk', when='~intrepid2') - conflicts('+dtk', when='@0:12.12.99,develop,master') + conflicts('+dtk', when='@:12.12,13:') - # Only allow Mesquite with older Trilinos 12.12 up to 13 - conflicts('+mesquite', when='@0:12.10.99,master,develop') + # Only allow Mesquite with Trilinos 12.12 and up, and master + conflicts('+mesquite', when='@:12.10.99,master') # Can only use one type of SuperLU conflicts('+superlu-dist', when='+superlu') # For Trilinos v11 we need to force SuperLUDist=OFF, since only the @@ -320,21 +303,16 @@ class Trilinos(CMakePackage, CudaPackage): # https://trilinos.org/pipermail/trilinos-users/2015-March/004802.html conflicts('+superlu-dist', when='+complex+amesos2') conflicts('+strumpack', when='@:13.0.99') - # PnetCDF was only added after v12.10.1 - conflicts('+pnetcdf', when='@0:12.10.1') # https://github.com/trilinos/Trilinos/issues/2994 conflicts( '+shared', when='+stk platform=darwin', msg='Cannot build Trilinos with STK as a shared library on Darwin.' ) conflicts('+adios2', when='@:12.14.1') - conflicts('+adios2', when='@xsdk-0.2.0') - conflicts('+pnetcdf', when='~netcdf') - conflicts('+pnetcdf', when='~mpi') conflicts('+cuda_rdc', when='~cuda') conflicts('+wrapper', when='~cuda') conflicts('+wrapper', when='%clang') - conflicts('cxxstd=11', when='@develop') + conflicts('cxxstd=11', when='@master:') 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') @@ -364,16 +342,12 @@ class Trilinos(CMakePackage, CudaPackage): depends_on('adios2', when='+adios2') depends_on('blas') depends_on('boost', when='+boost') - depends_on('cgns', when='+cgns') + depends_on('cgns', when='+exodus') depends_on('hdf5+hl', when='+hdf5') depends_on('hdf5~mpi', when='+hdf5~mpi') depends_on('hdf5+mpi', when="+hdf5+mpi") depends_on('lapack') - depends_on('matio', when='+matio') depends_on('mpi', when='+mpi') - depends_on('netcdf-c+mpi+parallel-netcdf', when="+netcdf+pnetcdf@master,12.12.1:") - depends_on('netcdf-c+mpi', when="+netcdf~pnetcdf+mpi") - depends_on('netcdf-c', when="+netcdf") depends_on('suite-sparse', when='+suite-sparse') depends_on('zlib', when="+zlib") @@ -391,16 +365,14 @@ class Trilinos(CMakePackage, CudaPackage): depends_on('superlu-dist@:4.3', when='@11.14.1:12.6.1+superlu-dist') depends_on('superlu-dist@4.4:5.3', when='@12.6.2:12.12.1+superlu-dist') depends_on('superlu-dist@5.4:6.2.0', when='@12.12.2:13.0.0+superlu-dist') - depends_on('superlu-dist@6.3.0:', when='@13.0.1:+superlu-dist') - depends_on('superlu-dist@develop', when='@develop+superlu-dist') - depends_on('superlu-dist@xsdk-0.2.0', when='@xsdk-0.2.0+superlu-dist') + depends_on('superlu-dist@6.3.0:', when='@13.0.1:99 +superlu-dist') + depends_on('superlu-dist@develop', when='@master: +superlu-dist') depends_on('superlu+pic@4.3', when='+superlu') depends_on('strumpack+shared', when='+strumpack') depends_on('scalapack', when='+strumpack+mpi') # Trilinos can not be built against 64bit int hypre depends_on('hypre~internal-superlu~int64', when='+hypre') - depends_on('hypre@xsdk-0.2.0~internal-superlu', when='@xsdk-0.2.0+hypre') - depends_on('hypre@develop~internal-superlu', when='@develop+hypre') + depends_on('hypre@develop', when='@master: +hypre') depends_on('python', when='+python') depends_on('py-mpi4py', when='+mpi +python', type=('build', 'run')) depends_on('py-numpy', when='+python', type=('build', 'run')) @@ -412,18 +384,19 @@ class Trilinos(CMakePackage, CudaPackage): # Variant requirements from packages depends_on('metis', when='+zoltan') depends_on('libx11', when='+exodus') + depends_on('matio', when='+exodus') + depends_on('netcdf-c', when="+exodus") + depends_on('netcdf-c+mpi+parallel-netcdf', when="+exodus+mpi@12.12.1:") + depends_on('parallel-netcdf', when='+exodus+mpi') depends_on('parmetis', when='+mpi +zoltan') depends_on('parmetis', when='+scorec') # ###################### Patches ########################## patch('umfpack_from_suitesparse.patch', when='@11.14.1:12.8.1') - patch('xlf_seacas.patch', when='@12.10.1:12.12.1 %xl') - patch('xlf_seacas.patch', when='@12.10.1:12.12.1 %xl_r') - patch('xlf_seacas.patch', when='@12.10.1:12.12.1 %clang') - patch('xlf_tpetra.patch', when='@12.12.1%xl') - patch('xlf_tpetra.patch', when='@12.12.1%xl_r') - patch('xlf_tpetra.patch', when='@12.12.1%clang') + for _compiler in ['xl', 'xl_r', 'clang']: + patch('xlf_seacas.patch', when='@12.10.1:12.12.1 %' + _compiler) + patch('xlf_tpetra.patch', when='@12.12.1 %' + _compiler) patch('fix_clang_errors_12_18_1.patch', when='@12.18.1%clang') patch('cray_secas_12_12_1.patch', when='@12.12.1%cce') patch('cray_secas.patch', when='@12.14.1:%cce') @@ -440,7 +413,8 @@ def flag_handler(self, name, flags): if self.spec.satisfies('%cce'): if name == 'ldflags': flags.append('-fuse-ld=gold') - return (None, None, flags) + return (None, None, flags) + return (flags, None, None) def url_for_version(self, version): url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-{0}.tar.gz" @@ -624,13 +598,19 @@ def define_tpl_enable(cmake_var, spec_var=None): ('Matio', 'matio'), ('METIS', 'metis'), ('Netcdf', 'netcdf-c'), - ('STRUMPACK', 'strumpack'), ('SuperLU', 'superlu'), + ('SuperLUDist', 'superlu-dist'), ('X11', 'libx11'), ('Zlib', 'zlib'), ] + if spec.satisfies('@12.12.1:'): + tpl_dep_map.append(('Pnetcdf', 'parallel-netcdf')) if spec.satisfies('@13:'): - tpl_dep_map.append(('HWLOC', 'hwloc')) + tpl_dep_map.extend([ + ('HWLOC', 'hwloc'), + ('STRUMPACK', 'strumpack'), + ]) + for tpl_name, dep_name in tpl_dep_map: have_dep = (dep_name in spec) options.append(define('TPL_ENABLE_' + tpl_name, have_dep)) @@ -638,7 +618,7 @@ def define_tpl_enable(cmake_var, spec_var=None): continue depspec = spec[dep_name] options.extend([ - define('TPL_' + tpl_name + '_INCLUDE_DIRS', depspec.prefix.include), + define(tpl_name + '_INCLUDE_DIRS', depspec.prefix.include), define(tpl_name + '_ROOT', depspec.prefix), define(tpl_name + '_LIBRARY_NAMES', depspec.libs.names), define(tpl_name + '_LIBRARY_DIRS', depspec.libs.directories), @@ -669,18 +649,7 @@ def define_tpl_enable(cmake_var, spec_var=None): define('TPL_ENABLE_UMFPACK', False), ]) - # METIS and ParMETIS mostly depend on transitive dependencies - # STRUMPACK and SuperLU-dist, so don't provide a separate variant for - # them. - have_metis = 'metis' in spec - options.append(define('TPL_ENABLE_METIS', have_metis)) - if have_metis: - options.extend([ - define('METIS_LIBRARY_DIRS', spec['metis'].prefix.lib), - define('METIS_LIBRARY_NAMES', 'metis'), - define('TPL_METIS_INCLUDE_DIRS', spec['metis'].prefix.include), - ]) - + # ParMETIS dependencies have to be transitive explicitly have_parmetis = 'parmetis' in spec options.append(define('TPL_ENABLE_ParMETIS', have_parmetis)) if have_parmetis: @@ -714,26 +683,15 @@ def define_tpl_enable(cmake_var, spec_var=None): '-DMUMPS_5_0' ]) - options.append(define_tpl_enable('SuperLUDist', 'superlu-dist')) - if '+superlu-dist' in spec: + if spec.satisfies('^superlu-dist@4.0:'): options.extend([ - define('KokkosTSQR_ENABLE_Complex', False), - define('TPL_ENABLE_SuperLUDist', True), - define('SuperLUDist_LIBRARY_DIRS', - spec['superlu-dist'].prefix.lib), - define('SuperLUDist_INCLUDE_DIRS', - spec['superlu-dist'].prefix.include), + define('HAVE_SUPERLUDIST_LUSTRUCTINIT_2ARG', True), ]) - if spec.satisfies('^superlu-dist@4.0:'): - options.extend([ - define('HAVE_SUPERLUDIST_LUSTRUCTINIT_2ARG', True), - ]) if '+strumpack' in spec: options.append(define('Amesos2_ENABLE_STRUMPACK', True)) - options.append(define_tpl_enable('Pnetcdf')) - if '+pnetcdf' in spec: + if spec.satisfies('^parallel-netcdf'): options.extend([ define('TPL_Netcdf_Enables_Netcdf4', True), define('TPL_Netcdf_PARALLEL', True), @@ -788,8 +746,6 @@ def define_tpl_enable(cmake_var, spec_var=None): )) # Explicit Template Instantiation (ETI) in Tpetra - # NOTE: Trilinos will soon move to fixed std::uint64_t for GO and - # std::int32_t or std::int64_t for local. options.append(define_from_variant( 'Trilinos_ENABLE_EXPLICIT_INSTANTIATION', 'explicit_template_instantiation')) diff --git a/var/spack/repos/builtin/packages/trinity/package.py b/var/spack/repos/builtin/packages/trinity/package.py index d1f557895d7..5562a135e89 100644 --- a/var/spack/repos/builtin/packages/trinity/package.py +++ b/var/spack/repos/builtin/packages/trinity/package.py @@ -19,7 +19,7 @@ class Trinity(MakefilePackage): derived from paralogous genes. """ - homepage = "http://trinityrnaseq.github.io/" + homepage = "https://trinityrnaseq.github.io/" url = "https://github.com/trinityrnaseq/trinityrnaseq/archive/Trinity-v2.6.6.tar.gz" version('2.12.0.FULL', sha256='0d47dc433cc3003e1c732b97da605e29c6ccafa38cd52cdb8ecc42399a9195d0', diff --git a/var/spack/repos/builtin/packages/tut/package.py b/var/spack/repos/builtin/packages/tut/package.py index 927fda58ca5..00b2b76feda 100644 --- a/var/spack/repos/builtin/packages/tut/package.py +++ b/var/spack/repos/builtin/packages/tut/package.py @@ -9,7 +9,7 @@ class Tut(WafPackage): """TUT is a small and portable unit test framework for C++.""" - homepage = "http://mrzechonek.github.io/tut-framework/" + homepage = "https://mrzechonek.github.io/tut-framework/" url = "https://github.com/mrzechonek/tut-framework/tarball/2016-12-19" version('2016-12-19', sha256='9fc0325d6db9709cc5213773bf4fd84f2a95154f18f7f8a553e1e52392e15691') diff --git a/var/spack/repos/builtin/packages/twm/package.py b/var/spack/repos/builtin/packages/twm/package.py index c7de0c45d04..b44a71dfbca 100644 --- a/var/spack/repos/builtin/packages/twm/package.py +++ b/var/spack/repos/builtin/packages/twm/package.py @@ -12,7 +12,7 @@ class Twm(AutotoolsPackage, XorgPackage): user-defined macro functions, click-to-type and pointer-driven keyboard focus, and user-specified key and pointer button bindings.""" - homepage = "http://cgit.freedesktop.org/xorg/app/twm" + homepage = "https://cgit.freedesktop.org/xorg/app/twm" xorg_mirror_path = "app/twm-1.0.9.tar.gz" version('1.0.9', sha256='1c325e8456a200693c816baa27ceca9c5e5e0f36af63d98f70a335853a0039e8') diff --git a/var/spack/repos/builtin/packages/typhonio/package.py b/var/spack/repos/builtin/packages/typhonio/package.py index a409a92e3da..b70655b677c 100644 --- a/var/spack/repos/builtin/packages/typhonio/package.py +++ b/var/spack/repos/builtin/packages/typhonio/package.py @@ -10,7 +10,7 @@ class Typhonio(CMakePackage): """TyphonIO is a library of routines that perform input/output (I/O) of scientific data within application codes""" - homepage = "http://uk-mac.github.io/typhonio/" + homepage = "https://uk-mac.github.io/typhonio/" url = "https://github.com/UK-MAC/typhonio/archive/v1.6_CMake.tar.gz" git = "https://github.com/UK-MAC/typhonio.git" diff --git a/var/spack/repos/builtin/packages/udunits/package.py b/var/spack/repos/builtin/packages/udunits/package.py index 4c6ae1f2aca..6da4e90d244 100644 --- a/var/spack/repos/builtin/packages/udunits/package.py +++ b/var/spack/repos/builtin/packages/udunits/package.py @@ -9,7 +9,7 @@ class Udunits(AutotoolsPackage): """Automated units conversion""" - homepage = "http://www.unidata.ucar.edu/software/udunits" + homepage = "https://www.unidata.ucar.edu/software/udunits" url = "https://artifacts.unidata.ucar.edu/repository/downloads-udunits/udunits-2.2.28.tar.gz" version('2.2.28', sha256='590baec83161a3fd62c00efa66f6113cec8a7c461e3f61a5182167e0cc5d579e') diff --git a/var/spack/repos/builtin/packages/ufs-utils/package.py b/var/spack/repos/builtin/packages/ufs-utils/package.py new file mode 100644 index 00000000000..b1de6c9eb1f --- /dev/null +++ b/var/spack/repos/builtin/packages/ufs-utils/package.py @@ -0,0 +1,39 @@ +# Copyright 2013-2021 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 import * + + +class UfsUtils(CMakePackage): + """The UFS Utilities package contains programs set up the model grid and + create coldstart initial conditions. + """ + + homepage = "https://noaa-emcufs-utils.readthedocs.io/en/latest/" + url = "https://github.com/NOAA-EMC/UFS_UTILS/archive/refs/tags/ufs_utils_1_6_0.tar.gz" + + maintainers = ['t-brown'] + + version('1_6_0', sha256='829ba4b50162e4202f96ec92a65b9fa824f71db65d2b63b70822db07d061cd92') + + depends_on('bacio') + depends_on('esmf') + depends_on('g2') + depends_on('hdf5') + depends_on('ip') + depends_on('jasper') + depends_on('libpng') + depends_on('nemsio') + depends_on('netcdf-c') + depends_on('netcdf-fortran') + depends_on('sfcio') + depends_on('sigio') + depends_on('sp') + depends_on('w3nco') + depends_on('wgrib2') + depends_on('zlib') + + def setup_build_environment(self, env): + env.set('ESMFMKFILE', join_path(self.spec['esmf'].prefix.lib, 'esmf.mk')) diff --git a/var/spack/repos/builtin/packages/ufs-weather-model/package.py b/var/spack/repos/builtin/packages/ufs-weather-model/package.py new file mode 100644 index 00000000000..e1148f7eeaa --- /dev/null +++ b/var/spack/repos/builtin/packages/ufs-weather-model/package.py @@ -0,0 +1,94 @@ +# Copyright 2013-2021 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 import * + + +class UfsWeatherModel(CMakePackage): + """The Unified Forecast System (UFS) Weather Model (WM) is a prognostic + model that can be used for short- and medium-range research and + operational forecasts, as exemplified by its use in the operational Global + Forecast System (GFS) of the National Oceanic and Atmospheric + Administration (NOAA).""" + + homepage = "https://ufs-weather-model.readthedocs.io/en/latest/" + url = "https://github.com/ufs-community/ufs-weather-model/archive/refs/tags/ufs-v1.1.0.tar.gz" + git = "https://github.com/ufs-community/ufs-weather-model.git" + + maintainers = ['t-brown'] + + version('2.0.0', tag='ufs-v2.0.0', submodules=True) + version('1.1.0', tag='ufs-v1.1.0', submodules=True) + + variant('32bit', default=True, description='Enable 32-bit single precision arithmetic in dycore') + variant('avx2', default=False, description='Enable AVX2 instructions') + variant('ccpp', default=True, description='Enable the Common Community Physics Package (CCPP))') + variant('ccpp_suites', default='FV3_GFS_v15p2,FV3_RRFS_v1alpha', + description='CCPP suites to compile', + values=('FV3_GFS_v15p2', + 'FV3_RRFS_v1alpha', + 'FV3_GFS_v15p2,FV3_RRFS_v1alpha'), + multi=True) + variant('inline_post', default=False, description='Compile post processing inline') + variant('multi_gases', default=False, description='Enable multi gases in physics routines') + variant('openmp', default=True, description='Enable OpenMP') + variant('parallel_netcdf', default=True, description='Enable parallel I/O in netCDF') + variant('quad_precision', default=False, + description='Enable quad precision for certain grid metric terms in dycore') + variant('simdmultiarch', default=False, description='Enable multi-target SIMD instruction sets') + + depends_on('bacio') + depends_on('esmf@:8.0.0') + depends_on('mpi') + depends_on('nemsio') + depends_on('netcdf-c') + depends_on('netcdf-fortran') + depends_on('sp') + depends_on('w3emc') + depends_on('w3nco') + + def setup_build_environment(self, env): + spec = self.spec + env.set('CMAKE_C_COMPILER', spec['mpi'].mpicc) + env.set('CMAKE_CXX_COMPILER', spec['mpi'].mpicxx) + env.set('CMAKE_Fortran_COMPILER', spec['mpi'].mpifc) + env.set('ESMFMKFILE', join_path(spec['esmf'].prefix.lib, 'esmf.mk')) + + env.set('CCPP_SUITES', ','.join( + [x for x in spec.variants['ccpp_suites'].value if x])) + + if spec.platform == 'linux' and spec.satisfies('%intel'): + 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 += "are not supported by UFS." + raise InstallError(msg.format(spec.platform, self.compiler.name)) + + def cmake_args(self): + from_variant = self.define_from_variant + args = [from_variant('32BIT', '32bit'), + from_variant('AVX2', 'avx2'), + from_variant('CCPP', 'ccpp'), + from_variant('INLINE_POST', 'inline_post'), + from_variant('MULTI_GASES', 'multi_gases'), + from_variant('OPENMP', 'openmp'), + from_variant('PARALLEL_NETCDF', 'parallel_netcdf'), + from_variant('QUAD_PRECISION', 'quad_precision'), + from_variant('SIMDMULTIARCH', 'simdmultiarch'), + ] + + return args + + @run_after('install') + def install_additional_files(self): + mkdirp(prefix.bin) + ufs_src = join_path(self.build_directory, 'NEMS.exe') + ufs_dst = join_path(prefix.bin, "ufs_weather_model") + install(ufs_src, ufs_dst) + set_executable(ufs_dst) diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py index a957368700f..d17b9369401 100644 --- a/var/spack/repos/builtin/packages/umpire/package.py +++ b/var/spack/repos/builtin/packages/umpire/package.py @@ -7,6 +7,8 @@ import llnl.util.tty as tty +from spack import * + class Umpire(CMakePackage, CudaPackage, ROCmPackage): """An application-focused API for memory management on NUMA & GPU @@ -19,6 +21,7 @@ class Umpire(CMakePackage, CudaPackage, ROCmPackage): version('develop', branch='develop', submodules=True) version('main', branch='main', submodules=True) + version('6.0.0', tag='v6.0.0', submodules=True) version('5.0.1', tag='v5.0.1', submodules=True) version('5.0.0', tag='v5.0.0', submodules=True) version('4.1.2', tag='v4.1.2', submodules=True) @@ -64,20 +67,26 @@ class Umpire(CMakePackage, CudaPackage, ROCmPackage): depends_on('cmake@3.8:', type='build') depends_on('cmake@3.9:', when='+cuda', type='build') - depends_on('blt@0.4.0:', type='build', when='@4.1.3:') - depends_on('blt@:0.3.6', type='build', when='@:4.1.2') + depends_on('blt@0.4.1:', type='build', when='@6.0.0:') + depends_on('blt@0.4.0:', type='build', when='@4.1.3:5.0.1') + depends_on('blt@0.3.6:', type='build', when='@:4.1.2') - # variants +rocm and amdgpu_targets are not automatically passed to - # dependencies, so do it manually. - depends_on('camp+rocm', when='+rocm') - for val in ROCmPackage.amdgpu_targets: - depends_on('camp amdgpu_target=%s' % val, when='amdgpu_target=%s' % val) + depends_on('camp', when='@5.0.0:') + depends_on('camp@0.2.2', when='@6.0.0:') + depends_on('camp@0.1.0', when='@5.0.0:5.0.1') - depends_on('camp') - depends_on('camp+cuda', when='+cuda') - for sm_ in CudaPackage.cuda_arch_values: - depends_on('camp cuda_arch={0}'.format(sm_), - when='cuda_arch={0}'.format(sm_)) + with when('@5.0.0:'): + with when('+cuda'): + depends_on('camp+cuda') + for sm_ in CudaPackage.cuda_arch_values: + depends_on('camp+cuda cuda_arch={0}'.format(sm_), + when='cuda_arch={0}'.format(sm_)) + + with when('+rocm'): + depends_on('camp+rocm') + for arch_ in ROCmPackage.amdgpu_targets: + depends_on('camp+rocm amdgpu_target={0}'.format(arch_), + when='amdgpu_target={0}'.format(arch_)) conflicts('+numa', when='@:0.3.2') conflicts('~c', when='+fortran', msg='Fortran API requires C API') @@ -91,7 +100,8 @@ def cmake_args(self): options = [] options.append("-DBLT_SOURCE_DIR={0}".format(spec['blt'].prefix)) - options.append("-Dcamp_DIR={0}".format(spec['camp'].prefix)) + if spec.satisfies('@5.0.0:'): + options.append("-Dcamp_DIR={0}".format(spec['camp'].prefix)) if '+cuda' in spec: options.extend([ diff --git a/var/spack/repos/builtin/packages/unblur/package.py b/var/spack/repos/builtin/packages/unblur/package.py index f16f73761ee..bbbbe381cf8 100644 --- a/var/spack/repos/builtin/packages/unblur/package.py +++ b/var/spack/repos/builtin/packages/unblur/package.py @@ -10,7 +10,7 @@ class Unblur(AutotoolsPackage): """Unblur is used to align the frames of movies recorded on an electron microscope to reduce image blurring due to beam-induced motion.""" - homepage = "http://grigoriefflab.janelia.org/unblur" + homepage = "https://grigoriefflab.janelia.org/unblur" url = "http://grigoriefflab.janelia.org/sites/default/files/unblur_1.0.2.tar.gz" version('1.0.2', sha256='1aa72b1f944114987ede644e1866eaebc08e191ecc566b3461409449360931e2') diff --git a/var/spack/repos/builtin/packages/universal-ctags/package.py b/var/spack/repos/builtin/packages/universal-ctags/package.py index 0f37f69264d..792990bedbd 100644 --- a/var/spack/repos/builtin/packages/universal-ctags/package.py +++ b/var/spack/repos/builtin/packages/universal-ctags/package.py @@ -13,12 +13,15 @@ class UniversalCtags(AutotoolsPackage): the indexed items.""" homepage = "https://ctags.io/" + url = "https://github.com/universal-ctags/ctags/archive/refs/tags/p5.9.20210808.0.tar.gz" git = "https://github.com/universal-ctags/ctags.git" version('master', branch='master') + version('5.9.20210808.0', sha256='7f5f88d20750dfa2437ca9d163972b8684e3cf16de022a5177f322be92f528cc') depends_on('autoconf', type='build') depends_on('automake', type='build') depends_on('libtool', type='build') depends_on('m4', type='build') depends_on('libiconv', type='link') + depends_on('pkg-config', type='build') diff --git a/var/spack/repos/builtin/packages/unuran/package.py b/var/spack/repos/builtin/packages/unuran/package.py index 62ab5fa9d21..32177270f48 100644 --- a/var/spack/repos/builtin/packages/unuran/package.py +++ b/var/spack/repos/builtin/packages/unuran/package.py @@ -9,7 +9,7 @@ class Unuran(AutotoolsPackage): """Universal Non-Uniform Random number generator.""" - homepage = "http://statmath.wu.ac.at/unuran" + homepage = "https://statmath.wu.ac.at/unuran" url = "http://statmath.wu.ac.at/unuran/unuran-1.8.1.tar.gz" version('1.8.1', sha256='c270ae96857857dbac6450043df865e0517f52856ddbe5202fd35583b13c5193') diff --git a/var/spack/repos/builtin/packages/uqtk/package.py b/var/spack/repos/builtin/packages/uqtk/package.py index 846b5bbfa7a..43b07498113 100644 --- a/var/spack/repos/builtin/packages/uqtk/package.py +++ b/var/spack/repos/builtin/packages/uqtk/package.py @@ -18,11 +18,21 @@ class Uqtk(CMakePackage): version('3.1.0', sha256='56ecd3d13bdd908d568e9560dc52cc0f66d7bdcdbe64ab2dd0147a7cf1734f97') version('3.0.4', sha256='0a72856438134bb571fd328d1d30ce3d0d7aead32eda9b7fb6e436a27d546d2e') + variant('pyuqtk', default=True, + description='Compile Python scripts and interface to C++ libraries') + depends_on('expat') depends_on('sundials', when='@3.1.0:') depends_on('blas', when='@3.1.0:') depends_on('lapack', when='@3.1.0:') + extends('python', when='+pyuqtk') + depends_on('py-numpy', when='+pyuqtk') + depends_on('py-scipy', when='+pyuqtk') + depends_on('py-matplotlib', when='+pyuqtk') + depends_on('py-pymc3', when='+pyuqtk') + depends_on('swig', when='+pyuqtk') + # Modify the process of directly specifying blas/lapack # as the library name. patch('remove_unique_libname.patch', when='@3.1.0:') @@ -38,8 +48,19 @@ def cmake_args(self): lapack_libs = spec['lapack'].libs.joined(';') blas_libs = spec['blas'].libs.joined(';') - return [ - '-DCMAKE_SUNDIALS_DIR={0}'.format(spec['sundials'].prefix), - '-DLAPACK_LIBRARIES={0}'.format(lapack_libs), - '-DBLAS_LIBRARIES={0}'.format(blas_libs) + args = [ + self.define('CMAKE_SUNDIALS_DIR', spec['sundials'].prefix), + self.define('LAPACK_LIBRARIES', lapack_libs), + self.define('BLAS_LIBRARIES', blas_libs), + self.define_from_variant('PyUQTk', 'pyuqtk') ] + + return args + + def setup_run_environment(self, env): + if '+pyuqtk' in self.spec: + env.prepend_path('PYTHONPATH', self.prefix) + env.prepend_path('PYTHONPATH', '{0}/PyUQTk'.format(self.prefix)) + env.prepend_path('LD_LIBRARY_PATH', '{0}/PyUQTk/'.format(self.prefix)) + env.set('UQTK_SRC', self.prefix) + env.set('UQTK_INS', self.prefix) diff --git a/var/spack/repos/builtin/packages/usearch/package.py b/var/spack/repos/builtin/packages/usearch/package.py index d43f8bb593d..fdf7fb46fec 100644 --- a/var/spack/repos/builtin/packages/usearch/package.py +++ b/var/spack/repos/builtin/packages/usearch/package.py @@ -18,7 +18,7 @@ class Usearch(Package): For instructions on how to set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" - homepage = "http://www.drive5.com/usearch/" + homepage = "https://www.drive5.com/usearch/" manual_download = True version('10.0.240', '05192b6d5e291530c190a19a3cc82b53', expand=False) diff --git a/var/spack/repos/builtin/packages/userspace-rcu/package.py b/var/spack/repos/builtin/packages/userspace-rcu/package.py index 1e6030e2471..9bb673f9574 100644 --- a/var/spack/repos/builtin/packages/userspace-rcu/package.py +++ b/var/spack/repos/builtin/packages/userspace-rcu/package.py @@ -11,7 +11,7 @@ class UserspaceRcu(AutotoolsPackage): data synchronization library provides read-side access which scales linearly with the number of cores.""" - homepage = "http://liburcu.org/" + homepage = "https://liburcu.org/" url = "https://github.com/urcu/userspace-rcu/archive/v0.11.1.tar.gz" version('0.11.1', sha256='a0ed8995edfbeac5f5eb2f152a8f3654040ecfc99a746bfe3da3bccf435b7d5d') diff --git a/var/spack/repos/builtin/packages/util-linux/package.py b/var/spack/repos/builtin/packages/util-linux/package.py index 3b6b6d4c9c7..878a9a18b86 100644 --- a/var/spack/repos/builtin/packages/util-linux/package.py +++ b/var/spack/repos/builtin/packages/util-linux/package.py @@ -16,6 +16,9 @@ class UtilLinux(AutotoolsPackage): list_url = "https://www.kernel.org/pub/linux/utils/util-linux" list_depth = 1 + version('2.37.2', sha256='15db966474e459b33fa390a6b892190a92079a73ca45384cde4c86e6ed265a86') + version('2.37.1', sha256='0fe9ee8ee7f157be8abcfc2902ec8de9fe30b39173b84e4c458675cef4709b35') + version('2.37', sha256='faa8b46d080faa6f32c57da81eda871e38e1e27ba4e9b61cb2589334671aba50') version('2.36.2', sha256='f5dbe79057e7d68e1a46fc04083fc558b26a49499b1b3f50e4f4893150970463') version('2.36', sha256='82942cd877a989f6d12d4ce2c757fb67ec53d8c5cd9af0537141ec5f84a2eea3') version('2.35.1', sha256='37ac05d82c6410d89bc05d43cee101fefc8fe6cf6090b3ce7a1409a6f35db606') diff --git a/var/spack/repos/builtin/packages/util-macros/package.py b/var/spack/repos/builtin/packages/util-macros/package.py index 6a6c671ec58..1bbf3d6ce44 100644 --- a/var/spack/repos/builtin/packages/util-macros/package.py +++ b/var/spack/repos/builtin/packages/util-macros/package.py @@ -11,7 +11,7 @@ class UtilMacros(AutotoolsPackage, XorgPackage): other Xorg modular packages, and is needed to generate new versions of their configure scripts with autoconf.""" - homepage = "http://cgit.freedesktop.org/xorg/util/macros/" + homepage = "https://cgit.freedesktop.org/xorg/util/macros/" xorg_mirror_path = "util/util-macros-1.19.1.tar.bz2" maintainers = ['robert-mijakovic'] diff --git a/var/spack/repos/builtin/packages/valgrind/package.py b/var/spack/repos/builtin/packages/valgrind/package.py index dd5caef082f..fc36453d1a3 100644 --- a/var/spack/repos/builtin/packages/valgrind/package.py +++ b/var/spack/repos/builtin/packages/valgrind/package.py @@ -19,7 +19,7 @@ class Valgrind(AutotoolsPackage, SourcewarePackage): Valgrind is Open Source / Free Software, and is freely available under the GNU General Public License, version 2. """ - homepage = "http://valgrind.org/" + homepage = "https://valgrind.org/" sourceware_mirror_path = "valgrind/valgrind-3.13.0.tar.bz2" git = "git://sourceware.org/git/valgrind.git" diff --git a/var/spack/repos/builtin/packages/varscan/package.py b/var/spack/repos/builtin/packages/varscan/package.py index 69e42a86175..45addad46e1 100644 --- a/var/spack/repos/builtin/packages/varscan/package.py +++ b/var/spack/repos/builtin/packages/varscan/package.py @@ -12,7 +12,7 @@ class Varscan(Package): """Variant calling and somatic mutation/CNV detection for next-generation sequencing data""" - homepage = "http://dkoboldt.github.io/varscan/" + homepage = "https://dkoboldt.github.io/varscan/" url = "https://github.com/dkoboldt/varscan/releases/download/2.4.2/VarScan.v2.4.2.jar" version('2.4.2', sha256='34ff6462f91fb6ed3f11e867ab4a179efae5dd8214b97fa261fc616f23d4d031', expand=False) diff --git a/var/spack/repos/builtin/packages/vasp/package.py b/var/spack/repos/builtin/packages/vasp/package.py index 525876e6e11..b1a671117f8 100644 --- a/var/spack/repos/builtin/packages/vasp/package.py +++ b/var/spack/repos/builtin/packages/vasp/package.py @@ -16,7 +16,7 @@ class Vasp(MakefilePackage): and quantum-mechanical molecular dynamics, from first principles. """ - homepage = "http://vasp.at" + homepage = "https://vasp.at" url = "file://{0}/vasp.5.4.4.pl2.tgz".format(os.getcwd()) manual_download = True diff --git a/var/spack/repos/builtin/packages/vecgeom/package.py b/var/spack/repos/builtin/packages/vecgeom/package.py index 75b57ff27fd..7d56d574b53 100644 --- a/var/spack/repos/builtin/packages/vecgeom/package.py +++ b/var/spack/repos/builtin/packages/vecgeom/package.py @@ -20,6 +20,7 @@ class Vecgeom(CMakePackage, CudaPackage): maintainers = ['drbenmorgan', 'sethrj'] version('master', branch='master') + version('1.1.16', sha256='2fa636993156d9d06750586e8a1ac1701ae2be62dea07964e2369698ae521d02') version('1.1.15', sha256='0ee9897eb12d8d560dc0c9e56e8fdb78d0111f651a984df24e983da035bd1c70') version('1.1.13', sha256='6bb364cc74bdab2e64e2fe132debd7f1e192da0a103f5149df7ab25b7c19a205') version('1.1.12', sha256='fec4495aac4a9d583f076551da61a68b956bba1dd1ebe1cd48c00ef95c962049') diff --git a/var/spack/repos/builtin/packages/velvet/package.py b/var/spack/repos/builtin/packages/velvet/package.py index 3997262dc1c..62bfff72d92 100644 --- a/var/spack/repos/builtin/packages/velvet/package.py +++ b/var/spack/repos/builtin/packages/velvet/package.py @@ -10,7 +10,7 @@ class Velvet(MakefilePackage): """Velvet is a de novo genomic assembler specially designed for short read sequencing technologies.""" - homepage = "http://www.ebi.ac.uk/~zerbino/velvet/" + homepage = "https://www.ebi.ac.uk/~zerbino/velvet/" url = "http://www.ebi.ac.uk/~zerbino/velvet/velvet_1.2.10.tgz" version('1.2.10', sha256='884dd488c2d12f1f89cdc530a266af5d3106965f21ab9149e8cb5c633c977640') diff --git a/var/spack/repos/builtin/packages/vesta/package.py b/var/spack/repos/builtin/packages/vesta/package.py index 5875ffc65b4..9599eabdf8c 100644 --- a/var/spack/repos/builtin/packages/vesta/package.py +++ b/var/spack/repos/builtin/packages/vesta/package.py @@ -10,7 +10,7 @@ class Vesta(Package): """VESTA is a 3D visualization program for structural models, volumetric data such as electron/nuclear densities, and crystal morphologies.""" - homepage = "http://jp-minerals.org/vesta" + homepage = "https://jp-minerals.org/vesta" url = "https://jp-minerals.org/vesta/archives/3.4.6/VESTA-x86_64.tar.bz2" version('3.4.6', sha256='fb00ac9a7bf46a3d9a1d745859c5e8757ba30f017a46470eb2c123b9afcf66ee') diff --git a/var/spack/repos/builtin/packages/videoproto/package.py b/var/spack/repos/builtin/packages/videoproto/package.py index 4eb33f48cb1..b4bc2667fac 100644 --- a/var/spack/repos/builtin/packages/videoproto/package.py +++ b/var/spack/repos/builtin/packages/videoproto/package.py @@ -12,7 +12,7 @@ class Videoproto(AutotoolsPackage, XorgPackage): This extension provides a protocol for a video output mechanism, mainly to rescale video playback in the video controller hardware.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/videoproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/videoproto" xorg_mirror_path = "proto/videoproto-2.3.3.tar.gz" version('2.3.3', sha256='df8dfeb158767f843054248d020e291a2c40f7f5e0ac6d8706966686fee7c5c0') diff --git a/var/spack/repos/builtin/packages/viewres/package.py b/var/spack/repos/builtin/packages/viewres/package.py index 028968f1763..996dfb157c3 100644 --- a/var/spack/repos/builtin/packages/viewres/package.py +++ b/var/spack/repos/builtin/packages/viewres/package.py @@ -10,7 +10,7 @@ class Viewres(AutotoolsPackage, XorgPackage): """viewres displays a tree showing the widget class hierarchy of the Athena Widget Set (libXaw).""" - homepage = "http://cgit.freedesktop.org/xorg/app/viewres" + homepage = "https://cgit.freedesktop.org/xorg/app/viewres" xorg_mirror_path = "app/viewres-1.0.4.tar.gz" version('1.0.4', sha256='fd2aaec85c952fd6984fe14d0fcbda4d2ab9849a9183e4787b0ef552a10a87a1') diff --git a/var/spack/repos/builtin/packages/vim/package.py b/var/spack/repos/builtin/packages/vim/package.py index dad889c9926..62af8abb714 100644 --- a/var/spack/repos/builtin/packages/vim/package.py +++ b/var/spack/repos/builtin/packages/vim/package.py @@ -15,7 +15,7 @@ class Vim(AutotoolsPackage): composing email to editing configuration files. """ - homepage = "http://www.vim.org" + homepage = "https://www.vim.org" url = "https://github.com/vim/vim/archive/v8.1.0338.tar.gz" maintainers = ['sethrj'] diff --git a/var/spack/repos/builtin/packages/virtualgl/package.py b/var/spack/repos/builtin/packages/virtualgl/package.py index 8aa30eeba02..5d4f0cff458 100644 --- a/var/spack/repos/builtin/packages/virtualgl/package.py +++ b/var/spack/repos/builtin/packages/virtualgl/package.py @@ -13,7 +13,7 @@ class Virtualgl(CMakePackage): stream with which remote clients can interact to view and control the 3D application in real time.""" - homepage = "http://www.virtualgl.org/Main/HomePage" + homepage = "https://www.virtualgl.org/Main/HomePage" url = "http://downloads.sourceforge.net/project/virtualgl/2.5.2/VirtualGL-2.5.2.tar.gz" version('2.5.2', sha256='4f43387678b289a24139c5b7c3699740ca555a9f10011c979e51aa4df2b93238') diff --git a/var/spack/repos/builtin/packages/vizglow/package.py b/var/spack/repos/builtin/packages/vizglow/package.py index 8ae1dd5187f..1e68e9632c9 100644 --- a/var/spack/repos/builtin/packages/vizglow/package.py +++ b/var/spack/repos/builtin/packages/vizglow/package.py @@ -19,7 +19,7 @@ class Vizglow(Package): file to a mirror so that Spack can find it. For instructions on how to set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" - homepage = "http://esgeetech.com/products/vizglow-plasma-modeling/" + homepage = "https://esgeetech.com/products/vizglow-plasma-modeling/" manual_download = True version('2.2alpha20', '2bef890c66f3a44aaf96f7c96788c89e', expand=False, diff --git a/var/spack/repos/builtin/packages/votca-csg-tutorials/package.py b/var/spack/repos/builtin/packages/votca-csg-tutorials/package.py index 52636dca2d3..87084c1e8b0 100644 --- a/var/spack/repos/builtin/packages/votca-csg-tutorials/package.py +++ b/var/spack/repos/builtin/packages/votca-csg-tutorials/package.py @@ -15,7 +15,7 @@ class VotcaCsgTutorials(CMakePackage): This package contains the VOTCA coarse-graining tutorials. """ - homepage = "http://www.votca.org" + 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'] diff --git a/var/spack/repos/builtin/packages/votca-csg/package.py b/var/spack/repos/builtin/packages/votca-csg/package.py index 320082884ea..395bfa30fa9 100644 --- a/var/spack/repos/builtin/packages/votca-csg/package.py +++ b/var/spack/repos/builtin/packages/votca-csg/package.py @@ -15,7 +15,7 @@ class VotcaCsg(CMakePackage): This package contains the VOTCA coarse-graining engine. """ - homepage = "http://www.votca.org" + homepage = "https://www.votca.org" url = "https://github.com/votca/csg/tarball/v1.4" git = "https://github.com/votca/csg.git" maintainers = ['junghans'] diff --git a/var/spack/repos/builtin/packages/votca-csgapps/package.py b/var/spack/repos/builtin/packages/votca-csgapps/package.py index 6d344915d97..8b90e7ba8ac 100644 --- a/var/spack/repos/builtin/packages/votca-csgapps/package.py +++ b/var/spack/repos/builtin/packages/votca-csgapps/package.py @@ -15,7 +15,7 @@ class VotcaCsgapps(CMakePackage): This package contains the VOTCA coarse-graining extra apps. """ - homepage = "http://www.votca.org" + homepage = "https://www.votca.org" url = "https://github.com/votca/csgapps/tarball/v1.4" git = "https://github.com/votca/csgapps.git" maintainers = ['junghans'] diff --git a/var/spack/repos/builtin/packages/votca-ctp/package.py b/var/spack/repos/builtin/packages/votca-ctp/package.py index 4fce94aec9c..74c2819810c 100644 --- a/var/spack/repos/builtin/packages/votca-ctp/package.py +++ b/var/spack/repos/builtin/packages/votca-ctp/package.py @@ -15,7 +15,7 @@ class VotcaCtp(CMakePackage): This package contains the VOTCA charge transport engine. """ - homepage = "http://www.votca.org" + homepage = "https://www.votca.org" url = "https://github.com/votca/ctp/tarball/v1.5" git = "https://github.com/votca/ctp.git" diff --git a/var/spack/repos/builtin/packages/votca-tools/package.py b/var/spack/repos/builtin/packages/votca-tools/package.py index 9a86a71dcea..7f21dceb8d9 100644 --- a/var/spack/repos/builtin/packages/votca-tools/package.py +++ b/var/spack/repos/builtin/packages/votca-tools/package.py @@ -15,7 +15,7 @@ class VotcaTools(CMakePackage): This package contains the basic tools library of VOTCA. """ - homepage = "http://www.votca.org" + homepage = "https://www.votca.org" url = "https://github.com/votca/tools/tarball/v1.4" git = "https://github.com/votca/tools.git" maintainers = ['junghans'] diff --git a/var/spack/repos/builtin/packages/votca-xtp/package.py b/var/spack/repos/builtin/packages/votca-xtp/package.py index 731a30d21c4..14a07c14a14 100644 --- a/var/spack/repos/builtin/packages/votca-xtp/package.py +++ b/var/spack/repos/builtin/packages/votca-xtp/package.py @@ -15,7 +15,7 @@ class VotcaXtp(CMakePackage): This package contains the VOTCA exciton transport engine. """ - homepage = "http://www.votca.org" + homepage = "https://www.votca.org" url = "https://github.com/votca/xtp/tarball/v1.4.1" git = "https://github.com/votca/xtp.git" maintainers = ['junghans'] diff --git a/var/spack/repos/builtin/packages/vt/package.py b/var/spack/repos/builtin/packages/vt/package.py index e923b4907ab..7ad58d10528 100644 --- a/var/spack/repos/builtin/packages/vt/package.py +++ b/var/spack/repos/builtin/packages/vt/package.py @@ -9,7 +9,7 @@ class Vt(MakefilePackage): """A tool set for short variant discovery in genetic sequence data.""" - homepage = "http://genome.sph.umich.edu/wiki/vt" + homepage = "https://genome.sph.umich.edu/wiki/vt" url = "https://github.com/atks/vt/archive/0.577.tar.gz" version('0.5772', sha256='b147520478a2f7c536524511e48133d0360e88282c7159821813738ccbda97e7') diff --git a/var/spack/repos/builtin/packages/vtk/package.py b/var/spack/repos/builtin/packages/vtk/package.py index 6f94e10d128..eefd034be83 100644 --- a/var/spack/repos/builtin/packages/vtk/package.py +++ b/var/spack/repos/builtin/packages/vtk/package.py @@ -21,6 +21,7 @@ class Vtk(CMakePackage): maintainers = ['chuckatkins', 'danlipsa'] + version('9.0.3', sha256='bc3eb9625b2b8dbfecb6052a2ab091fc91405de4333b0ec68f3323815154ed8a') version('9.0.1', sha256='1b39a5e191c282861e7af4101eaa8585969a2de05f5646c9199a161213a622c7') version('9.0.0', sha256='15def4e6f84d72f82386617fe595ec124dda3cbd13ea19a0dcd91583197d8715') version('8.2.0', sha256='34c3dc775261be5e45a8049155f7228b6bd668106c72a3c435d95730d17d57bb') @@ -43,6 +44,11 @@ class Vtk(CMakePackage): variant('mpi', default=True, description='Enable MPI support') patch('gcc.patch', when='@6.1.0') + # patch to fix some missing stl includes + # which lead to build errors on newer compilers + # version range to be updated once the linked patch is released + patch('https://gitlab.kitware.com/vtk/vtk/-/commit/e066c3f4fbbfe7470c6207db0fc3f3952db633c.diff', + when="@9:", sha256='0546696bd02f3a99fccb9b7c49533377bf8179df16d901cefe5abf251173716d') # At the moment, we cannot build with both osmesa and qt, but as of # VTK 8.1, that should change diff --git a/var/spack/repos/builtin/packages/w3emc/package.py b/var/spack/repos/builtin/packages/w3emc/package.py new file mode 100644 index 00000000000..03b393faabe --- /dev/null +++ b/var/spack/repos/builtin/packages/w3emc/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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 import * + + +class W3emc(CMakePackage): + """This library contains Fortran 90 decoder/encoder routines for GRIB + edition 1 with EMC changes.""" + + homepage = "https://noaa-emc.github.io/NCEPLIBS-w3emc/" + url = "https://github.com/NOAA-EMC/NCEPLIBS-w3emc/archive/refs/tags/v2.9.0.tar.gz" + + maintainers = ['t-brown'] + + version('2.9.0', sha256='994f59635ab91e34e96cab5fbaf8de54389d09461c7bac33b3104a1187e6c98a') diff --git a/var/spack/repos/builtin/packages/w3nco/package.py b/var/spack/repos/builtin/packages/w3nco/package.py new file mode 100644 index 00000000000..d8148a6519f --- /dev/null +++ b/var/spack/repos/builtin/packages/w3nco/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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 import * + + +class W3nco(CMakePackage): + """This library contains Fortran 90 decoder/encoder routines for GRIB + edition 1 with NCO changes.""" + + homepage = "https://noaa-emc.github.io/NCEPLIBS/NCEPLIBS-w3nco/" + url = "https://github.com/NOAA-EMC/NCEPLIBS-w3nco/archive/refs/tags/v2.4.1.tar.gz" + + maintainers = ['t-brown'] + + version('2.4.1', sha256='48b06e0ea21d3d0fd5d5c4e7eb50b081402567c1bff6c4abf4fd4f3669070139') diff --git a/var/spack/repos/builtin/packages/warpx/package.py b/var/spack/repos/builtin/packages/warpx/package.py index 06ab9e65112..b5cb9ef7efb 100644 --- a/var/spack/repos/builtin/packages/warpx/package.py +++ b/var/spack/repos/builtin/packages/warpx/package.py @@ -24,6 +24,7 @@ class Warpx(CMakePackage): # NOTE: if you update the versions here, also see py-warpx version('develop', branch='development') + version('21.08', sha256='6128a32cfd075bc63d08eebea6d4f62d33ce0570f4fd72330a71023ceacccc86') version('21.07', sha256='a8740316d813c365715f7471201499905798b50bd94950d33f1bd91478d49561') version('21.06', sha256='a26039dc4061da45e779dd5002467c67a533fc08d30841e01e7abb3a890fbe30') version('21.05', sha256='f835f0ae6c5702550d23191aa0bb0722f981abb1460410e3d8952bc3d945a9fc') @@ -134,3 +135,53 @@ def libs(self): ['libwarpx.' + libsuffix[dims]], root=self.prefix, recursive=True, shared=True ) + + # WarpX has many examples to serve as a suitable smoke check. One + # that is typical was chosen here + examples_src_dir = 'Examples/Physics_applications/laser_acceleration/' + + def _get_input_options(self, post_install): + examples_dir = join_path( + self.install_test_root if post_install else self.stage.source_path, + self.examples_src_dir) + dims = self.spec.variants['dims'].value + inputs_nD = {'2': 'inputs_2d', '3': 'inputs_3d', 'rz': 'inputs_2d_rz'} + inputs = join_path(examples_dir, inputs_nD[dims]) + + cli_args = [inputs, "max_step=50", "diag1.intervals=10"] + # test openPMD output if compiled in + if '+openpmd' in self.spec: + cli_args.append('diag1.format=openpmd') + return cli_args + + def check(self): + """Checks after the build phase""" + if '+app' not in self.spec: + print("WarpX check skipped: requires variant +app") + return + + with working_dir("spack-check", create=True): + cli_args = self._get_input_options(False) + warpx = Executable(join_path(self.build_directory, 'bin/warpx')) + warpx(*cli_args) + + @run_after('install') + def copy_test_sources(self): + """Copy the example input files after the package is installed to an + install test subdirectory for use during `spack test run`.""" + self.cache_extra_test_sources([self.examples_src_dir]) + + def test(self): + """Perform smoke tests on the installed package.""" + if '+app' not in self.spec: + print("WarpX smoke tests skipped: requires variant +app") + return + + # our executable names are a variant-dependent and naming evolves + exe = find(self.prefix.bin, 'warpx.*', recursive=False)[0] + + cli_args = self._get_input_options(True) + self.run_test(exe, + cli_args, + [], installed=True, purpose='Smoke test for WarpX', + skip_missing=False) diff --git a/var/spack/repos/builtin/packages/wayland-protocols/package.py b/var/spack/repos/builtin/packages/wayland-protocols/package.py index 0510751b686..10016191f19 100644 --- a/var/spack/repos/builtin/packages/wayland-protocols/package.py +++ b/var/spack/repos/builtin/packages/wayland-protocols/package.py @@ -13,7 +13,7 @@ class WaylandProtocols(AutotoolsPackage): protocol either in Wayland core, or some other protocol i n wayland-protocols.""" - homepage = "http://wayland.freedesktop.org/" + homepage = "https://wayland.freedesktop.org/" url = "https://github.com/wayland-project/wayland-protocols/archive/1.20.tar.gz" version('1.20', sha256='b59cf0949aeb1f71f7db46b63b1c5a6705ffde8cb5bd194f843fbd9b41308dda') diff --git a/var/spack/repos/builtin/packages/wayland/package.py b/var/spack/repos/builtin/packages/wayland/package.py index 7dabbd827ca..b28a69aadc8 100644 --- a/var/spack/repos/builtin/packages/wayland/package.py +++ b/var/spack/repos/builtin/packages/wayland/package.py @@ -14,7 +14,7 @@ class Wayland(AutotoolsPackage): wayland client itself. The clients can be traditional applications, X servers(rootless or fullscreen) or other display servers.""" - homepage = "http://wayland.freedesktop.org/" + homepage = "https://wayland.freedesktop.org/" url = "https://github.com/wayland-project/wayland/archive/1.18.0.tar.gz" version('1.18.0', sha256='8d375719ebfa36b6f2968096fdf0bfa7d39ba110b7956c0032e395e7e012f332') diff --git a/var/spack/repos/builtin/packages/wcslib/package.py b/var/spack/repos/builtin/packages/wcslib/package.py index 7526f40e7cc..d8413f4c6be 100644 --- a/var/spack/repos/builtin/packages/wcslib/package.py +++ b/var/spack/repos/builtin/packages/wcslib/package.py @@ -10,7 +10,7 @@ class Wcslib(AutotoolsPackage): """WCSLIB a C implementation of the coordinate transformations defined in the FITS WCS papers.""" - homepage = "http://www.atnf.csiro.au/people/mcalabre/WCS/wcslib/" + homepage = "https://www.atnf.csiro.au/people/mcalabre/WCS/wcslib/" url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib-7.3.tar.bz2" version('7.3', sha256='4b01cf425382a26ca4f955ed6841a5f50c55952a2994367f8e067e4183992961') diff --git a/var/spack/repos/builtin/packages/weighttp/package.py b/var/spack/repos/builtin/packages/weighttp/package.py index 1a9d36cbdd4..67e75907144 100644 --- a/var/spack/repos/builtin/packages/weighttp/package.py +++ b/var/spack/repos/builtin/packages/weighttp/package.py @@ -9,7 +9,7 @@ class Weighttp(AutotoolsPackage): """A lightweight and simple webserver benchmarking tool""" - homepage = "http://weighttp.lighttpd.net/" + homepage = "https://weighttp.lighttpd.net/" url = "https://github.com/lighttpd/weighttp/archive/weighttp-0.4.tar.gz" version('0.4', sha256='b4954f2a1eca118260ffd503a8e3504dd32942e2e61d0fa18ccb6b8166594447') diff --git a/var/spack/repos/builtin/packages/wget/package.py b/var/spack/repos/builtin/packages/wget/package.py index 978f7bf7059..297f8338a61 100644 --- a/var/spack/repos/builtin/packages/wget/package.py +++ b/var/spack/repos/builtin/packages/wget/package.py @@ -12,7 +12,7 @@ class Wget(AutotoolsPackage, GNUMirrorPackage): non-interactive commandline tool, so it may easily be called from scripts, cron jobs, terminals without X-Windows support, etc.""" - homepage = "http://www.gnu.org/software/wget/" + homepage = "https://www.gnu.org/software/wget/" gnu_mirror_path = "wget/wget-1.19.1.tar.gz" version('1.21.1', sha256='59ba0bdade9ad135eda581ae4e59a7a9f25e3a4bde6a5419632b31906120e26e') diff --git a/var/spack/repos/builtin/packages/wgrib2/package.py b/var/spack/repos/builtin/packages/wgrib2/package.py new file mode 100644 index 00000000000..ff5f90e74a4 --- /dev/null +++ b/var/spack/repos/builtin/packages/wgrib2/package.py @@ -0,0 +1,29 @@ +# Copyright 2013-2021 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 import * + + +class Wgrib2(CMakePackage): + """The wgrib2 package functionality for interacting with, reading, + writing, and manipulating GRIB2 files.""" + + homepage = "https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2" + url = "https://github.com/NOAA-EMC/NCEPLIBS-wgrib2/archive/refs/tags/v2.0.8-cmake-v6.tar.gz" + + maintainers = ['t-brown'] + + version('2.0.8-cmake-v6', sha256='745cd008b4ce0245ea44247733e57e2b9ec6c5205d171d457e18d0ff8f87172d') + + depends_on('ip2') + depends_on('jasper') + depends_on('libpng') + depends_on('netcdf-c') + depends_on('netcdf-fortran') + depends_on('sp') + + def cmake_args(self): + args = ['-DUSE_IPOLATES=3', '-DUSE_SPECTRAL=BOOL:ON'] + return args diff --git a/var/spack/repos/builtin/packages/windowswmproto/package.py b/var/spack/repos/builtin/packages/windowswmproto/package.py index b82423916bb..2f5afd7e61e 100644 --- a/var/spack/repos/builtin/packages/windowswmproto/package.py +++ b/var/spack/repos/builtin/packages/windowswmproto/package.py @@ -14,7 +14,7 @@ class Windowswmproto(AutotoolsPackage, XorgPackage): WindowsWM is only intended to be used on Cygwin when running a rootless XWin server.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/windowswmproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/windowswmproto" xorg_mirror_path = "proto/windowswmproto-1.0.4.tar.gz" version('1.0.4', sha256='2dccf510cf18a1b5cfd3a277c678d88303efc85478b479fec46228a861956eb7') diff --git a/var/spack/repos/builtin/packages/workrave/package.py b/var/spack/repos/builtin/packages/workrave/package.py index 5b6b1d939fd..6098b37fe04 100644 --- a/var/spack/repos/builtin/packages/workrave/package.py +++ b/var/spack/repos/builtin/packages/workrave/package.py @@ -13,7 +13,7 @@ class Workrave(AutotoolsPackage): The program runs on GNU/Linux and Microsoft Windows. """ - homepage = "http://www.workrave.org/" + homepage = "https://www.workrave.org/" url = "https://github.com/rcaelers/workrave/archive/v1_10_20.tar.gz" version('1_10_20', sha256='a89c6e82d5bbbaae5e171100b87c4efd8316ab8a18d82b83714035e1116983ec') diff --git a/var/spack/repos/builtin/packages/wrf-io/package.py b/var/spack/repos/builtin/packages/wrf-io/package.py new file mode 100644 index 00000000000..f67507587d9 --- /dev/null +++ b/var/spack/repos/builtin/packages/wrf-io/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 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 import * + + +class WrfIo(CMakePackage): + """The WRFIO package is a lightweight WRF-IO API library for Unified + Post Processor (UPP). It reads wrf forecasts (WRF state plus + diagnostics).""" + + homepage = "https://noaa-emc.github.io/NCEPLIBS-wrf_io" + url = "https://github.com/NOAA-EMC/NCEPLIBS-wrf_io/archive/refs/tags/v1.2.0.tar.gz" + + maintainers = ['t-brown'] + + version('1.2.0', sha256='000cf5294a2c68460085258186e1f36c86d3d0d9c433aa969a0f92736b745617') + + depends_on('netcdf-c') + depends_on('netcdf-fortran') diff --git a/var/spack/repos/builtin/packages/wrf/package.py b/var/spack/repos/builtin/packages/wrf/package.py index a6706aa08c3..609dadde12c 100644 --- a/var/spack/repos/builtin/packages/wrf/package.py +++ b/var/spack/repos/builtin/packages/wrf/package.py @@ -108,6 +108,7 @@ class Wrf(Package): patch("patches/3.9/add_aarch64.patch", when="@3.9.1.1") patch("patches/3.9/configure_aocc_2.3.patch", when="@3.9.1.1 %aocc@:2.4.0") patch("patches/3.9/configure_aocc_3.0.patch", when="@3.9.1.1 %aocc@3.0.0") + patch("patches/3.9/configure_aocc_3.1.patch", when="@3.9.1.1 %aocc@3.1.0") # These patches deal with netcdf & netcdf-fortran being two diff things # Patches are based on: @@ -133,7 +134,8 @@ class Wrf(Package): patch("patches/4.2/tirpc_detect.patch", when="@4.2") patch("patches/4.2/add_aarch64.patch", when="@4.2") patch("patches/4.2/configure_aocc_2.3.patch", when="@4.2 %aocc@:2.4.0") - patch("patches/4.2/configure_aocc_3.0.patch", when="@4.2 %aocc@3.0.0") + patch("patches/4.2/configure_aocc_3.0.patch", when="@4.2 %aocc@3.0.0:3.2.0") + patch("patches/4.2/hdf5_fix.patch", when="@4.2 %aocc") patch("patches/4.2/derf_fix.patch", when="@4.2 %aocc") depends_on("pkgconfig", type=("build")) @@ -339,7 +341,7 @@ def configure(self, spec, prefix): @run_after("configure") def patch_for_libmvec(self): - if self.spec.satisfies("@3.9.1.1 %aocc@:3.0"): + 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', '.') diff --git a/var/spack/repos/builtin/packages/wrf/patches/3.9/configure_aocc_3.1.patch b/var/spack/repos/builtin/packages/wrf/patches/3.9/configure_aocc_3.1.patch new file mode 100644 index 00000000000..4d6a0ae90c3 --- /dev/null +++ b/var/spack/repos/builtin/packages/wrf/patches/3.9/configure_aocc_3.1.patch @@ -0,0 +1,53 @@ +--- WRF-3.9.1.1/arch/configure_new.defaults 2021-03-10 10:08:07.885236847 +0530 ++++ WRF-3.9.1.1/arch/configure_new_aocc.defaults 2021-08-12 08:58:35.442165745 +0530 +@@ -1917,6 +1917,50 @@ + CC_TOOLS = $(SCC) + + #insert new stanza here ++############################################################## ++#ARCH AMD EPYC Linux x86_64 AOCC Compilers #dm+sm ++# ++DESCRIPTION = AMD AOCC ($SFC/$SCC): EPYC ++DMPARALLEL = 1 ++OMPCPP = -D_OPENMP ++OMP = -fopenmp ++OMPCC = -fopenmp -Mpreprocess ++SFC = flang ++SCC = clang ++CCOMP = clang ++DM_FC = mpif90 -DMPI2_SUPPORT ++DM_CC = mpicc -DMPI2_SUPPORT ++FC = $(DM_FC) ++CC = $(DM_CC) -DFSEEKO64_OK ++LD = $(FC) ++RWORDSIZE = $(NATIVE_RWORDSIZE) ++PROMOTION = ++ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM ++LIBMVEC = -mllvm -vector-library=LIBMVEC-X86 -mllvm -enable-loop-vectorization-with-conditions -Mstack_arrays ++AOCCOPT = -O3 -m64 -Ofast -ffast-math ++CFLAGS_LOCAL = -w $(AOCCOPT) ++LDFLAGS_LOCAL = -lm -ltirpc -lamdlibm -ljemalloc -lmvec $(AOCCOPT) ++CPLUSPLUSLIB = ++ESMF_LDFLAG = $(CPLUSPLUSLIB) ++FCOPTIM = $(AOCCOPT) -fopenmp ++FCREDUCEDOPT = -O2 -Ofast -ffast-math ++FCNOOPT = -O0 -DFCNOOPT -fopenmp ++FCDEBUG = #-g ++FORMAT_FIXED = -Mfixed ++FORMAT_FREE = -Mfreeform ++FCSUFFIX = ++BYTESWAPIO = -Mbyteswapio ++FCBASEOPTS_NO_G = $(FORMAT_FREE) $(BYTESWAPIO) -fopenmp ++FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) -DBASEOPTS -fopenmp ++MODULE_SRCH_FLAG = ++TRADFLAG = -traditional ++CPP = /lib/cpp -P ++AR = llvm-ar ++ARFLAGS = ru ++M4 = m4 ++RANLIB = llvm-ranlib ++RLFLAGS = ++CC_TOOLS = $(SCC) + + ########################################################### + #ARCH Fujitsu FX10/FX100 Linux x86_64 SPARC64IXfx/SPARC64Xlfx, mpifrtpx and mpifccpx compilers #serial smpar dmpar dm+sm diff --git a/var/spack/repos/builtin/packages/wrf/patches/4.2/hdf5_fix.patch b/var/spack/repos/builtin/packages/wrf/patches/4.2/hdf5_fix.patch new file mode 100644 index 00000000000..d3206fe9519 --- /dev/null +++ b/var/spack/repos/builtin/packages/wrf/patches/4.2/hdf5_fix.patch @@ -0,0 +1,20 @@ +--- WRF-4.2/arch/Config.pl 2021-08-12 16:39:02.339226280 +0530 ++++ WRF-4.2/arch/Config_hdf5.pl 2021-08-12 18:17:17.362452577 +0530 +@@ -514,7 +514,7 @@ + } + + if ( $sw_hdf5_path ) +- { $_ =~ s:CONFIGURE_HDF5_LIB_PATH:-L$sw_hdf5_path/lib -lhdf5hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5 -lm -lz: ; ++ { $_ =~ s:CONFIGURE_HDF5_LIB_PATH:-L$sw_hdf5_path/lib -lhdf5_hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5 -lm -lz: ; + $_ =~ s:CONFIGURE_HDF5_FLAG:-DHDF5: ; + } + else +@@ -836,7 +836,7 @@ + } + + if ( $sw_hdf5_path ) +- { $_ =~ s:CONFIGURE_HDF5_LIB_PATH:-L$sw_hdf5_path/lib -lhdf5hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5 -lm -lz: ; ++ { $_ =~ s:CONFIGURE_HDF5_LIB_PATH:-L$sw_hdf5_path/lib -lhdf5_hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5 -lm -lz: ; + $_ =~ s:CONFIGURE_HDF5_FLAG:-DHDF5: ; + } + else diff --git a/var/spack/repos/builtin/packages/wt/package.py b/var/spack/repos/builtin/packages/wt/package.py index ddf329455ed..3eaf6d52a5a 100644 --- a/var/spack/repos/builtin/packages/wt/package.py +++ b/var/spack/repos/builtin/packages/wt/package.py @@ -11,7 +11,7 @@ class Wt(CMakePackage): Wt is a C++ library for developing web applications.""" - homepage = "http://www.webtoolkit.eu/wt" + homepage = "https://www.webtoolkit.eu/wt" url = "https://github.com/emweb/wt/archive/3.3.7.tar.gz" git = "https://github.com/emweb/wt.git" diff --git a/var/spack/repos/builtin/packages/wxwidgets/package.py b/var/spack/repos/builtin/packages/wxwidgets/package.py index d503fa51996..a439c4c9445 100644 --- a/var/spack/repos/builtin/packages/wxwidgets/package.py +++ b/var/spack/repos/builtin/packages/wxwidgets/package.py @@ -18,7 +18,7 @@ class Wxwidgets(AutotoolsPackage): rather than emulating the GUI. It's also extensive, free, open-source and mature.""" - homepage = "http://www.wxwidgets.org/" + homepage = "https://www.wxwidgets.org/" url = "https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.0/wxWidgets-3.1.0.tar.bz2" git = "https://github.com/wxWidgets/wxWidgets.git" diff --git a/var/spack/repos/builtin/packages/x11perf/package.py b/var/spack/repos/builtin/packages/x11perf/package.py index ed0350728b5..24bbb999600 100644 --- a/var/spack/repos/builtin/packages/x11perf/package.py +++ b/var/spack/repos/builtin/packages/x11perf/package.py @@ -9,7 +9,7 @@ class X11perf(AutotoolsPackage, XorgPackage): """Simple X server performance benchmarker.""" - homepage = "http://cgit.freedesktop.org/xorg/app/x11perf" + homepage = "https://cgit.freedesktop.org/xorg/app/x11perf" xorg_mirror_path = "app/x11perf-1.6.0.tar.gz" version('1.6.0', sha256='d33051c4e93100ab60609aee14ff889bb2460f28945063d793e21eda19381abb') diff --git a/var/spack/repos/builtin/packages/xauth/package.py b/var/spack/repos/builtin/packages/xauth/package.py index c967c47c1c4..5c111a77b5f 100644 --- a/var/spack/repos/builtin/packages/xauth/package.py +++ b/var/spack/repos/builtin/packages/xauth/package.py @@ -10,7 +10,7 @@ class Xauth(AutotoolsPackage, XorgPackage): """The xauth program is used to edit and display the authorization information used in connecting to the X server.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xauth" + homepage = "https://cgit.freedesktop.org/xorg/app/xauth" xorg_mirror_path = "app/xauth-1.0.9.tar.gz" version('1.0.9', sha256='0709070caf23ba2fb99536907b75be1fe31853999c62d3e87a6a8d26ba8a8cdb') diff --git a/var/spack/repos/builtin/packages/xbacklight/package.py b/var/spack/repos/builtin/packages/xbacklight/package.py index f465c75d545..f9f855b929e 100644 --- a/var/spack/repos/builtin/packages/xbacklight/package.py +++ b/var/spack/repos/builtin/packages/xbacklight/package.py @@ -12,7 +12,7 @@ class Xbacklight(AutotoolsPackage, XorgPackage): supporting backlight brightness control and changes them all in the same way.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xbacklight" + homepage = "https://cgit.freedesktop.org/xorg/app/xbacklight" xorg_mirror_path = "app/xbacklight-1.2.1.tar.gz" version('1.2.1', sha256='82c80cd851e3eb6d7a216d92465fcf6d5e456c2d5ac12c63cd2757b39fb65b10') diff --git a/var/spack/repos/builtin/packages/xbiff/package.py b/var/spack/repos/builtin/packages/xbiff/package.py index bc259eee76b..78fa4781077 100644 --- a/var/spack/repos/builtin/packages/xbiff/package.py +++ b/var/spack/repos/builtin/packages/xbiff/package.py @@ -11,7 +11,7 @@ class Xbiff(AutotoolsPackage, XorgPackage): It only handles mail stored in a filesystem accessible file, not via IMAP, POP or other remote access protocols.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xbiff" + homepage = "https://cgit.freedesktop.org/xorg/app/xbiff" xorg_mirror_path = "app/xbiff-1.0.3.tar.gz" version('1.0.3', sha256='b4b702348674985741685e3ec7fcb5640ffb7bf20e753fc2d708f70f2e4c304d') diff --git a/var/spack/repos/builtin/packages/xcalc/package.py b/var/spack/repos/builtin/packages/xcalc/package.py index 68670ab684a..6f7ef79db7e 100644 --- a/var/spack/repos/builtin/packages/xcalc/package.py +++ b/var/spack/repos/builtin/packages/xcalc/package.py @@ -10,7 +10,7 @@ class Xcalc(AutotoolsPackage, XorgPackage): """xcalc is a scientific calculator X11 client that can emulate a TI-30 or an HP-10C.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xcalc" + homepage = "https://cgit.freedesktop.org/xorg/app/xcalc" xorg_mirror_path = "app/xcalc-1.0.6.tar.gz" version('1.0.6', sha256='7fd5cd9a35160925c41cbadfb1ea23599fa20fd26cd873dab20a650b24efe8d1') diff --git a/var/spack/repos/builtin/packages/xcb-proto/package.py b/var/spack/repos/builtin/packages/xcb-proto/package.py index 98b7e25f8a1..6a8508cdc51 100644 --- a/var/spack/repos/builtin/packages/xcb-proto/package.py +++ b/var/spack/repos/builtin/packages/xcb-proto/package.py @@ -10,7 +10,7 @@ class XcbProto(AutotoolsPackage): """xcb-proto provides the XML-XCB protocol descriptions that libxcb uses to generate the majority of its code and API.""" - homepage = "http://xcb.freedesktop.org/" + homepage = "https://xcb.freedesktop.org/" url = "https://xorg.freedesktop.org/archive/individual/proto/xcb-proto-1.14.1.tar.xz" version('1.14.1', sha256='f04add9a972ac334ea11d9d7eb4fc7f8883835da3e4859c9afa971efdf57fcc3') diff --git a/var/spack/repos/builtin/packages/xclipboard/package.py b/var/spack/repos/builtin/packages/xclipboard/package.py index 2d201265af5..b1630ed5bd4 100644 --- a/var/spack/repos/builtin/packages/xclipboard/package.py +++ b/var/spack/repos/builtin/packages/xclipboard/package.py @@ -12,7 +12,7 @@ class Xclipboard(AutotoolsPackage, XorgPackage): CLIPBOARD selections for later use. It stores each CLIPBOARD selection as a separate string, each of which can be selected.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xclipboard" + homepage = "https://cgit.freedesktop.org/xorg/app/xclipboard" xorg_mirror_path = "app/xclipboard-1.1.3.tar.gz" version('1.1.3', sha256='a8c335cf166cbb27ff86569503db7e639f85741ad199bfb3ba45dd0cfda3da7f') diff --git a/var/spack/repos/builtin/packages/xclock/package.py b/var/spack/repos/builtin/packages/xclock/package.py index 834005fb481..edcdf8df092 100644 --- a/var/spack/repos/builtin/packages/xclock/package.py +++ b/var/spack/repos/builtin/packages/xclock/package.py @@ -11,7 +11,7 @@ class Xclock(AutotoolsPackage, XorgPackage): the time in analog or digital form, continuously updated at a frequency which may be specified by the user.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xclock" + homepage = "https://cgit.freedesktop.org/xorg/app/xclock" xorg_mirror_path = "app/xclock-1.0.7.tar.gz" version('1.0.7', sha256='e730bd575938d5628ef47003a9d4d41b882621798227f5d0c12f4a26365ed1b5') diff --git a/var/spack/repos/builtin/packages/xcmiscproto/package.py b/var/spack/repos/builtin/packages/xcmiscproto/package.py index 85949760498..87f9145188d 100644 --- a/var/spack/repos/builtin/packages/xcmiscproto/package.py +++ b/var/spack/repos/builtin/packages/xcmiscproto/package.py @@ -12,7 +12,7 @@ class Xcmiscproto(AutotoolsPackage, XorgPackage): This extension defines a protocol that provides Xlib two ways to query the server for available resource IDs.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/xcmiscproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/xcmiscproto" xorg_mirror_path = "proto/xcmiscproto-1.2.2.tar.gz" version('1.2.2', sha256='48013cfbe4bd5580925a854a43e2bccbb4c7a5a31128070644617b6dc7f8ef85') diff --git a/var/spack/repos/builtin/packages/xcmsdb/package.py b/var/spack/repos/builtin/packages/xcmsdb/package.py index ec9c9549e1b..b3a0d5b3aa1 100644 --- a/var/spack/repos/builtin/packages/xcmsdb/package.py +++ b/var/spack/repos/builtin/packages/xcmsdb/package.py @@ -12,7 +12,7 @@ class Xcmsdb(AutotoolsPackage, XorgPackage): specified in section 7, Device Color Characterization, of the X11 Inter-Client Communication Conventions Manual (ICCCM).""" - homepage = "http://cgit.freedesktop.org/xorg/app/xcmsdb" + homepage = "https://cgit.freedesktop.org/xorg/app/xcmsdb" xorg_mirror_path = "app/xcmsdb-1.0.5.tar.gz" version('1.0.5', sha256='8442352ee5eb3ea0d3a489c26d734e784ef6964150c2a173401d0dc6638ca236') diff --git a/var/spack/repos/builtin/packages/xcompmgr/package.py b/var/spack/repos/builtin/packages/xcompmgr/package.py index 20f1e857ca8..1776227dcc0 100644 --- a/var/spack/repos/builtin/packages/xcompmgr/package.py +++ b/var/spack/repos/builtin/packages/xcompmgr/package.py @@ -11,7 +11,7 @@ class Xcompmgr(AutotoolsPackage, XorgPackage): XFIXES, DAMAGE, RENDER, and COMPOSITE extensions. It enables basic eye-candy effects.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xcompmgr" + homepage = "https://cgit.freedesktop.org/xorg/app/xcompmgr" xorg_mirror_path = "app/xcompmgr-1.1.7.tar.gz" version('1.1.7', sha256='ef4b23c370f99403bbd9b6227f8aa4edc3bc83fc6d57ee71f6f442397cef505a') diff --git a/var/spack/repos/builtin/packages/xconsole/package.py b/var/spack/repos/builtin/packages/xconsole/package.py index 628be26d8ad..64d5dab629f 100644 --- a/var/spack/repos/builtin/packages/xconsole/package.py +++ b/var/spack/repos/builtin/packages/xconsole/package.py @@ -10,7 +10,7 @@ class Xconsole(AutotoolsPackage, XorgPackage): """xconsole displays in a X11 window the messages which are usually sent to /dev/console.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xconsole" + homepage = "https://cgit.freedesktop.org/xorg/app/xconsole" xorg_mirror_path = "app/xconsole-1.0.6.tar.gz" version('1.0.6', sha256='28151453a0a687462516de133bac0287b488a2ff56da78331fee34bc1bf3e7d5') diff --git a/var/spack/repos/builtin/packages/xcursor-themes/package.py b/var/spack/repos/builtin/packages/xcursor-themes/package.py index e9b723b5bbc..bce2792562c 100644 --- a/var/spack/repos/builtin/packages/xcursor-themes/package.py +++ b/var/spack/repos/builtin/packages/xcursor-themes/package.py @@ -11,7 +11,7 @@ class XcursorThemes(Package, XorgPackage): originally created for the XFree86 Project, and now shipped as part of the X.Org software distribution.""" - homepage = "http://cgit.freedesktop.org/xorg/data/cursors" + homepage = "https://cgit.freedesktop.org/xorg/data/cursors" xorg_mirror_path = "data/xcursor-themes-1.0.4.tar.gz" version('1.0.4', sha256='8ed23bab13a4010fe4e95b37eefb634e31ac7cb8240b8b3b7d919c3a2db09503') diff --git a/var/spack/repos/builtin/packages/xcursorgen/package.py b/var/spack/repos/builtin/packages/xcursorgen/package.py index 1836d64dde5..a5629720773 100644 --- a/var/spack/repos/builtin/packages/xcursorgen/package.py +++ b/var/spack/repos/builtin/packages/xcursorgen/package.py @@ -9,7 +9,7 @@ class Xcursorgen(AutotoolsPackage, XorgPackage): """xcursorgen prepares X11 cursor sets for use with libXcursor.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xcursorgen" + homepage = "https://cgit.freedesktop.org/xorg/app/xcursorgen" xorg_mirror_path = "app/xcursorgen-1.0.6.tar.gz" version('1.0.6', sha256='4559f2b6eaa93de4cb6968679cf40e39bcbe969b62ebf3ff84f6780f8048ef8c') diff --git a/var/spack/repos/builtin/packages/xdbedizzy/package.py b/var/spack/repos/builtin/packages/xdbedizzy/package.py index cc7227e2613..2781ac25eec 100644 --- a/var/spack/repos/builtin/packages/xdbedizzy/package.py +++ b/var/spack/repos/builtin/packages/xdbedizzy/package.py @@ -10,7 +10,7 @@ class Xdbedizzy(AutotoolsPackage, XorgPackage): """xdbedizzy is a demo of the X11 Double Buffer Extension (DBE) creating a double buffered spinning scene.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xdbedizzy" + homepage = "https://cgit.freedesktop.org/xorg/app/xdbedizzy" xorg_mirror_path = "app/xdbedizzy-1.1.0.tar.gz" version('1.1.0', sha256='810e88b087b76f8b5993db4fc5165de3e5d29b0d4bf0e893750ee408fc7a5c0a') diff --git a/var/spack/repos/builtin/packages/xditview/package.py b/var/spack/repos/builtin/packages/xditview/package.py index 82e834b02ac..fcadbd360b7 100644 --- a/var/spack/repos/builtin/packages/xditview/package.py +++ b/var/spack/repos/builtin/packages/xditview/package.py @@ -9,7 +9,7 @@ class Xditview(AutotoolsPackage, XorgPackage): """xditview displays ditroff output on an X display.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xditview" + homepage = "https://cgit.freedesktop.org/xorg/app/xditview" xorg_mirror_path = "app/xditview-1.0.4.tar.gz" version('1.0.4', sha256='73ad88cfc879edcc6ede65999c11d670da27575388126795d71f3ad60286d379') diff --git a/var/spack/repos/builtin/packages/xdm/package.py b/var/spack/repos/builtin/packages/xdm/package.py index 434788ca612..c7dc9b11839 100644 --- a/var/spack/repos/builtin/packages/xdm/package.py +++ b/var/spack/repos/builtin/packages/xdm/package.py @@ -9,7 +9,7 @@ class Xdm(AutotoolsPackage, XorgPackage): """X Display Manager / XDMCP server.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xdm" + homepage = "https://cgit.freedesktop.org/xorg/app/xdm" xorg_mirror_path = "app/xdm-1.1.11.tar.gz" version('1.1.11', sha256='38c544a986143b1f24566c1a0111486b339b92224b927be78714eeeedca12a14') diff --git a/var/spack/repos/builtin/packages/xdmf3/package.py b/var/spack/repos/builtin/packages/xdmf3/package.py index b4ff900c360..17b2084d0cf 100644 --- a/var/spack/repos/builtin/packages/xdmf3/package.py +++ b/var/spack/repos/builtin/packages/xdmf3/package.py @@ -12,7 +12,7 @@ class Xdmf3(CMakePackage): codes and tools. """ - homepage = "http://xdmf.org" + homepage = "https://xdmf.org" git = "https://gitlab.kitware.com/xdmf/xdmf.git" # There is no official release of XDMF and development has largely ceased, diff --git a/var/spack/repos/builtin/packages/xdpyinfo/package.py b/var/spack/repos/builtin/packages/xdpyinfo/package.py index df91bfc3bf7..e9cc84dcdc5 100644 --- a/var/spack/repos/builtin/packages/xdpyinfo/package.py +++ b/var/spack/repos/builtin/packages/xdpyinfo/package.py @@ -14,7 +14,7 @@ class Xdpyinfo(AutotoolsPackage, XorgPackage): and the server, and the different types of screens, visuals, and X11 protocol extensions that are available.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xdpyinfo" + homepage = "https://cgit.freedesktop.org/xorg/app/xdpyinfo" xorg_mirror_path = "app/xdpyinfo-1.3.2.tar.gz" version('1.3.2', sha256='ef39935e8e9b328e54a85d6218d410d6939482da6058db1ee1b39749d98cbcf2') diff --git a/var/spack/repos/builtin/packages/xdriinfo/package.py b/var/spack/repos/builtin/packages/xdriinfo/package.py index 0c64b34b7d5..c1d471ba22e 100644 --- a/var/spack/repos/builtin/packages/xdriinfo/package.py +++ b/var/spack/repos/builtin/packages/xdriinfo/package.py @@ -9,7 +9,7 @@ class Xdriinfo(AutotoolsPackage, XorgPackage): """xdriinfo - query configuration information of X11 DRI drivers.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xdriinfo" + homepage = "https://cgit.freedesktop.org/xorg/app/xdriinfo" xorg_mirror_path = "app/xdriinfo-1.0.5.tar.gz" version('1.0.5', sha256='e4e6abaa4591c540ab63133927a6cebf0a5f4d27dcd978878ab4a422d62a838e') diff --git a/var/spack/repos/builtin/packages/xeus/package.py b/var/spack/repos/builtin/packages/xeus/package.py index b4601508f5c..8f3c899a051 100644 --- a/var/spack/repos/builtin/packages/xeus/package.py +++ b/var/spack/repos/builtin/packages/xeus/package.py @@ -13,31 +13,52 @@ class Xeus(CMakePackage): url = "https://github.com/QuantStack/xeus/archive/0.14.1.tar.gz" git = "https://github.com/QuantStack/xeus.git" + maintainers = ['tomstitt'] + version('develop', branch='master') + version('1.0.4', sha256='7324ff013eb97d579fd3b6f9770a13f8863d6046c8bbcdbe2fc7d2ac02f0161f') version('0.15.0', sha256='bc99235b24d5757dc129f3ed531501fb0d0667913927ed39ee24281952649183') version('0.14.1', sha256='a6815845d4522ec279f142d3b4e92ef52cd80847b512146a65f256a77e058cfe') variant('examples', default=False, description="Build examples") + variant('shared', default=True, description="Build shared libraries") conflicts('%gcc@:4.8') conflicts('%clang@:3.6') conflicts('%intel@:17') depends_on('libzmq@4.2.5:-libsodium') - depends_on('cppzmq@4.3.0:') - depends_on('cryptopp@7.0.0:') - depends_on('xtl@0.4.0:') - depends_on('nlohmann-json@3.2.0', when='@develop,0.15.0:') + depends_on('cppzmq@4.7.1:', when='@1.0.4:') + depends_on('cppzmq@4.3.0:', when='@:0.15.0') + + depends_on('cryptopp@7.0.0:', when='@:0.15.0') + + depends_on('openssl@1.0.1:', when='@1.0.4:') + + depends_on('xtl@0.4.0:', when='@:0.15.0') + depends_on('xtl@0.7.0:0.7.999', when='@1.0.4:') + + depends_on('nlohmann-json@3.4.0:', when='@1.0.4:') + depends_on('nlohmann-json@3.2.0', when='@0.15.0') depends_on('nlohmann-json@3.1.1', when='@0.14.1') - depends_on('uuid') + + depends_on('uuid', when='platform=linux') # finds cryptopp not built with cmake, removes c++17 attribute # in check_cxx_source_compiles - patch('cmake_find_cryptopp_and_check_cxx_compatibility.patch') + patch('cmake_find_cryptopp_and_check_cxx_compatibility.patch', when='@:0.15.0') def cmake_args(self): - args = [ - self.define_from_variant('BUILD_EXAMPLES', 'examples') - ] + args = [] + + if "@:0.15.0" in self.spec: + args.append(self.define_from_variant('BUILD_EXAMPLES', 'examples')) + + elif "@1.0.4:" in self.spec: + args.extend([ + self.define_from_variant('XEUS_BUILD_SHARED_LIBS', 'shared'), + self.define('XEUS_BUILD_TESTS', self.run_tests), + self.define('XEUS_DOWNLOAD_GTEST', self.run_tests) + ]) return args diff --git a/var/spack/repos/builtin/packages/xev/package.py b/var/spack/repos/builtin/packages/xev/package.py index 842ccde5d03..c4dba1e4db9 100644 --- a/var/spack/repos/builtin/packages/xev/package.py +++ b/var/spack/repos/builtin/packages/xev/package.py @@ -15,7 +15,7 @@ class Xev(AutotoolsPackage, XorgPackage): debugging and development tool, and should not be needed in normal usage.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xev" + homepage = "https://cgit.freedesktop.org/xorg/app/xev" xorg_mirror_path = "app/xev-1.2.2.tar.gz" version('1.2.2', sha256='e4c0c7b6f411e8b9731f2bb10d729d167bd00480d172c28b62607a6ea9e45c57') diff --git a/var/spack/repos/builtin/packages/xextproto/package.py b/var/spack/repos/builtin/packages/xextproto/package.py index cdf299f51f7..f7af7b1391c 100644 --- a/var/spack/repos/builtin/packages/xextproto/package.py +++ b/var/spack/repos/builtin/packages/xextproto/package.py @@ -9,7 +9,7 @@ class Xextproto(AutotoolsPackage, XorgPackage): """X Protocol Extensions.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/xextproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/xextproto" xorg_mirror_path = "proto/xextproto-7.3.0.tar.gz" version('7.3.0', sha256='1b1bcdf91221e78c6c33738667a57bd9aaa63d5953174ad8ed9929296741c9f5') diff --git a/var/spack/repos/builtin/packages/xeyes/package.py b/var/spack/repos/builtin/packages/xeyes/package.py index abf84807bb7..af7c0050386 100644 --- a/var/spack/repos/builtin/packages/xeyes/package.py +++ b/var/spack/repos/builtin/packages/xeyes/package.py @@ -9,7 +9,7 @@ class Xeyes(AutotoolsPackage, XorgPackage): """xeyes - a follow the mouse X demo, using the X SHAPE extension""" - homepage = "http://cgit.freedesktop.org/xorg/app/xeyes" + homepage = "https://cgit.freedesktop.org/xorg/app/xeyes" xorg_mirror_path = "app/xeyes-1.1.1.tar.gz" version('1.1.1', sha256='3a1871a560ab87c72a2e2ecb7fd582474448faec3e254c9bd8bead428ab1bca3') diff --git a/var/spack/repos/builtin/packages/xf86dga/package.py b/var/spack/repos/builtin/packages/xf86dga/package.py index ad5c89a766b..928743163c6 100644 --- a/var/spack/repos/builtin/packages/xf86dga/package.py +++ b/var/spack/repos/builtin/packages/xf86dga/package.py @@ -9,7 +9,7 @@ class Xf86dga(AutotoolsPackage, XorgPackage): """dga is a simple test client for the XFree86-DGA extension.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xf86dga" + homepage = "https://cgit.freedesktop.org/xorg/app/xf86dga" xorg_mirror_path = "app/xf86dga-1.0.3.tar.gz" version('1.0.3', sha256='acbf89f60a99b18c161d2beb0e4145a0fdf6c516f7f45fa52e547d88491f75c9') diff --git a/var/spack/repos/builtin/packages/xf86driproto/package.py b/var/spack/repos/builtin/packages/xf86driproto/package.py index 0bf16815889..de9d15b6858 100644 --- a/var/spack/repos/builtin/packages/xf86driproto/package.py +++ b/var/spack/repos/builtin/packages/xf86driproto/package.py @@ -13,7 +13,7 @@ class Xf86driproto(AutotoolsPackage, XorgPackage): the video hardware without requiring data to be passed through the X server.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/xf86driproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/xf86driproto" xorg_mirror_path = "proto/xf86driproto-2.1.1.tar.gz" version('2.1.1', sha256='18ff8de129b89fa24a412a1ec1799f8687f96c186c655b44b1a714a3a5d15d6c') diff --git a/var/spack/repos/builtin/packages/xf86miscproto/package.py b/var/spack/repos/builtin/packages/xf86miscproto/package.py index 0f3b1934c4d..9ffe00442fb 100644 --- a/var/spack/repos/builtin/packages/xf86miscproto/package.py +++ b/var/spack/repos/builtin/packages/xf86miscproto/package.py @@ -12,7 +12,7 @@ class Xf86miscproto(AutotoolsPackage, XorgPackage): supported by the XFree86 X server and versions of the Xorg X server prior to Xorg 1.6.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/xf86miscproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/xf86miscproto" xorg_mirror_path = "proto/xf86miscproto-0.9.3.tar.gz" version('0.9.3', sha256='1b05cb76ac165c703b82bdd270b86ebbc4d42a7d04d299050b07ba2099c31352') diff --git a/var/spack/repos/builtin/packages/xf86vidmodeproto/package.py b/var/spack/repos/builtin/packages/xf86vidmodeproto/package.py index 0e9d56b642d..7d5712a7454 100644 --- a/var/spack/repos/builtin/packages/xf86vidmodeproto/package.py +++ b/var/spack/repos/builtin/packages/xf86vidmodeproto/package.py @@ -12,7 +12,7 @@ class Xf86vidmodeproto(AutotoolsPackage, XorgPackage): This extension defines a protocol for dynamically configuring modelines and gamma.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/xf86vidmodeproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/xf86vidmodeproto" xorg_mirror_path = "proto/xf86vidmodeproto-2.3.1.tar.gz" version('2.3.1', sha256='c3512b11cefa7558576551f8582c6e7071c8a24d78176059d94b84b48b262979') diff --git a/var/spack/repos/builtin/packages/xfd/package.py b/var/spack/repos/builtin/packages/xfd/package.py index 1d1c0e60f20..a29cd05bc3b 100644 --- a/var/spack/repos/builtin/packages/xfd/package.py +++ b/var/spack/repos/builtin/packages/xfd/package.py @@ -10,7 +10,7 @@ class Xfd(AutotoolsPackage, XorgPackage): """xfd - display all the characters in a font using either the X11 core protocol or libXft2.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xfd" + homepage = "https://cgit.freedesktop.org/xorg/app/xfd" xorg_mirror_path = "app/xfd-1.1.2.tar.gz" version('1.1.3', sha256='4a1bd18f324c239b1a807ed4ccaeb172ba771d65a7307fb492d8dd8d27f01527') diff --git a/var/spack/repos/builtin/packages/xfindproxy/package.py b/var/spack/repos/builtin/packages/xfindproxy/package.py index f40a1d334a8..a0a49bde365 100644 --- a/var/spack/repos/builtin/packages/xfindproxy/package.py +++ b/var/spack/repos/builtin/packages/xfindproxy/package.py @@ -14,7 +14,7 @@ class Xfindproxy(AutotoolsPackage, XorgPackage): services, starts new proxies when necessary, and makes sure that proxies are shared whenever possible.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xfindproxy" + homepage = "https://cgit.freedesktop.org/xorg/app/xfindproxy" xorg_mirror_path = "app/xfindproxy-1.0.4.tar.gz" version('1.0.4', sha256='fa6152fcf9c16fbb2ef52259731df5df899a39a86894b0508456613f26ff924a') diff --git a/var/spack/repos/builtin/packages/xfontsel/package.py b/var/spack/repos/builtin/packages/xfontsel/package.py index 472d598dda6..4cc6360663f 100644 --- a/var/spack/repos/builtin/packages/xfontsel/package.py +++ b/var/spack/repos/builtin/packages/xfontsel/package.py @@ -11,7 +11,7 @@ class Xfontsel(AutotoolsPackage, XorgPackage): protocol fonts known to your X server, examine samples of each, and retrieve the X Logical Font Description ("XLFD") full name for a font.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xfontsel" + homepage = "https://cgit.freedesktop.org/xorg/app/xfontsel" xorg_mirror_path = "app/xfontsel-1.0.5.tar.gz" version('1.0.5', sha256='9b3ad0cc274398d22be9fa7efe930f4e3749fd4b1b61d9c31a7fb6c1f1ff766e') diff --git a/var/spack/repos/builtin/packages/xforms/package.py b/var/spack/repos/builtin/packages/xforms/package.py index 74faa5aa221..ad2a48df938 100644 --- a/var/spack/repos/builtin/packages/xforms/package.py +++ b/var/spack/repos/builtin/packages/xforms/package.py @@ -10,7 +10,7 @@ class Xforms(AutotoolsPackage): """This is the Free Software distribution of the XForms Library, a graphical user interface toolkit for X Window Systems.""" - homepage = "http://www.nongnu.org/xforms/" + homepage = "https://www.nongnu.org/xforms/" url = "http://download.savannah.gnu.org/releases/xforms/xforms-1.0.91.tar.gz" version('1.2.4', sha256='78cc6b07071bbeaa1f906e0a22d5e9980e48f8913577bc082d661afe5cb75696') diff --git a/var/spack/repos/builtin/packages/xfs/package.py b/var/spack/repos/builtin/packages/xfs/package.py index a7e7b13fca7..a783143bcc8 100644 --- a/var/spack/repos/builtin/packages/xfs/package.py +++ b/var/spack/repos/builtin/packages/xfs/package.py @@ -9,7 +9,7 @@ class Xfs(AutotoolsPackage, XorgPackage): """X Font Server.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xfs" + homepage = "https://cgit.freedesktop.org/xorg/app/xfs" xorg_mirror_path = "app/xfs-1.1.4.tar.gz" version('1.1.4', sha256='28f89b854d1ff14fa1efa5b408e5e1c4f6a145420310073c4e44705feeb6d23b') diff --git a/var/spack/repos/builtin/packages/xfsdump/package.py b/var/spack/repos/builtin/packages/xfsdump/package.py index 9ae60c3772e..ea2fd28f6c6 100644 --- a/var/spack/repos/builtin/packages/xfsdump/package.py +++ b/var/spack/repos/builtin/packages/xfsdump/package.py @@ -9,7 +9,7 @@ class Xfsdump(MakefilePackage): """XFS Dump Tools.""" - homepage = "http://oss.sgi.com/projects/xfs/" + homepage = "https://github.com/pcacjr/xfsdump" url = "https://github.com/pcacjr/xfsdump/archive/v3.1.6.tar.gz" version('3.1.6', sha256='bbf659758107cad9b41cf3001df121e6428485b341109a1f1a952fd477a7010b') diff --git a/var/spack/repos/builtin/packages/xfsinfo/package.py b/var/spack/repos/builtin/packages/xfsinfo/package.py index d85373a34b8..ce21c9a231c 100644 --- a/var/spack/repos/builtin/packages/xfsinfo/package.py +++ b/var/spack/repos/builtin/packages/xfsinfo/package.py @@ -13,7 +13,7 @@ class Xfsinfo(AutotoolsPackage, XorgPackage): clients and the server, and the font catalogues and alternate servers that are available.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xfsinfo" + homepage = "https://cgit.freedesktop.org/xorg/app/xfsinfo" xorg_mirror_path = "app/xfsinfo-1.0.5.tar.gz" version('1.0.5', sha256='56a0492ed2cde272dc8f4cff4ba0970ccb900e51c10bb8ec62747483d095fd69') diff --git a/var/spack/repos/builtin/packages/xfsprogs/package.py b/var/spack/repos/builtin/packages/xfsprogs/package.py index 7657e01bf0a..b35860a8d0f 100644 --- a/var/spack/repos/builtin/packages/xfsprogs/package.py +++ b/var/spack/repos/builtin/packages/xfsprogs/package.py @@ -9,7 +9,7 @@ class Xfsprogs(AutotoolsPackage): """XFS User Tools.""" - homepage = "http://oss.sgi.com/projects/xfs/" + homepage = "https://github.com/mtanski/xfsprogs" url = "http://kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-4.17.0.tar.xz" version('5.11.0', sha256='0e9c390fcdbb8a79e1b8f5e6e25fd529fc9f9c2ef8f2d5e647b3556b82d1b353') diff --git a/var/spack/repos/builtin/packages/xfwp/package.py b/var/spack/repos/builtin/packages/xfwp/package.py index c5ada1a2201..0f8493c0772 100644 --- a/var/spack/repos/builtin/packages/xfwp/package.py +++ b/var/spack/repos/builtin/packages/xfwp/package.py @@ -9,7 +9,7 @@ class Xfwp(AutotoolsPackage, XorgPackage): """xfwp proxies X11 protocol connections, such as through a firewall.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xfwp" + homepage = "https://cgit.freedesktop.org/xorg/app/xfwp" xorg_mirror_path = "app/xfwp-1.0.3.tar.gz" version('1.0.3', sha256='6fe243bde0374637e271a3f038b5d6d79a04621fc18162727782392069c5c04d') diff --git a/var/spack/repos/builtin/packages/xgamma/package.py b/var/spack/repos/builtin/packages/xgamma/package.py index 07fcd6f8721..d80412b1420 100644 --- a/var/spack/repos/builtin/packages/xgamma/package.py +++ b/var/spack/repos/builtin/packages/xgamma/package.py @@ -10,7 +10,7 @@ class Xgamma(AutotoolsPackage, XorgPackage): """xgamma allows X users to query and alter the gamma correction of a monitor via the X video mode extension (XFree86-VidModeExtension).""" - homepage = "http://cgit.freedesktop.org/xorg/app/xgamma" + homepage = "https://cgit.freedesktop.org/xorg/app/xgamma" xorg_mirror_path = "app/xgamma-1.0.6.tar.gz" version('1.0.6', sha256='66da1d67e84146518b69481c6283c5d8f1027ace9ff7e214d3f81954842e796a') diff --git a/var/spack/repos/builtin/packages/xgc/package.py b/var/spack/repos/builtin/packages/xgc/package.py index 8466e5f5958..754d21c8462 100644 --- a/var/spack/repos/builtin/packages/xgc/package.py +++ b/var/spack/repos/builtin/packages/xgc/package.py @@ -10,7 +10,7 @@ class Xgc(AutotoolsPackage, XorgPackage): """xgc is an X11 graphics demo that shows various features of the X11 core protocol graphics primitives.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xgc" + homepage = "https://cgit.freedesktop.org/xorg/app/xgc" xorg_mirror_path = "app/xgc-1.0.5.tar.gz" version('1.0.5', sha256='16645fb437699bad2360f36f54f42320e33fce5a0ab9a086f6e0965963205b02') diff --git a/var/spack/repos/builtin/packages/xhost/package.py b/var/spack/repos/builtin/packages/xhost/package.py index 4ad318a2737..588331c9f44 100644 --- a/var/spack/repos/builtin/packages/xhost/package.py +++ b/var/spack/repos/builtin/packages/xhost/package.py @@ -10,7 +10,7 @@ class Xhost(AutotoolsPackage, XorgPackage): """xhost is used to manage the list of host names or user names allowed to make connections to the X server.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xhost" + homepage = "https://cgit.freedesktop.org/xorg/app/xhost" xorg_mirror_path = "app/xhost-1.0.7.tar.gz" version('1.0.7', sha256='8dd1b6245dfbdef45a64a18ea618f233f77432c2f30881b1db9dc40d510d9490') diff --git a/var/spack/repos/builtin/packages/xineramaproto/package.py b/var/spack/repos/builtin/packages/xineramaproto/package.py index 33849b3bf21..b3daa1b24f2 100644 --- a/var/spack/repos/builtin/packages/xineramaproto/package.py +++ b/var/spack/repos/builtin/packages/xineramaproto/package.py @@ -12,7 +12,7 @@ class Xineramaproto(AutotoolsPackage, XorgPackage): This is an X extension that allows multiple physical screens controlled by a single X server to appear as a single screen.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/xineramaproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/xineramaproto" xorg_mirror_path = "proto/xineramaproto-1.2.1.tar.gz" version('1.2.1', sha256='d99e121edf7b310008d7371ac5dbe3aa2810996d476b754dc78477cc26e5e7c1') diff --git a/var/spack/repos/builtin/packages/xinit/package.py b/var/spack/repos/builtin/packages/xinit/package.py index 922339532ef..086351e2504 100644 --- a/var/spack/repos/builtin/packages/xinit/package.py +++ b/var/spack/repos/builtin/packages/xinit/package.py @@ -11,7 +11,7 @@ class Xinit(AutotoolsPackage, XorgPackage): first client program on systems that are not using a display manager such as xdm.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xinit" + homepage = "https://cgit.freedesktop.org/xorg/app/xinit" xorg_mirror_path = "app/xinit-1.3.4.tar.gz" version('1.3.4', sha256='754c284875defa588951c1d3d2b20897d3b84918d0a97cb5a4724b00c0da0746') diff --git a/var/spack/repos/builtin/packages/xinput/package.py b/var/spack/repos/builtin/packages/xinput/package.py index d26ddd5b61e..3003be55822 100644 --- a/var/spack/repos/builtin/packages/xinput/package.py +++ b/var/spack/repos/builtin/packages/xinput/package.py @@ -9,7 +9,7 @@ class Xinput(AutotoolsPackage, XorgPackage): """xinput is a utility to configure and test XInput devices.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xinput" + homepage = "https://cgit.freedesktop.org/xorg/app/xinput" xorg_mirror_path = "app/xinput-1.6.2.tar.gz" version('1.6.2', sha256='2c8ca5ff2a8703cb7d898629a4311db720dbd30d0c162bfe37f18849a727bd42') diff --git a/var/spack/repos/builtin/packages/xkbevd/package.py b/var/spack/repos/builtin/packages/xkbevd/package.py index 2ed9670bae6..8a4c6aaa37f 100644 --- a/var/spack/repos/builtin/packages/xkbevd/package.py +++ b/var/spack/repos/builtin/packages/xkbevd/package.py @@ -9,7 +9,7 @@ class Xkbevd(AutotoolsPackage, XorgPackage): """XKB event daemon demo.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xkbevd" + homepage = "https://cgit.freedesktop.org/xorg/app/xkbevd" xorg_mirror_path = "app/xkbevd-1.1.4.tar.gz" version('1.1.4', sha256='97dc2c19617da115c3d1183807338fa78c3fd074d8355d10a484f7b1c5b18459') diff --git a/var/spack/repos/builtin/packages/xkbprint/package.py b/var/spack/repos/builtin/packages/xkbprint/package.py index bfaaad82b7a..c54fd16f96e 100644 --- a/var/spack/repos/builtin/packages/xkbprint/package.py +++ b/var/spack/repos/builtin/packages/xkbprint/package.py @@ -10,7 +10,7 @@ class Xkbprint(AutotoolsPackage, XorgPackage): """xkbprint generates a printable or encapsulated PostScript description of an XKB keyboard description.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xkbprint" + homepage = "https://cgit.freedesktop.org/xorg/app/xkbprint" xorg_mirror_path = "app/xkbprint-1.0.4.tar.gz" version('1.0.4', sha256='169ebbf57fc8b7685c577c73a435998a38c27e0d135ce0a55fccc64cbebec768') diff --git a/var/spack/repos/builtin/packages/xkbutils/package.py b/var/spack/repos/builtin/packages/xkbutils/package.py index 686a72e8378..effd9e0c15e 100644 --- a/var/spack/repos/builtin/packages/xkbutils/package.py +++ b/var/spack/repos/builtin/packages/xkbutils/package.py @@ -10,7 +10,7 @@ class Xkbutils(AutotoolsPackage, XorgPackage): """xkbutils is a collection of small utilities utilizing the XKeyboard (XKB) extension to the X11 protocol.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xkbutils" + homepage = "https://cgit.freedesktop.org/xorg/app/xkbutils" xorg_mirror_path = "app/xkbutils-1.0.4.tar.gz" version('1.0.4', sha256='cf31303cbdd6a86c34cab46f4b6e0c7acd2e84578593b334a146142894529bca') diff --git a/var/spack/repos/builtin/packages/xkill/package.py b/var/spack/repos/builtin/packages/xkill/package.py index fa87924552b..69cb307d28e 100644 --- a/var/spack/repos/builtin/packages/xkill/package.py +++ b/var/spack/repos/builtin/packages/xkill/package.py @@ -11,7 +11,7 @@ class Xkill(AutotoolsPackage, XorgPackage): clients. This program is very dangerous, but is useful for aborting programs that have displayed undesired windows on a user's screen.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xkill" + homepage = "https://cgit.freedesktop.org/xorg/app/xkill" xorg_mirror_path = "app/xkill-1.0.4.tar.gz" version('1.0.4', sha256='f80115f2dcca3d4b61f3c28188752c21ca7b2718b54b6e0274c0497a7f827da0') diff --git a/var/spack/repos/builtin/packages/xload/package.py b/var/spack/repos/builtin/packages/xload/package.py index c4ae7501b7b..33d881b1435 100644 --- a/var/spack/repos/builtin/packages/xload/package.py +++ b/var/spack/repos/builtin/packages/xload/package.py @@ -10,7 +10,7 @@ class Xload(AutotoolsPackage, XorgPackage): """xload displays a periodically updating histogram of the system load average.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xload" + homepage = "https://cgit.freedesktop.org/xorg/app/xload" xorg_mirror_path = "app/xload-1.1.2.tar.gz" version('1.1.2', sha256='4863ad339d22c41a0ca030dc5886404f5ae8b8c47cd5e09f0e36407edbdbe769') diff --git a/var/spack/repos/builtin/packages/xlogo/package.py b/var/spack/repos/builtin/packages/xlogo/package.py index 30d741a5c22..d74cfb9e411 100644 --- a/var/spack/repos/builtin/packages/xlogo/package.py +++ b/var/spack/repos/builtin/packages/xlogo/package.py @@ -9,7 +9,7 @@ class Xlogo(AutotoolsPackage, XorgPackage): """The xlogo program simply displays the X Window System logo.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xlogo" + homepage = "https://cgit.freedesktop.org/xorg/app/xlogo" xorg_mirror_path = "app/xlogo-1.0.4.tar.gz" version('1.0.4', sha256='0072eb3b41af77d5edfafb12998c7dd875f2795dc94735a998fd2ed8fc246e57') diff --git a/var/spack/repos/builtin/packages/xlsatoms/package.py b/var/spack/repos/builtin/packages/xlsatoms/package.py index a05b8637654..d317731586b 100644 --- a/var/spack/repos/builtin/packages/xlsatoms/package.py +++ b/var/spack/repos/builtin/packages/xlsatoms/package.py @@ -9,7 +9,7 @@ class Xlsatoms(AutotoolsPackage, XorgPackage): """xlsatoms lists the interned atoms defined on an X11 server.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xlsatoms" + homepage = "https://cgit.freedesktop.org/xorg/app/xlsatoms" xorg_mirror_path = "app/xlsatoms-1.1.2.tar.gz" version('1.1.2', sha256='5400e22211795e40c4c4d28a048250f92bfb8c373004f0e654a2ad3138c2b36d') diff --git a/var/spack/repos/builtin/packages/xlsclients/package.py b/var/spack/repos/builtin/packages/xlsclients/package.py index da8df482393..2542dcbb505 100644 --- a/var/spack/repos/builtin/packages/xlsclients/package.py +++ b/var/spack/repos/builtin/packages/xlsclients/package.py @@ -10,7 +10,7 @@ class Xlsclients(AutotoolsPackage, XorgPackage): """xlsclients is a utility for listing information about the client applications running on a X11 server.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xlsclients" + homepage = "https://cgit.freedesktop.org/xorg/app/xlsclients" xorg_mirror_path = "app/xlsclients-1.1.3.tar.gz" version('1.1.3', sha256='4670a4003aae01e9172efb969246c3d8f33481f290aa8726ff50398c838e6994') diff --git a/var/spack/repos/builtin/packages/xlsfonts/package.py b/var/spack/repos/builtin/packages/xlsfonts/package.py index c0b0888ca2b..28de0bce599 100644 --- a/var/spack/repos/builtin/packages/xlsfonts/package.py +++ b/var/spack/repos/builtin/packages/xlsfonts/package.py @@ -10,7 +10,7 @@ class Xlsfonts(AutotoolsPackage, XorgPackage): """xlsfonts lists fonts available from an X server via the X11 core protocol.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xlsfonts" + homepage = "https://cgit.freedesktop.org/xorg/app/xlsfonts" xorg_mirror_path = "app/xlsfonts-1.0.5.tar.gz" version('1.0.5', sha256='2a7aeca1023a3918ad2a1af2258ed63d8f8b6c48e53841b3a3f15fb9a0c008ce') diff --git a/var/spack/repos/builtin/packages/xmag/package.py b/var/spack/repos/builtin/packages/xmag/package.py index 6e802b5c715..4f96c145470 100644 --- a/var/spack/repos/builtin/packages/xmag/package.py +++ b/var/spack/repos/builtin/packages/xmag/package.py @@ -9,7 +9,7 @@ class Xmag(AutotoolsPackage, XorgPackage): """xmag displays a magnified snapshot of a portion of an X11 screen.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xmag" + homepage = "https://cgit.freedesktop.org/xorg/app/xmag" xorg_mirror_path = "app/xmag-1.0.6.tar.gz" version('1.0.6', sha256='07c5ec9114376dcd9a3303a38779e79b949d486f3b832d4a438550357d797aa5') diff --git a/var/spack/repos/builtin/packages/xman/package.py b/var/spack/repos/builtin/packages/xman/package.py index d70099ed04e..ae8f927c10d 100644 --- a/var/spack/repos/builtin/packages/xman/package.py +++ b/var/spack/repos/builtin/packages/xman/package.py @@ -10,7 +10,7 @@ class Xman(AutotoolsPackage, XorgPackage): """xman is a graphical manual page browser using the Athena Widgets (Xaw) toolkit.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xman" + homepage = "https://cgit.freedesktop.org/xorg/app/xman" xorg_mirror_path = "app/xman-1.1.4.tar.gz" version('1.1.4', sha256='72fd0d479624a31d9a7330e5fdd220b7aa144744781f8e78aa12deece86e05c7') diff --git a/var/spack/repos/builtin/packages/xmessage/package.py b/var/spack/repos/builtin/packages/xmessage/package.py index 9d756553497..d4075ad5211 100644 --- a/var/spack/repos/builtin/packages/xmessage/package.py +++ b/var/spack/repos/builtin/packages/xmessage/package.py @@ -11,7 +11,7 @@ class Xmessage(AutotoolsPackage, XorgPackage): on an "okay" button to dismiss it or can select one of several buttons to answer a question. xmessage can also exit after a specified time.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xmessage" + homepage = "https://cgit.freedesktop.org/xorg/app/xmessage" xorg_mirror_path = "app/xmessage-1.0.4.tar.gz" version('1.0.4', sha256='883099c3952c8cace5bd11d3df2e9ca143fc07375997435d5ff4f2d50353acca') diff --git a/var/spack/repos/builtin/packages/xmh/package.py b/var/spack/repos/builtin/packages/xmh/package.py index 2c3ea1d8cb9..b2688c2eac0 100644 --- a/var/spack/repos/builtin/packages/xmh/package.py +++ b/var/spack/repos/builtin/packages/xmh/package.py @@ -11,7 +11,7 @@ class Xmh(AutotoolsPackage, XorgPackage): MH Message Handling System. To actually do things with your mail, it makes calls to the MH package.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xmh" + homepage = "https://cgit.freedesktop.org/xorg/app/xmh" xorg_mirror_path = "app/xmh-1.0.3.tar.gz" version('1.0.3', sha256='f90baf2615a4e1e01232c50cfd36ee4d50ad2fb2f76b8b5831fb796661f194d2') diff --git a/var/spack/repos/builtin/packages/xmodmap/package.py b/var/spack/repos/builtin/packages/xmodmap/package.py index 4f986b24b93..0176baae3d9 100644 --- a/var/spack/repos/builtin/packages/xmodmap/package.py +++ b/var/spack/repos/builtin/packages/xmodmap/package.py @@ -13,7 +13,7 @@ class Xmodmap(AutotoolsPackage, XorgPackage): session startup script to configure the keyboard according to personal tastes.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xmodmap" + homepage = "https://cgit.freedesktop.org/xorg/app/xmodmap" xorg_mirror_path = "app/xmodmap-1.0.9.tar.gz" version('1.0.9', sha256='73427a996f0fcda2a2c7ac96cfc4edd5985aeb13b48053f55ae7f63a668fadef') diff --git a/var/spack/repos/builtin/packages/xmore/package.py b/var/spack/repos/builtin/packages/xmore/package.py index 20d3aa06252..0b8faa8cae7 100644 --- a/var/spack/repos/builtin/packages/xmore/package.py +++ b/var/spack/repos/builtin/packages/xmore/package.py @@ -9,7 +9,7 @@ class Xmore(AutotoolsPackage, XorgPackage): """xmore - plain text display program for the X Window System.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xmore" + homepage = "https://cgit.freedesktop.org/xorg/app/xmore" xorg_mirror_path = "app/xmore-1.0.2.tar.gz" version('1.0.2', sha256='7371631d05986f1111f2026a77e43e048519738cfcc493c6222b66e7b0f309c0') diff --git a/var/spack/repos/builtin/packages/xorg-cf-files/package.py b/var/spack/repos/builtin/packages/xorg-cf-files/package.py index 48c3e6eaac6..83bac90d759 100644 --- a/var/spack/repos/builtin/packages/xorg-cf-files/package.py +++ b/var/spack/repos/builtin/packages/xorg-cf-files/package.py @@ -12,7 +12,7 @@ class XorgCfFiles(AutotoolsPackage, XorgPackage): have not been verified or tested in over a decade), and for many of the libraries formerly delivered in the X.Org monolithic releases.""" - homepage = "http://cgit.freedesktop.org/xorg/util/cf" + homepage = "https://cgit.freedesktop.org/xorg/util/cf" xorg_mirror_path = "util/xorg-cf-files-1.0.6.tar.gz" version('1.0.6', sha256='6d56094e5d1a6c7d7a9576ac3a0fc2c042344509ea900d59f4b23df668b96c7a') diff --git a/var/spack/repos/builtin/packages/xorg-docs/package.py b/var/spack/repos/builtin/packages/xorg-docs/package.py index 9f87d923bbb..6e2b1422c7a 100644 --- a/var/spack/repos/builtin/packages/xorg-docs/package.py +++ b/var/spack/repos/builtin/packages/xorg-docs/package.py @@ -12,7 +12,7 @@ class XorgDocs(AutotoolsPackage, XorgPackage): The preferred documentation format for these documents is DocBook XML.""" - homepage = "http://cgit.freedesktop.org/xorg/doc/xorg-docs" + homepage = "https://cgit.freedesktop.org/xorg/doc/xorg-docs" xorg_mirror_path = "doc/xorg-docs-1.7.1.tar.gz" version('1.7.1', sha256='360707db2ba48f6deeb53d570deca9fa98218af48ead4a726a67f63e3ef63816') diff --git a/var/spack/repos/builtin/packages/xorg-server/package.py b/var/spack/repos/builtin/packages/xorg-server/package.py index 2f942c4ed25..632e38b362a 100644 --- a/var/spack/repos/builtin/packages/xorg-server/package.py +++ b/var/spack/repos/builtin/packages/xorg-server/package.py @@ -10,7 +10,7 @@ class XorgServer(AutotoolsPackage, XorgPackage): """X.Org Server is the free and open source implementation of the display server for the X Window System stewarded by the X.Org Foundation.""" - homepage = "http://cgit.freedesktop.org/xorg/xserver" + homepage = "https://cgit.freedesktop.org/xorg/xserver" xorg_mirror_path = "xserver/xorg-server-1.18.99.901.tar.gz" version('1.18.99.901', sha256='c8425163b588de2ee7e5c8e65b0749f2710f55a7e02a8d1dc83b3630868ceb21') diff --git a/var/spack/repos/builtin/packages/xorg-sgml-doctools/package.py b/var/spack/repos/builtin/packages/xorg-sgml-doctools/package.py index 29ed4812dae..e4b63c57ab8 100644 --- a/var/spack/repos/builtin/packages/xorg-sgml-doctools/package.py +++ b/var/spack/repos/builtin/packages/xorg-sgml-doctools/package.py @@ -11,7 +11,7 @@ class XorgSgmlDoctools(AutotoolsPackage, XorgPackage): sheets used in building/formatting the documentation provided in other X.Org packages.""" - homepage = "http://cgit.freedesktop.org/xorg/doc/xorg-sgml-doctools" + homepage = "https://cgit.freedesktop.org/xorg/doc/xorg-sgml-doctools" xorg_mirror_path = "doc/xorg-sgml-doctools-1.11.tar.gz" version('1.11', sha256='986326d7b4dd2ad298f61d8d41fe3929ac6191c6000d6d7e47a8ffc0c34e7426') diff --git a/var/spack/repos/builtin/packages/xphelloworld/package.py b/var/spack/repos/builtin/packages/xphelloworld/package.py index 1038e91be2a..14ffa23d697 100644 --- a/var/spack/repos/builtin/packages/xphelloworld/package.py +++ b/var/spack/repos/builtin/packages/xphelloworld/package.py @@ -9,7 +9,7 @@ class Xphelloworld(AutotoolsPackage, XorgPackage): """Xprint sample applications.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xphelloworld" + homepage = "https://cgit.freedesktop.org/xorg/app/xphelloworld" xorg_mirror_path = "app/xphelloworld-1.0.1.tar.gz" version('1.0.1', sha256='ead6437c4dc9540698a41e174c9d1ac792de07baeead81935d72cb123196f866') diff --git a/var/spack/repos/builtin/packages/xplsprinters/package.py b/var/spack/repos/builtin/packages/xplsprinters/package.py index 2cbe6558da5..d2c9a6945a4 100644 --- a/var/spack/repos/builtin/packages/xplsprinters/package.py +++ b/var/spack/repos/builtin/packages/xplsprinters/package.py @@ -9,7 +9,7 @@ class Xplsprinters(AutotoolsPackage, XorgPackage): """List Xprint printers.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xplsprinters" + homepage = "https://cgit.freedesktop.org/xorg/app/xplsprinters" xorg_mirror_path = "app/xplsprinters-1.0.1.tar.gz" version('1.0.1', sha256='33377e499429ce3e100fbd7b59153c87ad79bf55872561db08419f69cac4fbfd') diff --git a/var/spack/repos/builtin/packages/xpr/package.py b/var/spack/repos/builtin/packages/xpr/package.py index e19849e7ce8..75206ce0833 100644 --- a/var/spack/repos/builtin/packages/xpr/package.py +++ b/var/spack/repos/builtin/packages/xpr/package.py @@ -10,7 +10,7 @@ class Xpr(AutotoolsPackage, XorgPackage): """xpr takes as input a window dump file produced by xwd and formats it for output on various types of printers.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xpr" + homepage = "https://cgit.freedesktop.org/xorg/app/xpr" xorg_mirror_path = "app/xpr-1.0.4.tar.gz" version('1.0.4', sha256='9ec355388ae363fd40239a3fa56908bb2f3e53b5bfc872cf0182d14d730c6207') diff --git a/var/spack/repos/builtin/packages/xprehashprinterlist/package.py b/var/spack/repos/builtin/packages/xprehashprinterlist/package.py index afb2c1005a9..c71b218a436 100644 --- a/var/spack/repos/builtin/packages/xprehashprinterlist/package.py +++ b/var/spack/repos/builtin/packages/xprehashprinterlist/package.py @@ -9,7 +9,7 @@ class Xprehashprinterlist(AutotoolsPackage, XorgPackage): """Rehash list of Xprint printers.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xprehashprinterlist" + homepage = "https://cgit.freedesktop.org/xorg/app/xprehashprinterlist" xorg_mirror_path = "app/xprehashprinterlist-1.0.1.tar.gz" version('1.0.1', sha256='396986da064b584138cfcff79a8aed12590a9dab24f1cd2d80b08bc1cb896a43') diff --git a/var/spack/repos/builtin/packages/xprop/package.py b/var/spack/repos/builtin/packages/xprop/package.py index 3bae624efc1..d97033c8155 100644 --- a/var/spack/repos/builtin/packages/xprop/package.py +++ b/var/spack/repos/builtin/packages/xprop/package.py @@ -10,7 +10,7 @@ class Xprop(AutotoolsPackage, XorgPackage): """xprop is a command line tool to display and/or set window and font properties of an X server.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xprop" + homepage = "https://cgit.freedesktop.org/xorg/app/xprop" xorg_mirror_path = "app/xprop-1.2.2.tar.gz" version('1.2.2', sha256='3db78771ce8fb8954fb242ed9d4030372523649c5e9c1a9420340020dd0afbc2') diff --git a/var/spack/repos/builtin/packages/xproperty/package.py b/var/spack/repos/builtin/packages/xproperty/package.py new file mode 100644 index 00000000000..80b7e8c14bc --- /dev/null +++ b/var/spack/repos/builtin/packages/xproperty/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2021 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 import * + + +class Xproperty(CMakePackage): + """C++ library providing traitlets-style properties""" + + homepage = "https://github.com/jupyter-xeus/xproperty" + url = "https://github.com/jupyter-xeus/xproperty/archive/0.11.0.tar.gz" + git = "https://github.com/jupyter-xeus/xproperty.git" + + maintainers = ['tomstitt'] + + version('master', branch='master') + version('0.11.0', sha256='bf86a11c6758308aa0aa0f64d8dd24cd3e9d78378467b74002f552bfb75fc0eb') + + depends_on('xtl@0.7.0:0.7.999', when='@0.11.0:') + + # C++14 support + conflicts('%gcc@:4.8') + conflicts('%clang@:3.3') diff --git a/var/spack/repos/builtin/packages/xproto/package.py b/var/spack/repos/builtin/packages/xproto/package.py index d1e27975e85..7169870a751 100644 --- a/var/spack/repos/builtin/packages/xproto/package.py +++ b/var/spack/repos/builtin/packages/xproto/package.py @@ -16,7 +16,7 @@ class Xproto(AutotoolsPackage, XorgPackage): but are depended upon by many other X Window System packages to provide common definitions and porting layer.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/x11proto" + homepage = "https://cgit.freedesktop.org/xorg/proto/x11proto" xorg_mirror_path = "proto/xproto-7.0.31.tar.gz" version('7.0.31', sha256='6d755eaae27b45c5cc75529a12855fed5de5969b367ed05003944cf901ed43c7') diff --git a/var/spack/repos/builtin/packages/xproxymanagementprotocol/package.py b/var/spack/repos/builtin/packages/xproxymanagementprotocol/package.py index 0c590a5b96a..b479dbc5a88 100644 --- a/var/spack/repos/builtin/packages/xproxymanagementprotocol/package.py +++ b/var/spack/repos/builtin/packages/xproxymanagementprotocol/package.py @@ -11,7 +11,7 @@ class Xproxymanagementprotocol(AutotoolsPackage, XorgPackage): way for application servers to easily locate proxy services available to them.""" - homepage = "http://cgit.freedesktop.org/xorg/proto/pmproto" + homepage = "https://cgit.freedesktop.org/xorg/proto/pmproto" xorg_mirror_path = "proto/xproxymanagementprotocol-1.0.3.tar.gz" version('1.0.3', sha256='c1501045ec781f36b6f867611ab2b4e81be542f5c669b2fd0cc4ec1340c42bcf') diff --git a/var/spack/repos/builtin/packages/xrandr/package.py b/var/spack/repos/builtin/packages/xrandr/package.py index 50b2d1d52dc..cfd42f9c4b3 100644 --- a/var/spack/repos/builtin/packages/xrandr/package.py +++ b/var/spack/repos/builtin/packages/xrandr/package.py @@ -10,7 +10,7 @@ class Xrandr(AutotoolsPackage, XorgPackage): """xrandr - primitive command line interface to X11 Resize, Rotate, and Reflect (RandR) extension.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xrandr" + homepage = "https://cgit.freedesktop.org/xorg/app/xrandr" xorg_mirror_path = "app/xrandr-1.5.0.tar.gz" version('1.5.0', sha256='ddfe8e7866149c24ccce8e6aaa0623218ae19130c2859cadcaa4228d8bb4a46d') diff --git a/var/spack/repos/builtin/packages/xrdb/package.py b/var/spack/repos/builtin/packages/xrdb/package.py index 2e19b83f3ad..69601aa06be 100644 --- a/var/spack/repos/builtin/packages/xrdb/package.py +++ b/var/spack/repos/builtin/packages/xrdb/package.py @@ -9,7 +9,7 @@ class Xrdb(AutotoolsPackage, XorgPackage): """xrdb - X server resource database utility.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xrdb" + homepage = "https://cgit.freedesktop.org/xorg/app/xrdb" xorg_mirror_path = "app/xrdb-1.1.0.tar.gz" version('1.1.0', sha256='44b0b6b7b7eb80b83486dfea67c880f6b0059052386c7ddec4d58fd2ad9ae8e9') diff --git a/var/spack/repos/builtin/packages/xrefresh/package.py b/var/spack/repos/builtin/packages/xrefresh/package.py index b359e08d479..d2174ad3dd0 100644 --- a/var/spack/repos/builtin/packages/xrefresh/package.py +++ b/var/spack/repos/builtin/packages/xrefresh/package.py @@ -9,7 +9,7 @@ class Xrefresh(AutotoolsPackage, XorgPackage): """xrefresh - refresh all or part of an X screen.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xrefresh" + homepage = "https://cgit.freedesktop.org/xorg/app/xrefresh" xorg_mirror_path = "app/xrefresh-1.0.5.tar.gz" version('1.0.5', sha256='b373cc1ecd37c3d787e7074ce89a8a06ea173d7ba9e73fa48de973c759fbcf38') diff --git a/var/spack/repos/builtin/packages/xrx/package.py b/var/spack/repos/builtin/packages/xrx/package.py index 606f6bdc8ba..80bf722705a 100644 --- a/var/spack/repos/builtin/packages/xrx/package.py +++ b/var/spack/repos/builtin/packages/xrx/package.py @@ -14,7 +14,7 @@ class Xrx(AutotoolsPackage, XorgPackage): browser must identify specific instances of the services in the request to invoke the application.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xrx" + homepage = "https://cgit.freedesktop.org/xorg/app/xrx" xorg_mirror_path = "app/xrx-1.0.4.tar.gz" version('1.0.4', sha256='1ffa1c2af28587c6ed7ded3af2e62e93bad8f9900423d09c45b1d59449d15134') diff --git a/var/spack/repos/builtin/packages/xscope/package.py b/var/spack/repos/builtin/packages/xscope/package.py index 700cf3fa8e1..9ea08cc098c 100644 --- a/var/spack/repos/builtin/packages/xscope/package.py +++ b/var/spack/repos/builtin/packages/xscope/package.py @@ -9,7 +9,7 @@ class Xscope(AutotoolsPackage, XorgPackage): """XSCOPE -- a program to monitor X11/Client conversations.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xscope" + homepage = "https://cgit.freedesktop.org/xorg/app/xscope" xorg_mirror_path = "app/xscope-1.4.1.tar.gz" version('1.4.1', sha256='f99558a64e828cd2c352091ed362ad2ef42b1c55ef5c01cbf782be9735bb6de3') diff --git a/var/spack/repos/builtin/packages/xsdk/package.py b/var/spack/repos/builtin/packages/xsdk/package.py index 2c9cde37d05..0ee4c051619 100644 --- a/var/spack/repos/builtin/packages/xsdk/package.py +++ b/var/spack/repos/builtin/packages/xsdk/package.py @@ -15,16 +15,15 @@ class Xsdk(BundlePackage): packages """ - homepage = "http://xsdk.info" + homepage = "https://xsdk.info" maintainers = ['balay', 'luszczek'] version('develop') version('0.6.0') version('0.5.0') - version('0.4.0') - version('0.3.0') - version('xsdk-0.2.0') + version('0.4.0', deprecated=True) + version('0.3.0', deprecated=True) variant('debug', default=False, description='Compile in debug mode') variant('cuda', default=False, description='Enable CUDA dependent packages') @@ -49,7 +48,6 @@ class Xsdk(BundlePackage): depends_on('hypre@2.18.2+superlu-dist+shared', when='@0.5.0') depends_on('hypre@2.15.1~internal-superlu', when='@0.4.0') depends_on('hypre@2.12.1~internal-superlu', when='@0.3.0') - depends_on('hypre@xsdk-0.2.0~internal-superlu', when='@xsdk-0.2.0') depends_on('mfem@develop+mpi+superlu-dist+petsc+sundials+examples+miniapps', when='@develop') depends_on('mfem@4.2.0+mpi+superlu-dist+petsc+sundials+examples+miniapps', when='@0.6.0') @@ -62,7 +60,6 @@ class Xsdk(BundlePackage): depends_on('superlu-dist@6.1.1', when='@0.5.0') depends_on('superlu-dist@6.1.0', when='@0.4.0') depends_on('superlu-dist@5.2.2', when='@0.3.0') - depends_on('superlu-dist@xsdk-0.2.0', when='@xsdk-0.2.0') depends_on('trilinos@develop+hypre+superlu-dist+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan+zoltan2+amesos2~exodus~dtk+intrepid2+shards+stratimikos gotype=int cxxstd=14', when='@develop +trilinos') @@ -74,8 +71,6 @@ class Xsdk(BundlePackage): when='@0.4.0 +trilinos') depends_on('trilinos@12.12.1+hypre+superlu-dist+hdf5~mumps+boost~suite-sparse~tpetra~ifpack2~zoltan~zoltan2~amesos2~exodus', when='@0.3.0 +trilinos') - depends_on('trilinos@xsdk-0.2.0+hypre+superlu-dist+hdf5~mumps+boost~suite-sparse~tpetra~ifpack2~zoltan~zoltan2~amesos2~exodus', - when='@xsdk-0.2.0 +trilinos') depends_on('datatransferkit@master', when='@develop +trilinos +datatransferkit') depends_on('datatransferkit@3.1-rc2', when='@0.6.0 +trilinos +datatransferkit') @@ -93,8 +88,6 @@ class Xsdk(BundlePackage): when='@0.4.0') depends_on('petsc@3.8.2+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', when='@0.3.0') - depends_on('petsc@xsdk-0.2.0+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', - when='@xsdk-0.2.0') depends_on('dealii +trilinos~adol-c', when='+trilinos +dealii') depends_on('dealii ~trilinos', when='~trilinos +dealii') @@ -108,14 +101,12 @@ class Xsdk(BundlePackage): depends_on('pflotran@xsdk-0.5.0', when='@0.5.0') depends_on('pflotran@xsdk-0.4.0', when='@0.4.0') depends_on('pflotran@xsdk-0.3.0', when='@0.3.0') - depends_on('pflotran@xsdk-0.2.0', when='@xsdk-0.2.0') depends_on('alquimia@develop', when='@develop +alquimia') depends_on('alquimia@xsdk-0.6.0', when='@0.6.0 +alquimia') depends_on('alquimia@xsdk-0.5.0', when='@0.5.0 +alquimia ') depends_on('alquimia@xsdk-0.4.0', when='@0.4.0 +alquimia') depends_on('alquimia@xsdk-0.3.0', when='@0.3.0 +alquimia') - depends_on('alquimia@xsdk-0.2.0', when='@xsdk-0.2.0 +alquimia') depends_on('sundials +cuda', when='+cuda @0.6.0:') depends_on('sundials +trilinos', when='+trilinos @0.6.0:') @@ -226,10 +217,5 @@ class Xsdk(BundlePackage): depends_on('slate@2020.10.00 ~cuda', when='@0.6.0 ~cuda +slate %gcc@6.0:') depends_on('slate@2020.10.00 +cuda', when='@0.6.0 +cuda +slate %gcc@6.0:') - # xSDKTrilinos depends on the version of Trilinos built with - # +tpetra which is turned off for faster xSDK - # depends_on('xsdktrilinos@xsdk-0.2.0', when='@xsdk-0.2.0') - # depends_on('xsdktrilinos@develop', when='@develop') - # How do we propagate debug flag to all depends on packages ? # If I just do spack install xsdk+debug will that propogate it down? diff --git a/var/spack/repos/builtin/packages/xsdktrilinos/package.py b/var/spack/repos/builtin/packages/xsdktrilinos/package.py deleted file mode 100644 index e5c1b408e5b..00000000000 --- a/var/spack/repos/builtin/packages/xsdktrilinos/package.py +++ /dev/null @@ -1,78 +0,0 @@ -# Copyright 2013-2021 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 import * - - -class Xsdktrilinos(CMakePackage): - """xSDKTrilinos contains the portions of Trilinos that depend on PETSc - because they would cause a circular dependency if built as part of - Trilinos. - """ - homepage = "https://trilinos.org/" - url = "https://github.com/trilinos/xSDKTrilinos/archive/trilinos-release-12-8-1.tar.gz" - git = "https://github.com/trilinos/xSDKTrilinos.git" - - version('develop', tag='master') - version('xsdk-0.2.0', tag='xsdk-0.2.0') - version('12.8.1', sha256='f545c0821743f23af3b48f242c66bbc4593e3804436336db4eb3bb08622ad794') - version('12.6.4', sha256='a7664afeab37ccfcbb5aae0bb03cb73ca8e511e0fecc365b9ccd32ba208318e3') - - variant('hypre', default=True, description='Compile with Hypre preconditioner') - variant('petsc', default=True, description='Compile with PETSc solvers') - variant('shared', default=True, description='Enables the build of shared libraries') - - # MPI related dependencies - depends_on('mpi') - depends_on('hypre~internal-superlu', when='+hypre') - depends_on('hypre@xsdk-0.2.0~internal-superlu', when='@xsdk-0.2.0+hypre') - depends_on('hypre@develop~internal-superlu', when='@develop+hypre') - depends_on('petsc@xsdk-0.2.0+mpi~complex', when='@xsdk-0.2.0+petsc') - depends_on('petsc@main+mpi~complex', when='@develop+petsc') - depends_on('trilinos@12.6.4', when='@12.6.4') - depends_on('trilinos@12.8.1', when='@12.8.1') - depends_on('trilinos@xsdk-0.2.0', when='@xsdk-0.2.0') - depends_on('trilinos@develop', when='@develop') - - def url_for_version(self, version): - url = "https://github.com/trilinos/xSDKTrilinos/archive/trilinos-release-{0}.tar.gz" - return url.format(version.dashed) - - def cmake_args(self): - spec = self.spec - - options = [] - - mpi_bin = spec['mpi'].prefix.bin - options.extend([ - '-DxSDKTrilinos_VERBOSE_CONFIGURE:BOOL=OFF', - '-DxSDKTrilinos_ENABLE_TESTS:BOOL=ON', - '-DxSDKTrilinos_ENABLE_EXAMPLES:BOOL=ON', - '-DTrilinos_INSTALL_DIR=%s' % spec['trilinos'].prefix, - self.define_from_variant('BUILD_SHARED_LIBS', 'shared'), - '-DTPL_ENABLE_MPI:BOOL=ON', - '-DMPI_BASE_DIR:PATH=%s' % spec['mpi'].prefix, - '-DxSDKTrilinos_ENABLE_CXX11:BOOL=ON', - self.define_from_variant('TPL_ENABLE_HYPRE', 'hypre'), - self.define_from_variant('TPL_ENABLE_PETSC', 'petsc'), - '-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % self.prefix - ]) - - # Fortran lib - if (spec.satisfies('%gcc') or - spec.satisfies('%clang') or - spec.satisfies('%apple-clang')): - libgfortran = os.path.dirname(os.popen( - '%s --print-file-name libgfortran.a' % - join_path(mpi_bin, 'mpif90')).read()) - options.extend([ - '-DxSDKTrilinos_EXTRA_LINK_FLAGS:STRING=-L%s/ -lgfortran' % ( - libgfortran), - '-DxSDKTrilinos_ENABLE_Fortran=ON' - ]) - - return options diff --git a/var/spack/repos/builtin/packages/xset/package.py b/var/spack/repos/builtin/packages/xset/package.py index cf929d2362d..ddb0c8cde42 100644 --- a/var/spack/repos/builtin/packages/xset/package.py +++ b/var/spack/repos/builtin/packages/xset/package.py @@ -9,7 +9,7 @@ class Xset(AutotoolsPackage, XorgPackage): """User preference utility for X.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xset" + homepage = "https://cgit.freedesktop.org/xorg/app/xset" xorg_mirror_path = "app/xset-1.2.3.tar.gz" version('1.2.3', sha256='5ecb2bb2cbf3c9349b735080b155a08c97b314dacedfc558c7f5a611ee1297f7') diff --git a/var/spack/repos/builtin/packages/xsetmode/package.py b/var/spack/repos/builtin/packages/xsetmode/package.py index e8fac09fd44..dd1281f0c2c 100644 --- a/var/spack/repos/builtin/packages/xsetmode/package.py +++ b/var/spack/repos/builtin/packages/xsetmode/package.py @@ -9,7 +9,7 @@ class Xsetmode(AutotoolsPackage, XorgPackage): """Set the mode for an X Input device.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xsetmode" + homepage = "https://cgit.freedesktop.org/xorg/app/xsetmode" xorg_mirror_path = "app/xsetmode-1.0.0.tar.gz" version('1.0.0', sha256='9ee0d6cf72dfaacb997f9570779dcbc42f5395ae102180cb19382860b4b02ef3') diff --git a/var/spack/repos/builtin/packages/xsetpointer/package.py b/var/spack/repos/builtin/packages/xsetpointer/package.py index e14c53e81a8..6ece3d7b4ad 100644 --- a/var/spack/repos/builtin/packages/xsetpointer/package.py +++ b/var/spack/repos/builtin/packages/xsetpointer/package.py @@ -9,7 +9,7 @@ class Xsetpointer(AutotoolsPackage, XorgPackage): """Set an X Input device as the main pointer.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xsetpointer" + homepage = "https://cgit.freedesktop.org/xorg/app/xsetpointer" xorg_mirror_path = "app/xsetpointer-1.0.1.tar.gz" version('1.0.1', sha256='54be93b20fd6f1deac67246d6e214a60b02dcfbf05295e43751f7a04edb986ac') diff --git a/var/spack/repos/builtin/packages/xsetroot/package.py b/var/spack/repos/builtin/packages/xsetroot/package.py index 5e71a05dd2c..c8569da50af 100644 --- a/var/spack/repos/builtin/packages/xsetroot/package.py +++ b/var/spack/repos/builtin/packages/xsetroot/package.py @@ -9,7 +9,7 @@ class Xsetroot(AutotoolsPackage, XorgPackage): """xsetroot - root window parameter setting utility for X.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xsetroot" + homepage = "https://cgit.freedesktop.org/xorg/app/xsetroot" xorg_mirror_path = "app/xsetroot-1.1.1.tar.gz" version('1.1.1', sha256='6cdd48757d18835251124138b4a8e4008c3bbc51cf92533aa39c6ed03277168b') diff --git a/var/spack/repos/builtin/packages/xsimd/package.py b/var/spack/repos/builtin/packages/xsimd/package.py index 8d2fb4df877..1ac00736289 100644 --- a/var/spack/repos/builtin/packages/xsimd/package.py +++ b/var/spack/repos/builtin/packages/xsimd/package.py @@ -9,7 +9,7 @@ class Xsimd(CMakePackage): """C++ wrappers for SIMD intrinsics""" - homepage = "http://quantstack.net/xsimd" + homepage = "https://quantstack.net/xsimd" url = "https://github.com/QuantStack/xsimd/archive/3.1.0.tar.gz" git = "https://github.com/QuantStack/xsimd.git" diff --git a/var/spack/repos/builtin/packages/xsm/package.py b/var/spack/repos/builtin/packages/xsm/package.py index 01fb4fdc431..7f0e8c998bf 100644 --- a/var/spack/repos/builtin/packages/xsm/package.py +++ b/var/spack/repos/builtin/packages/xsm/package.py @@ -9,7 +9,7 @@ class Xsm(AutotoolsPackage, XorgPackage): """X Session Manager.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xsm" + homepage = "https://cgit.freedesktop.org/xorg/app/xsm" xorg_mirror_path = "app/xsm-1.0.3.tar.gz" version('1.0.3', sha256='f70815139d62416dbec5915ec37db66f325932a69f6350bb1a74c0940cdc796a') diff --git a/var/spack/repos/builtin/packages/xstdcmap/package.py b/var/spack/repos/builtin/packages/xstdcmap/package.py index 5c73f588142..2be0f1f7ecc 100644 --- a/var/spack/repos/builtin/packages/xstdcmap/package.py +++ b/var/spack/repos/builtin/packages/xstdcmap/package.py @@ -12,7 +12,7 @@ class Xstdcmap(AutotoolsPackage, XorgPackage): create standard colormap definitions in order to facilitate sharing of scarce colormap resources among clients using PseudoColor visuals.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xstdcmap" + homepage = "https://cgit.freedesktop.org/xorg/app/xstdcmap" xorg_mirror_path = "app/xstdcmap-1.0.3.tar.gz" version('1.0.3', sha256='b97aaa883a9eedf9c3056ea1a7e818e3d93b63aa1f54193ef481d392bdef5711') diff --git a/var/spack/repos/builtin/packages/xtensor/package.py b/var/spack/repos/builtin/packages/xtensor/package.py index 93739bea00f..1a826637636 100644 --- a/var/spack/repos/builtin/packages/xtensor/package.py +++ b/var/spack/repos/builtin/packages/xtensor/package.py @@ -9,7 +9,7 @@ class Xtensor(CMakePackage): """Multi-dimensional arrays with broadcasting and lazy computing""" - homepage = "http://quantstack.net/xtensor" + homepage = "https://github.com/xtensor-stack/xtensor-io" url = "https://github.com/QuantStack/xtensor/archive/0.13.1.tar.gz" git = "https://github.com/QuantStack/xtensor.git" diff --git a/var/spack/repos/builtin/packages/xterm/package.py b/var/spack/repos/builtin/packages/xterm/package.py index c293920e24c..e9509f9bd1a 100644 --- a/var/spack/repos/builtin/packages/xterm/package.py +++ b/var/spack/repos/builtin/packages/xterm/package.py @@ -11,7 +11,7 @@ class Xterm(AutotoolsPackage): provides DEC VT102 and Tektronix 4014 compatible terminals for programs that can't use the window system directly.""" - homepage = "http://invisible-island.net/xterm/" + homepage = "https://invisible-island.net/xterm/" url = "ftp://ftp.invisible-island.net/xterm/xterm-327.tgz" version('353', sha256='e521d3ee9def61f5d5c911afc74dd5c3a56ce147c7071c74023ea24cac9bb768') diff --git a/var/spack/repos/builtin/packages/xtrans/package.py b/var/spack/repos/builtin/packages/xtrans/package.py index b084adf78f7..9c25db86799 100644 --- a/var/spack/repos/builtin/packages/xtrans/package.py +++ b/var/spack/repos/builtin/packages/xtrans/package.py @@ -12,7 +12,7 @@ class Xtrans(AutotoolsPackage, XorgPackage): single place to add new transport types. It is used by the X server, libX11, libICE, the X font server, and related components.""" - homepage = "http://cgit.freedesktop.org/xorg/lib/libxtrans" + homepage = "https://cgit.freedesktop.org/xorg/lib/libxtrans" xorg_mirror_path = "lib/xtrans-1.3.5.tar.gz" version('1.3.5', sha256='b7a577c1b6c75030145e53b4793db9c88f9359ac49e7d771d4385d21b3e5945d') diff --git a/var/spack/repos/builtin/packages/xtrap/package.py b/var/spack/repos/builtin/packages/xtrap/package.py index 0ae0275d18d..dddeab19c3d 100644 --- a/var/spack/repos/builtin/packages/xtrap/package.py +++ b/var/spack/repos/builtin/packages/xtrap/package.py @@ -9,7 +9,7 @@ class Xtrap(AutotoolsPackage, XorgPackage): """XTrap sample clients.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xtrap" + homepage = "https://cgit.freedesktop.org/xorg/app/xtrap" xorg_mirror_path = "app/xtrap-1.0.2.tar.gz" version('1.0.2', sha256='e8916e05bfb0d72a088aaaac0feaf4ad7671d0f509d1037fb3c0c9ea131b93d2') diff --git a/var/spack/repos/builtin/packages/xvidtune/package.py b/var/spack/repos/builtin/packages/xvidtune/package.py index 33497835078..7ee7ee844b3 100644 --- a/var/spack/repos/builtin/packages/xvidtune/package.py +++ b/var/spack/repos/builtin/packages/xvidtune/package.py @@ -10,7 +10,7 @@ class Xvidtune(AutotoolsPackage, XorgPackage): """xvidtune is a client interface to the X server video mode extension (XFree86-VidModeExtension).""" - homepage = "http://cgit.freedesktop.org/xorg/app/xvidtune" + homepage = "https://cgit.freedesktop.org/xorg/app/xvidtune" xorg_mirror_path = "app/xvidtune-1.0.3.tar.gz" version('1.0.3', sha256='c0e158388d60e1ce054ce462958a46894604bd95e13093f3476ec6d9bbd786d4') diff --git a/var/spack/repos/builtin/packages/xvinfo/package.py b/var/spack/repos/builtin/packages/xvinfo/package.py index 87d202e448e..df3f2e635e4 100644 --- a/var/spack/repos/builtin/packages/xvinfo/package.py +++ b/var/spack/repos/builtin/packages/xvinfo/package.py @@ -10,7 +10,7 @@ class Xvinfo(AutotoolsPackage, XorgPackage): """xvinfo prints out the capabilities of any video adaptors associated with the display that are accessible through the X-Video extension.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xvinfo" + homepage = "https://cgit.freedesktop.org/xorg/app/xvinfo" xorg_mirror_path = "app/xvinfo-1.1.3.tar.gz" version('1.1.3', sha256='1c1c2f97abfe114389e94399cc7bf3dfd802ed30ad41ba23921d005bd8a6c39f') diff --git a/var/spack/repos/builtin/packages/xwd/package.py b/var/spack/repos/builtin/packages/xwd/package.py index 4e0b0afd84d..5f5b8c8739a 100644 --- a/var/spack/repos/builtin/packages/xwd/package.py +++ b/var/spack/repos/builtin/packages/xwd/package.py @@ -9,7 +9,7 @@ class Xwd(AutotoolsPackage, XorgPackage): """xwd - dump an image of an X window.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xwd" + homepage = "https://cgit.freedesktop.org/xorg/app/xwd" xorg_mirror_path = "app/xwd-1.0.6.tar.gz" version('1.0.6', sha256='ff01f0a4b736f955aaf7c8c3942211bc52f9fb75d96f2b19777f33fff5dc5b83') diff --git a/var/spack/repos/builtin/packages/xwidgets/package.py b/var/spack/repos/builtin/packages/xwidgets/package.py new file mode 100644 index 00000000000..836f2b2fc7e --- /dev/null +++ b/var/spack/repos/builtin/packages/xwidgets/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2021 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 import * + + +class Xwidgets(CMakePackage): + """A C++ backend for Jupyter interactive widgets""" + + homepage = "https://github.com/jupyter-xeus/xwidgets" + url = "https://github.com/jupyter-xeus/xwidgets/archive/0.25.0.tar.gz" + git = "https://github.com/jupyter-xeus/xwidgets.git" + + maintainers = ['tomstitt'] + + version('master', branch='master') + version('0.25.0', sha256='7b6d36999e3b926c40389167c48b33f234a075365f089f89571b33a160421d8e') + + depends_on('xtl@0.7.0:0.7.999', when='@0.25.0:') + depends_on('xproperty@0.11.0:0.11.999', when='@0.25.0:') + depends_on('xeus@1.0:1.999', when='@0.25.0:') + depends_on('nlohmann-json@3.6.1:3.999.999', when='@0.25.0:') diff --git a/var/spack/repos/builtin/packages/xwininfo/package.py b/var/spack/repos/builtin/packages/xwininfo/package.py index 6632d16f16b..198a3da86b1 100644 --- a/var/spack/repos/builtin/packages/xwininfo/package.py +++ b/var/spack/repos/builtin/packages/xwininfo/package.py @@ -10,7 +10,7 @@ class Xwininfo(AutotoolsPackage, XorgPackage): """xwininfo prints information about windows on an X server. Various information is displayed depending on which options are selected.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xwininfo" + homepage = "https://cgit.freedesktop.org/xorg/app/xwininfo" xorg_mirror_path = "app/xwininfo-1.1.3.tar.gz" version('1.1.3', sha256='784f8b9c9ddab24ce4faa65fde6430a8d7cf3c0564573582452cc99c599bd941') diff --git a/var/spack/repos/builtin/packages/xwud/package.py b/var/spack/repos/builtin/packages/xwud/package.py index f0ef776f806..3f9a82db5a5 100644 --- a/var/spack/repos/builtin/packages/xwud/package.py +++ b/var/spack/repos/builtin/packages/xwud/package.py @@ -10,7 +10,7 @@ class Xwud(AutotoolsPackage, XorgPackage): """xwud allows X users to display in a window an image saved in a specially formatted dump file, such as produced by xwd.""" - homepage = "http://cgit.freedesktop.org/xorg/app/xwud" + homepage = "https://cgit.freedesktop.org/xorg/app/xwud" xorg_mirror_path = "app/xwud-1.0.4.tar.gz" version('1.0.4', sha256='b7c124ccd87f529daedb7ef01c670ce6049fe141fd9ba7f444361de34510cd6c') diff --git a/var/spack/repos/builtin/packages/xz/package.py b/var/spack/repos/builtin/packages/xz/package.py index 5197fb13490..a3e09291fda 100644 --- a/var/spack/repos/builtin/packages/xz/package.py +++ b/var/spack/repos/builtin/packages/xz/package.py @@ -14,7 +14,7 @@ class Xz(AutotoolsPackage, SourceforgePackage): but also work on some not-so-POSIX systems. XZ Utils are the successor to LZMA Utils.""" - homepage = "http://tukaani.org/xz/" + homepage = "https://tukaani.org/xz/" sourceforge_mirror_path = "lzmautils/files/xz-5.2.5.tar.bz2" list_url = "http://tukaani.org/xz/old.html" diff --git a/var/spack/repos/builtin/packages/yajl/package.py b/var/spack/repos/builtin/packages/yajl/package.py index da39126f397..49b84f9c899 100644 --- a/var/spack/repos/builtin/packages/yajl/package.py +++ b/var/spack/repos/builtin/packages/yajl/package.py @@ -9,7 +9,7 @@ class Yajl(CMakePackage): """Yet Another JSON Library (YAJL)""" - homepage = "http://lloyd.github.io/yajl/" + homepage = "https://lloyd.github.io/yajl/" url = "https://github.com/lloyd/yajl/archive/2.1.0.zip" git = "https://github.com/lloyd/yajl.git" diff --git a/var/spack/repos/builtin/packages/yara/package.py b/var/spack/repos/builtin/packages/yara/package.py index 6d2fa15e462..8e016db6d09 100644 --- a/var/spack/repos/builtin/packages/yara/package.py +++ b/var/spack/repos/builtin/packages/yara/package.py @@ -10,7 +10,7 @@ class Yara(AutotoolsPackage): """YARA is a tool aimed at (but not limited to) helping malware researchers to identify and classify malware samples""" - homepage = "http://virustotal.github.io/yara/" + homepage = "https://virustotal.github.io/yara/" url = "https://github.com/VirusTotal/yara/archive/v3.9.0.tar.gz" version('3.9.0', sha256='ebe7fab0abadb90449a62afbd24e196e18b177efe71ffd8bf22df95c5386f64d') diff --git a/var/spack/repos/builtin/packages/yasm/package.py b/var/spack/repos/builtin/packages/yasm/package.py index 6ad054229b8..e881f659491 100644 --- a/var/spack/repos/builtin/packages/yasm/package.py +++ b/var/spack/repos/builtin/packages/yasm/package.py @@ -12,7 +12,7 @@ class Yasm(AutotoolsPackage): GAS assembler syntaxes and outputs binary, ELF32 and ELF64 object formats.""" - homepage = "http://yasm.tortall.net" + homepage = "https://yasm.tortall.net" url = "http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz" git = "https://github.com/yasm/yasm.git" diff --git a/var/spack/repos/builtin/packages/yoda/package.py b/var/spack/repos/builtin/packages/yoda/package.py index df7273389b2..45ae109040c 100644 --- a/var/spack/repos/builtin/packages/yoda/package.py +++ b/var/spack/repos/builtin/packages/yoda/package.py @@ -69,7 +69,7 @@ class Yoda(AutotoolsPackage): depends_on('py-cython@0.23.5:', type='build', when='@1.6.5:1.8.0') depends_on('py-cython@0.24:', type='build', when='@1.8.0:') depends_on('py-matplotlib', when='@1.3.0:', type=('build', 'run')) - depends_on('root', type=('build', 'run'), when='+root') + depends_on('root', type=('build', 'link', 'run'), when='+root') patch('yoda-1.5.5.patch', level=0, when='@1.5.5') patch('yoda-1.5.9.patch', level=0, when='@1.5.9') diff --git a/var/spack/repos/builtin/packages/yorick/package.py b/var/spack/repos/builtin/packages/yorick/package.py index 97da8f1633d..72fe5d8c32f 100644 --- a/var/spack/repos/builtin/packages/yorick/package.py +++ b/var/spack/repos/builtin/packages/yorick/package.py @@ -16,7 +16,7 @@ class Yorick(Package): most operating systems (*nix systems, MacOS X, Windows). """ - homepage = "http://dhmunro.github.io/yorick-doc/" + homepage = "https://dhmunro.github.io/yorick-doc/" url = "https://github.com/dhmunro/yorick/archive/y_2_2_04.tar.gz" git = "https://github.com/dhmunro/yorick.git" diff --git a/var/spack/repos/builtin/packages/zabbix/package.py b/var/spack/repos/builtin/packages/zabbix/package.py index 70d247b2d3f..c8a423b9225 100644 --- a/var/spack/repos/builtin/packages/zabbix/package.py +++ b/var/spack/repos/builtin/packages/zabbix/package.py @@ -10,7 +10,7 @@ class Zabbix(AutotoolsPackage): """Real-time monitoring of IT components and services, such as networks, servers, VMs, applications and the cloud.""" - homepage = "http://www.zabbix.com" + homepage = "https://www.zabbix.com" url = "https://github.com/zabbix/zabbix/archive/5.0.3.tar.gz" version('5.0.3', sha256='d579c5fa4e9065e8041396ace24d7132521ef5054ce30dfd9d151cbb7f0694ec') diff --git a/var/spack/repos/builtin/packages/zlib/package.py b/var/spack/repos/builtin/packages/zlib/package.py index 1b084383c64..28b73aa18e8 100644 --- a/var/spack/repos/builtin/packages/zlib/package.py +++ b/var/spack/repos/builtin/packages/zlib/package.py @@ -11,7 +11,7 @@ class Zlib(Package): data-compression library. """ - homepage = "http://zlib.net" + homepage = "https://zlib.net" # URL must remain http:// so Spack can bootstrap curl url = "http://zlib.net/fossils/zlib-1.2.11.tar.gz" diff --git a/var/spack/repos/builtin/packages/zookeeper-benchmark/package.py b/var/spack/repos/builtin/packages/zookeeper-benchmark/package.py index 1c1261bfb63..ec9decccaf5 100644 --- a/var/spack/repos/builtin/packages/zookeeper-benchmark/package.py +++ b/var/spack/repos/builtin/packages/zookeeper-benchmark/package.py @@ -8,7 +8,7 @@ class ZookeeperBenchmark(MavenPackage): """It is designed to measure the per-request latency of a ZooKeeper ensemble for a predetermined length of time""" - homepage = "http://zookeeper.apache.org" + homepage = "https://zookeeper.apache.org" git = "https://github.com/brownsys/zookeeper-benchmark.git" version('master', branch='master') diff --git a/var/spack/repos/builtin/packages/zsh/package.py b/var/spack/repos/builtin/packages/zsh/package.py index b59fd4251e9..85e5ca03d63 100644 --- a/var/spack/repos/builtin/packages/zsh/package.py +++ b/var/spack/repos/builtin/packages/zsh/package.py @@ -12,7 +12,7 @@ class Zsh(AutotoolsPackage): tcsh were incorporated into zsh; many original features were added. """ - homepage = "http://www.zsh.org" + homepage = "https://www.zsh.org" url = "http://downloads.sourceforge.net/project/zsh/zsh/5.4.2/zsh-5.4.2.tar.xz" version('5.8', sha256='dcc4b54cc5565670a65581760261c163d720991f0d06486da61f8d839b52de27') diff --git a/var/spack/repos/builtin/packages/zstd/package.py b/var/spack/repos/builtin/packages/zstd/package.py index 99cfccacf74..bbee22d7b59 100644 --- a/var/spack/repos/builtin/packages/zstd/package.py +++ b/var/spack/repos/builtin/packages/zstd/package.py @@ -6,17 +6,15 @@ from spack import * -class Zstd(CMakePackage): +class Zstd(MakefilePackage): """Zstandard, or zstd as short version, is a fast lossless compression algorithm, targeting real-time compression scenarios at zlib-level and better compression ratios.""" - homepage = "http://facebook.github.io/zstd/" + homepage = "https://facebook.github.io/zstd/" url = "https://github.com/facebook/zstd/archive/v1.4.3.tar.gz" git = "https://github.com/facebook/zstd.git" - root_cmakelists_dir = 'build/cmake' - maintainers = ['haampie'] version('develop', branch='dev') @@ -33,28 +31,18 @@ class Zstd(CMakePackage): version('1.3.0', sha256='0fdba643b438b7cbce700dcc0e7b3e3da6d829088c63757a5984930e2f70b348') version('1.1.2', sha256='980b8febb0118e22f6ed70d23b5b3e600995dbf7489c1f6d6122c1411cdda8d8') - variant('shared', default=True, description='Build shared libraries') - variant('static', default=True, description='Build static libraries') - variant('programs', default=True, description='Build executables') - variant('legacy', default=False, description='Enable legacy support') - variant('zlib', default=False, description='Build programs with zlib support') - variant('lzma', default=False, description='Build programs with lzma support') - variant('lz4', default=False, description='Build programs with zlib support') - variant('multithread', default=True, description='Build with pthread support') + variant('programs', default=False, description='Build executables') - conflicts('+zlib', when='~programs', msg="zlib requires programs to be built") - conflicts('+lzma', when='~programs', msg="lzma requires programs to be built") - conflicts('+lz4', when='~programs', msg="lz4 requires programs to be built") + depends_on('zlib', when='+programs') + depends_on('lzma', when='+programs') + depends_on('lz4', when='+programs') - depends_on('zlib', when='+zlib') - depends_on('lzma', when='+lzma') - depends_on('lz4', when='+lz4') + def build(self, spec, prefix): + make('-C', 'lib') + if spec.variants['programs'].value: + make('-C', 'programs') - def cmake_args(self): - return [ - self.define_from_variant('ZSTD_BUILD_PROGRAMS', 'programs'), - self.define_from_variant('ZSTD_BUILD_STATIC', 'static'), - self.define_from_variant('ZSTD_BUILD_SHARED', 'shared'), - self.define_from_variant('ZSTD_LEGACY_SUPPORT', 'legacy'), - self.define_from_variant('ZSTD_MULTITHREAD_SUPPORT', 'multithread') - ] + def install(self, spec, prefix): + make('-C', 'lib', 'install', 'PREFIX={0}'.format(prefix)) + if spec.variants['programs'].value: + make('-C', 'programs', 'install', 'PREFIX={0}'.format(prefix))