diff options
410 files changed, 9646 insertions, 667 deletions
diff --git a/.github/workflows/install_spack.sh b/.github/workflows/install_spack.sh index 5efae461a5..bc1c5f43ec 100755 --- a/.github/workflows/install_spack.sh +++ b/.github/workflows/install_spack.sh @@ -1,5 +1,20 @@ #!/usr/bin/env sh -git clone https://github.com/spack/spack.git -echo -e "config:\n build_jobs: 2" > spack/etc/spack/config.yaml -. spack/share/spack/setup-env.sh -spack compilers +. share/spack/setup-env.sh +echo -e "config:\n build_jobs: 2" > etc/spack/config.yaml +spack config add "packages:all:target:[x86_64]" +# TODO: remove this explicit setting once apple-clang detection is fixed +cat <<EOF > etc/spack/compilers.yaml +compilers: +- compiler: + spec: apple-clang@11.0.3 + paths: + cc: /usr/bin/clang + cxx: /usr/bin/clang++ + f77: /usr/local/bin/gfortran-9 + fc: /usr/local/bin/gfortran-9 + modules: [] + operating_system: catalina + target: x86_64 +EOF +spack compiler info apple-clang +spack debug report diff --git a/.github/workflows/linux_build_tests.yaml b/.github/workflows/linux_build_tests.yaml index ecdf38bfe4..3f5c575df3 100644 --- a/.github/workflows/linux_build_tests.yaml +++ b/.github/workflows/linux_build_tests.yaml @@ -3,13 +3,12 @@ name: linux builds on: push: branches: - - master - develop - releases/** pull_request: branches: - - master - develop + - releases/** paths-ignore: # Don't run if we only modified packages in the built-in repository - 'var/spack/repos/builtin/**' diff --git a/.github/workflows/linux_unit_tests.yaml b/.github/workflows/linux_unit_tests.yaml index 3130bfa36e..78fd0e8ce0 100644 --- a/.github/workflows/linux_unit_tests.yaml +++ b/.github/workflows/linux_unit_tests.yaml @@ -60,3 +60,83 @@ jobs: uses: codecov/codecov-action@v1 with: flags: unittests,linux + flake8: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: Install Python packages + run: | + pip install --upgrade pip six setuptools flake8 + - name: Setup git configuration + run: | + # Need this for the git tests to succeed. + git --version + git config --global user.email "spack@example.com" + git config --global user.name "Test User" + git fetch -u origin develop:develop + - name: Run flake8 tests + run: | + share/spack/qa/run-flake8-tests + shell: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: Install System packages + run: | + sudo apt-get -y update + sudo apt-get install -y coreutils gfortran gnupg2 mercurial ninja-build patchelf zsh fish + # Needed for kcov + sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev + - name: Install Python packages + run: | + pip install --upgrade pip six setuptools codecov coverage + - name: Setup git configuration + run: | + # Need this for the git tests to succeed. + git --version + git config --global user.email "spack@example.com" + git config --global user.name "Test User" + git fetch -u origin develop:develop + - name: Install kcov for bash script coverage + 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 + env: + COVERAGE: true + run: | + share/spack/qa/run-shell-tests + - name: Upload to codecov.io + uses: codecov/codecov-action@v1 + with: + flags: shelltests,linux + documentation: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: Install System packages + run: | + sudo apt-get -y update + sudo apt-get install -y coreutils ninja-build graphviz + - name: Install Python packages + run: | + pip install --upgrade pip six setuptools + pip install --upgrade -r lib/spack/docs/requirements.txt + - name: Build documentation + run: | + share/spack/qa/run-doc-tests diff --git a/.github/workflows/macos_python.yml b/.github/workflows/macos_python.yml index e136102a46..6134ef4cf2 100644 --- a/.github/workflows/macos_python.yml +++ b/.github/workflows/macos_python.yml @@ -8,6 +8,13 @@ on: schedule: # nightly at 1 AM - cron: '0 1 * * *' + pull_request: + branches: + - develop + paths: + # Run if we modify this yaml file + - '.github/workflows/macos_python.yml' + # TODO: run if we touch any of the recipes involved in this # GitHub Action Limits # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions @@ -21,7 +28,8 @@ jobs: - name: spack install run: | . .github/workflows/install_spack.sh - spack install -v gcc + # 9.2.0 is the latest version on which we apply homebrew patch + spack install -v --fail-fast gcc@9.2.0 %apple-clang install_jupyter_clang: name: jupyter @@ -32,7 +40,8 @@ jobs: - name: spack install run: | . .github/workflows/install_spack.sh - spack install -v py-jupyter %clang + spack config add packages:opengl:paths:opengl@4.1:/usr/X11R6 + spack install -v --fail-fast py-jupyter %apple-clang install_scipy_clang: name: scipy, mpl, pd @@ -42,9 +51,9 @@ jobs: - name: spack install run: | . .github/workflows/install_spack.sh - spack install -v py-scipy %clang - spack install -v py-matplotlib %clang - spack install -v py-pandas %clang + spack install -v --fail-fast py-scipy %apple-clang + spack install -v --fail-fast py-matplotlib %apple-clang + spack install -v --fail-fast py-pandas %apple-clang install_mpi4py_clang: name: mpi4py, petsc4py @@ -54,5 +63,5 @@ jobs: - name: spack install run: | . .github/workflows/install_spack.sh - spack install -v py-mpi4py %clang - spack install -v py-petsc4py %clang + spack install -v --fail-fast py-mpi4py %apple-clang + spack install -v --fail-fast py-petsc4py %apple-clang diff --git a/.github/workflows/macos_unit_tests.yaml b/.github/workflows/macos_unit_tests.yaml index 38feb2fc6a..f1e856070c 100644 --- a/.github/workflows/macos_unit_tests.yaml +++ b/.github/workflows/macos_unit_tests.yaml @@ -3,13 +3,12 @@ name: macos tests on: push: branches: - - master - develop - releases/** pull_request: branches: - - master - develop + - releases/** jobs: build: diff --git a/.github/workflows/minimum_python_versions.yaml b/.github/workflows/minimum_python_versions.yaml index 474f091514..a6ab5dfa40 100644 --- a/.github/workflows/minimum_python_versions.yaml +++ b/.github/workflows/minimum_python_versions.yaml @@ -3,13 +3,12 @@ name: python version check on: push: branches: - - master - develop - releases/** pull_request: branches: - - master - develop + - releases/** jobs: validate: diff --git a/.travis.yml b/.travis.yml index 5d8b793758..808e79bbff 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,101 +1,32 @@ -#============================================================================= -# Project settings -#============================================================================= -# Only build master and develop on push; do not build every branch. +# Only build releases and develop on push; do not build every branch. branches: only: - - master - develop - /^releases\/.*$/ -#============================================================================= -# Build matrix -#============================================================================= - -dist: bionic - -jobs: - fast_finish: true - include: - - stage: 'style checks' - python: '3.8' - os: linux - language: python - env: TEST_SUITE=flake8 - - stage: 'unit tests + documentation' - python: '2.6' - dist: trusty - os: linux - language: python - addons: - apt: - # Everything but patchelf, that is not available for trusty - packages: - - ccache - - gfortran - - graphviz - - gnupg2 - - kcov - - mercurial - - ninja-build - - realpath - - zsh - - fish - env: [ TEST_SUITE=unit, COVERAGE=true ] - - python: '3.8' - os: linux - language: python - env: [ TEST_SUITE=shell, COVERAGE=true, KCOV_VERSION=38 ] - - python: '3.8' - os: linux - language: python - env: TEST_SUITE=doc - -stages: - - 'style checks' - - 'unit tests + documentation' - - -#============================================================================= -# Environment -#============================================================================= - -# Docs need graphviz to build +language: python +python: '2.6' +dist: trusty +os: linux addons: - # for Linux builds, we use APT apt: packages: - - ccache - - coreutils - gfortran - graphviz - gnupg2 + - kcov - mercurial - ninja-build - - patchelf + - realpath - zsh - fish - update: true - -# ~/.ccache needs to be cached directly as Travis is not taking care of it -# (possibly because we use 'language: python' and not 'language: c') -cache: - pip: true - ccache: true - directories: - - ~/.ccache before_install: - - ccache -M 2G && ccache -z - # Install kcov manually, since it's not packaged for bionic beaver - - if [[ "$KCOV_VERSION" ]]; then - sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev; - 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; + - if [[ "$TRAVIS_DIST" == "trusty" ]]; then + share/spack/qa/install_patchelf.sh; + else + sudo apt-get update; + sudo apt-get -y install patchelf; fi # Install various dependencies @@ -103,12 +34,8 @@ install: - pip install --upgrade pip - pip install --upgrade six - pip install --upgrade setuptools - - pip install --upgrade codecov coverage==4.5.4 - pip install --upgrade flake8 - pip install --upgrade pep8-naming - - if [[ "$TEST_SUITE" == "doc" ]]; then - pip install --upgrade -r lib/spack/docs/requirements.txt; - fi before_script: # Need this for the git tests to succeed. @@ -118,31 +45,12 @@ before_script: # Need this to be able to compute the list of changed files - git fetch origin ${TRAVIS_BRANCH}:${TRAVIS_BRANCH} -#============================================================================= -# Building -#============================================================================= script: - - share/spack/qa/run-$TEST_SUITE-tests - -after_success: - - ccache -s - - case "$TEST_SUITE" in - unit) - if [[ "$COVERAGE" == "true" ]]; then - codecov --env PYTHON_VERSION - --required - --flags "${TEST_SUITE}${TRAVIS_OS_NAME}"; - fi - ;; - shell) - codecov --env PYTHON_VERSION - --required - --flags "${TEST_SUITE}${TRAVIS_OS_NAME}"; - esac + - python bin/spack -h + - python bin/spack help -a + - python bin/spack -p --lines 20 spec mpileaks%gcc ^elfutils@0.170 + - python bin/spack test -x --verbose -#============================================================================= -# Notifications -#============================================================================= notifications: email: recipients: @@ -78,11 +78,29 @@ these guidelines with [Travis CI](https://travis-ci.org/spack/spack). To run these tests locally, and for helpful tips on git, see our [Contribution Guide](http://spack.readthedocs.io/en/latest/contribution_guide.html). -Spack uses a rough approximation of the -[Git Flow](http://nvie.com/posts/a-successful-git-branching-model/) -branching model. The ``develop`` branch contains the latest -contributions, and ``master`` is always tagged and points to the latest -stable release. +Spack's `develop` branch has the latest contributions. Pull requests +should target `develop`, and users who want the latest package versions, +features, etc. can use `develop`. + +Releases +-------- + +For multi-user site deployments or other use cases that need very stable +software installations, we recommend using Spack's +[stable releases](https://github.com/spack/spack/releases). + +Each Spack release series also has a corresponding branch, e.g. +`releases/v0.14` has `0.14.x` versions of Spack, and `releases/v0.13` has +`0.13.x` versions. We backport important bug fixes to these branches but +we do not advance the package versions or make other changes that would +change the way Spack concretizes dependencies within a release branch. +So, you can base your Spack deployment on a release branch and `git pull` +to get fixes, without the package churn that comes with `develop`. + +The latest release is always available with the `releases/latest` tag. + +See the [docs on releases](https://spack.readthedocs.io/en/latest/developer_guide.html#releases) +for more details. Code of Conduct ------------------------ diff --git a/lib/spack/docs/containers.rst b/lib/spack/docs/containers.rst index fe678fd76d..b215507701 100644 --- a/lib/spack/docs/containers.rst +++ b/lib/spack/docs/containers.rst @@ -45,7 +45,7 @@ Environments: && echo " view: /opt/view") > /opt/spack-environment/spack.yaml # Install the software, remove unnecessary deps - RUN cd /opt/spack-environment && spack install && spack gc -y + RUN cd /opt/spack-environment && spack env activate . && spack install && spack gc -y # Strip all the binaries RUN find -L /opt/view/* -type f -exec readlink -f '{}' \; | \ @@ -267,7 +267,7 @@ following ``Dockerfile``: && echo " view: /opt/view") > /opt/spack-environment/spack.yaml # Install the software, remove unnecessary deps - RUN cd /opt/spack-environment && spack install && spack gc -y + RUN cd /opt/spack-environment && spack env activate . && spack install && spack gc -y # Strip all the binaries RUN find -L /opt/view/* -type f -exec readlink -f '{}' \; | \ diff --git a/lib/spack/docs/contribution_guide.rst b/lib/spack/docs/contribution_guide.rst index 9935ec0c83..10c0875e85 100644 --- a/lib/spack/docs/contribution_guide.rst +++ b/lib/spack/docs/contribution_guide.rst @@ -27,11 +27,22 @@ correspond to one feature/bugfix/extension/etc. One can create PRs with changes relevant to different ideas, however reviewing such PRs becomes tedious and error prone. If possible, try to follow the **one-PR-one-package/feature** rule. -Spack uses a rough approximation of the `Git Flow <http://nvie.com/posts/a-successful-git-branching-model/>`_ -branching model. The develop branch contains the latest contributions, and -master is always tagged and points to the latest stable release. Therefore, when -you send your request, make ``develop`` the destination branch on the -`Spack repository <https://github.com/spack/spack>`_. +-------- +Branches +-------- + +Spack's ``develop`` branch has the latest contributions. Nearly all pull +requests should start from ``develop`` and target ``develop``. + +There is a branch for each major release series. Release branches +originate from ``develop`` and have tags for each point release in the +series. For example, ``releases/v0.14`` has tags for ``0.14.0``, +``0.14.1``, ``0.14.2``, etc. versions of Spack. We backport important bug +fixes to these branches, but we do not advance the package versions or +make other changes that would change the way Spack concretizes +dependencies. Currently, the maintainers manage these branches by +cherry-picking from ``develop``. See :ref:`releases` for more +information. ---------------------- Continuous Integration diff --git a/lib/spack/docs/developer_guide.rst b/lib/spack/docs/developer_guide.rst index de2fe80f85..284690bd6f 100644 --- a/lib/spack/docs/developer_guide.rst +++ b/lib/spack/docs/developer_guide.rst @@ -495,3 +495,393 @@ The bottom of the output shows the top most time consuming functions, slowest on top. The profiling support is from Python's built-in tool, `cProfile <https://docs.python.org/2/library/profile.html#module-cProfile>`_. + +.. _releases: + +-------- +Releases +-------- + +This section documents Spack's release process. It is intended for +project maintainers, as the tasks described here require maintainer +privileges on the Spack repository. For others, we hope this section at +least provides some insight into how the Spack project works. + +.. _release-branches: + +^^^^^^^^^^^^^^^^ +Release branches +^^^^^^^^^^^^^^^^ + +There are currently two types of Spack releases: :ref:`major releases +<major-releases>` (``0.13.0``, ``0.14.0``, etc.) and :ref:`point releases +<point-releases>` (``0.13.1``, ``0.13.2``, ``0.13.3``, etc.). Here is a +diagram of how Spack release branches work:: + + o branch: develop (latest version) + | + o merge v0.14.1 into develop + |\ + | o branch: releases/v0.14, tag: v0.14.1 + o | merge v0.14.0 into develop + |\| + | o tag: v0.14.0 + |/ + o merge v0.13.2 into develop + |\ + | o branch: releases/v0.13, tag: v0.13.2 + o | merge v0.13.1 into develop + |\| + | o tag: v0.13.1 + o | merge v0.13.0 into develop + |\| + | o tag: v0.13.0 + o | + | o + |/ + o + +The ``develop`` branch has the latest contributions, and nearly all pull +requests target ``develop``. + +Each Spack release series also has a corresponding branch, e.g. +``releases/v0.14`` has ``0.14.x`` versions of Spack, and +``releases/v0.13`` has ``0.13.x`` versions. A major release is the first +tagged version on a release branch. Minor releases are back-ported from +develop onto release branches. This is typically done by cherry-picking +bugfix commits off of ``develop``. + +To avoid version churn for users of a release series, minor releases +should **not** make changes that would change the concretization of +packages. They should generally only contain fixes to the Spack core. + +Both major and minor releases are tagged. After each release, we merge +the release branch back into ``develop`` so that the version bump and any +other release-specific changes are visible in the mainline. As a +convenience, we also tag the latest release as ``releases/latest``, +so that users can easily check it out to get the latest +stable version. See :ref:`merging-releases` for more details. + + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Scheduling work for releases +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +We schedule work for releases by creating `GitHub projects +<https://github.com/spack/spack/projects>`_. At any time, there may be +several open release projects. For example, here are two releases (from +some past version of the page linked above): + +.. image:: images/projects.png + +Here, there's one release in progress for ``0.15.1`` and another for +``0.16.0``. Each of these releases has a project board containing issues +and pull requests. GitHub shows a status bar with completed work in +green, work in progress in purple, and work not started yet in gray, so +it's fairly easy to see progress. + +Spack's project boards are not firm commitments, and we move work between +releases frequently. If we need to make a release and some tasks are not +yet done, we will simply move them to next minor or major release, rather +than delaying the release to complete them. + +For more on using GitHub project boards, see `GitHub's documentation +<https://docs.github.com/en/github/managing-your-work-on-github/about-project-boards>`_. + +.. _major-releases: + +^^^^^^^^^^^^^^^^^^^^^ +Making Major Releases +^^^^^^^^^^^^^^^^^^^^^ + +Assuming you've already created a project board and completed the work +for a major release, the steps to make the release are as follows: + +#. Create two new project boards: + + * One for the next major release + * One for the next point release + +#. Move any tasks that aren't done yet to one of the new project boards. + Small bugfixes should go to the next point release. Major features, + refactors, and changes that could affect concretization should go in + the next major release. + +#. Create a branch for the release, based on ``develop``: + + .. code-block:: console + + $ git checkout -b releases/v0.15 develop + + For a version ``vX.Y.Z``, the branch's name should be + ``releases/vX.Y``. That is, you should create a ``releases/vX.Y`` + branch if you are preparing the ``X.Y.0`` release. + +#. Bump the version in ``lib/spack/spack/__init__.py``. See `this example from 0.13.0 + <https://github.com/spack/spack/commit/8eeb64096c98b8a43d1c587f13ece743c864fba9>`_ + +#. Updaate the release version lists in these files to include the new version: + + * ``lib/spack/spack/schema/container.py`` + * ``lib/spack/spack/container/images.json`` + + **TODO**: We should get rid of this step in some future release. + +#. Update ``CHANGELOG.md`` with major highlights in bullet form. Use + proper markdown formatting, like `this example from 0.15.0 + <https://github.com/spack/spack/commit/d4bf70d9882fcfe88507e9cb444331d7dd7ba71c>`_. + +#. Push the release branch to GitHub. + +#. Make sure CI passes on the release branch, including: + * Regular unit tests + * Build tests + * The E4S pipeline at `gitlab.spack.io <https://gitlab.spack.io>`_ + + If CI is not passing, submit pull requests to ``develop`` as normal + and keep rebasing the release branch on ``develop`` until CI passes. + +#. Follow the steps in :ref:`publishing-releases`. + +#. Follow the steps in :ref:`merging-releases`. + +#. Follow the steps in :ref:`announcing-releases`. + + +.. _point-releases: + +^^^^^^^^^^^^^^^^^^^^^ +Making Point Releases +^^^^^^^^^^^^^^^^^^^^^ + +This assumes you've already created a project board for a point release +and completed the work to be done for the release. To make a point +release: + +#. Create one new project board for the next point release. + +#. Move any cards that aren't done yet to the next project board. + +#. Check out the release branch (it should already exist). For the + ``X.Y.Z`` release, the release branch is called ``releases/vX.Y``. For + ``v0.15.1``, you would check out ``releases/v0.15``: + + .. code-block:: console + + $ git checkout releases/v0.15 + +#. Cherry-pick each pull request in the ``Done`` column of the release + project onto the release branch. + + This is **usually** fairly simple since we squash the commits from the + vast majority of pull requests, which means there is only one commit + per pull request to cherry-pick. For example, `this pull request + <https://github.com/spack/spack/pull/15777>`_ has three commits, but + the were squashed into a single commit on merge. You can see the + commit that was created here: + + .. image:: images/pr-commit.png + + You can easily cherry pick it like this (assuming you already have the + release branch checked out): + + .. code-block:: console + + $ git cherry-pick 7e46da7 + + For pull requests that were rebased, you'll need to cherry-pick each + rebased commit individually. There have not been any rebased PRs like + this in recent point releases. + + .. warning:: + + It is important to cherry-pick commits in the order they happened, + otherwise you can get conflicts while cherry-picking. When + cherry-picking onto a point release, look at the merge date, + **not** the number of the pull request or the date it was opened. + + Sometimes you may **still** get merge conflicts even if you have + cherry-picked all the commits in order. This generally means there + is some other intervening pull request that the one you're trying + to pick depends on. In these cases, you'll need to make a judgment + call: + + 1. If the dependency is small, you might just cherry-pick it, too. + If you do this, add it to the release board. + + 2. If it is large, then you may decide that this fix is not worth + including in a point release, in which case you should remove it + from the release project. + + 3. You can always decide to manually back-port the fix to the release + branch if neither of the above options makes sense, but this can + require a lot of work. It's seldom the right choice. + +#. Bump the version in ``lib/spack/spack/__init__.py``. See `this example from 0.14.1 + <https://github.com/spack/spack/commit/ff0abb9838121522321df2a054d18e54b566b44a>`_. + +#. Updaate the release version lists in these files to include the new version: + + * ``lib/spack/spack/schema/container.py`` + * ``lib/spack/spack/container/images.json`` + + **TODO**: We should get rid of this step in some future release. + +#. Update ``CHANGELOG.md`` with a list of bugfixes. This is typically just a + summary of the commits you cherry-picked onto the release branch. See + `the changelog from 0.14.1 + <https://github.com/spack/spack/commit/ff0abb9838121522321df2a054d18e54b566b44a>`_. + +#. Push the release branch to GitHub. + +#. Make sure CI passes on the release branch, including: + * Regular unit tests + * Build tests + * The E4S pipeline at `gitlab.spack.io <https://gitlab.spack.io>`_ + + If CI does not pass, you'll need to figure out why, and make changes + to the release branch until it does. You can make more commits, modify + or remove cherry-picked commits, or cherry-pick **more** from + ``develop`` to make this happen. + +#. Follow the steps in :ref:`publishing-releases`. + +#. Follow the steps in :ref:`merging-releases`. + +#. Follow the steps in :ref:`announcing-releases`. + + +.. _publishing-releases: + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Publishing a release on GitHub +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +#. Go to `github.com/spack/spack/releases + <https://github.com/spack/spack/releases>`_ and click ``Draft a new + release``. Set the following: + + * ``Tag version`` should start with ``v`` and contain *all three* + parts of the version, .g. ``v0.15.1``. This is the name of the tag + that will be created. + + * ``Target`` should be the ``releases/vX.Y`` branch (e.g., ``releases/v0.15``). + + * ``Release title`` should be ``vX.Y.Z`` (To match the tag, e.g., ``v0.15.1``). + + * For the text, paste the latest release markdown from your ``CHANGELOG.md``. + + You can save the draft and keep coming back to this as you prepare the release. + +#. When you are done, click ``Publish release``. + +#. Immediately after publishing, go back to + `github.com/spack/spack/releases + <https://github.com/spack/spack/releases>`_ and download the + auto-generated ``.tar.gz`` file for the release. It's the ``Source + code (tar.gz)`` link. + +#. Click ``Edit`` on the release you just did and attach the downloaded + release tarball as a binary. This does two things: + + #. Makes sure that the hash of our releases doesn't change over time. + GitHub sometimes annoyingly changes they way they generate + tarballs, and then hashes can change if you rely on the + auto-generated tarball links. + + #. Gets us download counts on releases visible through the GitHub + API. GitHub tracks downloads of artifacts, but *not* the source + links. See the `releases + page <https://api.github.com/repos/spack/spack/releases>`_ and search + for ``download_count`` to see this. + + +.. _merging-releases: + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Updating `releases/latest` and `develop` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If the new release is the **highest** Spack release yet, you should +also tag it as ``releases/latest``. For example, suppose the highest +release is currently ``0.15.3``: + + * If you are releasing ``0.15.4`` or ``0.16.0``, then you should tag + it with ``releases/latest``, as these are higher than ``0.15.3``. + + * If you are making a new release of an **older** major version of + Spack, e.g. ``0.14.4``, then you should not tag it as + ``releases/latest`` (as there are newer major versions). + + To tag ``releases/latest``, do this: + + .. code-block:: console + + $ git checkout releases/vX.Y # vX.Y is the new release's branch + $ git tag --force releases/latest + $ git push --tags + + The ``--force`` argument makes ``git`` overwrite the existing + ``releases/latest`` tag with the new one. + +We also merge each release that we tag as ``releases/latest`` into ``develop``. +Make sure to do this with a merge commit: + +.. code-block:: console + + $ git checkout develop + $ git merge --no-ff vX.Y.Z # vX.Y.Z is the new release's tag + $ git push + +We merge back to ``develop`` because it: + + * updates the version and ``CHANGELOG.md`` on ``develop``. + * ensures that your release tag is reachable from the head of + ``develop`` + +We *must* use a real merge commit (via the ``--no-ff`` option) because it +ensures that the release tag is reachable from the tip of ``develop``. +This is necessary for ``spack -V`` to work properly -- it uses ``git +describe --tags`` to find the last reachable tag in the repository and +reports how far we are from it. For example: + +.. code-block:: console + + $ spack -V + 0.14.2-1486-b80d5e74e5 + +This says that we are at commit ``b80d5e74e5``, which is 1,486 commits +ahead of the ``0.14.2`` release. + +We put this step last in the process because it's best to do it only once +the release is complete and tagged. If you do it before you've tagged the +release and later decide you want to tag some later commit, you'll need +to merge again. + +.. _announcing-releases: + +^^^^^^^^^^^^^^^^^^^^ +Announcing a release +^^^^^^^^^^^^^^^^^^^^ + +We announce releases in all of the major Spack communication channels. +Publishing the release takes care of GitHub. The remaining channels are +Twitter, Slack, and the mailing list. Here are the steps: + +#. Make a tweet to announce the release. It should link to the release's + page on GitHub. You can base it on `this example tweet + <https://twitter.com/spackpm/status/1231761858182307840>`_. + +#. Ping ``@channel`` in ``#general`` on Slack (`spackpm.slack.com + <https://spackpm.slack.com>`_) with a link to the tweet. The tweet + will be shown inline so that you do not have to retype your release + announcement. + +#. Email the Spack mailing list to let them know about the release. As + with the tweet, you likely want to link to the release's page on + GitHub. It's also helpful to include some information directly in the + email. You can base yours on this `example email + <https://groups.google.com/forum/#!topic/spack/WT4CT9i_X4s>`_. + +Once you've announced the release, congratulations, you're done! You've +finished making the release! diff --git a/lib/spack/docs/getting_started.rst b/lib/spack/docs/getting_started.rst index 226b1f0883..7b908465f5 100644 --- a/lib/spack/docs/getting_started.rst +++ b/lib/spack/docs/getting_started.rst @@ -818,7 +818,7 @@ Git Some Spack packages use ``git`` to download, which might not work on some computers. For example, the following error was -encountered on a Macintosh during ``spack install julia-master``: +encountered on a Macintosh during ``spack install julia@master``: .. code-block:: console diff --git a/lib/spack/docs/images/pr-commit.png b/lib/spack/docs/images/pr-commit.png Binary files differnew file mode 100644 index 0000000000..a87c800ef5 --- /dev/null +++ b/lib/spack/docs/images/pr-commit.png diff --git a/lib/spack/docs/images/projects.png b/lib/spack/docs/images/projects.png Binary files differnew file mode 100644 index 0000000000..bd2971ff62 --- /dev/null +++ b/lib/spack/docs/images/projects.png diff --git a/lib/spack/docs/pipelines.rst b/lib/spack/docs/pipelines.rst index 34ff9cfc6d..342024d94c 100644 --- a/lib/spack/docs/pipelines.rst +++ b/lib/spack/docs/pipelines.rst @@ -82,9 +82,9 @@ or Amazon Elastic Kubernetes Service (`EKS <https://aws.amazon.com/eks>`_), thou topics are outside the scope of this document. Spack's pipelines are now making use of the -`trigger <https://docs.gitlab.com/12.9/ee/ci/yaml/README.html#trigger>` syntax to run +`trigger <https://docs.gitlab.com/12.9/ee/ci/yaml/README.html#trigger>`_ syntax to run dynamically generated -`child pipelines <https://docs.gitlab.com/12.9/ee/ci/parent_child_pipelines.html>`. +`child pipelines <https://docs.gitlab.com/12.9/ee/ci/parent_child_pipelines.html>`_. Note that the use of dynamic child pipelines requires running Gitlab version ``>= 12.9``. diff --git a/lib/spack/docs/workflows.rst b/lib/spack/docs/workflows.rst index 17ca695082..2f215f8209 100644 --- a/lib/spack/docs/workflows.rst +++ b/lib/spack/docs/workflows.rst @@ -1405,11 +1405,12 @@ The main points that are implemented below: - export CXXFLAGS="-std=c++11" install: - - if ! which spack >/dev/null; then + - | + if ! which spack >/dev/null; then mkdir -p $SPACK_ROOT && git clone --depth 50 https://github.com/spack/spack.git $SPACK_ROOT && - echo -e "config:""\n build_jobs:"" 2" > $SPACK_ROOT/etc/spack/config.yaml ** - echo -e "packages:""\n all:""\n target:"" ['x86_64']" + printf "config:\n build_jobs: 2\n" > $SPACK_ROOT/etc/spack/config.yaml && + printf "packages:\n all:\n target: ['x86_64']\n" \ > $SPACK_ROOT/etc/spack/packages.yaml; fi - travis_wait spack install cmake@3.7.2~openssl~ncurses diff --git a/lib/spack/llnl/util/tty/pty.py b/lib/spack/llnl/util/tty/pty.py index ef5d40ea57..84c272a6e2 100644 --- a/lib/spack/llnl/util/tty/pty.py +++ b/lib/spack/llnl/util/tty/pty.py @@ -31,17 +31,17 @@ from spack.util.executable import which class ProcessController(object): """Wrapper around some fundamental process control operations. - This allows one process to drive another similar to the way a shell - would, by sending signals and I/O. + This allows one process (the controller) to drive another (the + minion) similar to the way a shell would, by sending signals and I/O. """ - def __init__(self, pid, master_fd, + def __init__(self, pid, controller_fd, timeout=1, sleep_time=1e-1, debug=False): """Create a controller to manipulate the process with id ``pid`` Args: pid (int): id of process to control - master_fd (int): master file descriptor attached to pid's stdin + controller_fd (int): controller fd attached to pid's stdin timeout (int): time in seconds for wait operations to time out (default 1 second) sleep_time (int): time to sleep after signals, to control the @@ -58,7 +58,7 @@ class ProcessController(object): """ self.pid = pid self.pgid = os.getpgid(pid) - self.master_fd = master_fd + self.controller_fd = controller_fd self.timeout = timeout self.sleep_time = sleep_time self.debug = debug @@ -67,8 +67,8 @@ class ProcessController(object): self.ps = which("ps", required=True) def get_canon_echo_attrs(self): - """Get echo and canon attributes of the terminal of master_fd.""" - cfg = termios.tcgetattr(self.master_fd) + """Get echo and canon attributes of the terminal of controller_fd.""" + cfg = termios.tcgetattr(self.controller_fd) return ( bool(cfg[3] & termios.ICANON), bool(cfg[3] & termios.ECHO), @@ -82,7 +82,7 @@ class ProcessController(object): ) def status(self): - """Print debug message with status info for the child.""" + """Print debug message with status info for the minion.""" if self.debug: canon, echo = self.get_canon_echo_attrs() sys.stderr.write("canon: %s, echo: %s\n" % ( @@ -94,12 +94,12 @@ class ProcessController(object): sys.stderr.write("\n") def input_on(self): - """True if keyboard input is enabled on the master_fd pty.""" + """True if keyboard input is enabled on the controller_fd pty.""" return self.get_canon_echo_attrs() == (False, False) def background(self): - """True if pgid is in a background pgroup of master_fd's terminal.""" - return self.pgid != os.tcgetpgrp(self.master_fd) + """True if pgid is in a background pgroup of controller_fd's tty.""" + return self.pgid != os.tcgetpgrp(self.controller_fd) def tstp(self): """Send SIGTSTP to the controlled process.""" @@ -115,18 +115,18 @@ class ProcessController(object): def fg(self): self.horizontal_line("fg") with log.ignore_signal(signal.SIGTTOU): - os.tcsetpgrp(self.master_fd, os.getpgid(self.pid)) + os.tcsetpgrp(self.controller_fd, os.getpgid(self.pid)) time.sleep(self.sleep_time) def bg(self): self.horizontal_line("bg") with log.ignore_signal(signal.SIGTTOU): - os.tcsetpgrp(self.master_fd, os.getpgrp()) + os.tcsetpgrp(self.controller_fd, os.getpgrp()) time.sleep(self.sleep_time) def write(self, byte_string): self.horizontal_line("write '%s'" % byte_string.decode("utf-8")) - os.write(self.master_fd, byte_string) + os.write(self.controller_fd, byte_string) def wait(self, condition): start = time.time() @@ -156,50 +156,51 @@ class ProcessController(object): class PseudoShell(object): - """Sets up master and child processes with a PTY. + """Sets up controller and minion processes with a PTY. You can create a ``PseudoShell`` if you want to test how some function responds to terminal input. This is a pseudo-shell from a - job control perspective; ``master_function`` and ``child_function`` - are set up with a pseudoterminal (pty) so that the master can drive - the child through process control signals and I/O. + job control perspective; ``controller_function`` and ``minion_function`` + are set up with a pseudoterminal (pty) so that the controller can drive + the minion through process control signals and I/O. The two functions should have signatures like this:: - def master_function(proc, ctl, **kwargs) - def child_function(**kwargs) + def controller_function(proc, ctl, **kwargs) + def minion_function(**kwargs) - ``master_function`` is spawned in its own process and passed three + ``controller_function`` is spawned in its own process and passed three arguments: proc - the ``multiprocessing.Process`` object representing the child + the ``multiprocessing.Process`` object representing the minion ctl - a ``ProcessController`` object tied to the child + a ``ProcessController`` object tied to the minion kwargs keyword arguments passed from ``PseudoShell.start()``. - ``child_function`` is only passed ``kwargs`` delegated from + ``minion_function`` is only passed ``kwargs`` delegated from ``PseudoShell.start()``. - The ``ctl.master_fd`` will have its ``master_fd`` connected to - ``sys.stdin`` in the child process. Both processes will share the + The ``ctl.controller_fd`` will have its ``controller_fd`` connected to + ``sys.stdin`` in the minion process. Both processes will share the same ``sys.stdout`` and ``sys.stderr`` as the process instantiating ``PseudoShell``. Here are the relationships between processes created:: ._________________________________________________________. - | Child Process | pid 2 - | - runs child_function | pgroup 2 + | Minion Process | pid 2 + | - runs minion_function | pgroup 2 |_________________________________________________________| session 1 ^ - | create process with master_fd connected to stdin + | create process with controller_fd connected to stdin | stdout, stderr are the same as caller ._________________________________________________________. - | Master Process | pid 1 - | - runs master_function | pgroup 1 - | - uses ProcessController and master_fd to control child | session 1 + | Controller Process | pid 1 + | - runs controller_function | pgroup 1 + | - uses ProcessController and controller_fd to | session 1 + | control minion | |_________________________________________________________| ^ | create process @@ -207,51 +208,51 @@ class PseudoShell(object): ._________________________________________________________. | Caller | pid 0 | - Constructs, starts, joins PseudoShell | pgroup 0 - | - provides master_function, child_function | session 0 + | - provides controller_function, minion_function | session 0 |_________________________________________________________| """ - def __init__(self, master_function, child_function): + def __init__(self, controller_function, minion_function): self.proc = None - self.master_function = master_function - self.child_function = child_function + self.controller_function = controller_function + self.minion_function = minion_function # these can be optionally set to change defaults self.controller_timeout = 1 self.sleep_time = 0 def start(self, **kwargs): - """Start the master and child processes. + """Start the controller and minion processes. Arguments: kwargs (dict): arbitrary keyword arguments that will be - passed to master and child functions + passed to controller and minion functions - The master process will create the child, then call - ``master_function``. The child process will call - ``child_function``. + The controller process will create the minion, then call + ``controller_function``. The minion process will call + ``minion_function``. """ self.proc = multiprocessing.Process( - target=PseudoShell._set_up_and_run_master_function, - args=(self.master_function, self.child_function, + target=PseudoShell._set_up_and_run_controller_function, + args=(self.controller_function, self.minion_function, self.controller_timeout, self.sleep_time), kwargs=kwargs, ) self.proc.start() def join(self): - """Wait for the child process to finish, and return its exit code.""" + """Wait for the minion process to finish, and return its exit code.""" self.proc.join() return self.proc.exitcode @staticmethod - def _set_up_and_run_child_function( - tty_name, stdout_fd, stderr_fd, ready, child_function, **kwargs): - """Child process wrapper for PseudoShell. + def _set_up_and_run_minion_function( + tty_name, stdout_fd, stderr_fd, ready, minion_function, **kwargs): + """Minion process wrapper for PseudoShell. Handles the mechanics of setting up a PTY, then calls - ``child_function``. + ``minion_function``. """ # new process group, like a command or pipeline launched by a shell @@ -266,45 +267,45 @@ class PseudoShell(object): if kwargs.get("debug"): sys.stderr.write( - "child: stdin.isatty(): %s\n" % sys.stdin.isatty()) + "minion: stdin.isatty(): %s\n" % sys.stdin.isatty()) # tell the parent that we're really running if kwargs.get("debug"): - sys.stderr.write("child: ready!\n") + sys.stderr.write("minion: ready!\n") ready.value = True try: - child_function(**kwargs) + minion_function(**kwargs) except BaseException: traceback.print_exc() @staticmethod - def _set_up_and_run_master_function( - master_function, child_function, controller_timeout, sleep_time, - **kwargs): - """Set up a pty, spawn a child process, and execute master_function. + def _set_up_and_run_controller_function( + controller_function, minion_function, controller_timeout, + sleep_time, **kwargs): + """Set up a pty, spawn a minion process, execute controller_function. Handles the mechanics of setting up a PTY, then calls - ``master_function``. + ``controller_function``. """ os.setsid() # new session; this process is the controller - master_fd, child_fd = os.openpty() - pty_name = os.ttyname(child_fd) + controller_fd, minion_fd = os.openpty() + pty_name = os.ttyname(minion_fd) # take controlling terminal pty_fd = os.open(pty_name, os.O_RDWR) os.close(pty_fd) ready = multiprocessing.Value('i', False) - child_process = multiprocessing.Process( - target=PseudoShell._set_up_and_run_child_function, + minion_process = multiprocessing.Process( + target=PseudoShell._set_up_and_run_minion_function, args=(pty_name, sys.stdout.fileno(), sys.stderr.fileno(), - ready, child_function), + ready, minion_function), kwargs=kwargs, ) - child_process.start() + minion_process.start() # wait for subprocess to be running and connected. while not ready.value: @@ -315,30 +316,31 @@ class PseudoShell(object): sys.stderr.write("pid: %d\n" % os.getpid()) sys.stderr.write("pgid: %d\n" % os.getpgrp()) sys.stderr.write("sid: %d\n" % os.getsid(0)) - sys.stderr.write("tcgetpgrp: %d\n" % os.tcgetpgrp(master_fd)) + sys.stderr.write("tcgetpgrp: %d\n" % os.tcgetpgrp(controller_fd)) sys.stderr.write("\n") - child_pgid = os.getpgid(child_process.pid) - sys.stderr.write("child pid: %d\n" % child_process.pid) - sys.stderr.write("child pgid: %d\n" % child_pgid) - sys.stderr.write("child sid: %d\n" % os.getsid(child_process.pid)) + minion_pgid = os.getpgid(minion_process.pid) + sys.stderr.write("minion pid: %d\n" % minion_process.pid) + sys.stderr.write("minion pgid: %d\n" % minion_pgid) + sys.stderr.write( + "minion sid: %d\n" % os.getsid(minion_process.pid)) sys.stderr.write("\n") sys.stderr.flush() - # set up master to ignore SIGTSTP, like a shell + # set up controller to ignore SIGTSTP, like a shell signal.signal(signal.SIGTSTP, signal.SIG_IGN) - # call the master function once the child is ready + # call the controller function once the minion is ready try: controller = ProcessController( - child_process.pid, master_fd, debug=kwargs.get("debug")) + minion_process.pid, controller_fd, debug=kwargs.get("debug")) controller.timeout = controller_timeout controller.sleep_time = sleep_time - error = master_function(child_process, controller, **kwargs) + error = controller_function(minion_process, controller, **kwargs) except BaseException: error = 1 traceback.print_exc() - child_process.join() + minion_process.join() - # return whether either the parent or child failed - return error or child_process.exitcode + # return whether either the parent or minion failed + return error or minion_process.exitcode diff --git a/lib/spack/spack/abi.py b/lib/spack/spack/abi.py index 9e1ef14551..a29a9eef3b 100644 --- a/lib/spack/spack/abi.py +++ b/lib/spack/spack/abi.py @@ -18,10 +18,13 @@ class ABI(object): """This class provides methods to test ABI compatibility between specs. The current implementation is rather rough and could be improved.""" - def architecture_compatible(self, parent, child): - """Return true if parent and child have ABI compatible targets.""" - return not parent.architecture or not child.architecture or \ - parent.architecture == child.architecture + def architecture_compatible(self, target, constraint): + """Return true if architecture of target spec is ABI compatible + to the architecture of constraint spec. If either the target + or constraint specs have no architecture, target is also defined + as architecture ABI compatible to constraint.""" + return not target.architecture or not constraint.architecture or \ + target.architecture.satisfies(constraint.architecture) @memoized def _gcc_get_libstdcxx_version(self, version): @@ -107,8 +110,8 @@ class ABI(object): return True return False - def compatible(self, parent, child, **kwargs): - """Returns true iff a parent and child spec are ABI compatible""" + def compatible(self, target, constraint, **kwargs): + """Returns true if target spec is ABI compatible to constraint spec""" loosematch = kwargs.get('loose', False) - return self.architecture_compatible(parent, child) and \ - self.compiler_compatible(parent, child, loose=loosematch) + return self.architecture_compatible(target, constraint) and \ + self.compiler_compatible(target, constraint, loose=loosematch) diff --git a/lib/spack/spack/binary_distribution.py b/lib/spack/spack/binary_distribution.py index 0beac413e1..f53501cbd6 100644 --- a/lib/spack/spack/binary_distribution.py +++ b/lib/spack/spack/binary_distribution.py @@ -498,6 +498,7 @@ def download_tarball(spec): # stage the tarball into standard place stage = Stage(url, name="build_cache", keep=True) + stage.create() try: stage.fetch() return stage.save_filename diff --git a/lib/spack/spack/build_systems/cuda.py b/lib/spack/spack/build_systems/cuda.py index cbee710049..ef1b0266f8 100644 --- a/lib/spack/spack/build_systems/cuda.py +++ b/lib/spack/spack/build_systems/cuda.py @@ -12,8 +12,9 @@ import spack.variant class CudaPackage(PackageBase): """Auxiliary class which contains CUDA variant, dependencies and conflicts and is meant to unify and facilitate its usage. + + Maintainers: ax3l, svenevs """ - maintainers = ['ax3l', 'svenevs'] # https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#gpu-feature-list # https://developer.nvidia.com/cuda-gpus @@ -25,6 +26,7 @@ class CudaPackage(PackageBase): '50', '52', '53', '60', '61', '62', '70', '72', '75', + '80', ] # FIXME: keep cuda and cuda_arch separate to make usage easier until @@ -48,6 +50,7 @@ class CudaPackage(PackageBase): # CUDA version vs Architecture # https://en.wikipedia.org/wiki/CUDA#GPUs_supported + # https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#deprecated-features depends_on('cuda@:6.0', when='cuda_arch=10') depends_on('cuda@:6.5', when='cuda_arch=11') depends_on('cuda@2.1:6.5', when='cuda_arch=12') @@ -58,8 +61,8 @@ class CudaPackage(PackageBase): depends_on('cuda@5.0:10.2', when='cuda_arch=30') depends_on('cuda@5.0:10.2', when='cuda_arch=32') - depends_on('cuda@5.0:10.2', when='cuda_arch=35') - depends_on('cuda@6.5:10.2', when='cuda_arch=37') + depends_on('cuda@5.0:', when='cuda_arch=35') + depends_on('cuda@6.5:', when='cuda_arch=37') depends_on('cuda@6.0:', when='cuda_arch=50') depends_on('cuda@6.5:', when='cuda_arch=52') @@ -73,6 +76,8 @@ class CudaPackage(PackageBase): depends_on('cuda@9.0:', when='cuda_arch=72') depends_on('cuda@10.0:', when='cuda_arch=75') + depends_on('cuda@11.0:', when='cuda_arch=80') + # There are at least three cases to be aware of for compiler conflicts # 1. Linux x86_64 # 2. Linux ppc64le @@ -88,12 +93,15 @@ class CudaPackage(PackageBase): conflicts('%gcc@7:', when='+cuda ^cuda@:9.1' + arch_platform) conflicts('%gcc@8:', when='+cuda ^cuda@:10.0.130' + arch_platform) conflicts('%gcc@9:', when='+cuda ^cuda@:10.2.89' + arch_platform) + conflicts('%gcc@:4,10:', when='+cuda ^cuda@:11.0.2' + arch_platform) conflicts('%pgi@:14.8', when='+cuda ^cuda@:7.0.27' + arch_platform) conflicts('%pgi@:15.3,15.5:', when='+cuda ^cuda@7.5' + arch_platform) conflicts('%pgi@:16.2,16.0:16.3', when='+cuda ^cuda@8' + arch_platform) conflicts('%pgi@:15,18:', when='+cuda ^cuda@9.0:9.1' + arch_platform) - conflicts('%pgi@:16', when='+cuda ^cuda@9.2.88:10' + arch_platform) - conflicts('%pgi@:17', when='+cuda ^cuda@10.2.89' + arch_platform) + conflicts('%pgi@:16,19:', when='+cuda ^cuda@9.2.88:10' + arch_platform) + conflicts('%pgi@:17,20:', + when='+cuda ^cuda@10.1.105:10.2.89' + arch_platform) + conflicts('%pgi@:17,20.2:', when='+cuda ^cuda@11.0.2' + arch_platform) conflicts('%clang@:3.4', when='+cuda ^cuda@:7.5' + arch_platform) conflicts('%clang@:3.7,4:', when='+cuda ^cuda@8.0:9.0' + arch_platform) @@ -104,7 +112,8 @@ class CudaPackage(PackageBase): conflicts('%clang@:3.7,7.1:', when='+cuda ^cuda@10.1.105' + arch_platform) conflicts('%clang@:3.7,8.1:', when='+cuda ^cuda@10.1.105:10.1.243' + arch_platform) - conflicts('%clang@:3.2,9.0:', when='+cuda ^cuda@10.2.89' + arch_platform) + conflicts('%clang@:3.2,9:', when='+cuda ^cuda@10.2.89' + arch_platform) + conflicts('%clang@:5,10:', when='+cuda ^cuda@11.0.2' + arch_platform) # x86_64 vs. ppc64le differ according to NVidia docs # Linux ppc64le compiler conflicts from Table from the docs below: @@ -119,6 +128,8 @@ class CudaPackage(PackageBase): conflicts('%gcc@6:', when='+cuda ^cuda@:9' + arch_platform) conflicts('%gcc@8:', when='+cuda ^cuda@:10.0.130' + arch_platform) conflicts('%gcc@9:', when='+cuda ^cuda@:10.1.243' + arch_platform) + # officially, CUDA 11.0.2 only supports the system GCC 8.3 on ppc64le + conflicts('%gcc@:4,10:', when='+cuda ^cuda@:11.0.2' + arch_platform) conflicts('%pgi', when='+cuda ^cuda@:8' + arch_platform) conflicts('%pgi@:16', when='+cuda ^cuda@:9.1.185' + arch_platform) conflicts('%pgi@:17', when='+cuda ^cuda@:10' + arch_platform) @@ -128,6 +139,7 @@ class CudaPackage(PackageBase): conflicts('%clang@7:', when='+cuda ^cuda@10.0.130' + arch_platform) conflicts('%clang@7.1:', when='+cuda ^cuda@:10.1.105' + arch_platform) conflicts('%clang@8.1:', when='+cuda ^cuda@:10.2.89' + arch_platform) + conflicts('%clang@:5,10.0:', when='+cuda ^cuda@11.0.2' + arch_platform) # 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 @@ -141,11 +153,13 @@ class CudaPackage(PackageBase): 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.0.2') # 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@17:', when='+cuda ^cuda@:10.2.89') + conflicts('%xl@:12,17:', when='+cuda ^cuda@:11.0.2') # Mac OS X # platform = ' platform=darwin' @@ -156,7 +170,7 @@ class CudaPackage(PackageBase): # `clang-apple@x.y.z as a possible fix. # Compiler conflicts will be eventual taken from here: # https://docs.nvidia.com/cuda/cuda-installation-guide-mac-os-x/index.html#abstract - conflicts('platform=darwin', when='+cuda ^cuda@11.0:') + 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/ci.py b/lib/spack/spack/ci.py index 22ba60235a..283fcab3a1 100644 --- a/lib/spack/spack/ci.py +++ b/lib/spack/spack/ci.py @@ -493,7 +493,7 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file, after_script = None if custom_spack_repo: if not custom_spack_ref: - custom_spack_ref = 'master' + custom_spack_ref = 'develop' before_script = [ ('git clone "{0}"'.format(custom_spack_repo)), 'pushd ./spack && git checkout "{0}" && popd'.format( diff --git a/lib/spack/spack/cmd/checksum.py b/lib/spack/spack/cmd/checksum.py index 97e7833af0..188deb1149 100644 --- a/lib/spack/spack/cmd/checksum.py +++ b/lib/spack/spack/cmd/checksum.py @@ -65,7 +65,7 @@ def checksum(parser, args): version_lines = spack.stage.get_checksums_for_versions( url_dict, pkg.name, keep_stage=args.keep_stage, - batch=(args.batch or len(args.versions) > 0), + batch=(args.batch or len(args.versions) > 0 or len(url_dict) == 1), fetch_options=pkg.fetch_options) print() diff --git a/lib/spack/spack/cmd/create.py b/lib/spack/spack/cmd/create.py index 7d12dc98a7..48326868ae 100644 --- a/lib/spack/spack/cmd/create.py +++ b/lib/spack/spack/cmd/create.py @@ -445,6 +445,9 @@ def setup_parser(subparser): subparser.add_argument( '--skip-editor', action='store_true', help="skip the edit session for the package (e.g., automation)") + subparser.add_argument( + '-b', '--batch', action='store_true', + help="don't ask which versions to checksum") class BuildSystemGuesser: @@ -511,7 +514,7 @@ class BuildSystemGuesser: # Determine the build system based on the files contained # in the archive. for pattern, bs in clues: - if any(re.search(pattern, l) for l in lines): + if any(re.search(pattern, line) for line in lines): self.build_system = bs break @@ -629,7 +632,8 @@ def get_versions(args, name): versions = spack.stage.get_checksums_for_versions( url_dict, name, first_stage_function=guesser, - keep_stage=args.keep_stage, batch=True) + keep_stage=args.keep_stage, + batch=(args.batch or len(url_dict) == 1)) else: versions = unhashed_versions diff --git a/lib/spack/spack/cmd/help.py b/lib/spack/spack/cmd/help.py index 3af82312df..1a5caddc64 100644 --- a/lib/spack/spack/cmd/help.py +++ b/lib/spack/spack/cmd/help.py @@ -35,6 +35,10 @@ spec expression syntax: @g{%compiler@version} build with specific compiler version @g{%compiler@min:max} specific version range (see above) + compiler flags: + @g{cflags="flags"} cppflags, cflags, cxxflags, + fflags, ldflags, ldlibs + variants: @B{+variant} enable <variant> @r{-variant} or @r{~variant} disable <variant> diff --git a/lib/spack/spack/environment.py b/lib/spack/spack/environment.py index 99aa3963d5..a580f1169d 100644 --- a/lib/spack/spack/environment.py +++ b/lib/spack/spack/environment.py @@ -946,6 +946,7 @@ class Environment(object): "Not found: {0}".format(query_spec)) old_specs = set(self.user_specs) + new_specs = set() for spec in matches: if spec in list_to_change: try: diff --git a/lib/spack/spack/main.py b/lib/spack/spack/main.py index b15e99f08b..1bab26c2e1 100644 --- a/lib/spack/spack/main.py +++ b/lib/spack/spack/main.py @@ -702,16 +702,16 @@ def main(argv=None): if stored_var_name in os.environ: os.environ[var] = os.environ[stored_var_name] + # make spack.config aware of any command line configuration scopes + if args.config_scopes: + spack.config.command_line_scopes = args.config_scopes + # activate an environment if one was specified on the command line if not args.no_env: env = ev.find_environment(args) if env: ev.activate(env, args.use_env_repo, add_view=False) - # make spack.config aware of any command line configuration scopes - if args.config_scopes: - spack.config.command_line_scopes = args.config_scopes - if args.print_shell_vars: print_setup_info(*args.print_shell_vars.split(',')) return 0 diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py index 4febfb1b47..c5cae4f9b0 100644 --- a/lib/spack/spack/package.py +++ b/lib/spack/spack/package.py @@ -22,6 +22,7 @@ import shutil import sys import textwrap import time +import traceback from six import StringIO from six import string_types from six import with_metaclass @@ -1747,7 +1748,23 @@ class PackageBase(with_metaclass(PackageMeta, PackageViewMixin, object)): with spack.store.db.prefix_write_lock(spec): if pkg is not None: - spack.hooks.pre_uninstall(spec) + try: + spack.hooks.pre_uninstall(spec) + except Exception as error: + if force: + error_msg = ( + "One or more pre_uninstall hooks have failed" + " for {0}, but Spack is continuing with the" + " uninstall".format(str(spec))) + if isinstance(error, spack.error.SpackError): + error_msg += ( + "\n\nError message: {0}".format(str(error))) + tty.warn(error_msg) + # Note that if the uninstall succeeds then we won't be + # seeing this error again and won't have another chance + # to run the hook. + else: + raise # Uninstalling in Spack only requires removing the prefix. if not spec.external: @@ -1768,7 +1785,20 @@ class PackageBase(with_metaclass(PackageMeta, PackageViewMixin, object)): spack.store.db.remove(spec) if pkg is not None: - spack.hooks.post_uninstall(spec) + try: + spack.hooks.post_uninstall(spec) + except Exception: + # If there is a failure here, this is our only chance to do + # something about it: at this point the Spec has been removed + # from the DB and prefix, so the post-uninstallation hooks + # will not have another chance to run. + error_msg = ( + "One or more post-uninstallation hooks failed for" + " {0}, but the prefix has been removed (if it is not" + " external).".format(str(spec))) + tb_msg = traceback.format_exc() + error_msg += "\n\nThe error:\n\n{0}".format(tb_msg) + tty.warn(error_msg) tty.msg('Successfully uninstalled {0}'.format(spec.short_spec)) diff --git a/lib/spack/spack/test/abi.py b/lib/spack/spack/test/abi.py new file mode 100644 index 0000000000..dd41228941 --- /dev/null +++ b/lib/spack/spack/test/abi.py @@ -0,0 +1,66 @@ +# 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) +""" Test ABI compatibility helpers""" + +import pytest + +from spack.abi import ABI +from spack.spec import Spec + + +@pytest.mark.parametrize( + 'target,constraint,expected', + [ + ('foo', 'bar', True), + ('platform=linux', 'foo', True), + ('foo', 'arch=linux-fedora31-x86_64', True), + ('arch=linux-fedora31-skylake', 'arch=linux-fedora31-skylake', True), + ('arch=linux-fedora31-skylake', 'arch=linux-fedora31-x86_64', False), + ('platform=linux os=fedora31', 'arch=linux-fedora31-x86_64', True), + ('platform=linux', 'arch=linux-fedora31-x86_64', True), + ('platform=linux os=fedora31', 'platform=linux', True), + ('platform=darwin', 'arch=linux-fedora31-x86_64', False), + ('os=fedora31', 'platform=linux', False), # TODO should be true ? + ]) +def test_architecture_compatibility(target, constraint, expected): + assert ABI().architecture_compatible(Spec(target), + Spec(constraint)) == expected + + +@pytest.mark.parametrize( + 'target,constraint,loose,expected', + [ + ('foo', 'bar', False, True), + ('%gcc', 'foo', False, True), + ('foo', '%gcc', False, True), + ('%gcc', '%gcc', False, True), + ('%gcc', '%intel', False, False), + ('%gcc', '%clang', False, False), + ('%gcc@9.1', '%gcc@9.2', False, False), # TODO should be true ? + ('%gcc@9.2.1', '%gcc@9.2.2', False, False), # TODO should be true ? + ('%gcc@4.9', '%gcc@9.2', False, False), + ('%clang@5', '%clang@6', False, False), + ('%gcc@9.1', '%gcc@9.2', True, True), + ('%gcc@9.2.1', '%gcc@9.2.2', True, True), + ('%gcc@4.9', '%gcc@9.2', True, True), + ('%clang@5', '%clang@6', True, True), + ]) +def test_compiler_compatibility(target, constraint, loose, expected): + assert ABI().compiler_compatible(Spec(target), + Spec(constraint), + loose=loose) == expected + + +@pytest.mark.parametrize('target,constraint,loose,expected', [ + ('foo', 'bar', False, True), + ('%gcc', 'platform=linux', False, True), + ('%gcc@9.2.1', '%gcc@8.3.1 platform=linux', False, False), + ('%gcc@9.2.1', '%gcc@8.3.1 platform=linux', True, True), + ('%gcc@9.2.1 arch=linux-fedora31-skylake', '%gcc@9.2.1 platform=linux', + False, True), +]) +def test_compatibility(target, constraint, loose, expected): + assert ABI().compatible(Spec(target), Spec(constraint), + loose=loose) == expected diff --git a/lib/spack/spack/test/bindist.py b/lib/spack/spack/test/bindist.py new file mode 100644 index 0000000000..f561077edd --- /dev/null +++ b/lib/spack/spack/test/bindist.py @@ -0,0 +1,471 @@ +# Copyright 2013-2019 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) + +""" +This test checks creating and install buildcaches +""" +import os +import py +import pytest +import argparse +import platform +import spack.repo +import spack.store +import spack.binary_distribution as bindist +import spack.cmd.buildcache as buildcache +import spack.cmd.install as install +import spack.cmd.uninstall as uninstall +import spack.cmd.mirror as mirror +from spack.spec import Spec +from spack.directory_layout import YamlDirectoryLayout + + +def_install_path_scheme = '${ARCHITECTURE}/${COMPILERNAME}-${COMPILERVER}/${PACKAGE}-${VERSION}-${HASH}' # noqa: E501 +ndef_install_path_scheme = '${PACKAGE}/${VERSION}/${ARCHITECTURE}-${COMPILERNAME}-${COMPILERVER}-${HASH}' # noqa: E501 + +mirror_path_def = None +mirror_path_rel = None + + +@pytest.fixture(scope='function') +def cache_directory(tmpdir): + old_cache_path = spack.caches.fetch_cache + tmpdir.ensure('fetch_cache', dir=True) + fsc = spack.fetch_strategy.FsCache(str(tmpdir.join('fetch_cache'))) + spack.config.caches = fsc + yield spack.config.caches + tmpdir.join('fetch_cache').remove() + spack.config.caches = old_cache_path + + +@pytest.fixture(scope='session') +def session_mirror_def(tmpdir_factory): + dir = tmpdir_factory.mktemp('mirror') + global mirror_path_rel + mirror_path_rel = dir + dir.ensure('build_cache', dir=True) + yield dir + dir.join('build_cache').remove() + + +@pytest.fixture(scope='function') +def mirror_directory_def(session_mirror_def): + yield str(session_mirror_def) + + +@pytest.fixture(scope='session') +def session_mirror_rel(tmpdir_factory): + dir = tmpdir_factory.mktemp('mirror') + global mirror_path_rel + mirror_path_rel = dir + dir.ensure('build_cache', dir=True) + yield dir + dir.join('build_cache').remove() + + +@pytest.fixture(scope='function') +def mirror_directory_rel(session_mirror_rel): + yield(session_mirror_rel) + + +@pytest.fixture(scope='session') +def config_directory(tmpdir_factory): + tmpdir = tmpdir_factory.mktemp('test_configs') + # restore some sane defaults for packages and config + config_path = py.path.local(spack.paths.etc_path) + modules_yaml = config_path.join('spack', 'defaults', 'modules.yaml') + os_modules_yaml = config_path.join('spack', 'defaults', '%s' % + platform.system().lower(), + 'modules.yaml') + packages_yaml = config_path.join('spack', 'defaults', 'packages.yaml') + config_yaml = config_path.join('spack', 'defaults', 'config.yaml') + repos_yaml = config_path.join('spack', 'defaults', 'repos.yaml') + tmpdir.ensure('site', dir=True) + tmpdir.ensure('user', dir=True) + tmpdir.ensure('site/%s' % platform.system().lower(), dir=True) + modules_yaml.copy(tmpdir.join('site', 'modules.yaml')) + os_modules_yaml.copy(tmpdir.join('site/%s' % platform.system().lower(), + 'modules.yaml')) + packages_yaml.copy(tmpdir.join('site', 'packages.yaml')) + config_yaml.copy(tmpdir.join('site', 'config.yaml')) + repos_yaml.copy(tmpdir.join('site', 'repos.yaml')) + yield tmpdir + tmpdir.remove() + + +@pytest.fixture(scope='function') +def default_config(tmpdir_factory, config_directory, monkeypatch): + + mutable_dir = tmpdir_factory.mktemp('mutable_config').join('tmp') + config_directory.copy(mutable_dir) + + cfg = spack.config.Configuration( + *[spack.config.ConfigScope(name, str(mutable_dir)) + for name in ['site/%s' % platform.system().lower(), + 'site', 'user']]) + + monkeypatch.setattr(spack.config, 'config', cfg) + + # This is essential, otherwise the cache will create weird side effects + # that will compromise subsequent tests if compilers.yaml is modified + monkeypatch.setattr(spack.compilers, '_cache_config_file', []) + njobs = spack.config.get('config:build_jobs') + if not njobs: + spack.config.set('config:build_jobs', 4, scope='user') + extensions = spack.config.get('config:template_dirs') + if not extensions: + spack.config.set('config:template_dirs', + [os.path.join(spack.paths.share_path, 'templates')], + scope='user') + + mutable_dir.ensure('build_stage', dir=True) + build_stage = spack.config.get('config:build_stage') + if not build_stage: + spack.config.set('config:build_stage', + [str(mutable_dir.join('build_stage'))], scope='user') + timeout = spack.config.get('config:connect_timeout') + if not timeout: + spack.config.set('config:connect_timeout', 10, scope='user') + yield spack.config.config + mutable_dir.remove() + + +@pytest.fixture(scope='function') +def install_dir_default_layout(tmpdir): + """Hooks a fake install directory with a default layout""" + real_store = spack.store.store + real_layout = spack.store.layout + spack.store.store = spack.store.Store(str(tmpdir.join('opt'))) + spack.store.layout = YamlDirectoryLayout(str(tmpdir.join('opt')), + path_scheme=def_install_path_scheme) # noqa: E501 + yield spack.store + spack.store.store = real_store + spack.store.layout = real_layout + + +@pytest.fixture(scope='function') +def install_dir_non_default_layout(tmpdir): + """Hooks a fake install directory with a non-default layout""" + real_store = spack.store.store + real_layout = spack.store.layout + spack.store.store = spack.store.Store(str(tmpdir.join('opt'))) + spack.store.layout = YamlDirectoryLayout(str(tmpdir.join('opt')), + path_scheme=ndef_install_path_scheme) # noqa: E501 + yield spack.store + spack.store.store = real_store + spack.store.layout = real_layout + + +@pytest.mark.requires_executables( + '/usr/bin/gcc', 'patchelf', 'strings', 'file') +@pytest.mark.disable_clean_stage_check +@pytest.mark.maybeslow +@pytest.mark.usefixtures('default_config', 'cache_directory', + 'install_dir_default_layout') +def test_default_rpaths_create_install_default_layout(tmpdir, + mirror_directory_def, + install_mockery): + """ + Test the creation and installation of buildcaches with default rpaths + into the default directory layout scheme. + """ + + gspec = Spec('garply') + gspec.concretize() + cspec = Spec('corge') + cspec.concretize() + + # Install patchelf needed for relocate in linux test environment + iparser = argparse.ArgumentParser() + install.setup_parser(iparser) + # Install some packages with dependent packages + iargs = iparser.parse_args(['--no-cache', cspec.name]) + install.install(iparser, iargs) + + global mirror_path_def + mirror_path_def = mirror_directory_def + mparser = argparse.ArgumentParser() + mirror.setup_parser(mparser) + margs = mparser.parse_args( + ['add', '--scope', 'site', 'test-mirror-def', 'file://%s' % mirror_path_def]) + mirror.mirror(mparser, margs) + margs = mparser.parse_args(['list']) + mirror.mirror(mparser, margs) + + # setup argument parser + parser = argparse.ArgumentParser() + buildcache.setup_parser(parser) + + # Set default buildcache args + create_args = ['create', '-a', '-u', '-d', str(mirror_path_def), + cspec.name] + install_args = ['install', '-a', '-u', cspec.name] + + # Create a buildache + args = parser.parse_args(create_args) + buildcache.buildcache(parser, args) + # Test force overwrite create buildcache + create_args.insert(create_args.index('-a'), '-f') + args = parser.parse_args(create_args) + buildcache.buildcache(parser, args) + # create mirror index + args = parser.parse_args(['update-index', '-d', 'file://%s' % str(mirror_path_def)]) + buildcache.buildcache(parser, args) + # list the buildcaches in the mirror + args = parser.parse_args(['list', '-a', '-l', '-v']) + buildcache.buildcache(parser, args) + + # Uninstall the package and deps + uparser = argparse.ArgumentParser() + uninstall.setup_parser(uparser) + uargs = uparser.parse_args(['-y', '--dependents', gspec.name]) + uninstall.uninstall(uparser, uargs) + + # test install + args = parser.parse_args(install_args) + buildcache.buildcache(parser, args) + + # This gives warning that spec is already installed + buildcache.buildcache(parser, args) + + # test overwrite install + install_args.insert(install_args.index('-a'), '-f') + args = parser.parse_args(install_args) + buildcache.buildcache(parser, args) + + args = parser.parse_args(['keys', '-f']) + buildcache.buildcache(parser, args) + + args = parser.parse_args(['list']) + buildcache.buildcache(parser, args) + + args = parser.parse_args(['list', '-a']) + buildcache.buildcache(parser, args) + + args = parser.parse_args(['list', '-l', '-v']) + buildcache.buildcache(parser, args) + bindist._cached_specs = set() + spack.stage.purge() + margs = mparser.parse_args( + ['rm', '--scope', 'site', 'test-mirror-def']) + mirror.mirror(mparser, margs) + + +@pytest.mark.requires_executables( + '/usr/bin/gcc', 'patchelf', 'strings', 'file') +@pytest.mark.disable_clean_stage_check +@pytest.mark.maybeslow +@pytest.mark.nomockstage +@pytest.mark.usefixtures('default_config', 'cache_directory', + 'install_dir_non_default_layout') +def test_default_rpaths_install_nondefault_layout(tmpdir, + install_mockery): + """ + Test the creation and installation of buildcaches with default rpaths + into the non-default directory layout scheme. + """ + + gspec = Spec('garply') + gspec.concretize() + cspec = Spec('corge') + cspec.concretize() + + global mirror_path_def + mparser = argparse.ArgumentParser() + mirror.setup_parser(mparser) + margs = mparser.parse_args( + ['add', '--scope', 'site', 'test-mirror-def', 'file://%s' % mirror_path_def]) + mirror.mirror(mparser, margs) + + # setup argument parser + parser = argparse.ArgumentParser() + buildcache.setup_parser(parser) + + # Set default buildcache args + install_args = ['install', '-a', '-u', '%s' % cspec.name] + + # Install some packages with dependent packages + # test install in non-default install path scheme + args = parser.parse_args(install_args) + buildcache.buildcache(parser, args) + # test force install in non-default install path scheme + install_args.insert(install_args.index('-a'), '-f') + args = parser.parse_args(install_args) + buildcache.buildcache(parser, args) + + bindist._cached_specs = set() + spack.stage.purge() + margs = mparser.parse_args( + ['rm', '--scope', 'site', 'test-mirror-def']) + mirror.mirror(mparser, margs) + + +@pytest.mark.requires_executables( + '/usr/bin/gcc', 'patchelf', 'strings', 'file') +@pytest.mark.disable_clean_stage_check +@pytest.mark.maybeslow +@pytest.mark.nomockstage +@pytest.mark.usefixtures('default_config', 'cache_directory', + 'install_dir_default_layout') +def test_relative_rpaths_create_default_layout(tmpdir, + mirror_directory_rel, + install_mockery): + """ + Test the creation and installation of buildcaches with relative + rpaths into the default directory layout scheme. + """ + + gspec = Spec('garply') + gspec.concretize() + cspec = Spec('corge') + cspec.concretize() + + global mirror_path_rel + mirror_path_rel = mirror_directory_rel + # Install patchelf needed for relocate in linux test environment + iparser = argparse.ArgumentParser() + install.setup_parser(iparser) + # Install some packages with dependent packages + iargs = iparser.parse_args(['--no-cache', cspec.name]) + install.install(iparser, iargs) + + # setup argument parser + parser = argparse.ArgumentParser() + buildcache.setup_parser(parser) + + # set default buildcache args + create_args = ['create', '-a', '-u', '-r', '-d', + str(mirror_path_rel), + cspec.name] + + # create build cache with relatived rpaths + args = parser.parse_args(create_args) + buildcache.buildcache(parser, args) + # create mirror index + args = parser.parse_args(['update-index', '-d', 'file://%s' % str(mirror_path_rel)]) + buildcache.buildcache(parser, args) + # Uninstall the package and deps + uparser = argparse.ArgumentParser() + uninstall.setup_parser(uparser) + uargs = uparser.parse_args(['-y', '--dependents', gspec.name]) + uninstall.uninstall(uparser, uargs) + + bindist._cached_specs = set() + spack.stage.purge() + + +@pytest.mark.requires_executables( + '/usr/bin/gcc', 'patchelf', 'strings', 'file') +@pytest.mark.disable_clean_stage_check +@pytest.mark.maybeslow +@pytest.mark.nomockstage +@pytest.mark.usefixtures('default_config', 'cache_directory', + 'install_dir_default_layout') +def test_relative_rpaths_install_default_layout(tmpdir, + install_mockery): + """ + Test the creation and installation of buildcaches with relative + rpaths into the default directory layout scheme. + """ + + gspec = Spec('garply') + gspec.concretize() + cspec = Spec('corge') + cspec.concretize() + + global mirror_path_rel + mparser = argparse.ArgumentParser() + mirror.setup_parser(mparser) + margs = mparser.parse_args( + ['add', '--scope', 'site', 'test-mirror-rel', 'file://%s' % mirror_path_rel]) + mirror.mirror(mparser, margs) + + # Install patchelf needed for relocate in linux test environment + iparser = argparse.ArgumentParser() + install.setup_parser(iparser) + + # setup argument parser + parser = argparse.ArgumentParser() + buildcache.setup_parser(parser) + + # set default buildcache args + install_args = ['install', '-a', '-u', + cspec.name] + + # install buildcache created with relativized rpaths + args = parser.parse_args(install_args) + buildcache.buildcache(parser, args) + + # This gives warning that spec is already installed + buildcache.buildcache(parser, args) + + # Uninstall the package and deps + uparser = argparse.ArgumentParser() + uninstall.setup_parser(uparser) + uargs = uparser.parse_args(['-y', '--dependents', gspec.name]) + uninstall.uninstall(uparser, uargs) + + # install build cache + buildcache.buildcache(parser, args) + + # test overwrite install + install_args.insert(install_args.index('-a'), '-f') + args = parser.parse_args(install_args) + buildcache.buildcache(parser, args) + + bindist._cached_specs = set() + spack.stage.purge() + margs = mparser.parse_args( + ['rm', '--scope', 'site', 'test-mirror-rel']) + mirror.mirror(mparser, margs) + + +@pytest.mark.requires_executables( + '/usr/bin/gcc', 'patchelf', 'strings', 'file') +@pytest.mark.disable_clean_stage_check +@pytest.mark.maybeslow +@pytest.mark.nomockstage +@pytest.mark.usefixtures('default_config', 'cache_directory', + 'install_dir_non_default_layout') +def test_relative_rpaths_install_nondefault(tmpdir, + install_mockery): + """ + Test the installation of buildcaches with relativized rpaths + into the non-default directory layout scheme. + """ + + gspec = Spec('garply') + gspec.concretize() + cspec = Spec('corge') + cspec.concretize() + + global mirror_path_rel + + mparser = argparse.ArgumentParser() + mirror.setup_parser(mparser) + margs = mparser.parse_args( + ['add', '--scope', 'site', 'test-mirror-rel', 'file://%s' % mirror_path_rel]) + mirror.mirror(mparser, margs) + + # Install patchelf needed for relocate in linux test environment + iparser = argparse.ArgumentParser() + install.setup_parser(iparser) + + # setup argument parser + parser = argparse.ArgumentParser() + buildcache.setup_parser(parser) + + # Set default buildcache args + install_args = ['install', '-a', '-u', '%s' % cspec.name] + + # test install in non-default install path scheme and relative path + args = parser.parse_args(install_args) + buildcache.buildcache(parser, args) + + bindist._cached_specs = set() + spack.stage.purge() + margs = mparser.parse_args( + ['rm', '--scope', 'site', 'test-mirror-rel']) + mirror.mirror(mparser, margs) diff --git a/lib/spack/spack/test/llnl/util/lock.py b/lib/spack/spack/test/llnl/util/lock.py index a959ea0c73..b2b7cf85ac 100644 --- a/lib/spack/spack/test/llnl/util/lock.py +++ b/lib/spack/spack/test/llnl/util/lock.py @@ -1143,8 +1143,6 @@ def test_nested_reads(lock_path): assert vals['read'] == 1 -@pytest.mark.skipif('macos' in os.environ.get('GITHUB_WORKFLOW', ''), - reason="Skip failing test for GA on MacOS") def test_lock_debug_output(lock_path): host = socket.getfqdn() diff --git a/lib/spack/spack/test/llnl/util/tty/log.py b/lib/spack/spack/test/llnl/util/tty/log.py index f23f663713..97950e8324 100644 --- a/lib/spack/spack/test/llnl/util/tty/log.py +++ b/lib/spack/spack/test/llnl/util/tty/log.py @@ -111,7 +111,7 @@ def test_log_subproc_and_echo_output_capfd(capfd, tmpdir): # Tests below use a pseudoterminal to test llnl.util.tty.log # def simple_logger(**kwargs): - """Mock logger (child) process for testing log.keyboard_input.""" + """Mock logger (minion) process for testing log.keyboard_input.""" def handler(signum, frame): running[0] = False signal.signal(signal.SIGUSR1, handler) @@ -125,7 +125,7 @@ def simple_logger(**kwargs): def mock_shell_fg(proc, ctl, **kwargs): - """PseudoShell master function for test_foreground_background.""" + """PseudoShell controller function for test_foreground_background.""" ctl.fg() ctl.status() ctl.wait_enabled() @@ -134,7 +134,7 @@ def mock_shell_fg(proc, ctl, **kwargs): def mock_shell_fg_no_termios(proc, ctl, **kwargs): - """PseudoShell master function for test_foreground_background.""" + """PseudoShell controller function for test_foreground_background.""" ctl.fg() ctl.status() ctl.wait_disabled_fg() @@ -143,7 +143,7 @@ def mock_shell_fg_no_termios(proc, ctl, **kwargs): def mock_shell_bg(proc, ctl, **kwargs): - """PseudoShell master function for test_foreground_background.""" + """PseudoShell controller function for test_foreground_background.""" ctl.bg() ctl.status() ctl.wait_disabled() @@ -152,7 +152,7 @@ def mock_shell_bg(proc, ctl, **kwargs): def mock_shell_tstp_cont(proc, ctl, **kwargs): - """PseudoShell master function for test_foreground_background.""" + """PseudoShell controller function for test_foreground_background.""" ctl.tstp() ctl.wait_stopped() @@ -163,7 +163,7 @@ def mock_shell_tstp_cont(proc, ctl, **kwargs): def mock_shell_tstp_tstp_cont(proc, ctl, **kwargs): - """PseudoShell master function for test_foreground_background.""" + """PseudoShell controller function for test_foreground_background.""" ctl.tstp() ctl.wait_stopped() @@ -177,7 +177,7 @@ def mock_shell_tstp_tstp_cont(proc, ctl, **kwargs): def mock_shell_tstp_tstp_cont_cont(proc, ctl, **kwargs): - """PseudoShell master function for test_foreground_background.""" + """PseudoShell controller function for test_foreground_background.""" ctl.tstp() ctl.wait_stopped() @@ -194,7 +194,7 @@ def mock_shell_tstp_tstp_cont_cont(proc, ctl, **kwargs): def mock_shell_bg_fg(proc, ctl, **kwargs): - """PseudoShell master function for test_foreground_background.""" + """PseudoShell controller function for test_foreground_background.""" ctl.bg() ctl.status() ctl.wait_disabled() @@ -207,7 +207,7 @@ def mock_shell_bg_fg(proc, ctl, **kwargs): def mock_shell_bg_fg_no_termios(proc, ctl, **kwargs): - """PseudoShell master function for test_foreground_background.""" + """PseudoShell controller function for test_foreground_background.""" ctl.bg() ctl.status() ctl.wait_disabled() @@ -220,7 +220,7 @@ def mock_shell_bg_fg_no_termios(proc, ctl, **kwargs): def mock_shell_fg_bg(proc, ctl, **kwargs): - """PseudoShell master function for test_foreground_background.""" + """PseudoShell controller function for test_foreground_background.""" ctl.fg() ctl.status() ctl.wait_enabled() @@ -233,7 +233,7 @@ def mock_shell_fg_bg(proc, ctl, **kwargs): def mock_shell_fg_bg_no_termios(proc, ctl, **kwargs): - """PseudoShell master function for test_foreground_background.""" + """PseudoShell controller function for test_foreground_background.""" ctl.fg() ctl.status() ctl.wait_disabled_fg() @@ -299,7 +299,7 @@ def test_foreground_background(test_fn, termios_on_or_off, tmpdir): def synchronized_logger(**kwargs): - """Mock logger (child) process for testing log.keyboard_input. + """Mock logger (minion) process for testing log.keyboard_input. This logger synchronizes with the parent process to test that 'v' can toggle output. It is used in ``test_foreground_background_output`` below. @@ -330,7 +330,7 @@ def synchronized_logger(**kwargs): def mock_shell_v_v(proc, ctl, **kwargs): - """PseudoShell master function for test_foreground_background_output.""" + """Controller function for test_foreground_background_output.""" write_lock = kwargs["write_lock"] v_lock = kwargs["v_lock"] @@ -357,7 +357,7 @@ def mock_shell_v_v(proc, ctl, **kwargs): def mock_shell_v_v_no_termios(proc, ctl, **kwargs): - """PseudoShell master function for test_foreground_background_output.""" + """Controller function for test_foreground_background_output.""" write_lock = kwargs["write_lock"] v_lock = kwargs["v_lock"] @@ -395,9 +395,9 @@ def test_foreground_background_output( shell = PseudoShell(test_fn, synchronized_logger) log_path = str(tmpdir.join("log.txt")) - # Locks for synchronizing with child - write_lock = multiprocessing.Lock() # must be held by child to write - v_lock = multiprocessing.Lock() # held while master is in v mode + # Locks for synchronizing with minion + write_lock = multiprocessing.Lock() # must be held by minion to write + v_lock = multiprocessing.Lock() # held while controller is in v mode with termios_on_or_off(): shell.start( @@ -423,16 +423,16 @@ def test_foreground_background_output( with open(log_path) as log: log = log.read().strip().split("\n") - # Master and child process coordinate with locks such that the child + # Controller and minion process coordinate with locks such that the minion # writes "off" when echo is off, and "on" when echo is on. The # output should contain mostly "on" lines, but may contain an "off" - # or two. This is because the master toggles echo by sending "v" on - # stdin to the child, but this is not synchronized with our locks. + # or two. This is because the controller toggles echo by sending "v" on + # stdin to the minion, but this is not synchronized with our locks. # It's good enough for a test, though. We allow at most 2 "off"'s in # the output to account for the race. assert ( ['forced output', 'on'] == uniq(output) or - output.count("off") <= 2 # if master_fd is a bit slow + output.count("off") <= 2 # if controller_fd is a bit slow ) # log should be off for a while, then on, then off diff --git a/lib/spack/spack/test/util/executable.py b/lib/spack/spack/test/util/executable.py index 5e8795f4bf..ae2859ea4b 100644 --- a/lib/spack/spack/test/util/executable.py +++ b/lib/spack/spack/test/util/executable.py @@ -40,6 +40,36 @@ print(u'\\xc3') assert u'\xc3' == script(output=str).strip() +def test_which_relative_path_with_slash(tmpdir, working_env): + tmpdir.ensure('exe') + path = str(tmpdir.join('exe')) + os.environ['PATH'] = '' + + with tmpdir.as_cwd(): + no_exe = ex.which('./exe') + assert no_exe is None + + fs.set_executable(path) + exe = ex.which('./exe') + assert exe.path == path + + +def test_which_with_slash_ignores_path(tmpdir, working_env): + tmpdir.ensure('exe') + tmpdir.ensure('bin{0}exe'.format(os.path.sep)) + + path = str(tmpdir.join('exe')) + wrong_path = str(tmpdir.join('bin', 'exe')) + os.environ['PATH'] = os.path.dirname(wrong_path) + + fs.set_executable(path) + fs.set_executable(wrong_path) + + with tmpdir.as_cwd(): + exe = ex.which('./exe') + assert exe.path == path + + def test_which(tmpdir): os.environ["PATH"] = str(tmpdir) assert ex.which("spack-test-exe") is None diff --git a/lib/spack/spack/util/compression.py b/lib/spack/spack/util/compression.py index 1688b49f1b..ebbe0519d0 100644 --- a/lib/spack/spack/util/compression.py +++ b/lib/spack/spack/util/compression.py @@ -14,7 +14,7 @@ EXTS = ["gz", "bz2", "xz", "Z"] NOTAR_EXTS = ["zip", "tgz", "tbz2", "txz"] # Add PRE_EXTS and EXTS last so that .tar.gz is matched *before* .tar or .gz -ALLOWED_ARCHIVE_TYPES = [".".join(l) for l in product( +ALLOWED_ARCHIVE_TYPES = [".".join(ext) for ext in product( PRE_EXTS, EXTS)] + PRE_EXTS + EXTS + NOTAR_EXTS @@ -36,7 +36,7 @@ def decompressor_for(path, extension=None): bunzip2 = which('bunzip2', required=True) return bunzip2 tar = which('tar', required=True) - tar.add_default_arg('-xf') + tar.add_default_arg('-oxf') return tar diff --git a/lib/spack/spack/util/crypto.py b/lib/spack/spack/util/crypto.py index 566e99da21..74a6ee06bd 100644 --- a/lib/spack/spack/util/crypto.py +++ b/lib/spack/spack/util/crypto.py @@ -133,7 +133,7 @@ class Checker(object): @property def hash_name(self): """Get the name of the hash function this Checker is using.""" - return self.hash_fun().name + return self.hash_fun().name.lower() def check(self, filename): """Read the file with the specified name and check its checksum diff --git a/lib/spack/spack/util/executable.py b/lib/spack/spack/util/executable.py index 28656b0a32..097da3337e 100644 --- a/lib/spack/spack/util/executable.py +++ b/lib/spack/spack/util/executable.py @@ -233,10 +233,15 @@ def which_string(*args, **kwargs): path = path.split(os.pathsep) for name in args: - for directory in path: - exe = os.path.join(directory, name) + if os.path.sep in name: + exe = os.path.abspath(name) if os.path.isfile(exe) and os.access(exe, os.X_OK): return exe + else: + for directory in path: + exe = os.path.join(directory, name) + if os.path.isfile(exe) and os.access(exe, os.X_OK): + return exe if required: raise CommandNotFoundError( diff --git a/lib/spack/spack/util/gpg.py b/lib/spack/spack/util/gpg.py index 29b2add852..e6b7f56741 100644 --- a/lib/spack/spack/util/gpg.py +++ b/lib/spack/spack/util/gpg.py @@ -13,7 +13,7 @@ from spack.util.executable import which _gnupg_version_re = r"^gpg \(GnuPG\) (.*)$" -GNUPGHOME = spack.paths.gpg_path +GNUPGHOME = os.getenv('SPACK_GNUPGHOME', spack.paths.gpg_path) def parse_keys_output(output): diff --git a/share/spack/docker/centos-6.dockerfile b/share/spack/docker/centos-6.dockerfile index 8c971124a5..1ba58d66af 100644 --- a/share/spack/docker/centos-6.dockerfile +++ b/share/spack/docker/centos-6.dockerfile @@ -9,20 +9,6 @@ ENV DOCKERFILE_BASE=centos \ CURRENTLY_BUILDING_DOCKER_IMAGE=1 \ container=docker -COPY bin $SPACK_ROOT/bin -COPY etc $SPACK_ROOT/etc -COPY lib $SPACK_ROOT/lib -COPY share $SPACK_ROOT/share -COPY var $SPACK_ROOT/var -RUN mkdir -p $SPACK_ROOT/opt/spack - -RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/docker-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/interactive-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/spack-env - RUN yum update -y \ && yum install -y epel-release \ && yum update -y \ @@ -50,6 +36,20 @@ RUN yum update -y \ && rm -rf /var/cache/yum \ && yum clean all +COPY bin $SPACK_ROOT/bin +COPY etc $SPACK_ROOT/etc +COPY lib $SPACK_ROOT/lib +COPY share $SPACK_ROOT/share +COPY var $SPACK_ROOT/var +RUN mkdir -p $SPACK_ROOT/opt/spack + +RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ + /usr/local/bin/docker-shell \ + && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ + /usr/local/bin/interactive-shell \ + && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ + /usr/local/bin/spack-env + RUN mkdir -p /root/.spack \ && cp $SPACK_ROOT/share/spack/docker/modules.yaml \ /root/.spack/modules.yaml \ diff --git a/share/spack/docker/centos-7.dockerfile b/share/spack/docker/centos-7.dockerfile index 292663d922..c8dc75a0f3 100644 --- a/share/spack/docker/centos-7.dockerfile +++ b/share/spack/docker/centos-7.dockerfile @@ -9,20 +9,6 @@ ENV DOCKERFILE_BASE=centos \ CURRENTLY_BUILDING_DOCKER_IMAGE=1 \ container=docker -COPY bin $SPACK_ROOT/bin -COPY etc $SPACK_ROOT/etc -COPY lib $SPACK_ROOT/lib -COPY share $SPACK_ROOT/share -COPY var $SPACK_ROOT/var -RUN mkdir -p $SPACK_ROOT/opt/spack - -RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/docker-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/interactive-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/spack-env - RUN yum update -y \ && yum install -y epel-release \ && yum update -y \ @@ -50,6 +36,20 @@ RUN yum update -y \ && rm -rf /var/cache/yum \ && yum clean all +COPY bin $SPACK_ROOT/bin +COPY etc $SPACK_ROOT/etc +COPY lib $SPACK_ROOT/lib +COPY share $SPACK_ROOT/share +COPY var $SPACK_ROOT/var +RUN mkdir -p $SPACK_ROOT/opt/spack + +RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ + /usr/local/bin/docker-shell \ + && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ + /usr/local/bin/interactive-shell \ + && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ + /usr/local/bin/spack-env + RUN mkdir -p /root/.spack \ && cp $SPACK_ROOT/share/spack/docker/modules.yaml \ /root/.spack/modules.yaml \ diff --git a/share/spack/docker/ubuntu-1604.dockerfile b/share/spack/docker/ubuntu-1604.dockerfile index 1f7db8bea9..c07cde5918 100644 --- a/share/spack/docker/ubuntu-1604.dockerfile +++ b/share/spack/docker/ubuntu-1604.dockerfile @@ -9,20 +9,6 @@ ENV DOCKERFILE_BASE=ubuntu:16.04 \ CURRENTLY_BUILDING_DOCKER_IMAGE=1 \ container=docker -COPY bin $SPACK_ROOT/bin -COPY etc $SPACK_ROOT/etc -COPY lib $SPACK_ROOT/lib -COPY share $SPACK_ROOT/share -COPY var $SPACK_ROOT/var -RUN mkdir -p $SPACK_ROOT/opt/spack - -RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/docker-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/interactive-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/spack-env - RUN apt-get -yqq update \ && apt-get -yqq install --no-install-recommends \ build-essential \ @@ -48,6 +34,20 @@ RUN apt-get -yqq update \ && pip3 install boto3 \ && rm -rf /var/lib/apt/lists/* +COPY bin $SPACK_ROOT/bin +COPY etc $SPACK_ROOT/etc +COPY lib $SPACK_ROOT/lib +COPY share $SPACK_ROOT/share +COPY var $SPACK_ROOT/var +RUN mkdir -p $SPACK_ROOT/opt/spack + +RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ + /usr/local/bin/docker-shell \ + && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ + /usr/local/bin/interactive-shell \ + && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ + /usr/local/bin/spack-env + # Add LANG default to en_US.UTF-8 ENV LANGUAGE en_US.UTF-8 ENV LANG en_US.UTF-8 diff --git a/share/spack/docker/ubuntu-1804.dockerfile b/share/spack/docker/ubuntu-1804.dockerfile index a8d9577b66..1ecef10652 100644 --- a/share/spack/docker/ubuntu-1804.dockerfile +++ b/share/spack/docker/ubuntu-1804.dockerfile @@ -9,20 +9,6 @@ ENV DOCKERFILE_BASE=ubuntu \ CURRENTLY_BUILDING_DOCKER_IMAGE=1 \ container=docker -COPY bin $SPACK_ROOT/bin -COPY etc $SPACK_ROOT/etc -COPY lib $SPACK_ROOT/lib -COPY share $SPACK_ROOT/share -COPY var $SPACK_ROOT/var -RUN mkdir -p $SPACK_ROOT/opt/spack - -RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/docker-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/interactive-shell \ - && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ - /usr/local/bin/spack-env - RUN apt-get -yqq update \ && apt-get -yqq install --no-install-recommends \ build-essential \ @@ -48,6 +34,20 @@ RUN apt-get -yqq update \ && pip3 install boto3 \ && rm -rf /var/lib/apt/lists/* +COPY bin $SPACK_ROOT/bin +COPY etc $SPACK_ROOT/etc +COPY lib $SPACK_ROOT/lib +COPY share $SPACK_ROOT/share +COPY var $SPACK_ROOT/var +RUN mkdir -p $SPACK_ROOT/opt/spack + +RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ + /usr/local/bin/docker-shell \ + && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ + /usr/local/bin/interactive-shell \ + && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \ + /usr/local/bin/spack-env + # Add LANG default to en_US.UTF-8 ENV LANGUAGE en_US.UTF-8 ENV LANG en_US.UTF-8 diff --git a/share/spack/qa/install_patchelf.sh b/share/spack/qa/install_patchelf.sh new file mode 100755 index 0000000000..7660ba8eef --- /dev/null +++ b/share/spack/qa/install_patchelf.sh @@ -0,0 +1,22 @@ +#!/bin/sh +# +# 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) + +# +# Description: +# Install patchelf for use in buildcache unit tests +# +# Usage: +# install-patchelf.sh +# +set -ex +if [ "$TRAVIS_OS_NAME" = "linux" ]; then + olddir=$PWD + cd /tmp + wget https://github.com/NixOS/patchelf/archive/0.10.tar.gz + tar -xvf 0.10.tar.gz + cd patchelf-0.10 && ./bootstrap.sh && ./configure --prefix=/usr && make && sudo make install && cd $olddir +fi diff --git a/share/spack/qa/run-shell-tests b/share/spack/qa/run-shell-tests index 126e639186..c5c3425a8e 100755 --- a/share/spack/qa/run-shell-tests +++ b/share/spack/qa/run-shell-tests @@ -18,7 +18,7 @@ ORIGINAL_PATH="$PATH" . "$(dirname $0)/setup.sh" -check_dependencies $coverage git hg svn +check_dependencies $coverage kcov git hg svn # Clean the environment by removing Spack from the path and getting rid of # the spack shell function diff --git a/share/spack/qa/run-unit-tests b/share/spack/qa/run-unit-tests index 7c4abb1413..c529f8297e 100755 --- a/share/spack/qa/run-unit-tests +++ b/share/spack/qa/run-unit-tests @@ -37,11 +37,7 @@ bin/spack -h bin/spack help -a # Profile and print top 20 lines for a simple call to spack spec -if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - spack -p --lines 20 spec openmpi -else - spack -p --lines 20 spec mpileaks%gcc ^elfutils@0.170 -fi +spack -p --lines 20 spec mpileaks%gcc ^elfutils@0.170 #----------------------------------------------------------- # Run unit tests with code coverage diff --git a/share/spack/qa/setup.sh b/share/spack/qa/setup.sh index 6536479015..34b426dcd7 100755 --- a/share/spack/qa/setup.sh +++ b/share/spack/qa/setup.sh @@ -26,14 +26,11 @@ if [[ "$COVERAGE" == "true" ]]; then coverage=coverage coverage_run="coverage run" - # bash coverage depends on some other factors -- there are issues with - # kcov for Python 2.6, unit tests, and build tests. - if [[ $TRAVIS_PYTHON_VERSION != 2.6 ]]; then - mkdir -p coverage - cc_script="$SPACK_ROOT/lib/spack/env/cc" - bashcov=$(realpath ${QA_DIR}/bashcov) - sed -i~ "s@#\!/bin/bash@#\!${bashcov}@" "$cc_script" - fi + # bash coverage depends on some other factors + mkdir -p coverage + cc_script="$SPACK_ROOT/lib/spack/env/cc" + bashcov=$(realpath ${QA_DIR}/bashcov) + sed -i~ "s@#\!/bin/bash@#\!${bashcov}@" "$cc_script" fi # @@ -74,6 +71,9 @@ check_dependencies() { spack_package=mercurial pip_package=mercurial ;; + kcov) + spack_package=kcov + ;; svn) spack_package=subversion ;; diff --git a/share/spack/spack-completion.bash b/share/spack/spack-completion.bash index 11bd906ad0..fc1b4e2a27 100755 --- a/share/spack/spack-completion.bash +++ b/share/spack/spack-completion.bash @@ -639,7 +639,7 @@ _spack_containerize() { _spack_create() { if $list_options then - SPACK_COMPREPLY="-h --help --keep-stage -n --name -t --template -r --repo -N --namespace -f --force --skip-editor" + SPACK_COMPREPLY="-h --help --keep-stage -n --name -t --template -r --repo -N --namespace -f --force --skip-editor -b --batch" else SPACK_COMPREPLY="" fi diff --git a/share/spack/templates/container/Dockerfile b/share/spack/templates/container/Dockerfile index 2f1370fdb3..c65fce5627 100644 --- a/share/spack/templates/container/Dockerfile +++ b/share/spack/templates/container/Dockerfile @@ -7,7 +7,7 @@ RUN mkdir {{ paths.environment }} \ {{ manifest }} > {{ paths.environment }}/spack.yaml # Install the software, remove unecessary deps -RUN cd {{ paths.environment }} && spack env activate . && spack install && spack gc -y +RUN cd {{ paths.environment }} && spack env activate . && spack install --fail-fast && spack gc -y {% if strip %} # Strip all the binaries diff --git a/share/spack/templates/container/singularity.def b/share/spack/templates/container/singularity.def index 7ba0a3ff1b..44b22aeae6 100644 --- a/share/spack/templates/container/singularity.def +++ b/share/spack/templates/container/singularity.def @@ -12,7 +12,7 @@ EOF # Install all the required software . /opt/spack/share/spack/setup-env.sh spack env activate . - spack install + spack install --fail-fast spack gc -y spack env deactivate spack env activate --sh -d . >> {{ paths.environment }}/environment_modifications.sh diff --git a/var/spack/repos/builtin.mock/packages/corge/package.py b/var/spack/repos/builtin.mock/packages/corge/package.py new file mode 100644 index 0000000000..48f9ac8e6e --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/corge/package.py @@ -0,0 +1,155 @@ +# 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) + + +from spack import * +import os + + +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') + + depends_on('quux') + + def install(self, spec, prefix): + corge_cc = '''#include <iostream> +#include <stdexcept> +#include "corge.h" +#include "corge_version.h" +#include "quux/quux.h" + +const int Corge::version_major = corge_version_major; +const int Corge::version_minor = corge_version_minor; + +Corge::Corge() +{ +} + +int +Corge::get_version() const +{ + return 10 * version_major + version_minor; +} + +int +Corge::corgegate() const +{ + int corge_version = get_version(); + std::cout << "Corge::corgegate version " << corge_version + << " invoked" << std::endl; + std::cout << "Corge config directory = %s" <<std::endl; + Quux quux; + int quux_version = quux.quuxify(); + + if(quux_version != corge_version) { + throw std::runtime_error( + "Corge found an incompatible version of Garply."); + } + + return corge_version; +} +''' + corge_h = '''#ifndef CORGE_H_ + +class Corge +{ +private: + static const int version_major; + static const int version_minor; + +public: + Corge(); + int get_version() const; + int corgegate() const; +}; + +#endif // CORGE_H_ +''' + corge_version_h = ''' +const int corge_version_major = %s; +const int corge_version_minor = %s; +''' + corgegator_cc = ''' +#include <iostream> +#include "corge.h" + +int +main(int argc, char* argv[]) +{ + std::cout << "corgerator called with "; + if (argc == 0) { + std::cout << "no command-line arguments" << std::endl; + } else { + std::cout << "command-line arguments:"; + for (int i = 0; i < argc; ++i) { + std::cout << " \"" << argv[i] << "\""; + } + std::cout << std::endl; + } + std::cout << "corgegating.."<<std::endl; + Corge corge; + corge.corgegate(); + std::cout << "done."<<std::endl; + return 0; +} +''' + mkdirp(prefix.lib64) + mkdirp('%s/corge' % prefix.include) + mkdirp('%s/corge' % self.stage.source_path) + with open('%s/corge_version.h' % self.stage.source_path, 'w') as f: + f.write(corge_version_h % (self.version[0], self.version[1:])) + with open('%s/corge/corge.cc' % self.stage.source_path, 'w') as f: + f.write(corge_cc % prefix.config) + with open('%s/corge/corge.h' % self.stage.source_path, 'w') as f: + f.write(corge_h) + with open('%s/corge/corgegator.cc' % self.stage.source_path, 'w') as f: + f.write(corgegator_cc) + gpp = which('/usr/bin/g++') + gpp('-Dcorge_EXPORTS', + '-I%s' % self.stage.source_path, + '-I%s' % spec['quux'].prefix.include, + '-I%s' % spec['garply'].prefix.include, + '-O2', '-g', '-DNDEBUG', '-fPIC', + '-o', 'corge.cc.o', + '-c', 'corge/corge.cc') + gpp('-Dcorge_EXPORTS', + '-I%s' % self.stage.source_path, + '-I%s' % spec['quux'].prefix.include, + '-I%s' % spec['garply'].prefix.include, + '-O2', '-g', '-DNDEBUG', '-fPIC', + '-o', 'corgegator.cc.o', + '-c', 'corge/corgegator.cc') + gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-shared', + '-Wl,-soname,libcorge.so', '-o', 'libcorge.so', 'corge.cc.o', + '-Wl,-rpath,%s:%s::::' % + (spec['quux'].prefix.lib64, spec['garply'].prefix.lib64), + '%s/libquux.so' % spec['quux'].prefix.lib64, + '%s/libgarply.so' % spec['garply'].prefix.lib64) + gpp('-O2', '-g', '-DNDEBUG', '-rdynamic', + 'corgegator.cc.o', '-o', 'corgegator', + '-Wl,-rpath,%s:%s:%s:::' % (prefix.lib64, + spec['quux'].prefix.lib64, + spec['garply'].prefix.lib64), + 'libcorge.so', + '%s/libquux.so' % spec['quux'].prefix.lib64, + '%s/libgarply.so' % spec['garply'].prefix.lib64) + copy('corgegator', '%s/corgegator' % prefix.lib64) + copy('libcorge.so', '%s/libcorge.so' % prefix.lib64) + copy('%s/corge/corge.h' % self.stage.source_path, + '%s/corge/corge.h' % prefix.include) + mkdirp(prefix.bin) + copy('corge_version.h', '%s/corge_version.h' % prefix.bin) + os.symlink('%s/corgegator' % prefix.lib64, + '%s/corgegator' % prefix.bin) + os.symlink('%s/quuxifier' % spec['quux'].prefix.lib64, + '%s/quuxifier' % prefix.bin) + os.symlink('%s/garplinator' % spec['garply'].prefix.lib64, + '%s/garplinator' % prefix.bin) diff --git a/var/spack/repos/builtin.mock/packages/garply/package.py b/var/spack/repos/builtin.mock/packages/garply/package.py new file mode 100644 index 0000000000..8fa0778287 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/garply/package.py @@ -0,0 +1,112 @@ +# 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) + + +from spack import * +import os + + +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') + + def install(self, spec, prefix): + garply_h = '''#ifndef GARPLY_H_ + +class Garply +{ +private: + static const int version_major; + static const int version_minor; + +public: + Garply(); + int get_version() const; + int garplinate() const; +}; + +#endif // GARPLY_H_ +''' + garply_cc = '''#include "garply.h" +#include "garply_version.h" +#include <iostream> + +const int Garply::version_major = garply_version_major; +const int Garply::version_minor = garply_version_minor; + +Garply::Garply() {} + +int +Garply::get_version() const +{ + return 10 * version_major + version_minor; +} + +int +Garply::garplinate() const +{ + std::cout << "Garply::garplinate version " << get_version() + << " invoked" << std::endl; + std::cout << "Garply config dir = %s" << std::endl; + return get_version(); +} +''' + garplinator_cc = '''#include "garply.h" +#include <iostream> + +int +main() +{ + Garply garply; + garply.garplinate(); + + return 0; +} +''' + garply_version_h = '''const int garply_version_major = %s; +const int garply_version_minor = %s; +''' + mkdirp(prefix.lib64) + mkdirp('%s/garply' % prefix.include) + mkdirp('%s/garply' % self.stage.source_path) + with open('%s/garply_version.h' % self.stage.source_path, 'w') as f: + f.write(garply_version_h % (self.version[0], self.version[1:])) + with open('%s/garply/garply.h' % self.stage.source_path, 'w') as f: + f.write(garply_h) + with open('%s/garply/garply.cc' % self.stage.source_path, 'w') as f: + f.write(garply_cc % prefix.config) + with open('%s/garply/garplinator.cc' % + self.stage.source_path, 'w') as f: + f.write(garplinator_cc) + gpp = which('/usr/bin/g++') + gpp('-Dgarply_EXPORTS', + '-I%s' % self.stage.source_path, + '-O2', '-g', '-DNDEBUG', '-fPIC', + '-o', 'garply.cc.o', + '-c', '%s/garply/garply.cc' % self.stage.source_path) + gpp('-Dgarply_EXPORTS', + '-I%s' % self.stage.source_path, + '-O2', '-g', '-DNDEBUG', '-fPIC', + '-o', 'garplinator.cc.o', + '-c', '%s/garply/garplinator.cc' % self.stage.source_path) + gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-shared', + '-Wl,-soname,libgarply.so', '-o', 'libgarply.so', 'garply.cc.o') + gpp('-O2', '-g', '-DNDEBUG', '-rdynamic', + 'garplinator.cc.o', '-o', 'garplinator', + '-Wl,-rpath,%s' % prefix.lib64, + 'libgarply.so') + copy('libgarply.so', '%s/libgarply.so' % prefix.lib64) + copy('garplinator', '%s/garplinator' % prefix.lib64) + copy('%s/garply/garply.h' % self.stage.source_path, + '%s/garply/garply.h' % prefix.include) + mkdirp(prefix.bin) + copy('garply_version.h', '%s/garply_version.h' % prefix.bin) + os.symlink('%s/garplinator' % prefix.lib64, + '%s/garplinator' % prefix.bin) diff --git a/var/spack/repos/builtin.mock/packages/patchelf/package.py b/var/spack/repos/builtin.mock/packages/patchelf/package.py index 0f72271921..80221e10e8 100644 --- a/var/spack/repos/builtin.mock/packages/patchelf/package.py +++ b/var/spack/repos/builtin.mock/packages/patchelf/package.py @@ -7,16 +7,17 @@ from spack import * class Patchelf(AutotoolsPackage): - """ - PatchELF is a small utility to modify the - dynamic linker and RPATH of ELF executables. - """ + """PatchELF is a small utility to modify the dynamic linker and RPATH of + ELF executables.""" homepage = "https://nixos.org/patchelf.html" - url = "http://nixos.org/releases/patchelf/patchelf-0.8/patchelf-0.8.tar.gz" - - list_url = "http://nixos.org/releases/patchelf/" + url = "https://nixos.org/releases/patchelf/patchelf-0.10/patchelf-0.10.tar.gz" + list_url = "https://nixos.org/releases/patchelf/" list_depth = 1 - version('0.9', '3c265508526760f233620f35d79c79fc') - version('0.8', '407b229e6a681ffb0e2cdd5915cb2d01') + version('0.10', sha256='b2deabce05c34ce98558c0efb965f209de592197b2c88e930298d740ead09019') + version('0.9', sha256='f2aa40a6148cb3b0ca807a1bf836b081793e55ec9e5540a5356d800132be7e0a') + version('0.8', sha256='14af06a2da688d577d64ff8dac065bb8903bbffbe01d30c62df7af9bf4ce72fe') + + def install(self, spec, prefix): + install_tree(self.stage.source_path, prefix) diff --git a/var/spack/repos/builtin.mock/packages/quux/package.py b/var/spack/repos/builtin.mock/packages/quux/package.py new file mode 100644 index 0000000000..6db243f154 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/quux/package.py @@ -0,0 +1,132 @@ +# 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) + + +from spack import * +import os + + +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') + + depends_on('garply') + + def install(self, spec, prefix): + quux_cc = '''#include "quux.h" +#include "garply/garply.h" +#include "quux_version.h" +#include <iostream> +#include <stdexcept> + +const int Quux::version_major = quux_version_major; +const int Quux::version_minor = quux_version_minor; + +Quux::Quux() {} + +int +Quux::get_version() const +{ + return 10 * version_major + version_minor; +} + +int +Quux::quuxify() const +{ + int quux_version = get_version(); + std::cout << "Quux::quuxify version " << quux_version + << " invoked" <<std::endl; + std::cout << "Quux config directory is %s" <<std::endl; + Garply garply; + int garply_version = garply.garplinate(); + + if (garply_version != quux_version) { + throw std::runtime_error( + "Quux found an incompatible version of Garply."); + } + + return quux_version; +} +''' + quux_h = '''#ifndef QUUX_H_ + +class Quux +{ +private: + static const int version_major; + static const int version_minor; + +public: + Quux(); + int get_version() const; + int quuxify() const; +}; + +#endif // QUUX_H_ +''' + quuxifier_cc = ''' +#include "quux.h" +#include <iostream> + +int +main() +{ + Quux quux; + quux.quuxify(); + + return 0; +} +''' + quux_version_h = '''const int quux_version_major = %s; +const int quux_version_minor = %s; +''' + mkdirp(prefix.lib64) + mkdirp('%s/quux' % prefix.include) + 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: + f.write(quux_cc % (prefix.config)) + with open('%s/quux/quux.h' % self.stage.source_path, 'w') as f: + f.write(quux_h) + with open('%s/quux/quuxifier.cc' % self.stage.source_path, 'w') as f: + f.write(quuxifier_cc) + gpp = which('/usr/bin/g++') + gpp('-Dquux_EXPORTS', + '-I%s' % self.stage.source_path, + '-I%s' % spec['garply'].prefix.include, + '-O2', '-g', '-DNDEBUG', '-fPIC', + '-o', 'quux.cc.o', + '-c', 'quux/quux.cc') + gpp('-Dquux_EXPORTS', + '-I%s' % self.stage.source_path, + '-I%s' % spec['garply'].prefix.include, + '-O2', '-g', '-DNDEBUG', '-fPIC', + '-o', 'quuxifier.cc.o', + '-c', 'quux/quuxifier.cc') + gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-shared', + '-Wl,-soname,libquux.so', '-o', 'libquux.so', 'quux.cc.o', + '-Wl,-rpath,%s:%s::::' % (prefix.lib64, + spec['garply'].prefix.lib64), + '%s/libgarply.so' % spec['garply'].prefix.lib64) + gpp('-O2', '-g', '-DNDEBUG', '-rdynamic', + 'quuxifier.cc.o', '-o', 'quuxifier', + '-Wl,-rpath,%s:%s::::' % (prefix.lib64, + spec['garply'].prefix.lib64), + 'libquux.so', + '%s/libgarply.so' % spec['garply'].prefix.lib64) + copy('libquux.so', '%s/libquux.so' % prefix.lib64) + copy('quuxifier', '%s/quuxifier' % prefix.lib64) + copy('%s/quux/quux.h' % self.stage.source_path, + '%s/quux/quux.h' % prefix.include) + mkdirp(prefix.bin) + copy('quux_version.h', '%s/quux_version.h' % prefix.bin) + os.symlink('%s/quuxifier' % prefix.lib64, '%s/quuxifier' % prefix.bin) + os.symlink('%s/garplinator' % spec['garply'].prefix.lib64, + '%s/garplinator' % prefix.bin) diff --git a/var/spack/repos/builtin/packages/abinit/package.py b/var/spack/repos/builtin/packages/abinit/package.py index 6f07ffee81..4378c28213 100644 --- a/var/spack/repos/builtin/packages/abinit/package.py +++ b/var/spack/repos/builtin/packages/abinit/package.py @@ -56,6 +56,9 @@ class Abinit(AutotoolsPackage): variant('hdf5', default=False, description='Enables HDF5+Netcdf4 with MPI. WARNING: experimental') + variant('wannier90', default=False, + description='Enables the Wannier90 library') + # Add dependencies # currently one cannot forward options to virtual packages, see #1712. # depends_on('blas', when='~openmp') @@ -84,6 +87,8 @@ class Abinit(AutotoolsPackage): # Cannot ask for +scalapack if it does not depend on MPI conflicts('+scalapack', when='~mpi') + depends_on("wannier90+shared", when='+wannier90') + # Elpa is a substitute for scalapack and needs mpi # conflicts('+elpa', when='~mpi') # conflicts('+elpa', when='+scalapack') @@ -95,12 +100,25 @@ class Abinit(AutotoolsPackage): options = [] oapp = options.append + if '+wannier90' in spec: + oapp('--with-wannier90-libs=-L{0}' + .format(spec['wannier90'].prefix.lib + ' -lwannier -lm')) + oapp('--with-wannier90-incs=-I{0}' + .format(spec['wannier90'].prefix.modules)) + oapp('--with-wannier90-bins={0}' + .format(spec['wannier90'].prefix.bin)) + oapp('--enable-connectors') + oapp('--with-dft-flavor=wannier90') + if '+mpi' in spec: # MPI version: # let the configure script auto-detect MPI support from mpi_prefix oapp('--with-mpi-prefix={0}'.format(spec['mpi'].prefix)) oapp('--enable-mpi=yes') oapp('--enable-mpi-io=yes') + oapp('MPIFC={0}/mpifc'.format(spec['mpi'].prefix.bin)) + if '~wannier90' in spec: + oapp('--with-dft-flavor=atompaw+libxc') # Activate OpenMP in Abinit Fortran code. if '+openmp' in spec: @@ -129,7 +147,6 @@ class Abinit(AutotoolsPackage): '--with-fft-incs=-I%s' % spec['fftw'].prefix.include, '--with-fft-libs=-L%s %s' % (spec['fftw'].prefix.lib, fftlibs), ]) - oapp('--with-dft-flavor=atompaw+libxc') # LibXC library libxc = spec['libxc:fortran'] diff --git a/var/spack/repos/builtin/packages/abseil-cpp/package.py b/var/spack/repos/builtin/packages/abseil-cpp/package.py index c40b2353bf..24ac21fd63 100644 --- a/var/spack/repos/builtin/packages/abseil-cpp/package.py +++ b/var/spack/repos/builtin/packages/abseil-cpp/package.py @@ -10,10 +10,11 @@ class AbseilCpp(CMakePackage): """Abseil Common Libraries (C++) """ homepage = "https://abseil.io/" - url = "https://github.com/abseil/abseil-cpp/archive/20180600.tar.gz" + url = "https://github.com/abseil/abseil-cpp/archive/20200225.2.tar.gz" maintainers = ['jcftang'] + version('20200225.2', sha256='f41868f7a938605c92936230081175d1eae87f6ea2c248f41077c8f88316f111') version('20200225.1', sha256='0db0d26f43ba6806a8a3338da3e646bb581f0ca5359b3a201d8fb8e4752fd5f8') version('20190808', sha256='8100085dada279bf3ee00cd064d43b5f55e5d913be0dfe2906f06f8f28d5b37e') version('20181200', sha256='e2b53bfb685f5d4130b84c4f3050c81bf48c497614dc85d91dbd3ed9129bce6d') diff --git a/var/spack/repos/builtin/packages/acl/package.py b/var/spack/repos/builtin/packages/acl/package.py index ea9bf4172f..17f916d297 100644 --- a/var/spack/repos/builtin/packages/acl/package.py +++ b/var/spack/repos/builtin/packages/acl/package.py @@ -24,6 +24,10 @@ class Acl(AutotoolsPackage): depends_on('automake', type='build') depends_on('libtool', type='build') depends_on('attr') + depends_on('gettext') + + def setup_build_environment(self, env): + env.append_flags('LDFLAGS', '-lintl') def autoreconf(self, spec, prefix): bash = which('bash') diff --git a/var/spack/repos/builtin/packages/acts/package.py b/var/spack/repos/builtin/packages/acts/package.py index 849c326b18..3c792e1829 100644 --- a/var/spack/repos/builtin/packages/acts/package.py +++ b/var/spack/repos/builtin/packages/acts/package.py @@ -6,7 +6,7 @@ from spack import * -class Acts(CMakePackage): +class Acts(CMakePackage, CudaPackage): """ A Common Tracking Software (Acts) @@ -35,6 +35,14 @@ class Acts(CMakePackage): # Supported Acts versions version('master', branch='master') + version('0.29.0', commit='33aa3e701728112e8908223c4a7fd521907c8ea4') + version('0.28.0', commit='55626b7401eeb93fc562e79bcf385f0ad0ac48bf') + version('0.27.1', commit='8ba3010a532137bc0ab6cf83a38b483cef646a01') + version('0.27.0', commit='f7b1a1c27d5a95d08bb67236ad0e117fcd1c679f') + version('0.26.0', commit='cf542b108b31fcc349fc18fb0466f889e4e42aa6') + version('0.25.2', commit='76bf1f3e4be51d4d27126b473a2caa8d8a72b320') + version('0.25.1', commit='6e8a1ea6d2c7385a78e3e190efb2a8a0c1fa957f') + version('0.25.0', commit='0aca171951a214299e8ff573682b1c5ecec63d42') version('0.24.0', commit='ef4699c8500bfea59a5fe88bed67fde2f00f0adf') version('0.23.0', commit='dc443dd7e663bc4d7fb3c1e3f1f75aaf57ffd4e4') version('0.22.1', commit='ca1b8b1645db6b552f44c48d2ff34c8c29618f3a') @@ -90,10 +98,11 @@ class Acts(CMakePackage): # Build dependencies depends_on('boost @1.62:1.69.99 +program_options +test', when='@:0.10.3') - depends_on('boost @1.69: +filesystem +program_options +test', when='@0.10.4:') + depends_on('boost @1.69: +filesystem +program_options +test', when='@0.10.4:0.25') + depends_on('boost @1.69: +program_options +test', when='@0.26:') depends_on('cmake @3.11:', type='build') - depends_on('dd4hep @1.10: +xercesc', when='+dd4hep') - depends_on('dd4hep @1.10: +geant4 +xercesc', when='+dd4hep +geant4') + depends_on('dd4hep @1.10:', when='+dd4hep') + depends_on('dd4hep @1.10: +geant4', when='+dd4hep +geant4') depends_on('eigen @3.2.9:', type='build') depends_on('geant4', when='+geant4') depends_on('hepmc3@3.1:', when='+hepmc3') @@ -141,6 +150,7 @@ class Acts(CMakePackage): args = [ cmake_variant("BENCHMARKS", "benchmarks"), + cmake_variant("CUDA_PLUGIN", "cuda"), cmake_variant("DD4HEP_PLUGIN", "dd4hep"), cmake_variant("DIGITIZATION_PLUGIN", "digitization"), cmake_variant("EXAMPLES", "examples"), @@ -157,6 +167,10 @@ class Acts(CMakePackage): cmake_variant("TGEO_PLUGIN", "tgeo") ] + cuda_arch = spec.variants['cuda_arch'].value + if cuda_arch != 'none': + args.append('-DCUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0])) + if 'root' in spec: cxxstd = spec['root'].variants['cxxstd'].value args.append("-DCMAKE_CXX_STANDARD={0}".format(cxxstd)) diff --git a/var/spack/repos/builtin/packages/aegean/package.py b/var/spack/repos/builtin/packages/aegean/package.py index 9198280e9a..eea46740a0 100644 --- a/var/spack/repos/builtin/packages/aegean/package.py +++ b/var/spack/repos/builtin/packages/aegean/package.py @@ -21,4 +21,7 @@ class Aegean(MakefilePackage): def edit(self, spec, prefix): makefile = FileFilter('Makefile') + if spec.target.family == 'aarch64': + makefile.filter('-m64', '') + makefile.filter('/usr/local', prefix) diff --git a/var/spack/repos/builtin/packages/amber/package.py b/var/spack/repos/builtin/packages/amber/package.py index 481377047c..9b772e0a6a 100644 --- a/var/spack/repos/builtin/packages/amber/package.py +++ b/var/spack/repos/builtin/packages/amber/package.py @@ -9,28 +9,41 @@ import shutil class Amber(Package, CudaPackage): - """Amber is a suite of biomolecular simulation programs. - - Note: A manual download is required for Amber. - Spack will search your current directory for the download file. - Alternatively, add this file to a mirror so that Spack can find it. + """Amber is a suite of biomolecular simulation programs together + with Amber tools. + + Note: The version number is composed of the Amber version (major) + and the tools version (minor). A manual download is required for + both Amber and Amber tools. + Spack will search your current directory for the download files. + Alternatively, add the files to a mirror so that Spack can find them. For instructions on how to set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" homepage = "http://ambermd.org/" - url = "file://{0}/Amber18.tar.bz2".format(os.getcwd()) + url = "file://{0}/Amber18.tar.bz2".format(os.getcwd()) maintainers = ['hseara'] - version('18', sha256='2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277') - version('16', sha256='3b7ef281fd3c46282a51b6a6deed9ed174a1f6d468002649d84bfc8a2577ae5d') + def url_for_version(self, version): + url = "file://{0}/Amber{1}.tar.bz2".format( + os.getcwd(), version.up_to(1)) + return url + + version( + '18.20', sha256='2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277') + version( + '18.19', sha256='2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277') + version( + '16.16', sha256='3b7ef281fd3c46282a51b6a6deed9ed174a1f6d468002649d84bfc8a2577ae5d') resources = [ # [version amber, version ambertools , sha256sum] + ('18', '20', 'b1e1f8f277c54e88abc9f590e788bbb2f7a49bcff5e8d8a6eacfaf332a4890f9'), ('18', '19', '0c86937904854b64e4831e047851f504ec45b42e593db4ded92c1bee5973e699'), ('16', '16', '7b876afe566e9dd7eb6a5aa952a955649044360f15c1f5d4d91ba7f41f3105fa'), ] for ver, ambertools_ver, checksum in resources: - resource(when='@{0}'.format(ver), + resource(when='@{0}.{1}'.format(ver, ambertools_ver), name='AmberTools', url='file://{0}/AmberTools{1}.tar.bz2'.format(os.getcwd(), ambertools_ver), @@ -100,10 +113,14 @@ class Amber(Package, CudaPackage): depends_on('cuda@7.5.18', when='@:16+cuda') # conflicts - conflicts('+x11', when='platform=cray', msg='x11 amber applications not available for cray') - conflicts('+openmp', when='%clang', msg='OpenMP optimizations not available for the clang compiler') - conflicts('+openmp', when='%apple-clang', msg='OpenMP optimizations not available for the Apple clang compiler') - conflicts('+openmp', when='%pgi', msg='OpenMP optimizations not available for the pgi compiler') + conflicts('+x11', when='platform=cray', + msg='x11 amber applications not available for cray') + conflicts('+openmp', when='%clang', + msg='OpenMP not available for the clang compiler') + conflicts('+openmp', when='%apple-clang', + msg='OpenMP not available for the Apple clang compiler') + conflicts('+openmp', when='%pgi', + msg='OpenMP not available for the pgi compiler') def setup_build_environment(self, env): amber_src = self.stage.source_path diff --git a/var/spack/repos/builtin/packages/amdblis/package.py b/var/spack/repos/builtin/packages/amdblis/package.py index 706e7f6bd2..82d1f18938 100644 --- a/var/spack/repos/builtin/packages/amdblis/package.py +++ b/var/spack/repos/builtin/packages/amdblis/package.py @@ -20,4 +20,5 @@ class Amdblis(BlisBase): url = "https://github.com/amd/blis/archive/2.1.tar.gz" git = "https://github.com/amd/blis.git" + version('2.2', sha256='e1feb60ac919cf6d233c43c424f6a8a11eab2c62c2c6e3f2652c15ee9063c0c9') version('2.1', sha256='3b1d611d46f0f13b3c0917e27012e0f789b23dbefdddcf877b20327552d72fb3') diff --git a/var/spack/repos/builtin/packages/amrex/package.py b/var/spack/repos/builtin/packages/amrex/package.py index f6cb778f4b..1f90ed1e57 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): maintainers = ['mic84', 'asalmgren'] version('develop', branch='development') + version('20.07', sha256='c386f566f4c57ee56b5630f79ce2c6117d5a612a4aab69b7b26e48d577251165') version('20.06', sha256='be2f2a5107111fcb8b3928b76024b370c7cb01a9e5dd79484cf7fcf59d0b4858') version('20.05', sha256='97d753bb75e845a0a959ec1a044a48e6adb86dd008b5e29ce7a01d49ed276338') version('20.04', sha256='a7ece54d5d89cc00fd555551902a0d4d0fb50db15d2600f441353eed0dddd83b') @@ -57,6 +58,12 @@ class Amrex(CMakePackage): values=('Debug', 'Release')) variant('sundials', default=False, description='Build AMReX with SUNDIALS support') + variant('hdf5', default=False, + description='Enable HDF5-based I/O') + variant('hypre', default=False, + description='Enable Hypre interfaces') + variant('petsc', default=False, + description='Enable PETSc interfaces') # Build dependencies depends_on('mpi', when='+mpi') @@ -68,6 +75,24 @@ class Amrex(CMakePackage): conflicts('%apple-clang') conflicts('%clang') + # Check options compatibility + conflicts('+sundials', when='~fortran', + msg='AMReX SUNDIALS support needs AMReX Fortran API (+fortran)') + conflicts('+hdf5', when='@:20.06', + msg='AMReX HDF5 support needs AMReX newer than version 20.06') + conflicts('+hypre', when='@:20.06', + msg='AMReX Hypre support needs AMReX newer than version 20.06') + conflicts('+hypre', when='~fortran', + msg='AMReX Hypre support needs AMReX Fortran API (+fortran)') + conflicts('+hypre', when='~linear_solvers', + msg='AMReX Hypre support needs variant +linear_solvers') + conflicts('+petsc', when='@:20.06', + msg='AMReX PETSc support needs AMReX newer than version 20.06') + conflicts('+petsc', when='~fortran', + msg='AMReX PETSc support needs AMReX Fortran API (+fortran)') + conflicts('+petsc', when='~linear_solvers', + msg='AMReX PETSc support needs variant +linear_solvers') + def url_for_version(self, version): if version >= Version('20.05'): url = "https://github.com/AMReX-Codes/amrex/releases/download/{0}/amrex-{0}.tar.gz" @@ -89,11 +114,16 @@ class Amrex(CMakePackage): self.spec.variants['precision'].value.upper(), '-DENABLE_EB:BOOL=%s' % self.cmake_is_on('+eb'), '-DXSDK_ENABLE_Fortran:BOOL=%s' % self.cmake_is_on('+fortran'), + '-DENABLE_FORTRAN_INTERFACES:BOOL=%s' + % self.cmake_is_on('+fortran'), '-DENABLE_LINEAR_SOLVERS:BOOL=%s' % self.cmake_is_on('+linear_solvers'), '-DENABLE_AMRDATA:BOOL=%s' % self.cmake_is_on('+amrdata'), '-DENABLE_PARTICLES:BOOL=%s' % self.cmake_is_on('+particles'), - '-DENABLE_SUNDIALS:BOOL=%s' % self.cmake_is_on('+sundials') + '-DENABLE_SUNDIALS:BOOL=%s' % self.cmake_is_on('+sundials'), + '-DENABLE_HDF5:BOOL=%s' % self.cmake_is_on('+hdf5'), + '-DENABLE_HYPRE:BOOL=%s' % self.cmake_is_on('+hypre'), + '-DENABLE_PETSC:BOOL=%s' % self.cmake_is_on('+petsc'), ] if self.spec.satisfies('%fj'): args.append('-DCMAKE_Fortran_MODDIR_FLAG=-M') diff --git a/var/spack/repos/builtin/packages/apcomp/package.py b/var/spack/repos/builtin/packages/apcomp/package.py new file mode 100644 index 0000000000..3e66038030 --- /dev/null +++ b/var/spack/repos/builtin/packages/apcomp/package.py @@ -0,0 +1,182 @@ +# 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) + + +from spack import * +import os +import socket +import llnl.util.tty as tty + + +def cmake_cache_entry(name, value, vtype=None): + """ + Helper that creates CMake cache entry strings used in + 'host-config' files. + """ + if vtype is None: + if value == "ON" or value == "OFF": + vtype = "BOOL" + else: + vtype = "PATH" + return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype) + + +class Apcomp(Package): + """A multi use-case image compositor""" + + homepage = 'https://github.com/Alpine-DAV/ap_compositor' + git = 'https://github.com/Alpine-DAV/ap_compositor.git' + url = "https://github.com/Alpine-DAV/ap_compositor/releases/download/v0.0.1/apcomp-v0.0.1.tar.gz" + + maintainers = ['mclarsen', 'cyrush'] + + version('master', branch='master', submodules='True') + version('0.0.1', sha256="cbf85fe58d5d5bc2f468d081386cc8b79861046b3bb7e966edfa3f8e95b998b2") + + variant('openmp', default=True, description='Build with openmp support') + variant('mpi', default=True, description='Build with MPI support') + variant('shared', default=True, description='Build Shared Library') + + depends_on('cmake@3.9:', type='build') + depends_on("mpi", when="+mpi") + + root_cmakelists_dir = 'src' + + def install(self, spec, prefix): + """ + Build and install APComp + """ + with working_dir('spack-build', create=True): + host_cfg_fname = self.create_host_config(spec, + prefix) + cmake_args = [] + # if we have a static build, we need to avoid any of + # spack's default cmake settings related to rpaths + # (see: https://github.com/LLNL/spack/issues/2658) + if "+shared" in spec: + cmake_args.extend(std_cmake_args) + else: + for arg in std_cmake_args: + if arg.count("RPATH") == 0: + cmake_args.append(arg) + cmake_args.extend(["-C", host_cfg_fname, "../src"]) + print("Configuring APComp...") + cmake(*cmake_args) + print("Building APComp...") + make() + print("Installing APComp...") + make("install") + # install copy of host config for provenance + install(host_cfg_fname, prefix) + + def create_host_config(self, spec, prefix): + """ + This method creates a 'host-config' file that specifies + all of the options used to configure and build apcomp. + """ + + ####################### + # Compiler Info + ####################### + c_compiler = env["SPACK_CC"] + cpp_compiler = env["SPACK_CXX"] + + ####################################################################### + # We directly fetch the names of the actual compilers to create a + # 'host config' file that works outside of the spack install env. + ####################################################################### + + sys_type = spec.architecture + # if on llnl systems, we can use the SYS_TYPE + if "SYS_TYPE" in env: + sys_type = env["SYS_TYPE"] + + ############################################## + # Find and record what CMake is used + ############################################## + + if "+cmake" in spec: + cmake_exe = spec['cmake'].command.path + else: + cmake_exe = which("cmake") + if cmake_exe is None: + msg = 'failed to find CMake (and cmake variant is off)' + raise RuntimeError(msg) + cmake_exe = cmake_exe.path + + host_cfg_fname = "%s-%s-%s-apcomp.cmake" % (socket.gethostname(), + sys_type, + spec.compiler) + + cfg = open(host_cfg_fname, "w") + cfg.write("##################################\n") + cfg.write("# spack generated host-config\n") + cfg.write("##################################\n") + cfg.write("# {0}-{1}\n".format(sys_type, spec.compiler)) + cfg.write("##################################\n\n") + + # Include path to cmake for reference + cfg.write("# cmake from spack \n") + cfg.write("# cmake executable path: %s\n\n" % cmake_exe) + + ####################### + # Compiler Settings + ####################### + cfg.write("#######\n") + cfg.write("# using %s compiler spec\n" % spec.compiler) + cfg.write("#######\n\n") + cfg.write("# c compiler used by spack\n") + cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler)) + cfg.write("# cpp compiler used by spack\n") + cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler)) + + # shared vs static libs + if "+shared" in spec: + cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "ON")) + else: + cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "OFF")) + + if "+openmp" in spec: + cfg.write(cmake_cache_entry("ENABLE_OPENMP", "ON")) + else: + cfg.write(cmake_cache_entry("ENABLE_OPENMP", "OFF")) + + if "+mpi" in spec: + mpicc_path = spec['mpi'].mpicc + mpicxx_path = spec['mpi'].mpicxx + mpifc_path = spec['mpi'].mpifc + # if we are using compiler wrappers on cray systems + # use those for mpi wrappers, b/c spec['mpi'].mpicxx + # etc make return the spack compiler wrappers + # which can trip up mpi detection in CMake 3.14 + if cpp_compiler == "CC": + mpicc_path = "cc" + mpicxx_path = "CC" + mpifc_path = "ftn" + cfg.write(cmake_cache_entry("ENABLE_MPI", "ON")) + cfg.write(cmake_cache_entry("MPI_C_COMPILER", mpicc_path)) + cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", mpicxx_path)) + cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", mpifc_path)) + mpiexe_bin = join_path(spec['mpi'].prefix.bin, 'mpiexec') + if os.path.isfile(mpiexe_bin): + # starting with cmake 3.10, FindMPI expects MPIEXEC_EXECUTABLE + # vs the older versions which expect MPIEXEC + if self.spec["cmake"].satisfies('@3.10:'): + cfg.write(cmake_cache_entry("MPIEXEC_EXECUTABLE", + mpiexe_bin)) + else: + cfg.write(cmake_cache_entry("MPIEXEC", + mpiexe_bin)) + else: + cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF")) + + cfg.write("##################################\n") + cfg.write("# end spack generated host-config\n") + cfg.write("##################################\n") + cfg.close() + + host_cfg_fname = os.path.abspath(host_cfg_fname) + tty.info("spack generated conduit host-config file: " + host_cfg_fname) + return host_cfg_fname diff --git a/var/spack/repos/builtin/packages/ascent/package.py b/var/spack/repos/builtin/packages/ascent/package.py index 3b45c69694..158f76f298 100644 --- a/var/spack/repos/builtin/packages/ascent/package.py +++ b/var/spack/repos/builtin/packages/ascent/package.py @@ -35,22 +35,21 @@ class Ascent(Package, CudaPackage): homepage = "https://github.com/Alpine-DAV/ascent" git = "https://github.com/Alpine-DAV/ascent.git" - url = "https://github.com/Alpine-DAV/ascent/releases/download/v0.5.0/ascent-v0.5.0-src-with-blt.tar.gz" + url = "https://github.com/Alpine-DAV/ascent/releases/download/v0.5.1/ascent-v0.5.1-src-with-blt.tar.gz" maintainers = ['cyrush'] version('develop', branch='develop', - submodules=True) - - version('0.5.0', sha256='2837b7371db3ac1bcc31a479d7cf0eb62a503cacadfa4187061502b3c4a89fa0') + submodules=True, + preferred=True) ########################################################################### # package variants ########################################################################### variant("shared", default=True, description="Build Ascent as shared libs") - variant("test", default=True, description='Enable Ascent unit tests') + variant('test', default=True, description='Enable Ascent unit tests') variant("mpi", default=True, description="Build Ascent MPI Support") variant("serial", default=True, description="build serial (non-mpi) libraries") @@ -68,11 +67,15 @@ class Ascent(Package, CudaPackage): variant("cuda", default=False, description="Build cuda support") variant("mfem", default=False, description="Build MFEM filter support") variant("adios", default=False, description="Build Adios filter support") + variant("dray", default=False, description="Build with Devil Ray support") # variants for dev-tools (docs, etc) - variant("doc", default=False, description="Build Conduit's documentation") + variant("doc", default=False, description="Build Ascent's documentation") - ########################################################################### + # variant for BabelFlow runtime + variant("babelflow", default=False, description="Build with BabelFlow") + + ########################################################################## # package dependencies ########################################################################### @@ -102,29 +105,54 @@ class Ascent(Package, CudaPackage): depends_on("mpi", when="+mpi") depends_on("py-mpi4py", when="+mpi+python+shared") + ####################### + # BabelFlow + ####################### + depends_on('babelflow@develop', when='+babelflow+mpi') + depends_on('parallelmergetree@develop', when='+babelflow+mpi') + ############################# # TPLs for Runtime Features ############################# - depends_on("vtk-h@0.5.0", when="+vtkh") - depends_on("vtk-h@0.5.0~openmp", when="+vtkh~openmp") - depends_on("vtk-h@0.5.0+cuda+openmp", when="+vtkh+cuda+openmp") - depends_on("vtk-h@0.5.0+cuda~openmp", when="+vtkh+cuda~openmp") + depends_on("vtk-h", when="+vtkh") + depends_on("vtk-h~openmp", when="+vtkh~openmp") + depends_on("vtk-h+cuda+openmp", when="+vtkh+cuda+openmp") + depends_on("vtk-h+cuda~openmp", when="+vtkh+cuda~openmp") - depends_on("vtk-h@0.5.0~shared", when="~shared+vtkh") - depends_on("vtk-h@0.5.0~shared~openmp", when="~shared+vtkh~openmp") - depends_on("vtk-h@0.5.0~shared+cuda", when="~shared+vtkh+cuda") - depends_on("vtk-h@0.5.0~shared+cuda~openmp", when="~shared+vtkh+cuda~openmp") + depends_on("vtk-h~shared", when="~shared+vtkh") + depends_on("vtk-h~shared~openmp", when="~shared+vtkh~openmp") + depends_on("vtk-h~shared+cuda", when="~shared+vtkh+cuda") + depends_on("vtk-h~shared+cuda~openmp", when="~shared+vtkh+cuda~openmp") # mfem - depends_on("mfem+threadsafe+shared+mpi+conduit", when="+shared+mfem+mpi") - depends_on("mfem+threadsafe~shared+mpi+conduit", when="~shared+mfem+mpi") + depends_on("mfem~threadsafe~openmp+shared+mpi+conduit", when="+shared+mfem+mpi") + depends_on("mfem~threadsafe~openmp~shared+mpi+conduit", when="~shared+mfem+mpi") - depends_on("mfem+threadsafe+shared~mpi+conduit", when="+shared+mfem~mpi") - depends_on("mfem+threadsafe~shared~mpi+conduit", when="~shared+mfem~mpi") + depends_on("mfem~threadsafe~openmp+shared~mpi+conduit", when="+shared+mfem~mpi") + depends_on("mfem~threadsafe~openmp~shared~mpi+conduit", when="~shared+mfem~mpi") depends_on("adios", when="+adios") + # devil ray variants with mpi + # we have to specify both because mfem makes us + depends_on("dray@develop+mpi~test~utils+shared+cuda", when="+dray+mpi+cuda+shared") + depends_on("dray@develop+mpi~test~utils+shared+openmp", when="+dray+mpi+openmp+shared") + depends_on("dray@develop+mpi~test~utils+shared~openmp~cuda", when="+dray+mpi~openmp~cuda+shared") + + depends_on("dray@develop+mpi~test~utils~shared+cuda", when="+dray+mpi+cuda~shared") + depends_on("dray@develop+mpi~test~utils~shared+openmp", when="+dray+mpi+openmp~shared") + depends_on("dray@develop+mpi~test~utils~shared~openmp~cuda", when="+dray+mpi~openmp~cuda~shared") + + # devil ray variants without mpi + depends_on("dray@develop~mpi~test~utils+shared+cuda", when="+dray~mpi+cuda+shared") + depends_on("dray@develop~mpi~test~utils+shared+openmp", when="+dray~mpi+openmp+shared") + depends_on("dray@develop~mpi~test~utils+shared~openmp~cuda", when="+dray~mpi~openmp~cuda+shared") + + depends_on("dray@develop~mpi~test~utils~shared+cuda", when="+dray~mpi+cuda~shared") + depends_on("dray@develop~mpi~test~utils~shared+openmp", when="+dray~mpi+openmp~shared") + depends_on("dray@develop~mpi~test~utils~shared~openmp~cuda", when="+dray~mpi~openmp~cuda~shared") + ####################### # Documentation related ####################### @@ -398,6 +426,16 @@ class Ascent(Package, CudaPackage): else: cfg.write(cmake_cache_entry("MPIEXEC", mpiexe_bin)) + + ################################### + # BABELFLOW (also depends on mpi) + ################################### + if "+babelflow" in spec: + cfg.write(cmake_cache_entry("ENABLE_BABELFLOW", "ON")) + cfg.write(cmake_cache_entry("BabelFlow_DIR", + spec['babelflow'].prefix)) + cfg.write(cmake_cache_entry("PMT_DIR", + spec['parallelmergetree'].prefix)) else: cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF")) @@ -450,6 +488,15 @@ class Ascent(Package, CudaPackage): cfg.write("# mfem not built by spack \n") ####################### + # Devil Ray + ####################### + if "+dray" in spec: + cfg.write("# devil ray from spack \n") + cfg.write(cmake_cache_entry("DRAY_DIR", spec['dray'].prefix)) + else: + cfg.write("# devil ray not built by spack \n") + + ####################### # Adios ####################### diff --git a/var/spack/repos/builtin/packages/aspect/package.py b/var/spack/repos/builtin/packages/aspect/package.py index e3e613d406..08e2b59abd 100644 --- a/var/spack/repos/builtin/packages/aspect/package.py +++ b/var/spack/repos/builtin/packages/aspect/package.py @@ -7,7 +7,7 @@ from spack import * class Aspect(CMakePackage): - """Parallel, extendible finite element code to simulate convection in the + """Parallel and extensible Finite Element code to simulate convection in the Earth's mantle and elsewhere.""" homepage = "https://aspect.geodynamics.org" @@ -17,6 +17,7 @@ class Aspect(CMakePackage): maintainers = ['tjhei'] version('develop', branch='master') + version('2.2.0', sha256='6dc31c4b991c8a96495ba0e9a3c92e57f9305ba94b8dbed3c8c5cfbab91ec5c1') version('2.1.0', sha256='bd574d60ed9df1f4b98e68cd526a074d0527c0792763187c9851912327d861a3') version('2.0.1', sha256='0bf5600c42afce9d39c1d285b0654ecfdeb0f30e9f3421651c95f54ca01ac165') version('2.0.0', sha256='d485c07f54248e824bdfa35f3eec8971b65e8b7114552ffa2c771bc0dede8cc0') @@ -26,9 +27,11 @@ class Aspect(CMakePackage): values=('Debug', 'Release')) variant('gui', default=False, description='Enable the deal.II parameter GUI') variant('fpe', default=False, description='Enable floating point exception checks') + variant('opendap', default=False, description='Enable OPeNDAP support for remote file access') depends_on('dealii+p4est+trilinos+mpi') depends_on('dealii-parameter-gui', when='+gui') + depends_on('libdap4', when='+opendap') def cmake_args(self): return [ diff --git a/var/spack/repos/builtin/packages/atf/package.py b/var/spack/repos/builtin/packages/atf/package.py new file mode 100644 index 0000000000..25fc399fbf --- /dev/null +++ b/var/spack/repos/builtin/packages/atf/package.py @@ -0,0 +1,23 @@ +# 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) + +from spack import * + + +class Atf(AutotoolsPackage): + """ATF, or Automated Testing Framework, is a collection of libraries + to write test programs in C, C++ and POSIX shell.""" + + homepage = "https://github.com/jmmv/atf" + url = "https://github.com/jmmv/atf/archive/atf-0.21.tar.gz" + + version('0.21', sha256='da6b02d6e7242f768a7aaa7b7e52378680456e4bd9a913b6636187079c98f3cd') + version('0.20', sha256='3677cf957d7f574835b8bdd385984ba928d5695b3ff28f958e4227f810483ab7') + version('0.19', sha256='f9b1d76dad7c34ae61a75638edc517fc05b10fa4c8f97b1d13d739bffee79b16') + + depends_on('m4', type='build') + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') diff --git a/var/spack/repos/builtin/packages/babelflow/package.py b/var/spack/repos/builtin/packages/babelflow/package.py new file mode 100644 index 0000000000..568f8bf7c8 --- /dev/null +++ b/var/spack/repos/builtin/packages/babelflow/package.py @@ -0,0 +1,31 @@ +# 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) + +from spack import * + + +class Babelflow(CMakePackage): + """BabelFlow is an Embedded Domain Specific Language to describe + algorithms using a task graph abstraction which allows them to be + executed on top of one of several available runtime systems.""" + + homepage = "https://github.com/sci-visus/BabelFlow" + git = 'https://github.com/sci-visus/BabelFlow.git' + + maintainers = ['spetruzza'] + + version('develop', + branch='ascent', + submodules=True) + + depends_on('mpi') + + variant("shared", default=True, description="Build Babelflow as shared libs") + + def cmake_args(self): + args = [ + '-DBUILD_SHARED_LIBS:BOOL={0}'.format( + 'ON' if '+shared' in spec else 'OFF')] + return args diff --git a/var/spack/repos/builtin/packages/bbcp/package.py b/var/spack/repos/builtin/packages/bbcp/package.py index 70c453825f..0ea5d88a89 100644 --- a/var/spack/repos/builtin/packages/bbcp/package.py +++ b/var/spack/repos/builtin/packages/bbcp/package.py @@ -9,13 +9,14 @@ from spack import * class Bbcp(Package): """Securely and quickly copy data from source to target""" - homepage = "http://www.slac.stanford.edu/~abh/bbcp/" - git = "http://www.slac.stanford.edu/~abh/bbcp/bbcp.git" + homepage = "https://www.slac.stanford.edu/~abh/bbcp/" + git = "https://www.slac.stanford.edu/~abh/bbcp/bbcp.git" - version('git', branch='master') + version('master', branch='master') depends_on('zlib') depends_on('openssl') + depends_on('libnsl') def install(self, spec, prefix): cd("src") diff --git a/var/spack/repos/builtin/packages/bison/package.py b/var/spack/repos/builtin/packages/bison/package.py index 0a51dd583e..6fe36efed9 100644 --- a/var/spack/repos/builtin/packages/bison/package.py +++ b/var/spack/repos/builtin/packages/bison/package.py @@ -14,8 +14,17 @@ class Bison(AutotoolsPackage, GNUMirrorPackage): generalized LR (GLR) parser employing LALR(1) parser tables.""" homepage = "https://www.gnu.org/software/bison/" - gnu_mirror_path = "bison/bison-3.4.2.tar.gz" - + gnu_mirror_path = "bison/bison-3.6.4.tar.gz" + + version('3.6.4', sha256='8183de64b5383f3634942c7b151bf2577f74273b2731574cdda8a8f3a0ab13e9') + version('3.6.3', sha256='4b4c4943931e811f1073006ce3d8ee022a02b11b501e9cbf4def3613b24a3e63') + version('3.6.2', sha256='e28ed3aad934de2d1df68be209ac0b454f7b6d3c3d6d01126e5cd2cbadba089a') + version('3.6.1', sha256='1120f8bfe2cc13e5e1e3f671dc41b1a535ca5a75a70d5b349c19da9d4389f74d') + version('3.6', sha256='f630645e330bde5847266cc5c8194f0135ced75cced150358d9abe572b95f81c') + version('3.5.3', sha256='34e201d963156618a0ea5bc87220f660a1e08403dd3c7c7903d4f38db3f40039') + version('3.5.2', sha256='b4dbb6dd080f4db7f344f16506502973ca2b15f15c7dbbd1c1c278a456d094fa') + version('3.5.1', sha256='4cef2322d96751be1c0d04f3e57adbb30e7fea83af9c00f98efa6e7509296f25') + version('3.5', sha256='0b36200b9868ee289b78cefd1199496b02b76899bbb7e84ff1c0733a991313d1') version('3.4.2', sha256='ff3922af377d514eca302a6662d470e857bd1a591e96a2050500df5a9d59facf') version('3.4.1', sha256='7007fc89c216fbfaff5525359b02a7e5b612694df5168c74673f67055f015095') version('3.3.2', sha256='0fda1d034185397430eb7b0c9e140fb37e02fbfc53b90252fa5575e382b6dbd1') diff --git a/var/spack/repos/builtin/packages/blat/package.py b/var/spack/repos/builtin/packages/blat/package.py index 34c9f0da6b..831329eafb 100644 --- a/var/spack/repos/builtin/packages/blat/package.py +++ b/var/spack/repos/builtin/packages/blat/package.py @@ -21,5 +21,6 @@ class Blat(Package): env.set('MACHTYPE', 'x86_64') def install(self, spec, prefix): + filter_file('CC=.*', 'CC={0}'.format(spack_cc), 'inc/common.mk') mkdirp(prefix.bin) make("BINDIR=%s" % prefix.bin) diff --git a/var/spack/repos/builtin/packages/bliss/package.py b/var/spack/repos/builtin/packages/bliss/package.py index 7878f16cb0..b42e9cac9c 100644 --- a/var/spack/repos/builtin/packages/bliss/package.py +++ b/var/spack/repos/builtin/packages/bliss/package.py @@ -24,6 +24,7 @@ class Bliss(Package): patch("Makefile.spack.patch") def install(self, spec, prefix): + filter_file('__DATE__', ' __DATE__ ', 'bliss.cc') # The Makefile isn't portable; use our own instead makeargs = ["-f", "Makefile.spack", "PREFIX=%s" % prefix, "GMP_PREFIX=%s" % spec["gmp"].prefix] diff --git a/var/spack/repos/builtin/packages/blktrace/package.py b/var/spack/repos/builtin/packages/blktrace/package.py index d088439139..bf0b1eae05 100644 --- a/var/spack/repos/builtin/packages/blktrace/package.py +++ b/var/spack/repos/builtin/packages/blktrace/package.py @@ -27,5 +27,12 @@ class Blktrace(MakefilePackage): depends_on('libaio') + def edit(self, spec, prefix): + makefiles = ['Makefile', 'btreplay/Makefile', + 'btt/Makefile', 'iowatcher/Makefile'] + for m in makefiles: + makefile = FileFilter(m) + makefile.filter('CC.*=.*', 'CC = {0}'.format(spack_cc)) + def install(self, spec, prefix): install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/brltty/package.py b/var/spack/repos/builtin/packages/brltty/package.py index 25757b259f..d31d7ae3bf 100644 --- a/var/spack/repos/builtin/packages/brltty/package.py +++ b/var/spack/repos/builtin/packages/brltty/package.py @@ -24,6 +24,7 @@ class Brltty(AutotoolsPackage): depends_on('libtool', type='build') depends_on('m4', type='build') depends_on('expat') + depends_on('alsa-lib', type='link') def autoreconf(self, spec, prefix): bash = which('bash') diff --git a/var/spack/repos/builtin/packages/brpc/package.py b/var/spack/repos/builtin/packages/brpc/package.py index ba1417babf..d5481d300b 100644 --- a/var/spack/repos/builtin/packages/brpc/package.py +++ b/var/spack/repos/builtin/packages/brpc/package.py @@ -22,5 +22,6 @@ class Brpc(CMakePackage): depends_on('gflags') depends_on('protobuf') depends_on('leveldb') + depends_on('openssl') patch('narrow.patch', sha256='d7393029443853ddda6c09e3d2185ac2f60920a36a8b685eb83b6b80c1535539', when='@:0.9.7') diff --git a/var/spack/repos/builtin/packages/bwa/bwa_for_aarch64.patch b/var/spack/repos/builtin/packages/bwa/bwa_for_aarch64.patch new file mode 100644 index 0000000000..2bebcb5023 --- /dev/null +++ b/var/spack/repos/builtin/packages/bwa/bwa_for_aarch64.patch @@ -0,0 +1,13 @@ +diff --git a/ksw.c b/ksw.c +index 9793e5e..2eecef4 100644 +--- a/ksw.c ++++ b/ksw.c +@@ -26,7 +26,7 @@ + #include <stdlib.h> + #include <stdint.h> + #include <assert.h> +-#include <emmintrin.h> ++#include <SSE2NEON.h> + #include "ksw.h" + + #ifdef USE_MALLOC_WRAPPERS diff --git a/var/spack/repos/builtin/packages/bwa/package.py b/var/spack/repos/builtin/packages/bwa/package.py index 8447f7848f..5f2d3ff178 100644 --- a/var/spack/repos/builtin/packages/bwa/package.py +++ b/var/spack/repos/builtin/packages/bwa/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import platform class Bwa(Package): @@ -19,10 +20,20 @@ class Bwa(Package): url='https://github.com/lh3/bwa/archive/0.7.12.tar.gz') depends_on('zlib') + depends_on('sse2neon', when='target=aarch64:') + + patch('bwa_for_aarch64.patch', sha256='b77213b16cf8760f01e32f9a0b2cd8988cf7bac48a11267100f703cbd55c4bfd', when='target=aarch64:') def install(self, spec, prefix): - filter_file(r'^INCLUDES=', - "INCLUDES=-I%s" % spec['zlib'].prefix.include, 'Makefile') + zlib_inc_path = spec['zlib'].prefix.include + if platform.machine() == 'aarch64': + sse2neon_inc_path = spec['sse2neon'].prefix.include + filter_file(r'^INCLUDES=', "INCLUDES=-I%s -I%s" % + (zlib_inc_path, sse2neon_inc_path), + 'Makefile') + else: + filter_file(r'^INCLUDES=', "INCLUDES=-I%s" % + zlib_inc_path, 'Makefile') filter_file(r'^LIBS=', "LIBS=-L%s " % spec['zlib'].prefix.lib, 'Makefile') make() diff --git a/var/spack/repos/builtin/packages/camx/package.py b/var/spack/repos/builtin/packages/camx/package.py index b65ffeaf38..473c60ca05 100644 --- a/var/spack/repos/builtin/packages/camx/package.py +++ b/var/spack/repos/builtin/packages/camx/package.py @@ -60,6 +60,10 @@ class Camx(MakefilePackage): def edit(self, spec, prefix): makefile = FileFilter('Makefile') + if spec.target.family == 'aarch64': + makefile.filter('-mcmodel=medium', '-mcmodel=large') + makefile = FileFilter('./MPI/util/Makefile') + makefile.filter('-mcmodel=medium', '-mcmodel=large') # Support Intel MPI. if spec['mpi'].name == 'intel-mpi': diff --git a/var/spack/repos/builtin/packages/cantera/package.py b/var/spack/repos/builtin/packages/cantera/package.py index 4b38ccc7b3..773cc6d8cf 100644 --- a/var/spack/repos/builtin/packages/cantera/package.py +++ b/var/spack/repos/builtin/packages/cantera/package.py @@ -30,7 +30,7 @@ class Cantera(SConsPackage): depends_on('googletest+gmock', when='@2.3.0:') depends_on('eigen', when='@2.3.0:') depends_on('boost') - depends_on('sundials@:3.1.2', when='+sundials') # must be compiled with -fPIC + depends_on('sundials@:3.1.2+lapack', when='+sundials') # must be compiled with -fPIC depends_on('blas') depends_on('lapack') diff --git a/var/spack/repos/builtin/packages/cctools/package.py b/var/spack/repos/builtin/packages/cctools/package.py index ade997bbb8..b92bc65187 100644 --- a/var/spack/repos/builtin/packages/cctools/package.py +++ b/var/spack/repos/builtin/packages/cctools/package.py @@ -45,6 +45,10 @@ class Cctools(AutotoolsPackage): f = 'dttools/src/memfdexe.c' kwargs = {'ignore_absent': False, 'backup': True, 'string': True} filter_file(before, after, f, **kwargs) + if self.spec.satisfies('%fj'): + makefiles = ['chirp/src/Makefile', 'grow/src/Makefile'] + for m in makefiles: + filter_file('-fstack-protector-all', '', m) def configure_args(self): args = [] diff --git a/var/spack/repos/builtin/packages/changa/fix_configure_path.patch b/var/spack/repos/builtin/packages/changa/fix_configure_path.patch new file mode 100644 index 0000000000..f986927209 --- /dev/null +++ b/var/spack/repos/builtin/packages/changa/fix_configure_path.patch @@ -0,0 +1,13 @@ +diff --git a/configure b/configure +index 04f1a59..602c6cc 100755 +--- a/configure ++++ b/configure +@@ -2434,7 +2434,7 @@ if test $($CHARMC -V | awk '{print $3}') -lt $MINIMUM_CHARM_VERSION; then + fi + + CHARM_PATH=${CHARMC%/bin/charmc} +-CONV_CONFIG=${CHARM_PATH}/tmp/conv-config.sh ++CONV_CONFIG=${CHARM_PATH}/include/conv-config.sh + CHARMINC=${CHARM_PATH}/include + + . ${CONV_CONFIG} diff --git a/var/spack/repos/builtin/packages/changa/package.py b/var/spack/repos/builtin/packages/changa/package.py new file mode 100644 index 0000000000..a6adb48c38 --- /dev/null +++ b/var/spack/repos/builtin/packages/changa/package.py @@ -0,0 +1,46 @@ +# 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) + +from spack import * + + +class Changa(AutotoolsPackage): + """ChaNGa (Charm N-body GrAvity solver) is a code to perform collisionless + N-body simulations. It can perform cosmological simulations with periodic + boundary conditions in comoving coordinates or simulations of isolated + stellar systems. It also can include hydrodynamics using the Smooth + Particle Hydrodynamics (SPH) technique. It uses a Barnes-Hut tree to + calculate gravity, with hexadecapole expansion of nodes and + 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" + url = "https://github.com/N-BodyShop/changa/archive/v3.4.tar.gz" + git = "https://github.com/N-BodyShop/changa.git" + + version('master', branch='master') + version('3.4', sha256='c2bceb6ac00025dfd704bb6960bc17c6df7c746872185845d1e75f47e6ce2a94') + patch("fix_configure_path.patch") + + resource( + name="utility", + url="https://github.com/N-BodyShop/utility/archive/v3.4.tar.gz", + sha256="19f9f09023ce9d642e848a36948788fb29cd7deb8e9346cdaac4c945f1416667", + placement="utility" + ) + + depends_on("charmpp build-target=ChaNGa") + + def configure_args(self): + args = [] + args.append("STRUCT_DIR={0}/utility/structures" + .format(self.stage.source_path)) + return args + + def install(self, spec, prefix): + with working_dir(self.build_directory): + mkdirp(prefix.bin) + install('ChaNGa', prefix.bin) + install('charmrun', prefix.bin) diff --git a/var/spack/repos/builtin/packages/charmpp/package.py b/var/spack/repos/builtin/packages/charmpp/package.py index a6c60ef11d..67fe034368 100644 --- a/var/spack/repos/builtin/packages/charmpp/package.py +++ b/var/spack/repos/builtin/packages/charmpp/package.py @@ -52,7 +52,7 @@ class Charmpp(Package): "build-target", default="LIBS", # AMPI also builds charm++, LIBS also builds AMPI and charm++ - values=("charm++", "AMPI", "LIBS"), + values=("charm++", "AMPI", "LIBS", "ChaNGa"), description="Specify the target to build" ) @@ -217,7 +217,7 @@ class Charmpp(Package): present on the system") target = spec.variants["build-target"].value - builddir = prefix + "/" + str(self.charmarch) + builddir = prefix # We assume that Spack's compiler wrappers make this work. If # not, then we need to query the compiler vendor from Spack diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py index 20ade16950..07e933c718 100644 --- a/var/spack/repos/builtin/packages/cmake/package.py +++ b/var/spack/repos/builtin/packages/cmake/package.py @@ -18,6 +18,7 @@ class Cmake(Package): executables = ['cmake'] + version('3.18.0', sha256='83b4ffcb9482a73961521d2bafe4a16df0168f03f56e6624c419c461e5317e29') version('3.17.3', sha256='0bd60d512275dc9f6ef2a2865426a184642ceb3761794e6b65bff233b91d8c40') version('3.17.1', sha256='3aa9114485da39cbd9665a0bfe986894a282d5f0882b1dea960a739496620727') version('3.17.0', sha256='b74c05b55115eacc4fa2b77a814981dbda05cdc95a53e279fe16b7b272f00847') diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py index 18c721220a..914d43e52d 100644 --- a/var/spack/repos/builtin/packages/cp2k/package.py +++ b/var/spack/repos/builtin/packages/cp2k/package.py @@ -34,6 +34,8 @@ class Cp2k(MakefilePackage, CudaPackage): variant('smm', default='libxsmm', values=('libxsmm', 'libsmm', 'blas'), description='Library for small matrix multiplications') variant('plumed', default=False, description='Enable PLUMED support') + variant('libint', default=True, + description='Use libint, required for HFX (and possibly others)') variant('libxc', default=True, description='Support additional functionals via libxc') variant('pexsi', default=False, @@ -82,14 +84,15 @@ class Cp2k(MakefilePackage, CudaPackage): # use pkg-config (support added in libxsmm-1.10) to link to libxsmm depends_on('pkgconfig', type='build', when='smm=libxsmm') # ... and in CP2K 7.0+ for linking to libint2 - depends_on('pkgconfig', type='build', when='@7.0:') + depends_on('pkgconfig', type='build', when='+libint@7.0:') + depends_on('pkgconfig', type='build', when='+libxc@7.0:') # libint & libxc are always statically linked - depends_on('libint@1.1.4:1.2', when='@3.0:6.9', type='build') + depends_on('libint@1.1.4:1.2', when='+libint@3.0:6.9', type='build') for lmax in HFX_LMAX_RANGE: # libint2 can be linked dynamically again depends_on('libint@2.6.0:+fortran tune=cp2k-lmax-{0}'.format(lmax), - when='@7.0: lmax={0}'.format(lmax)) + when='+libint@7.0: lmax={0}'.format(lmax)) depends_on('libxc@2.2.2:', when='+libxc@:5.5999', type='build') depends_on('libxc@4.0.3:', when='+libxc@6.0:6.9', type='build') @@ -218,17 +221,10 @@ class Cp2k(MakefilePackage, CudaPackage): dflags = ['-DNDEBUG'] cppflags = [ - '-D__LIBINT', '-D__FFTW3', '-I{0}'.format(fftw_header_dir), ] - if '@:6.9' in spec: - cppflags += [ - '-D__LIBINT_MAX_AM=6', - '-D__LIBDERIV_MAX_AM1=5', - ] - if '^mpi@3:' in spec: cppflags.append('-D__MPI_VERSION=3') elif '^mpi@2:' in spec: @@ -287,19 +283,6 @@ class Cp2k(MakefilePackage, CudaPackage): if 'superlu-dist@4.3' in spec: ldflags.insert(0, '-Wl,--allow-multiple-definition') - if '@:6.9' in spec: - # libint-1.x.y has to be linked statically to work around - # inconsistencies in its Fortran interface definition - # (short-int vs int) which otherwise causes segfaults at runtime - # due to wrong offsets into the shared library symbols. - libs.extend([ - os.path.join(spec['libint'].libs.directories[0], 'libderiv.a'), - os.path.join(spec['libint'].libs.directories[0], 'libint.a'), - ]) - else: - fcflags += pkgconf('--cflags', 'libint2', output=str).split() - libs += pkgconf('--libs', 'libint2', output=str).split() - if '+plumed' in self.spec: dflags.extend(['-D__PLUMED2']) cppflags.extend(['-D__PLUMED2']) @@ -363,6 +346,30 @@ class Cp2k(MakefilePackage, CudaPackage): ) libs.append(wannier) + if '+libint' in spec: + cppflags += ['-D__LIBINT'] + + if '@:6.9' in spec: + cppflags += [ + '-D__LIBINT_MAX_AM=6', + '-D__LIBDERIV_MAX_AM1=5', + ] + + # libint-1.x.y has to be linked statically to work around + # inconsistencies in its Fortran interface definition + # (short-int vs int) which otherwise causes segfaults at + # runtime due to wrong offsets into the shared library + # symbols. + libs.extend([ + os.path.join( + spec['libint'].libs.directories[0], 'libderiv.a'), + os.path.join( + spec['libint'].libs.directories[0], 'libint.a'), + ]) + else: + fcflags += pkgconf('--cflags', 'libint2', output=str).split() + libs += pkgconf('--libs', 'libint2', output=str).split() + if '+libxc' in spec: cppflags += ['-D__LIBXC'] diff --git a/var/spack/repos/builtin/packages/cppcheck/package.py b/var/spack/repos/builtin/packages/cppcheck/package.py index fc943e9517..7d00ca4969 100644 --- a/var/spack/repos/builtin/packages/cppcheck/package.py +++ b/var/spack/repos/builtin/packages/cppcheck/package.py @@ -11,6 +11,7 @@ class Cppcheck(MakefilePackage): homepage = "http://cppcheck.sourceforge.net/" url = "https://downloads.sourceforge.net/project/cppcheck/cppcheck/1.78/cppcheck-1.78.tar.bz2" + version('2.1', sha256='ab26eeef039e5b58aac01efb8cb664f2cc16bf9879c61bc93cd00c95be89a5f7') version('1.87', sha256='e3b0a46747822471df275417d4b74b56ecac88367433e7428f39288a32c581ca') version('1.81', sha256='bb694f37ae0b5fed48c6cdc2fb5e528daf32cefc64e16b1a520c5411323cf27e') version('1.78', sha256='e42696f7d6321b98cb479ad9728d051effe543b26aca8102428f60b9850786b1') diff --git a/var/spack/repos/builtin/packages/cpprestsdk/package.py b/var/spack/repos/builtin/packages/cpprestsdk/package.py index 3bfbf52c29..70425ed7db 100644 --- a/var/spack/repos/builtin/packages/cpprestsdk/package.py +++ b/var/spack/repos/builtin/packages/cpprestsdk/package.py @@ -15,13 +15,22 @@ class Cpprestsdk(CMakePackage): homepage = "https://github.com/Microsoft/cpprestsdk" url = "https://github.com/Microsoft/cpprestsdk/archive/v2.9.1.tar.gz" + version('2.10.16', git='https://github.com/Microsoft/cpprestsdk', branch='v2.10.16', submodules=True) version('2.9.1', sha256='537358760acd782f4d2ed3a85d92247b4fc423aff9c85347dc31dbb0ab9bab16') depends_on('boost@:1.69.0') + depends_on('openssl') # Ref: https://github.com/microsoft/cpprestsdk/commit/f9f518e4ad84577eb684ad8235181e4495299af4 # Ref: https://github.com/Microsoft/cpprestsdk/commit/6b2e0480018530b616f61d5cdc786c92ba148bb7 # Ref: https://github.com/microsoft/cpprestsdk/commit/70c1b14f39f5d47984fdd8a31fc357ebb5a37851 - patch('Release.patch') + patch('Release.patch', when='@2.9.1') root_cmakelists_dir = 'Release' + + def cmake_args(self): + args = [ + '-DWERROR:BOOL=Off' + ] + + return args diff --git a/var/spack/repos/builtin/packages/csa-c/package.py b/var/spack/repos/builtin/packages/csa-c/package.py new file mode 100644 index 0000000000..9bc09f49fd --- /dev/null +++ b/var/spack/repos/builtin/packages/csa-c/package.py @@ -0,0 +1,19 @@ +# 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) + +from spack import * + + +class CsaC(AutotoolsPackage): + """csa: Cubic Spline Approximation. csa is a C code for + cubic spline approximation of 2D scattered data. It provides + a C library and a command line utility csabathy.""" + + homepage = "https://github.com/sakov/csa-c" + git = "https://github.com/sakov/csa-c.git" + + version('master', branch='master') + + configure_directory = 'csa' diff --git a/var/spack/repos/builtin/packages/cuda/package.py b/var/spack/repos/builtin/packages/cuda/package.py index 5fd89cbaa1..300dda7b38 100644 --- a/var/spack/repos/builtin/packages/cuda/package.py +++ b/var/spack/repos/builtin/packages/cuda/package.py @@ -22,6 +22,9 @@ import llnl.util.tty as tty # format returned by platform.system() and 'arch' by platform.machine() _versions = { + '11.0.2': { + 'Linux-x86_64': ('48247ada0e3f106051029ae8f70fbd0c238040f58b0880e55026374a959a69c1', 'http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run'), + 'Linux-ppc64le': ('db06d0f3fbf6f7aa1f106fc921ad1c86162210a26e8cb65b171c5240a3bf75da', 'http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux_ppc64le.run')}, '10.2.89': { 'Linux-x86_64': ('560d07fdcf4a46717f2242948cd4f92c5f9b6fc7eae10dd996614da913d5ca11', 'http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run'), 'Linux-ppc64le': ('5227774fcb8b10bd2d8714f0a716a75d7a2df240a9f2a49beb76710b1c0fc619', 'http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux_ppc64le.run')}, @@ -135,6 +138,7 @@ class Cuda(Package): # CUDA 10.0 provides Compatability libraries for running newer versions # of CUDA with older drivers. These do not work with newer drivers. for lib in libs: - if 'compat' not in lib.split(os.sep): + parts = lib.split(os.sep) + if 'compat' not in parts and 'stubs' not in parts: filtered_libs.append(lib) return LibraryList(filtered_libs) diff --git a/var/spack/repos/builtin/packages/curl/package.py b/var/spack/repos/builtin/packages/curl/package.py index e0e964893f..abb09d78e1 100644 --- a/var/spack/repos/builtin/packages/curl/package.py +++ b/var/spack/repos/builtin/packages/curl/package.py @@ -15,6 +15,7 @@ class Curl(AutotoolsPackage): # URL must remain http:// so Spack can bootstrap curl url = "http://curl.haxx.se/download/curl-7.60.0.tar.bz2" + version('7.71.0', sha256='600f00ac2481a89548a4141ddf983fd9386165e1960bac91d0a1c81dca5dd341') version('7.68.0', sha256='207f54917dd6a2dc733065ccf18d61bb5bebeaceb5df49cd9445483e8623eeb9') version('7.63.0', sha256='9bab7ed4ecff77020a312d84cc5fb7eb02d58419d218f267477a724a17fd8dd8') version('7.60.0', sha256='897dfb2204bd99be328279f88f55b7c61592216b0542fcbe995c60aa92871e9b') @@ -51,6 +52,7 @@ class Curl(AutotoolsPackage): conflicts('platform=linux', when='+darwinssl') depends_on('openssl', when='~darwinssl') + depends_on('libidn2') depends_on('zlib') depends_on('nghttp2', when='+nghttp2') depends_on('libssh2', when='+libssh2') @@ -61,6 +63,8 @@ class Curl(AutotoolsPackage): spec = self.spec args = ['--with-zlib={0}'.format(spec['zlib'].prefix)] + args.append('--with-libidn2={0}'.format(spec['libidn2'].prefix)) + if spec.satisfies('+darwinssl'): args.append('--with-darwinssl') else: diff --git a/var/spack/repos/builtin/packages/darshan-runtime/package.py b/var/spack/repos/builtin/packages/darshan-runtime/package.py index c58bc9edd5..1c81045e69 100644 --- a/var/spack/repos/builtin/packages/darshan-runtime/package.py +++ b/var/spack/repos/builtin/packages/darshan-runtime/package.py @@ -29,12 +29,13 @@ class DarshanRuntime(Package): version('3.1.0', sha256='b847047c76759054577823fbe21075cfabb478cdafad341d480274fb1cef861c') version('3.0.0', sha256='95232710f5631bbf665964c0650df729c48104494e887442596128d189da43e0') - depends_on('mpi') + depends_on('mpi', when='+mpi') depends_on('zlib') variant('slurm', default=False, description='Use Slurm Job ID') variant('cobalt', default=False, description='Use Coblat Job Id') variant('pbs', default=False, description='Use PBS Job Id') + variant('mpi', default=True, description='Compile with MPI support') def install(self, spec, prefix): @@ -47,11 +48,15 @@ class DarshanRuntime(Package): job_id = 'PBS_JOBID' # TODO: BG-Q and other platform configure options - options = ['CC=%s' % spec['mpi'].mpicc, - '--with-mem-align=8', - '--with-log-path-by-env=DARSHAN_LOG_DIR_PATH', - '--with-jobid-env=%s' % job_id, - '--with-zlib=%s' % spec['zlib'].prefix] + options = [] + if '+mpi' in spec: + options = ['CC=%s' % spec['mpi'].mpicc] + else: + options = ['--without-mpi'] + options.extend(['--with-mem-align=8', + '--with-log-path-by-env=DARSHAN_LOG_DIR_PATH', + '--with-jobid-env=%s' % job_id, + '--with-zlib=%s' % spec['zlib'].prefix]) with working_dir('spack-build', create=True): configure = Executable('../darshan-runtime/configure') diff --git a/var/spack/repos/builtin/packages/dd4hep/package.py b/var/spack/repos/builtin/packages/dd4hep/package.py index 76de6090c5..c8a28647c0 100644 --- a/var/spack/repos/builtin/packages/dd4hep/package.py +++ b/var/spack/repos/builtin/packages/dd4hep/package.py @@ -22,6 +22,7 @@ class Dd4hep(CMakePackage): maintainers = ['vvolkl', 'drbenmorgan'] version('master', branch='master') + version('1.13.0', sha256='0b1f9d902ebe21a9178c1e41204c066b29f68c8836fd1d03a9ce979811ddb295') version('1.12.1', sha256='85e8c775ec03c499ce10911e228342e757c81ce9ef2a9195cb253b85175a2e93') version('1.12.0', sha256='133a1fb8ce0466d2482f3ebb03e60b3bebb9b2d3e33d14ba15c8fbb91706b398') version('1.11.2', sha256='96a53dd26cb8df11c6dae54669fbc9cc3c90dd47c67e07b24be9a1341c95abc4') diff --git a/var/spack/repos/builtin/packages/dftbplus/package.py b/var/spack/repos/builtin/packages/dftbplus/package.py new file mode 100644 index 0000000000..a8b313988e --- /dev/null +++ b/var/spack/repos/builtin/packages/dftbplus/package.py @@ -0,0 +1,147 @@ +# 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) + +from spack import * +import os + + +class Dftbplus(MakefilePackage): + """DFTB+ is an implementation of the + Density Functional based Tight Binding (DFTB) method, + containing many extensions to the original method.""" + + homepage = "https://www.dftbplus.org" + url = "https://github.com/dftbplus/dftbplus/archive/19.1.tar.gz" + + version('19.1', sha256='4d07f5c6102f06999d8cfdb1d17f5b59f9f2b804697f14b3bc562e3ea094b8a8') + + resource(name='slakos', + url='https://github.com/dftbplus/testparams/archive/dftbplus-18.2.tar.gz', + sha256='bd191b3d240c1a81a8754a365e53a78b581fc92eb074dd5beb8b56a669a8d3d1', + destination='external/slakos', + when='@18.2:') + + variant('mpi', default=True, + description="Build an MPI-paralelised version of the code.") + + variant('gpu', default=False, + description="Use the MAGMA library " + "for GPU accelerated computation") + + variant('elsi', default=False, + description="Use the ELSI library for large scale systems. " + "Only has any effect if you build with '+mpi'") + + variant('sockets', default=False, + description="Whether the socket library " + "(external control) should be linked") + + variant('arpack', default=False, + description="Use ARPACK for excited state DFTB functionality") + + variant('transport', default=False, + description="Whether transport via libNEGF should be included. " + "Only affects parallel build. " + "(serial version is built without libNEGF/transport)") + + variant('dftd3', default=False, + description="Use DftD3 dispersion library " + "(if you need this dispersion model)") + + depends_on('lapack') + depends_on('blas') + depends_on('scalapack', when="+mpi") + depends_on('mpi', when="+mpi") + depends_on('elsi', when="+elsi") + depends_on('magma', when="+gpu") + depends_on('arpack-ng', when="+arpack") + depends_on('dftd3-lib@0.9.2', when="+dftd3") + + def edit(self, spec, prefix): + """ + First, change the ROOT variable, because, for some reason, + the Makefile and the spack install script run in different directories + + Then, if using GCC, rename the file 'sys/make.x86_64-linux-gnu' + to make.arch. + + After that, edit the make.arch to point to the dependencies + + And the last thing we do here is to set the installdir + """ + dircwd = os.getcwd() + makefile = FileFilter("makefile") + makefile.filter("ROOT := .*", "ROOT := {0}".format(dircwd)) + + archmake = join_path(".", "sys", "make.x86_64-linux-gnu") + copy(archmake, join_path(dircwd, "make.arch")) + + march = FileFilter(join_path(dircwd, 'make.arch')) + + mconfig = FileFilter(join_path(dircwd, 'make.config')) + + mconfig.filter('INSTALLDIR := .*', 'INSTALLDIR := {0}'.format(prefix)) + + if '+gpu' in self.spec: + march.filter('MAGMADIR = .*', + 'MAGMADIR = {0}'.format(spec['magma'].prefix)) + + mconfig.filter('WITH_GPU := .*', 'WITH_GPU := 1') + + if '+mpi' in self.spec: + march.filter('SCALAPACKDIR = .*', + 'SCALAPACKDIR = {0}'.format(spec['scalapack'].prefix)) + + march.filter('LIB_LAPACK = -l.*', + 'LIB_LAPACK = {0}'.format(spec['blas'].libs.ld_flags)) + + march.filter('mpifort', '{0}'.format(spec['mpi'].mpifc)) + + mconfig.filter('WITH_MPI := .*', 'WITH_MPI := 1') + + if '+elsi' in self.spec: + mconfig.filter('WITH_ELSI := .*', 'WITH_ELSI := 1') + + has_pexsi = '+enable_pexsi' in spec['elsi'] + + mconfig.filter('WITH_PEXSI := .*', 'WITH_PEXSI := {0}'.format( + '1' if has_pexsi is True else '0' + )) + + march.filter("ELSIINCDIR .*", "ELSIINCDIR = {0}".format( + spec['elsi'].prefix.include + )) + + march.filter("ELSIDIR .*", + "ELSIDIR = {0}".format(spec['elsi'].prefix)) + + else: + march.filter('LIB_LAPACK += -l.*', 'LIB_LAPACK += {0}'.format( + spec['blas'].libs.ld_flags)) + + if '+sockets' in self.spec: + mconfig.filter('WITH_SOCKETS := .*', 'WITH_SOCKETS := 1') + + if '+transport' in self.spec: + mconfig.filter('WITH_TRANSPORT := .*', 'WITH_TRANSPORT := 1') + + if '+arpack' in self.spec: + march.filter('ARPACK_LIBS = .*', 'ARPACK_LIBS = {0}'.format( + spec['arpack-ng'].libs.ld_flags + )) + + mconfig.filter('WITH_ARPACK := .*', 'WITH_ARPACK := 1') + + if '+dftd3' in self.spec: + march.filter('COMPILE_DFTD3 = .*', 'COMPILE_DFTD3 = 0') + march.filter('DFTD3_INCS = .*', 'DFTD3_INCS = -I{0}'.format( + spec['dftd3-lib'].prefix.include + )) + + march.filter('DFTD3_LIBS = .*', + 'DFTD3_LIBS = -L{0} -ldftd3'.format( + spec['dftd3-lib'].prefix)) + + mconfig.filter('WITH_DFTD3 := .*', 'WITH_DFTD3 := 1') diff --git a/var/spack/repos/builtin/packages/dftd3-lib/package.py b/var/spack/repos/builtin/packages/dftd3-lib/package.py new file mode 100644 index 0000000000..793a312342 --- /dev/null +++ b/var/spack/repos/builtin/packages/dftd3-lib/package.py @@ -0,0 +1,38 @@ +# 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) + +from spack import * + + +class Dftd3Lib(MakefilePackage): + """A dispersion correction for density functionals, + Hartree-Fock and semi-empirical quantum chemical methods""" + + homepage = "https://www.chemie.uni-bonn.de/pctc/mulliken-center/software/dft-d3/dft-d3" + url = "https://github.com/dftbplus/dftd3-lib/archive/0.9.2.tar.gz" + + version('0.9.2', sha256='4178f3cf2f3e7e982a7084ec66bac92b4fdf164537d9fc0ada840a11b784f0e0') + + # This fixes a concurrency bug, where make would try to start compiling + # the dftd3 target before the lib target ended. + # Since the library is small, disabling causes not much harm + parallel = False + + def edit(self, spec, prefix): + makefile = FileFilter('make.arch') + makefile.filter("FC = gfortran", "") + makefile.filter("LN = gfortran", "LN = $(FC)") + + def install(self, spec, prefix): + mkdir(prefix.lib) + mkdir(prefix.bin) + mkdir(prefix.include) + install("lib/libdftd3.a", prefix.lib) + install("prg/dftd3", prefix.bin) + install("lib/dftd3_api.mod", prefix.include) + install("lib/dftd3_common.mod", prefix.include) + install("lib/dftd3_core.mod", prefix.include) + install("lib/dftd3_pars.mod", prefix.include) + install("lib/dftd3_sizes.mod", prefix.include) diff --git a/var/spack/repos/builtin/packages/dray/package.py b/var/spack/repos/builtin/packages/dray/package.py new file mode 100644 index 0000000000..9dbf66afd9 --- /dev/null +++ b/var/spack/repos/builtin/packages/dray/package.py @@ -0,0 +1,318 @@ +# 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) + +from spack import * + +import os +import socket + +import llnl.util.tty as tty + + +def cmake_cache_entry(name, value, vtype=None): + """ + Helper that creates CMake cache entry strings used in + 'host-config' files. + """ + if vtype is None: + if value == "ON" or value == "OFF": + vtype = "BOOL" + else: + vtype = "PATH" + return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype) + + +class Dray(Package, CudaPackage): + """High-Order Mesh Ray Tracer.""" + + homepage = "https://github.com/LLNL/devil_ray" + git = "https://github.com/LLNL/devil_ray.git" + url = "https://github.com/LLNL/devil_ray/releases/download/v0.1.2/dray-v0.1.2.tar.gz" + + maintainers = ['mclarsen', 'cyrush'] + + version('develop', branch='develop', submodules='True') + version('0.1.2', sha256='46937f20124b28dc78a634e8e063a3e7a3bbfd9f424ce2680b08417010c376da') + version('0.1.1', sha256='e5daa49ee3367c087f5028dc5a08655298beb318014c6f3f65ef4a08fcbe346c') + version('0.1.0', sha256='8b341138e1069361351e0a94478608c5af479cca76e2f97d556229aed45c0169') + + variant('cuda', default=False, description='Build with CUDA backend') + variant('openmp', default=True, description='Build OpenMP backend') + variant("shared", default=True, description="Build as shared libs") + variant("test", default=True, description='Build unit tests') + variant("utils", default=True, description='Build utilities') + variant("logging", default=False, description='Enable logging') + variant("stats", default=False, description='Enable stats') + variant("mpi", default=True, description='Enable MPI compiler') + + depends_on('cuda', when='+cuda') + depends_on('mpi', when='+mpi') + + depends_on('cmake@3.9:', type='build') + depends_on('cmake@3.14:', when='+cuda', type='build') + + depends_on("conduit~shared", when="~shared") + depends_on("conduit+shared", when="+shared") + + depends_on("apcomp~shared+openmp+mpi", when="~shared+openmp+mpi") + depends_on("apcomp+shared+openmp+mpi", when="+shared+openmp+mpi") + depends_on("apcomp~shared~openmp+mpi", when="~shared~openmp+mpi") + depends_on("apcomp+shared~openmp+mpi", when="+shared~openmp+mpi") + depends_on("apcomp~shared+openmp~mpi", when="~shared+openmp~mpi") + depends_on("apcomp+shared+openmp~mpi", when="+shared+openmp~mpi") + depends_on("apcomp~shared~openmp~mpi", when="~shared~openmp~mpi") + depends_on("apcomp+shared~openmp~mpi", when="+shared~openmp~mpi") + + depends_on("raja@0.9.0+cuda~openmp+shared", when="+cuda~openmp+shared") + depends_on("raja@0.9.0+cuda+openmp+shared", when="+cuda+openmp+shared") + depends_on("raja@0.9.0+cuda~openmp~shared", when="+cuda~openmp~shared") + depends_on("raja@0.9.0+cuda+openmp~shared", when="+cuda+openmp~shared") + + depends_on("raja@0.9.0~cuda~openmp+shared", when="~cuda~openmp+shared") + depends_on("raja@0.9.0~cuda+openmp+shared", when="~cuda+openmp+shared") + depends_on("raja@0.9.0~cuda~openmp~shared", when="~cuda~openmp~shared") + depends_on("raja@0.9.0~cuda+openmp~shared", when="~cuda+openmp~shared") + + depends_on("umpire@1.0.0+cuda+shared", when="+cuda+shared") + depends_on("umpire@1.0.0+cuda~shared", when="+cuda~shared") + depends_on("umpire@1.0.0~cuda+shared", when="~cuda+shared") + depends_on("umpire@1.0.0~cuda~shared", when="~cuda~shared") + + depends_on("mfem+shared+conduit~threadsafe", when="+shared") + depends_on("mfem~shared+conduit~threadsafe", when="~shared") + + def setup_build_environment(self, env): + env.set('CTEST_OUTPUT_ON_FAILURE', '1') + + def install(self, spec, prefix): + """ + Build and install Devil Ray. + """ + with working_dir('spack-build', create=True): + host_cfg_fname = self.create_host_config(spec, + prefix) + cmake_args = [] + # if we have a static build, we need to avoid any of + # spack's default cmake settings related to rpaths + # (see: https://github.com/LLNL/spack/issues/2658) + if "+shared" in spec: + cmake_args.extend(std_cmake_args) + else: + for arg in std_cmake_args: + if arg.count("RPATH") == 0: + cmake_args.append(arg) + cmake_args.extend(["-C", host_cfg_fname, "../src"]) + print("Configuring Devil Ray...") + cmake(*cmake_args) + print("Building Devil Ray...") + make() + # run unit tests if requested + if "+test" in spec and self.run_tests: + print("Running Devil Ray Unit Tests...") + make("test") + print("Installing Devil Ray...") + make("install") + # install copy of host config for provenance + install(host_cfg_fname, prefix) + + def create_host_config(self, spec, prefix): + """ + This method creates a 'host-config' file that specifies + all of the options used to configure and build ascent. + + For more details about 'host-config' files see: + http://ascent.readthedocs.io/en/latest/BuildingAscent.html + """ + + ####################### + # Compiler Info + ####################### + c_compiler = env["SPACK_CC"] + cpp_compiler = env["SPACK_CXX"] + + ####################################################################### + # By directly fetching the names of the actual compilers we appear + # to doing something evil here, but this is necessary to create a + # 'host config' file that works outside of the spack install env. + ####################################################################### + + sys_type = spec.architecture + # if on llnl systems, we can use the SYS_TYPE + if "SYS_TYPE" in env: + sys_type = env["SYS_TYPE"] + + ############################################## + # Find and record what CMake is used + ############################################## + + if "+cmake" in spec: + cmake_exe = spec['cmake'].command.path + else: + cmake_exe = which("cmake") + if cmake_exe is None: + msg = 'failed to find CMake (and cmake variant is off)' + raise RuntimeError(msg) + cmake_exe = cmake_exe.path + + host_cfg_fname = "%s-%s-%s-devil_ray.cmake" % (socket.gethostname(), + sys_type, + spec.compiler) + + cfg = open(host_cfg_fname, "w") + cfg.write("##################################\n") + cfg.write("# spack generated host-config\n") + cfg.write("##################################\n") + cfg.write("# {0}-{1}\n".format(sys_type, spec.compiler)) + cfg.write("##################################\n\n") + + # Include path to cmake for reference + cfg.write("# cmake from spack \n") + cfg.write("# cmake executable path: %s\n\n" % cmake_exe) + + ####################### + # Compiler Settings + ####################### + cfg.write("#######\n") + cfg.write("# using %s compiler spec\n" % spec.compiler) + cfg.write("#######\n\n") + + if "+mpi" in spec: + cfg.write(cmake_cache_entry("ENABLE_MPI", "ON")) + mpicc_path = spec['mpi'].mpicc + mpicxx_path = spec['mpi'].mpicxx + # if we are using compiler wrappers on cray systems + # use those for mpi wrappers, b/c spec['mpi'].mpicxx + # etc make return the spack compiler wrappers + # which can trip up mpi detection in CMake 3.14 + if cpp_compiler == "CC": + mpicc_path = "cc" + mpicxx_path = "CC" + + cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", mpicc_path)) + cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", mpicxx_path)) + else: + cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF")) + cfg.write("# c compiler used by spack\n") + cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler)) + cfg.write("# cpp compiler used by spack\n") + cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler)) + + ####################### + # Backends + ####################### + + cfg.write("# CUDA Support\n") + + if "+cuda" in spec: + cfg.write(cmake_cache_entry("ENABLE_CUDA", "ON")) + if 'cuda_arch' in spec.variants: + cuda_value = spec.variants['cuda_arch'].value + cuda_arch = cuda_value[0] + cfg.write(cmake_cache_entry('CUDA_ARCH', + 'sm_{0}'.format(cuda_arch))) + else: + cfg.write(cmake_cache_entry("ENABLE_CUDA", "OFF")) + + if "+openmp" in spec: + cfg.write(cmake_cache_entry("ENABLE_OPENMP", "ON")) + else: + cfg.write(cmake_cache_entry("ENABLE_OPENMP", "OFF")) + + # shared vs static libs + if "+shared" in spec: + cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "ON")) + else: + cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "OFF")) + + ####################### + # Unit Tests + ####################### + if "+test" in spec: + cfg.write(cmake_cache_entry("DRAY_ENABLE_TESTS", "ON")) + else: + cfg.write(cmake_cache_entry("DRAY_ENABLE_TESTS", "OFF")) + + ####################### + # Utilities + ####################### + if "+utils" in spec: + cfg.write(cmake_cache_entry("DRAY_ENABLE_UTILS", "ON")) + else: + cfg.write(cmake_cache_entry("DRAY_ENABLE_UTILS", "OFF")) + + ####################### + # Logging + ####################### + if "+logging" in spec: + cfg.write(cmake_cache_entry("ENABLE_LOGGING", "ON")) + else: + cfg.write(cmake_cache_entry("ENABLE_LOGGING", "OFF")) + + ####################### + # Logging + ####################### + if "+stats" in spec: + cfg.write(cmake_cache_entry("ENABLE_STATS", "ON")) + else: + cfg.write(cmake_cache_entry("ENABLE_STATS", "OFF")) + + ####################################################################### + # Core Dependencies + ####################################################################### + + cfg.write("# conduit from spack \n") + cfg.write(cmake_cache_entry("CONDUIT_DIR", spec['conduit'].prefix)) + + cfg.write("# mfem from spack \n") + cfg.write(cmake_cache_entry("MFEM_DIR", spec['mfem'].prefix)) + + cfg.write("# raja from spack \n") + cfg.write(cmake_cache_entry("RAJA_DIR", spec['raja'].prefix)) + + cfg.write("# umpire from spack \n") + cfg.write(cmake_cache_entry("UMPIRE_DIR", spec['umpire'].prefix)) + + cfg.write("# apcompositor from spack \n") + cfg.write(cmake_cache_entry("APCOMP_DIR", spec['apcomp'].prefix)) + + cfg.write("##################################\n") + cfg.write("# end spack generated host-config\n") + cfg.write("##################################\n") + cfg.close() + + host_cfg_fname = os.path.abspath(host_cfg_fname) + tty.info("spack generated conduit host-config file: " + host_cfg_fname) + return host_cfg_fname + + def cmake_args(self): + spec = self.spec + + options = [] + + if '+openmp' in spec: + options.extend([ + '-DENABLE_OPENMP=On']) + + if '+cuda' in spec: + options.extend([ + '-DENABLE_CUDA=On', + '-DCUDA_TOOLKIT_ROOT_DIR=%s' % (spec['cuda'].prefix)]) + if 'cuda_arch' in spec.variants: + cuda_value = spec.variants['cuda_arch'].value + cuda_arch = cuda_value[0] + options.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch)) + else: + options.extend(['-DENABLE_CUDA=OFF']) + + options.extend(['-DRAJA_DIR=%s' % (spec['raja'].prefix)]) + options.extend(['-DMFEM_DIR=%s' % (spec['mfem'].prefix)]) + options.extend(['-DUMPIRE_DIR=%s' % (spec['umpire'].prefix)]) + options.extend(['-DCONDUIT_DIR=%s' % (spec['conduit'].prefix)]) + options.extend(['-DDRAY_ENABLE_TESTS=OFF']) + options.extend(['-DENABLE_LOGGING=OFF']) + options.extend(['-DENABLE_STATS=OFF']) + options.extend(['../src']) + + return options diff --git a/var/spack/repos/builtin/packages/elmerfem/package.py b/var/spack/repos/builtin/packages/elmerfem/package.py index 464611eaf4..24433a58f8 100644 --- a/var/spack/repos/builtin/packages/elmerfem/package.py +++ b/var/spack/repos/builtin/packages/elmerfem/package.py @@ -13,32 +13,47 @@ class Elmerfem(CMakePackage): homepage = "https://www.csc.fi/web/elmer" url = "https://github.com/ElmerCSC/elmerfem/archive/release-8.4.tar.gz" + git = "https://github.com/ElmerCSC/elmerfem.git" + version('ice', branch='elmerice') + version('devel', branch='devel') version('8.4', sha256='cc3ce807d76798361592cc14952cdc3db1ad8f9bac038017514033ce9badc5b3') - version('devel', git='https://github.com/ElmerCSC/elmerfem.git', branch='devel') + variant('mpi', default=True, description='Enable MPI support.') variant('openmp', default=True, description='Enable OpenMP support.') variant('mumps', default=False, description='Enable MUMPS support.') variant('hypre', default=False, description='Enable Hypre support.') variant('trilinos', default=False, description='Enable Trilinos support.') variant('zoltan', default=False, description='Enable Zoltan support.') variant('lua', default=False, description='Enable Lua support.') + variant('scatt2d', default=False, description='Build Scattered2DDataInterpolator solver.') depends_on('mpi') depends_on('netcdf-fortran') depends_on('blas') depends_on('lapack') + depends_on('scalapack', when='+mpi') depends_on('mumps', when='+mumps') depends_on('hypre', when='+hypre') depends_on('trilinos~hypre~zoltan~zoltan2', when='+trilinos') depends_on('zoltan+fortran', when='+zoltan') depends_on('lua@5.1.5', when='+lua') + depends_on('nn-c', when='+scatt2d') + depends_on('csa-c', when='+scatt2d') def cmake_args(self): spec = self.spec - args = ['-DWITH_ElmerIce=ON', '-DWITH_CONTRIB=ON', '-DWITH_MPI=ON'] + args = ['-DWITH_ElmerIce=ON', '-DWITH_CONTRIB=ON'] + + if '+mpi' in spec: + args.append('-DWITH_MPI=ON') + else: + args.append('-DWITH_MPI=OFF') + + if self.spec.satisfies('^intel-mkl'): + args.append('-DWITH_MKL:BOOL=TRUE') if '+openmp' in spec: args.append('-DWITH_OpenMP=ON') @@ -82,7 +97,21 @@ class Elmerfem(CMakePackage): else: args.append('-DWITH_Zoltan=OFF') + if '+scatt2d' in spec: + args.extend([ + '-DWITH_ScatteredDataInterpolator=ON', + '-DNN_LIBRARY=' + + join_path(self.spec['nn-c'].prefix, 'lib', 'libnn.a'), + '-DNN_INCLUDE_DIR=' + + join_path(self.spec['nn-c'].prefix, 'include'), + '-DCSA_LIBRARY=' + + join_path(self.spec['csa-c'].prefix, 'lib', 'libcsa.so'), + '-DCSA_INCLUDE_DIR=' + + join_path(self.spec['csa-c'].prefix, 'include') + ]) + return args def setup_run_environment(self, env): env.set('ELMER_HOME', self.prefix) + env.set('ELMER_Fortran_COMPILER', self.compiler.fc) diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py index 3aad567fe5..58c088393f 100644 --- a/var/spack/repos/builtin/packages/elpa/package.py +++ b/var/spack/repos/builtin/packages/elpa/package.py @@ -14,9 +14,10 @@ class Elpa(AutotoolsPackage): homepage = 'http://elpa.mpcdf.mpg.de/' url = 'http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz' + version('2020.05.001', sha256='66ff1cf332ce1c82075dc7b5587ae72511d2bcb3a45322c94af6b01996439ce5') + version('2019.11.001', sha256='10374a8f042e23c7e1094230f7e2993b6f3580908a213dbdf089792d05aff357') version('2019.05.002', sha256='d2eab5e5d74f53601220b00d18185670da8c00c13e1c1559ecfb0cd7cb2c4e8d') - version('2018.11.001', - sha256='cc27fe8ba46ce6e6faa8aea02c8c9983052f8e73a00cfea38abf7613cb1e1b16') + version('2018.11.001', sha256='cc27fe8ba46ce6e6faa8aea02c8c9983052f8e73a00cfea38abf7613cb1e1b16') version('2018.05.001.rc1', sha256='598c01da20600a4514ea4d503b93e977ac0367e797cab7a7c1b0e0e3e86490db') version('2017.11.001', sha256='59f99c3abe2190fac0db8a301d0b9581ee134f438669dbc92551a54f6f861820') version('2017.05.003', sha256='bccd49ce35a323bd734b17642aed8f2588fea4cc78ee8133d88554753bc3bf1b') diff --git a/var/spack/repos/builtin/packages/energyplus/package.py b/var/spack/repos/builtin/packages/energyplus/package.py index ca534999f9..d781f24452 100644 --- a/var/spack/repos/builtin/packages/energyplus/package.py +++ b/var/spack/repos/builtin/packages/energyplus/package.py @@ -17,6 +17,8 @@ class Energyplus(Package): homepage = "https://energyplus.net" # versions require explicit URLs as they contain hashes + version('9.3.0', sha256='c939dc4f867224e110485a8e0712ce4cfb1e06f8462bc630b54f83a18c93876c', + url="https://github.com/NREL/EnergyPlus/releases/download/v9.3.0/EnergyPlus-9.3.0-baff08990c-Linux-x86_64.tar.gz") version('8.9.0', sha256='13a5192b25815eb37b3ffd019ce3b99fd9f854935f8cc4362814f41c56e9ca98', url="https://github.com/NREL/EnergyPlus/releases/download/v8.9.0-WithIDDFixes/EnergyPlus-8.9.0-eba93e8e1b-Linux-x86_64.tar.gz") @@ -25,13 +27,14 @@ class Energyplus(Package): # and then symlink the appropriate targets # there is only one folder with a semi-predictable name so we glob it - install_tree(glob.glob('EnergyPlus*')[0], - join_path(prefix.lib, 'energyplus')) + source_dir = '.' + + if spec.satisfies('@:8.9.9'): + source_dir = glob.glob('EnergyPlus*')[0] + + install_tree(source_dir, prefix.lib.enregyplus) mkdirp(prefix.bin) - os.symlink(join_path(prefix.lib, 'energyplus/energyplus'), - join_path(prefix.bin, 'energyplus')) - os.symlink(join_path(prefix.lib, 'energyplus/EPMacro'), - join_path(prefix.bin, 'EPMacro')) - os.symlink(join_path(prefix.lib, 'energyplus/ExpandObjects'), - join_path(prefix.bin, 'ExpandObjects')) + for b in ['energyplus', 'EPMacro', 'ExpandObjects']: + os.symlink(join_path(prefix.lib.energyplus, b), + join_path(prefix.bin, b)) diff --git a/var/spack/repos/builtin/packages/esmf/package.py b/var/spack/repos/builtin/packages/esmf/package.py index b533851228..3055b4446e 100644 --- a/var/spack/repos/builtin/packages/esmf/package.py +++ b/var/spack/repos/builtin/packages/esmf/package.py @@ -169,7 +169,7 @@ class Esmf(MakefilePackage): os.environ['ESMF_CXXLINKLIBS'] = '-lmpifort' elif '^openmpi' in spec: os.environ['ESMF_COMM'] = 'openmpi' - elif '^intel-parallel-studio+mpi' in spec: + elif '^intel-parallel-studio+mpi' in spec or '^intel-mpi' in spec: os.environ['ESMF_COMM'] = 'intelmpi' else: # Force use of the single-processor MPI-bypass library. diff --git a/var/spack/repos/builtin/packages/examl/package.py b/var/spack/repos/builtin/packages/examl/package.py new file mode 100644 index 0000000000..d5f115b9be --- /dev/null +++ b/var/spack/repos/builtin/packages/examl/package.py @@ -0,0 +1,50 @@ +# 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) + +from spack import * + + +class Examl(MakefilePackage): + """ + Exascale Maximum Likelihood (ExaML) code for phylogenetic inference + using MPI. This code implements the popular RAxML search algorithm + for maximum likelihood based inference of phylogenetic trees. + """ + + homepage = "https://github.com/stamatak/ExaML" + url = "https://github.com/stamatak/ExaML/archive/v3.0.22.tar.gz" + + maintainers = ['robqiao'] + + version('3.0.22', sha256='802e673b0c2ea83fdbe6b060048d83f22b6978933a04be64fb9b4334fe318ca3') + version('3.0.21', sha256='6c7e6c5d7bf4ab5cfbac5cc0d577885272a803c142e06b531693a6a589102e2e') + version('3.0.20', sha256='023681248bbc7f19821b509948d79301e46bbf275aa90bf12e9f4879639a023b') + version('3.0.19', sha256='3814230bf7578b8396731dc87ce665d0b1a671d8effd571f924c5b7936ae1c9e') + version('3.0.18', sha256='1bacb5124d943d921e7beae52b7062626d0ce3cf2f83e3aa3acf6ea26cf9cd87') + version('3.0.17', sha256='90a859e0b8fff697722352253e748f03c57b78ec5fbc1ae72f7e702d299dac67') + version('3.0.16', sha256='abc922994332d40892e30f077e4644db08cd59662da8e2a9197d1bd8bcb9aa5f') + version('3.0.15', sha256='da5e66a63d6fa34b640535c359d8daf67f23bd2fcc958ac604551082567906b0') + version('3.0.14', sha256='698b538996946ae23a2d6fa1e230c210832e59080da33679ff7d6b342a9e6180') + version('3.0.13', sha256='893aecb5545798235a17975aa07268693d3526d0aee0ed59a2d6e791248791ed') + + variant('mpi', default=True, description='Enable MPI parallel support') + + depends_on('mpi', when='+mpi') + + def build(self, spec, prefix): + ##################### + # Build Directories # + ##################### + with working_dir('examl'): + make('-f', 'Makefile.SSE3.gcc') + with working_dir('parser'): + make('-f', 'Makefile.SSE3.gcc') + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install("examl/examl", prefix.bin) + install("parser/parse-examl", prefix.bin) + install_tree("manual", prefix.manual) + install_tree("testData", prefix.testData) diff --git a/var/spack/repos/builtin/packages/flatbuffers/package.py b/var/spack/repos/builtin/packages/flatbuffers/package.py index 72ad2e599c..c0a0ef4ee2 100644 --- a/var/spack/repos/builtin/packages/flatbuffers/package.py +++ b/var/spack/repos/builtin/packages/flatbuffers/package.py @@ -13,6 +13,7 @@ class Flatbuffers(CMakePackage): homepage = "http://google.github.io/flatbuffers/" url = "https://github.com/google/flatbuffers/archive/v1.9.0.tar.gz" + version('1.12.0', sha256='62f2223fb9181d1d6338451375628975775f7522185266cd5296571ac152bc45') version('1.11.0', sha256='3f4a286642094f45b1b77228656fbd7ea123964f19502f9ecfd29933fd23a50b') version('1.10.0', sha256='3714e3db8c51e43028e10ad7adffb9a36fc4aa5b1a363c2d0c4303dd1be59a7c') version('1.9.0', sha256='5ca5491e4260cacae30f1a5786d109230db3f3a6e5a0eb45d0d0608293d247e3') diff --git a/var/spack/repos/builtin/packages/flatcc/package.py b/var/spack/repos/builtin/packages/flatcc/package.py index ce3fc222fc..a9d3617c9b 100644 --- a/var/spack/repos/builtin/packages/flatcc/package.py +++ b/var/spack/repos/builtin/packages/flatcc/package.py @@ -37,6 +37,9 @@ class Flatcc(CMakePackage): spec = self.spec args = [] + # allow flatcc to be built with more compilers + args.append('-DFLATCC_ALLOW_WERROR=OFF') + if '+shared' in spec: args.append('-DBUILD_SHARED_LIBS=ON') args.append('-DFLATCC_INSTALL=ON') diff --git a/var/spack/repos/builtin/packages/frontistr/package.py b/var/spack/repos/builtin/packages/frontistr/package.py index ebdfa0a3e3..e59da46324 100644 --- a/var/spack/repos/builtin/packages/frontistr/package.py +++ b/var/spack/repos/builtin/packages/frontistr/package.py @@ -15,6 +15,7 @@ class Frontistr(CMakePackage): git = "https://gitlab.com/FrontISTR-Commons/FrontISTR.git" maintainers = ['hiroshi.okuda', 'kgoto', 'morita', 'inagaki', 'michioga'] + version('5.1', tag='v5.1') version('5.0', tag='v5.0') version('master', tag='master') diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py index 3072402dab..d762c3af6b 100644 --- a/var/spack/repos/builtin/packages/gcc/package.py +++ b/var/spack/repos/builtin/packages/gcc/package.py @@ -27,6 +27,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): version('master', branch='master') + version('10.2.0', sha256='b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c') version('10.1.0', sha256='b6898a23844b656f1b68691c5c012036c2e694ac4b53a8918d4712ad876e7ea2') version('9.3.0', sha256='71e197867611f6054aa1119b13a0c0abac12834765fe2d81f35ac57f84f742d1') diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py index b3678bed32..e5a727b66d 100644 --- a/var/spack/repos/builtin/packages/gdal/package.py +++ b/var/spack/repos/builtin/packages/gdal/package.py @@ -18,7 +18,7 @@ class Gdal(AutotoolsPackage): """ homepage = "https://www.gdal.org/" - url = "https://download.osgeo.org/gdal/3.1.1/gdal-3.1.1.tar.xz" + url = "https://download.osgeo.org/gdal/3.1.2/gdal-3.1.2.tar.xz" list_url = "https://download.osgeo.org/gdal/" list_depth = 1 @@ -29,6 +29,7 @@ class Gdal(AutotoolsPackage): 'osgeo.gdal_array', 'osgeo.gdalconst' ] + version('3.1.2', sha256='767c8d0dfa20ba3283de05d23a1d1c03a7e805d0ce2936beaff0bb7d11450641') version('3.1.1', sha256='97154a606339a6c1d87c80fb354d7456fe49828b2ef9a3bc9ed91771a03d2a04') version('3.1.0', sha256='e754a22242ccbec731aacdb2333b567d4c95b9b02d3ba1ea12f70508d244fcda') version('3.0.4', sha256='5569a4daa1abcbba47a9d535172fc335194d9214fdb96cd0f139bb57329ae277') diff --git a/var/spack/repos/builtin/packages/gdb/package.py b/var/spack/repos/builtin/packages/gdb/package.py index e6aef7d671..bef6540a30 100644 --- a/var/spack/repos/builtin/packages/gdb/package.py +++ b/var/spack/repos/builtin/packages/gdb/package.py @@ -15,6 +15,7 @@ class Gdb(AutotoolsPackage, GNUMirrorPackage): homepage = "https://www.gnu.org/software/gdb" gnu_mirror_path = "gdb/gdb-7.10.tar.gz" + version('9.2', sha256='38ef247d41ba7cc3f6f93a612a78bab9484de9accecbe3b0150a3c0391a3faf0') version('9.1', sha256='fcda54d4f35bc53fb24b50009a71ca98410d71ff2620942e3c829a7f5d614252') version('8.3.1', sha256='26ce655216cd03f4611518a7a1c31d80ec8e884c16715e9ba8b436822e51434b') version('8.3', sha256='b2266ec592440d0eec18ee1790f8558b3b8a2845b76cc83a872e39b501ce8a28') diff --git a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py index 04fd4d6030..585bd2de81 100644 --- a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py +++ b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py @@ -14,13 +14,17 @@ class GdkPixbuf(Package): preparation for the change to GTK+ 3.""" homepage = "https://developer.gnome.org/gdk-pixbuf/" - url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/2.38/gdk-pixbuf-2.38.0.tar.xz" + 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 + version('2.40.0', sha256='1582595099537ca8ff3b99c6804350b4c058bb8ad67411bbaae024ee7cead4e6') + version('2.38.2', sha256='73fa651ec0d89d73dd3070b129ce2203a66171dfc0bd2caa3570a9c93d2d0781') version('2.38.0', sha256='dd50973c7757bcde15de6bcd3a6d462a445efd552604ae6435a0532fbbadae47') version('2.31.2', sha256='9e467ed09894c802499fb2399cd9a89ed21c81700ce8f27f970a833efb1e47aa') + variant('x11', default=False, description="Enable X11 support") + depends_on('meson@0.46.0:', type='build', when='@2.37.92:') depends_on('meson@0.45.0:', type='build', when='@2.37.0:') depends_on('ninja', type='build', when='@2.37.0:') @@ -37,6 +41,7 @@ class GdkPixbuf(Package): depends_on('zlib') depends_on('libtiff') depends_on('gobject-introspection') + depends_on('libx11', when='+x11') # Replace the docbook stylesheet URL with the one that our # docbook-xsl package uses/recognizes. @@ -54,7 +59,9 @@ class GdkPixbuf(Package): def install(self, spec, prefix): with working_dir('spack-build', create=True): - meson('..', *std_meson_args) + meson_args = std_meson_args + meson_args += ['-Dx11={0}'.format('+x11' in spec)] + meson('..', *meson_args) ninja('-v') if self.run_tests: ninja('test') diff --git a/var/spack/repos/builtin/packages/ginkgo/CAS-HIP-NVCC-1.2.0.patch b/var/spack/repos/builtin/packages/ginkgo/CAS-HIP-NVCC-1.2.0.patch new file mode 100644 index 0000000000..d562b0315b --- /dev/null +++ b/var/spack/repos/builtin/packages/ginkgo/CAS-HIP-NVCC-1.2.0.patch @@ -0,0 +1,10 @@ +diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt +index 884e50bf6..40618311a 100644 +--- a/third_party/CMakeLists.txt ++++ b/third_party/CMakeLists.txt +@@ -1,4 +1,4 @@ +-if(GINKGO_BUILD_CUDA) ++if(GINKGO_BUILD_CUDA OR (GINKGO_BUILD_HIP AND GINKGO_HIP_PLATFORM STREQUAL "nvcc")) + enable_language(CUDA) + if (GINKGO_USE_EXTERNAL_CAS) + include(CudaArchitectureSelector RESULT_VARIABLE GINKGO_CAS_FILE) diff --git a/var/spack/repos/builtin/packages/ginkgo/package.py b/var/spack/repos/builtin/packages/ginkgo/package.py index 8440be2516..d0ee354256 100644 --- a/var/spack/repos/builtin/packages/ginkgo/package.py +++ b/var/spack/repos/builtin/packages/ginkgo/package.py @@ -18,6 +18,8 @@ class Ginkgo(CMakePackage, CudaPackage): version('develop', branch='develop') version('master', branch='master') + version('1.2.0', commit='b4be2be961fd5db45c3d02b5e004d73550722e31') # v1.2.0 + version('1.1.1', commit='08d2c5200d3c78015ac8a4fd488bafe1e4240cf5') # v1.1.1 version('1.1.0', commit='b9bec8225442b3eb2a85a870efa112ab767a17fb') # v1.1.0 version('1.0.0', commit='45244641e0c2b19ba33aecd25153c0bddbcbe1a0') # v1.0.0 @@ -44,6 +46,8 @@ class Ginkgo(CMakePackage, CudaPackage): 'ON' if '+full_optimizations' in spec else 'OFF'), '-DGINKGO_DEVEL_TOOLS=%s' % ( 'ON' if '+develtools' in spec else 'OFF'), + # Drop HIP support for now + '-DGINKGO_BUILD_HIP=OFF', # As we are not exposing benchmarks, examples, tests nor doc # as part of the installation, disable building them altogether. '-DGINKGO_BUILD_BENCHMARKS=OFF', diff --git a/var/spack/repos/builtin/packages/glew/package.py b/var/spack/repos/builtin/packages/glew/package.py index a5ca6f65da..1b701a21c0 100644 --- a/var/spack/repos/builtin/packages/glew/package.py +++ b/var/spack/repos/builtin/packages/glew/package.py @@ -16,6 +16,8 @@ class Glew(Package): depends_on("cmake", type='build') depends_on("gl") + depends_on('libsm') + depends_on('libice') def install(self, spec, prefix): options = [] diff --git a/var/spack/repos/builtin/packages/global/package.py b/var/spack/repos/builtin/packages/global/package.py index 7a252e7add..5ad3d72520 100644 --- a/var/spack/repos/builtin/packages/global/package.py +++ b/var/spack/repos/builtin/packages/global/package.py @@ -13,6 +13,7 @@ class Global(Package): homepage = "http://www.gnu.org/software/global" url = "http://tamacom.com/global/global-6.5.tar.gz" + version('6.6.4', sha256='987e8cb956c53f8ebe4453b778a8fde2037b982613aba7f3e8e74bcd05312594') version('6.5', sha256='4afd12db1aa600277b39113cc2d61dc59bd6c6b4ee8033da8bb6dd0c39a4c6a9') depends_on('exuberant-ctags', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/glusterfs/package.py b/var/spack/repos/builtin/packages/glusterfs/package.py index 89024cf977..95c482da2f 100644 --- a/var/spack/repos/builtin/packages/glusterfs/package.py +++ b/var/spack/repos/builtin/packages/glusterfs/package.py @@ -34,6 +34,7 @@ class Glusterfs(AutotoolsPackage): depends_on('libuuid') depends_on('libtirpc') depends_on('userspace-rcu') + depends_on('pkgconfig', type='build') def url_for_version(self, version): url = 'https://download.gluster.org/pub/gluster/glusterfs/{0}/{1}/glusterfs-{1}.tar.gz' diff --git a/var/spack/repos/builtin/packages/gmt/package.py b/var/spack/repos/builtin/packages/gmt/package.py index 003c0d24be..02400cb66e 100644 --- a/var/spack/repos/builtin/packages/gmt/package.py +++ b/var/spack/repos/builtin/packages/gmt/package.py @@ -15,12 +15,13 @@ class Gmt(Package): """ homepage = "https://www.generic-mapping-tools.org/" - url = "https://github.com/GenericMappingTools/gmt/archive/6.0.0.tar.gz" + url = "https://github.com/GenericMappingTools/gmt/archive/6.1.0.tar.gz" git = "https://github.com/GenericMappingTools/gmt.git" maintainers = ['adamjstewart'] version('master', branch='master') + version('6.1.0', sha256='f76ad7f444d407dfd7e5762644eec3a719c6aeb06d877bf746fe51abd79b1a9e') version('6.0.0', sha256='7a733e670f01d99f8fc0da51a4337320d764c06a68746621f83ccf2e3453bcb7') version('5.4.4', sha256='b593dfb101e6507c467619f3d2190a9f78b09d49fe2c27799750b8c4c0cd2da0') version('4.5.9', sha256='9b13be96ccf4bbd38c14359c05dfa7eeeb4b5f06d6f4be9c33d6c3ea276afc86', @@ -41,7 +42,7 @@ class Gmt(Package): # https://github.com/GenericMappingTools/gmt/blob/master/MAINTENANCE.md # Required dependencies - depends_on('cmake@2.8.7:', type='build', when='@5:') + depends_on('cmake@2.8.12:', type='build', when='@5:') depends_on('netcdf-c@4:') depends_on('curl', when='@5.4:') @@ -59,6 +60,8 @@ class Gmt(Package): depends_on('graphicsmagick', type='test') + # https://github.com/GenericMappingTools/gmt/pull/3603 + patch('regexp.patch', when='@6.1.0') patch('type.patch', when='@4.5.9') @when('@5:') diff --git a/var/spack/repos/builtin/packages/gmt/regexp.patch b/var/spack/repos/builtin/packages/gmt/regexp.patch new file mode 100644 index 0000000000..00011591a9 --- /dev/null +++ b/var/spack/repos/builtin/packages/gmt/regexp.patch @@ -0,0 +1,11 @@ +--- a/src/gmt_regexp.c 2020-07-04 15:13:40.000000000 -0500 ++++ b/src/gmt_regexp.c 2020-07-05 18:35:02.000000000 -0500 +@@ -217,7 +217,7 @@ + /* this is when errors have been encountered */ + regerror(status, &re, err_msg, MAX_ERR_LENGTH); + GMT_Report (GMT->parent, GMT_MSG_ERROR, "gmtlib_regexp_match: POSIX ERE matching error: %s\n", err_msg); /* Report error. */ +- return (-GMT_RUNTIME_ERROR;) ++ return (-GMT_RUNTIME_ERROR); + } + return (0); /* No match */ + diff --git a/var/spack/repos/builtin/packages/gnutls/package.py b/var/spack/repos/builtin/packages/gnutls/package.py index aa9c863499..4d56fab7fe 100644 --- a/var/spack/repos/builtin/packages/gnutls/package.py +++ b/var/spack/repos/builtin/packages/gnutls/package.py @@ -17,6 +17,7 @@ class Gnutls(AutotoolsPackage): homepage = "http://www.gnutls.org" url = "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/gnutls-3.5.19.tar.xz" + version('3.6.14', sha256='5630751adec7025b8ef955af4d141d00d252a985769f51b4059e5affa3d39d63') version('3.6.8', sha256='aa81944e5635de981171772857e72be231a7e0f559ae0292d2737de475383e83') version('3.6.7.1', sha256='881b26409ecd8ea4c514fd3fbdb6fae5fab422ca7b71116260e263940a4bbbad') version('3.5.19', sha256='1936eb64f03aaefd6eb16cef0567457777618573826b94d03376bb6a4afadc44') diff --git a/var/spack/repos/builtin/packages/go/package.py b/var/spack/repos/builtin/packages/go/package.py index d0f515e94c..32494a6444 100644 --- a/var/spack/repos/builtin/packages/go/package.py +++ b/var/spack/repos/builtin/packages/go/package.py @@ -36,11 +36,13 @@ class Go(Package): extendable = True + version('1.14.5', sha256='ca4c080c90735e56152ac52cd77ae57fe573d1debb1a58e03da9cc362440315c') version('1.14.4', sha256='7011af3bbc2ac108d1b82ea8abb87b2e63f78844f0259be20cde4d42c5c40584') version('1.14.3', sha256='93023778d4d1797b7bc6a53e86c3a9b150c923953225f8a48a2d5fabc971af56') version('1.14.2', sha256='98de84e69726a66da7b4e58eac41b99cbe274d7e8906eeb8a5b7eb0aadee7f7c') version('1.14.1', sha256='2ad2572115b0d1b4cb4c138e6b3a31cee6294cb48af75ee86bec3dca04507676') version('1.14', sha256='6d643e46ad565058c7a39dac01144172ef9bd476521f42148be59249e4b74389') + version('1.13.13', sha256='ab7e44461e734ce1fd5f4f82c74c6d236e947194d868514d48a2b1ea73d25137') version('1.13.12', sha256='17ba2c4de4d78793a21cc659d9907f4356cd9c8de8b7d0899cdedcef712eba34') version('1.13.11', sha256='89ed1abce25ad003521c125d6583c93c1280de200ad221f961085200a6c00679') version('1.13.10', sha256='eb9ccc8bf59ed068e7eff73e154e4f5ee7eec0a47a610fb864e3332a2fdc8b8c') diff --git a/var/spack/repos/builtin/packages/gpdb/package.py b/var/spack/repos/builtin/packages/gpdb/package.py index 07ced439bd..98683b271c 100644 --- a/var/spack/repos/builtin/packages/gpdb/package.py +++ b/var/spack/repos/builtin/packages/gpdb/package.py @@ -27,6 +27,7 @@ class Gpdb(AutotoolsPackage): version('5.23.0', sha256='b06a797eb941362d5473b84d5def349b5ce12ce87ab116bea7c74ad193738ae9') depends_on('zstd') + depends_on('py-setuptools@:44.99.99') depends_on('apr') depends_on('libevent') depends_on('curl') @@ -35,7 +36,17 @@ class Gpdb(AutotoolsPackage): depends_on('libxml2') depends_on('flex') depends_on('readline') + depends_on('py-subprocess32', type=('build', 'run')) + depends_on('python@:2.8.0', type=('build', 'run')) + depends_on('py-lockfile', type=('build', 'run')) + depends_on('py-psutil', type=('build', 'run')) + depends_on('py-utils@:1.0.0', type=('build', 'run')) def configure_args(self): - args = ['--disable-orca'] + args = ['--with-python', '--disable-orca', '--enable-depend', + '--with-libxml'] return args + + def setup_run_environment(self, env): + env.append_path('GPHOME', self.prefix) + env.append_path('PYTHONPATH', self.prefix.lib.python) diff --git a/var/spack/repos/builtin/packages/grads/package.py b/var/spack/repos/builtin/packages/grads/package.py new file mode 100644 index 0000000000..889ad5c7e3 --- /dev/null +++ b/var/spack/repos/builtin/packages/grads/package.py @@ -0,0 +1,65 @@ +# 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) + +from spack import * + + +class Grads(AutotoolsPackage): + """The Grid Analysis and Display System (GrADS) is an interactive + desktop tool that is used for easy access, manipulation, and visualization + of earth science data. GrADS has two data models for handling gridded and + station data. GrADS supports many data file formats, including + binary (stream or sequential), GRIB (version 1 and 2), NetCDF, + HDF (version 4 and 5), and BUFR (for station data).""" + + homepage = "http://cola.gmu.edu/grads/grads.php" + url = "ftp://cola.gmu.edu/grads/2.2/grads-2.2.1-src.tar.gz" + + version('2.2.1', sha256='695e2066d7d131720d598bac0beb61ac3ae5578240a5437401dc0ffbbe516206') + + variant('geotiff', default=True, description="Enable GeoTIFF support") + variant('shapefile', default=True, description="Enable Shapefile support") + + """ + # FIXME: Fails with undeclared functions (tdefi, tdef, ...) in gauser.c + variant('hdf5', default=False, description="Enable HDF5 support") + variant('hdf4', default=False, description="Enable HDF4 support") + variant('netcdf', default=False, description="Enable NetCDF support") + depends_on('hdf5', when='+hdf5') + depends_on('hdf', when='+hdf4') + depends_on('netcdf-c', when='+netcdf') + """ + + depends_on('libgeotiff', when='+geotiff') + depends_on('shapelib', when='+shapefile') + depends_on('udunits') + depends_on('libgd') + depends_on('libxmu') + depends_on('cairo +X +pdf +fc +ft') + depends_on('readline') + depends_on('pkgconfig', type='build') + + def setup_build_environment(self, env): + env.set('SUPPLIBS', '/') + + def setup_run_environment(self, env): + env.set('GADDIR', self.prefix.data) + + @run_after('install') + def copy_data(self): + with working_dir(self.build_directory): + install_tree('data', self.prefix.data) + with working_dir(self.package_dir): + install('udpt', self.prefix.data) + filter_file( + r'({lib})', + self.prefix.lib, + self.prefix.data.udpt + ) + + def configure_args(self): + args = [] + args.extend(self.with_or_without('geotiff')) + return args diff --git a/var/spack/repos/builtin/packages/grads/udpt b/var/spack/repos/builtin/packages/grads/udpt new file mode 100644 index 0000000000..5bfc99ba33 --- /dev/null +++ b/var/spack/repos/builtin/packages/grads/udpt @@ -0,0 +1,2 @@ +gxdisplay Cairo {lib}/libgxdCairo.so +gxprint Cairo {lib}/libgxpCairo.so diff --git a/var/spack/repos/builtin/packages/grpc/package.py b/var/spack/repos/builtin/packages/grpc/package.py index a7eff3e07f..010cffb6f3 100644 --- a/var/spack/repos/builtin/packages/grpc/package.py +++ b/var/spack/repos/builtin/packages/grpc/package.py @@ -11,8 +11,14 @@ class Grpc(CMakePackage): maintainers = ['nazavode'] homepage = "https://grpc.io" - url = "https://github.com/grpc/grpc/archive/v1.27.0.tar.gz" - + url = "https://github.com/grpc/grpc/archive/v1.30.0.tar.gz" + + version('1.30.0', sha256='419dba362eaf8f1d36849ceee17c3e2ff8ff12ac666b42d3ff02a164ebe090e9') + version('1.29.1', sha256='0343e6dbde66e9a31c691f2f61e98d79f3584e03a11511fad3f10e3667832a45') + version('1.29.0', sha256='c0a6b40a222e51bea5c53090e9e65de46aee2d84c7fa7638f09cb68c3331b983') + version('1.28.2', sha256='4bec3edf82556b539f7e9f3d3801cba540e272af87293a3f4178504239bd111e') + version('1.28.1', sha256='4cbce7f708917b6e58b631c24c59fe720acc8fef5f959df9a58cdf9558d0a79b') + version('1.28.0', sha256='d6277f77e0bb922d3f6f56c0f93292bb4cfabfc3c92b31ee5ccea0e100303612') version('1.27.0', sha256='3ccc4e5ae8c1ce844456e39cc11f1c991a7da74396faabe83d779836ef449bce') version('1.26.0', sha256='2fcb7f1ab160d6fd3aaade64520be3e5446fc4c6fa7ba6581afdc4e26094bd81') version('1.25.0', sha256='ffbe61269160ea745e487f79b0fd06b6edd3d50c6d9123f053b5634737cf2f69') @@ -29,7 +35,7 @@ class Grpc(CMakePackage): depends_on('openssl') depends_on('zlib') depends_on('c-ares') - depends_on('abseil-cpp', when='@1.27.0:') + depends_on('abseil-cpp', when='@1.27:') def cmake_args(self): args = [ diff --git a/var/spack/repos/builtin/packages/gunrock/package.py b/var/spack/repos/builtin/packages/gunrock/package.py index f47c1bf635..391b31b723 100644 --- a/var/spack/repos/builtin/packages/gunrock/package.py +++ b/var/spack/repos/builtin/packages/gunrock/package.py @@ -12,7 +12,10 @@ class Gunrock(CMakePackage, CudaPackage): homepage = "https://gunrock.github.io/docs/" git = "https://github.com/gunrock/gunrock.git" - version('master', submodules=True) + # tagged versions are broken. See + # https://github.com/gunrock/gunrock/issues/777 + # Hence, prefer master version. + version('master', submodules=True, preferred=True) version('1.1', submodules=True, tag='v1.1') version('1.0', submodules=True, tag='v1.0') version('0.5.1', submodules=True, tag='v0.5.1') @@ -23,9 +26,100 @@ class Gunrock(CMakePackage, CudaPackage): version('0.2', submodules=True, tag='v0.2') version('0.1', submodules=True, tag='v0.1') - depends_on('cuda') + variant('cuda', default=True, description="Build with Cuda support") + + variant('lib', default=True, description='Build main gunrock library') + variant('shared_libs', default=True, description='Turn off to build for static libraries') + variant('tests', default=True, description='Build functional tests / examples') + variant('mgpu_tests', default=False, description='Builds Gunrock applications and enables the ctest framework for single GPU implementations') + variant('cuda_verbose_ptxas', default=False, description='Enable verbose output from the PTXAS assembler') + variant('google_tests', default=False, description='Build unit tests using googletest') + variant('code_coverage', default=False, description="run code coverage on Gunrock's source code") + # apps + msg = 'select either all or individual applications' + variant( + "applications", + values=disjoint_sets( + ('all',), ('bc', 'bfs', 'cc', 'pr', 'sssp', 'dobfs', 'hits', + 'salsa', 'mst', 'wtf', 'topk') + ).allow_empty_set().with_default('all').with_error(msg), + description="Application to be built" + ) + + variant('boost', default=True, description='Build with Boost') + variant('metis', default=False, description='Build with Metis support') + + depends_on('googletest', when='+google_tests') + depends_on('lcov', when='+code_coverage') + depends_on('boost@1.58.0:', when='+boost') + depends_on('metis', when='+metis') + + conflicts('cuda_arch=none', when='+cuda', + msg='Must specify CUDA compute capabilities of your GPU. \ +See "spack info gunrock"') + + def cmake_args(self): + spec = self.spec + args = [] + args.extend([ + '-DGUNROCK_BUILD_LIB={0}'.format( + 'ON' if '+lib' in spec else 'OFF'), + '-DGUNROCK_BUILD_SHARED_LIBS={0}'.format( + 'ON' if '+shared_libs' in spec else 'OFF'), + '-DGUNROCK_BUILD_TESTS={0}'.format( + 'ON' if '+tests' in spec else 'OFF'), + '-DGUNROCK_MGPU_TESTS={0}'.format( + 'ON' if '+mgpu_tests' in spec else 'OFF'), + '-DCUDA_VERBOSE_PTXAS={0}'.format( + 'ON' if '+cuda_verbose_ptxas' in spec else 'OFF'), + '-DGUNROCK_GOOGLE_TESTS={0}'.format( + 'ON' if '+google_tests' in spec else 'OFF'), + '-DGUNROCK_CODE_COVERAGE={0}'.format( + 'ON' if '+code_coverage' in spec else 'OFF'), + ]) + + # turn off auto detect, which undoes custom cuda arch options + args.append('-DCUDA_AUTODETECT_GENCODE=OFF') + + cuda_arch_list = self.spec.variants['cuda_arch'].value + if cuda_arch_list[0] != 'none': + for carch in cuda_arch_list: + args.append('-DGUNROCK_GENCODE_SM' + carch + '=ON') + + app_list = self.spec.variants['applications'].value + if app_list[0] != 'none': + args.extend([ + '-DGUNROCK_BUILD_APPLICATIONS={0}'.format( + 'ON' if spec.satisfies('applications=all') else 'OFF'), + '-DGUNROCK_APP_BC={0}'.format( + 'ON' if spec.satisfies('applications=bc') else 'OFF'), + '-DGUNROCK_APP_BFS={0}'.format( + 'ON' if spec.satisfies('applications=bfs') else 'OFF'), + '-DGUNROCK_APP_CC={0}'.format( + 'ON' if spec.satisfies('applications=cc') else 'OFF'), + '-DGUNROCK_APP_PR={0}'.format( + 'ON' if spec.satisfies('applications=pr') else 'OFF'), + '-DGUNROCK_APP_SSSP={0}'.format( + 'ON' if spec.satisfies('applications=sssp') else 'OFF'), + '-DGUNROCK_APP_DOBFS={0}'.format( + 'ON' if spec.satisfies('applications=dobfs') else 'OFF'), + '-DGUNROCK_APP_HITS={0}'.format( + 'ON' if spec.satisfies('applications=hits') else 'OFF'), + '-DGUNROCK_APP_SALSA={0}'.format( + 'ON' if spec.satisfies('applications=salsa') else 'OFF'), + '-DGUNROCK_APP_MST={0}'.format( + 'ON' if spec.satisfies('applications=mst') else 'OFF'), + '-DGUNROCK_APP_WTF={0}'.format( + 'ON' if spec.satisfies('applications=wtf') else 'OFF'), + '-DGUNROCK_APP_TOPK={0}'.format( + 'ON' if spec.satisfies('applications=topk') else 'OFF'), + ]) + + return args def install(self, spec, prefix): with working_dir(self.build_directory): - install_tree('bin', prefix.bin) install_tree('lib', prefix.lib) + # bin dir is created only if tests/examples are built + if '+tests' in spec: + install_tree('bin', prefix.bin) diff --git a/var/spack/repos/builtin/packages/harfbuzz/package.py b/var/spack/repos/builtin/packages/harfbuzz/package.py index 4ab6005dbf..2a303bc97e 100644 --- a/var/spack/repos/builtin/packages/harfbuzz/package.py +++ b/var/spack/repos/builtin/packages/harfbuzz/package.py @@ -8,9 +8,11 @@ from spack import * class Harfbuzz(AutotoolsPackage): """The Harfbuzz package contains an OpenType text shaping engine.""" - homepage = "http://www.freedesktop.org/wiki/Software/HarfBuzz/" + homepage = "https://github.com/harfbuzz/harfbuzz" url = "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.37.tar.bz2" + git = "https://github.com/harfbuzz/harfbuzz.git" + version('2.6.8', sha256='6648a571a27f186e47094121f0095e1b809e918b3037c630c7f38ffad86e3035') version('2.3.1', sha256='f205699d5b91374008d6f8e36c59e419ae2d9a7bb8c5d9f34041b9a5abcae468') version('2.1.3', sha256='613264460bb6814c3894e3953225c5357402915853a652d40b4230ce5faf0bee') version('1.9.0', sha256='11eca62bf0ac549b8d6be55f4e130946399939cdfe7a562fdaee711190248b00') @@ -30,6 +32,14 @@ class Harfbuzz(AutotoolsPackage): conflicts('%intel', when='@2.3.1:', msg='harfbuzz-2.3.1 does not build with the Intel compiler') + def url_for_version(self, version): + if version > Version('2.3.1'): + url = "https://github.com/harfbuzz/harfbuzz/releases/download/{0}/harfbuzz-{0}.tar.xz" + else: + url = "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-{0}.tar.bz2" + + return url.format(version) + def configure_args(self): args = [] # disable building of gtk-doc files following #9771 diff --git a/var/spack/repos/builtin/packages/hbase/package.py b/var/spack/repos/builtin/packages/hbase/package.py index d34fe2f9f1..1e87f8a297 100644 --- a/var/spack/repos/builtin/packages/hbase/package.py +++ b/var/spack/repos/builtin/packages/hbase/package.py @@ -7,21 +7,24 @@ from spack import * class Hbase(Package): - """ - Apache HBase is an open-source, distributed, versioned, column-oriented + """Apache HBase is an open-source, distributed, versioned, column-oriented store modeled after Google' Bigtable: A Distributed Storage System for Structured Data by Chang et al. Just as Bigtable leverages the distributed data storage provided by the Google File System, HBase provides - Bigtable-like capabilities on top of Apache Hadoop. - """ + Bigtable-like capabilities on top of Apache Hadoop.""" - homepage = "https://github.com/apache/hbase" - url = "https://github.com/apache/hbase/archive/rel/2.2.2.tar.gz" + homepage = "https://archive.apache.org/" + url = "https://archive.apache.org/dist/hbase/2.2.4/hbase-2.2.4-bin.tar.gz" + list_url = "https://archive.apache.org/dist/hbase" + list_depth = 1 - version('2.2.2', sha256='e9a58946e9adff1cac23a0b261ecf32da32f8d2ced0706af1d04e8a67d582926') - version('2.1.8', sha256='121cea4c554879c8401f676c8eb49e39bd35d41c358e919379ad4a318844c8de') + version('2.2.5', sha256='25d08f8f038d9de5beb43dfb0392e8a8b34eae7e0f2670d6c2c172abc3855194') + version('2.2.4', sha256='ec91b628352931e22a091a206be93061b6bf5364044a28fb9e82f0023aca3ca4') + version('2.2.3', sha256='ea8fa72aa6220e038e30bd7c439d181b10bd7225383f7f2d224ebb5f5397310a') + version('2.2.2', sha256='97dcca3a031925a379a0ee6bbfb6007533fb4fdb982c23345e5fc04d6c52bebc') + version('2.1.8', sha256='d8296e8405b1c39c73f0dd03fc6b4d2af754035724168fd56e8f2a0ff175ad90') - depends_on('java@7:', type='run') + depends_on('java@8', type='run') def install(self, spec, prefix): install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/heputils/package.py b/var/spack/repos/builtin/packages/heputils/package.py new file mode 100644 index 0000000000..e856d7b5d0 --- /dev/null +++ b/var/spack/repos/builtin/packages/heputils/package.py @@ -0,0 +1,36 @@ +# 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) + +from spack import * + + +class Heputils(MakefilePackage): + """Generic tools for high energy physics, e.g. vectors, event records, + math and other util functions.""" + + homepage = "https://bitbucket.org/andybuckley/heputils/src/default/" + url = "https://bitbucket.org/andybuckley/heputils/get/heputils-1.3.2.tar.gz" + + version('1.3.2', sha256='be43586979ab1a81a55348d795c2f63a5da19fc6367d5f66f354217c76c809c0') + version('1.3.1', sha256='7f33ef44364a3d3a39cc65005fb6aa9dfd06bd1b18b41151c0e5e3d28d6ba15b') + version('1.3.0', sha256='1ec9d9d71d409ce6b2e668e4927b1090ddf2ee9acf25457f767925cf89b24852') + version('1.2.1', sha256='99f0b27cddffb98977d37418d53f3386e5defda547aeb4c4fda00ab6fcf2cc31') + version('1.2.0', sha256='0f9f96bd7589f9aec8f1271524b8622291216fe2294ffed772b84d010759eaef') + version('1.1.0', sha256='671374641cdb6dc093327b69da2d2854df805b6eb8e90f0efefb0788ee4a2edd') + version('1.0.8', sha256='9b9a45ebff1367cd2ab1ec4ee8c0e124a9b7ed66c75d8961412163ade1962d91') + version('1.0.7', sha256='481a26755d4e2836563d1f8fcdad663bfa7e21b9878c01bd8a73a67876726b81') + version('1.0.6', sha256='1ecd8597ef7921a63606b21136900a05a818c9342da7994a42aae768ecca507f') + version('1.0.5', sha256='efff3d7d6973822f1dced903017f86661e2d054ff3f0d4fe926de2347160e329') + version('1.0.4', sha256='aeca00c1012bce469c6fe6393edbf4f33043ab671c97a8283a21861caee8b1b4') + version('1.0.3', sha256='8e7ebe0ad5e87a97cbbff7097092ed8afe5a2d1ecae0f4d4f9a7bf694e221d40') + version('1.0.2', sha256='83ba7876d884406463cc8ae42214038b7d6c40ead77a1532d64bc96887173f75') + version('1.0.1', sha256='4bfccc4f4380becb776343e546deb2474deeae79f053ba8ca22287827b8bd4b1') + version('1.0.0', sha256='4f71c2bee6736ed87d0151e62546d2fc9ff639db58172c26dcf033e5bb1ea04c') + + def build(self, spec, prefix): + return + + def install(self, spec, prefix): + make('install', 'PREFIX={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/herwigpp/herwig++-2.7.1.patch b/var/spack/repos/builtin/packages/herwigpp/herwig++-2.7.1.patch new file mode 100644 index 0000000000..1690f362ad --- /dev/null +++ b/var/spack/repos/builtin/packages/herwigpp/herwig++-2.7.1.patch @@ -0,0 +1,66 @@ +--- Utilities/Histogram.h.orig 2018-11-07 14:46:18.967689784 +0100 ++++ Utilities/Histogram.h 2018-11-07 14:46:32.755601195 +0100 +@@ -111,7 +111,7 @@ + * Function to add a weighted point to the histogram + */ + void addWeighted(double input, double weight) { +- if(isnan(input)) return; ++ if(std::isnan(input)) return; + unsigned int ibin; + for(ibin=1; ibin<_bins.size(); ++ibin) { + if(input<_bins[ibin].limit) +--- Contrib/AlpGen/BasicLesHouchesFileReader.cc.orig 2018-11-07 15:38:46.819306762 +0100 ++++ Contrib/AlpGen/BasicLesHouchesFileReader.cc 2018-11-07 15:39:04.927190111 +0100 +@@ -383,9 +383,9 @@ + >> hepeup.PUP[i][3] >> hepeup.PUP[i][4] + >> hepeup.VTIMUP[i] >> hepeup.SPINUP[i] ) ) + return false; +- if(isnan(hepeup.PUP[i][0])||isnan(hepeup.PUP[i][1])|| +- isnan(hepeup.PUP[i][2])||isnan(hepeup.PUP[i][3])|| +- isnan(hepeup.PUP[i][4])) ++ if(std::isnan(hepeup.PUP[i][0])||std::isnan(hepeup.PUP[i][1])|| ++ std::isnan(hepeup.PUP[i][2])||std::isnan(hepeup.PUP[i][3])|| ++ std::isnan(hepeup.PUP[i][4])) + throw Exception() + << "nan's as momenta in Les Houches file " + << Exception::eventerror; +--- DipoleShower/Base/DipoleChain.cc.orig 2018-12-14 16:51:47.597597788 +0100 ++++ DipoleShower/Base/DipoleChain.cc 2018-12-14 16:52:09.450796951 +0100 +@@ -15,6 +15,7 @@ + #include "Herwig++/DipoleShower/Utility/DipolePartonSplitter.h" + + #include <boost/utility.hpp> ++#include <boost/next_prior.hpp> + + using namespace Herwig; + +--- Exsample2/exsample/config.h.orig 2018-12-14 16:56:31.729186139 +0100 ++++ Exsample2/exsample/config.h 2018-12-14 16:56:55.969406851 +0100 +@@ -25,6 +25,7 @@ + #include <limits> + + #include <boost/utility.hpp> ++#include <boost/next_prior.hpp> + #include <boost/scoped_array.hpp> + #include <boost/scoped_ptr.hpp> + +--- DipoleShower/Base/DipoleEventRecord.cc.orig 2018-12-14 16:58:33.878298134 +0100 ++++ DipoleShower/Base/DipoleEventRecord.cc 2018-12-14 16:58:47.983426512 +0100 +@@ -19,6 +19,7 @@ + #include "ThePEG/PDF/PartonExtractor.h" + + #include <boost/utility.hpp> ++#include <boost/next_prior.hpp> + + #include <algorithm> + +--- ./Exsample2/BinnedStatistics.h.orig 2018-12-14 17:11:37.396421246 +0100 ++++ ./Exsample2/BinnedStatistics.h 2018-12-14 17:12:00.762633435 +0100 +@@ -16,6 +16,7 @@ + #include "ThePEG/Repository/UseRandom.h" + + #include <boost/utility.hpp> ++#include <boost/next_prior.hpp> + + namespace Herwig { + diff --git a/var/spack/repos/builtin/packages/herwigpp/package.py b/var/spack/repos/builtin/packages/herwigpp/package.py new file mode 100644 index 0000000000..c3cdf7791d --- /dev/null +++ b/var/spack/repos/builtin/packages/herwigpp/package.py @@ -0,0 +1,52 @@ +# 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) + +from spack import * + + +class Herwigpp(AutotoolsPackage): + """Herwig is a multi-purpose particle physics event generator. + This package provides old Herwig++ 2 generator""" + + homepage = "https://herwig.hepforge.org/" + url = "http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/MCGeneratorsTarFiles/Herwig++-2.7.1.tar.bz2" + + version('2.7.1', '80a189376bb65f5ec4e64f42e76c00ea9102d8224010563a424fc11e619a6ad6') + patch('herwig++-2.7.1.patch', when='@2.7.1', level=0) + + depends_on('gsl') + depends_on('boost') + depends_on('fastjet') + depends_on('thepeg@1.9.2', when='@2.7.1') + + def configure_args(self): + args = ['--with-gsl=' + self.spec['gsl'].prefix, + '--with-thepeg=' + self.spec['thepeg'].prefix, + '--with-fastjet=' + self.spec['fastjet'].prefix, + '--with-boost=' + self.spec['boost'].prefix] + return args + + def build(self, spec, prefix): + make() + with working_dir('Contrib'): + make() + + with working_dir('Contrib/AlpGen'): + make('BasicLesHouchesFileReader.so', + "HERWIGINCLUDE=-I{0}/include".format(self.stage.source_path)) + make('AlpGenHandler.so', + "HERWIGINCLUDE=-I{0}/include".format(self.stage.source_path)) + + def install(self, spec, prefix): + make('install') + install( + join_path(self.stage.source_path, + 'Contrib', 'AlpGen', 'AlpGenHandler.so'), + join_path(prefix.lib, 'Herwig++', 'AlpGenHandler.so')) + + install( + join_path(self.stage.source_path, + 'Contrib', 'AlpGen', 'BasicLesHouchesFileReader.so'), + join_path(prefix.lib, 'Herwig++', 'BasicLesHouchesFileReader.so')) diff --git a/var/spack/repos/builtin/packages/hibench/package.py b/var/spack/repos/builtin/packages/hibench/package.py new file mode 100644 index 0000000000..c36cc27659 --- /dev/null +++ b/var/spack/repos/builtin/packages/hibench/package.py @@ -0,0 +1,35 @@ +# 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) + +from spack import * + + +class Hibench(Package): + """HiBench is a big data benchmark suite that helps evaluate different big + data frameworks in terms of speed, throughput and system resource + utilizations. It contains a set of Hadoop,Spark and streaming workloads, + including Sort, WordCount, TeraSort, Repartition, Sleep, SQL,PageRank, + Nutch indexing, Bayes, Kmeans, NWeight and enhanced DFSIO, etc.""" + + homepage = "https://github.com/Intel-bigdata/HiBench" + url = "https://github.com/Intel-bigdata/HiBench/archive/HiBench-7.1.tar.gz" + + version('7.1', sha256='96572a837d747fb6347f2b906fd5f7fb97a62095435326ccfee5e75777a5c210') + version('7.0', sha256='89b01f3ad90b758f24afd5ea2bee997c3d700ce9244b8a2b544acc462ab0e847') + version('6.0', sha256='179f5415903f4029bd0ea1101a3d4c67faf88ca46a993d8179582299ad730f79') + version('5.0', sha256='32d6a7bc1010d90b2f22906896a03cd1980e617beb07b01716e3d04de5760ed4') + version('4.1', sha256='07551763aa30f04d32870c323524b5fc0fc2e968d7081d8916575bdeb4fd1381') + version('4.0', sha256='de58ed5e9647ffe28c2a905a8830b661bbd09db334eb5b3472c8186553407e0e') + version('3.0.0', sha256='869771e73593caac3a9b2fb14a10041a485d248074ba38cca812c934897db63d') + version('2.2.1', sha256='f8531cbaff8d93bfd1c0742fec5dbb375bfeeb9ec1b39b4e857120e933a2c9ec') + version('2.2', sha256='5f68e22339cdd141b846d8b1d7134b2b8ff5fbd5e847e406214dc845f5d005cf') + + depends_on('maven', type='build') + depends_on('java@8', type=('build', 'run')) + + def install(self, spec, prefix): + mvn = which('mvn') + mvn('package', '-DskipTests') + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/hipsycl/package.py b/var/spack/repos/builtin/packages/hipsycl/package.py index 18ea5895fc..02c59bc791 100644 --- a/var/spack/repos/builtin/packages/hipsycl/package.py +++ b/var/spack/repos/builtin/packages/hipsycl/package.py @@ -21,7 +21,7 @@ class Hipsycl(CMakePackage): provides("sycl") - version("master", branch="master", submodules=True) + version("stable", branch="stable", submodules=True) version( "0.8.0", commit="2daf8407e49dd32ebd1c266e8e944e390d28b22a", diff --git a/var/spack/repos/builtin/packages/hisat2/package.py b/var/spack/repos/builtin/packages/hisat2/package.py index 93b54e9ed5..ab03df4ce5 100644 --- a/var/spack/repos/builtin/packages/hisat2/package.py +++ b/var/spack/repos/builtin/packages/hisat2/package.py @@ -14,13 +14,18 @@ class Hisat2(MakefilePackage): exome sequencing data) against the general human population (as well as against a single reference genome).""" - homepage = "http://ccb.jhu.edu/software/hisat2" + homepage = "https://daehwankimlab.github.io/hisat2/" url = "ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.1.0-source.zip" + version('2.2.0', sha256='0dd55168853b82c1b085f79ed793dd029db163773f52272d7eb51b3b5e4a4cdd', + url='https://cloud.biohpc.swmed.edu/index.php/s/hisat2-220-source/download', + extension='zip') version('2.1.0', sha256='89a276eed1fc07414b1601947bc9466bdeb50e8f148ad42074186fe39a1ee781') def install(self, spec, prefix): - install_tree('doc', prefix.doc) + if spec.satisfies('@:2.1.0'): + install_tree('doc', prefix.doc) + install_tree('example', prefix.example) install_tree('hisatgenotype_modules', prefix.hisatgenotype_modules) install_tree('hisatgenotype_scripts', prefix.hisatgenotype_scripts) diff --git a/var/spack/repos/builtin/packages/hpcg/package.py b/var/spack/repos/builtin/packages/hpcg/package.py new file mode 100644 index 0000000000..4de150cda2 --- /dev/null +++ b/var/spack/repos/builtin/packages/hpcg/package.py @@ -0,0 +1,78 @@ +# 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) + +from spack import * +import os +import platform + + +class Hpcg(AutotoolsPackage): + """HPCG is a software package that performs a fixed number of multigrid + preconditioned (using a symmetric Gauss-Seidel smoother) conjugate gradient + (PCG) iterations using double precision (64 bit) floating point values.""" + + homepage = "https://www.hpcg-benchmark.org" + url = "http://www.hpcg-benchmark.org/downloads/hpcg-3.1.tar.gz" + git = "https://github.com/hpcg-benchmark/hpcg.git" + + version('develop', branch='master') + version('3.1', sha256='33a434e716b79e59e745f77ff72639c32623e7f928eeb7977655ffcaade0f4a4') + + variant('openmp', default=True, description='Enable OpenMP support') + + patch('https://github.com/hpcg-benchmark/hpcg/commit/e9e0b7e6cae23e1f30dd983c2ce2d3bd34d56f75.patch', sha256='23b9de83042eb7a8207fdddcfa79ae2cc1a17e8e623e2224c7751d7c328ee482', when='%gcc@9:') + + depends_on('mpi@1.1:') + + arch = '{0}-{1}'.format(platform.system(), platform.processor()) + build_targets = ['arch={0}'.format(arch)] + + def configure(self, spec, prefix): + CXXFLAGS = '-O3 -ffast-math ' + CXXFLAGS += '-ftree-vectorize -ftree-vectorizer-verbose=0 ' + if '+openmp' in self.spec: + CXXFLAGS += self.compiler.openmp_flag + config = [ + # Shell + 'SHELL = /bin/sh', + 'CD = cd', + 'CP = cp', + 'LN_S = ln -fs', + 'MKDIR = mkdir -p', + 'RM = /bin/rm -f', + 'TOUCH = touch', + # Platform identifier + 'ARCH = {0}'.format(self.arch), + # HPCG Directory Structure / HPCG library + 'TOPdir = {0}'.format(os.getcwd()), + 'SRCdir = $(TOPdir)/src', + 'INCdir = $(TOPdir)/src', + 'BINdir = $(TOPdir)/bin', + # Message Passing library (MPI) + 'MPinc = -I{0}'.format(spec['mpi'].prefix.include), + 'MPlib = -L{0}'.format(spec['mpi'].prefix.lib), + # HPCG includes / libraries / specifics + 'HPCG_INCLUDES = -I$(INCdir) -I$(INCdir)/$(arch) $(MPinc)', + 'HPCG_LIBS =', + 'HPCG_OPTS =', + 'HPCG_DEFS = $(HPCG_OPTS) $(HPCG_INCLUDES)', + # Compilers / linkers - Optimization flags + 'CXX = {0}'.format(spec['mpi'].mpicxx), + 'CXXFLAGS = $(HPCG_DEFS) {0}'.format(CXXFLAGS), + 'LINKER = $(CXX)', + 'LINKFLAGS = $(CXXFLAGS)', + 'ARCHIVER = ar', + 'ARFLAGS = r', + 'RANLIB = echo', + ] + + # Write configuration options to include file + with open('setup/Make.{0}'.format(self.arch), 'w') as makefile: + for var in config: + makefile.write('{0}\n'.format(var)) + + def install(self, spec, prefix): + # Manual installation + install_tree('bin', prefix.bin) diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py index 9de2184d92..8c091a59f7 100644 --- a/var/spack/repos/builtin/packages/hpctoolkit/package.py +++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py @@ -20,6 +20,7 @@ class Hpctoolkit(AutotoolsPackage): version('develop', branch='develop') version('master', branch='master') + version('2020.07.21', commit='4e56c780cffc53875aca67d6472a2fb3678970eb') version('2020.06.12', commit='ac6ae1156e77d35596fea743ed8ae768f7222f19') version('2020.03.01', commit='94ede4e6fa1e05e6f080be8dc388240ea027f769') version('2019.12.28', commit='b4e1877ff96069fd8ed0fdf0e36283a5b4b62240') diff --git a/var/spack/repos/builtin/packages/hpcviewer/package.py b/var/spack/repos/builtin/packages/hpcviewer/package.py index f14f55d787..0de66bbf83 100644 --- a/var/spack/repos/builtin/packages/hpcviewer/package.py +++ b/var/spack/repos/builtin/packages/hpcviewer/package.py @@ -37,6 +37,9 @@ class Hpcviewer(Package): maintainers = ['mwkrentel'] viewer_sha = { + ('2020.07', 'x86_64'): '19951662626c7c9817c4a75269c85810352dc48ae9a62dfb6ce4a5b502de2118', + ('2020.07', 'ppc64'): '3f5d9358ef8ff9ba4f6dcaa4d7132f41ba55f0c132d9fd1e2f6da18341648a4e', + ('2020.07', 'ppc64le'): 'e236a8578dc247279d1021aa35bac47e2d4864b906efcef76c0610ee0086b353', ('2020.05', 'x86_64'): '27f99c94a69abd005303fb58360b0d1b3eb7d223cab81c38ae6ccdd83ec15106', ('2020.05', 'ppc64'): '469bce07a75476c132d3791ca49e38db015917c9c36b4810e477bc1c54a13d68', ('2020.05', 'ppc64le'): 'fc4491bf6d9eaf2b7f2d39b722c978597a881ece557fb05a4cf27caabb9e0b99', @@ -70,6 +73,9 @@ class Hpcviewer(Package): } trace_sha = { + ('2020.07', 'x86_64'): '52aea55b1d40b9453c106ac5a83020a08839b9be1e71dbd1a9f471e5f3a55d43', + ('2020.07', 'ppc64'): '3d9222310a18618704015aecbcab7f7c5a2cedbd5ecd8ace1bfc7e98d11b8d36', + ('2020.07', 'ppc64le'): '2f0a8b95033a5816d468b87c8c139f08a307714e2e27a1cb4a35e1c5a8083cca', ('2020.05', 'x86_64'): 'a0b925099a00c10fcb38e937068e50937175fd46dc086121525e546a63a7fd83', ('2020.05', 'ppc64'): '40526f62f36e5b6438021c2b557256638d41a6b8f4e101534b5230ac644a9b85', ('2020.05', 'ppc64le'): 'c16e83b59362adcebecd4231374916a2b3a3c016f75a45b24e8398f777a24f89', diff --git a/var/spack/repos/builtin/packages/ibm-java/package.py b/var/spack/repos/builtin/packages/ibm-java/package.py index 72739240d5..952fa16a7b 100644 --- a/var/spack/repos/builtin/packages/ibm-java/package.py +++ b/var/spack/repos/builtin/packages/ibm-java/package.py @@ -22,6 +22,8 @@ class IbmJava(Package): # not be available for download. version_list = [ + ('8.0.6.11', 'ppc64', '6fd17a6b9a34bb66e0db37f6402dc1b7612d54084c94b859f4a42f445fd174d4'), + ('8.0.6.11', 'ppc64le', 'd69ff7519e32e89db88a9a4d4d88d1881524073ac940f35d3860db2c6647be2e'), ('8.0.6.10', 'ppc64', 'ff5151ead88f891624eefe33d80d56c325ca0aa4b93bd96c135cad326993eda2'), ('8.0.6.10', 'ppc64le', 'ea99ab28dd300b08940882d178247e99aafe5a998b1621cf288dfb247394e067'), ('8.0.6.7', 'ppc64', 'a1accb461a039af4587ea86511e317fea1d423e7f781459a17ed3947afed2982'), diff --git a/var/spack/repos/builtin/packages/icu4c/package.py b/var/spack/repos/builtin/packages/icu4c/package.py index 29307a4522..0663ae6edf 100644 --- a/var/spack/repos/builtin/packages/icu4c/package.py +++ b/var/spack/repos/builtin/packages/icu4c/package.py @@ -14,10 +14,15 @@ class Icu4c(AutotoolsPackage): homepage = "http://site.icu-project.org/" url = "https://github.com/unicode-org/icu/releases/download/release-65-1/icu4c-65_1-src.tgz" + version('67.1', sha256='94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc') + version('66.1', sha256='52a3f2209ab95559c1cf0a14f24338001f389615bf00e2585ef3dbc43ecf0a2e') version('65.1', sha256='53e37466b3d6d6d01ead029e3567d873a43a5d1c668ed2278e253b683136d948') version('64.1', sha256='92f1b7b9d51b396679c17f35a2112423361b8da3c1b9de00aa94fd768ae296e6') + version('60.3', sha256='476287b17db6e0b7da230dce4b58e8e5669b1510847f82cab3647920f1374390') version('60.1', sha256='f8f5a6c8fbf32c015a467972bdb1477dc5f5d5dfea908b6ed218715eeb5ee225') + version('58.3', sha256='2680f3c547cd26cba1d7ebd819cd336ff92cf444a270e195fd3b10bfdf22276c') version('58.2', sha256='2b0a4410153a9b20de0e20c7d8b66049a72aef244b53683d0d7521371683da0c') + version('57.2', sha256='623f04b921827a041f42d52495a6f8eee6565a9b7557051ac68e099123ff28dc') version('57.1', sha256='ff8c67cb65949b1e7808f2359f2b80f722697048e90e7cfc382ec1fe229e9581') variant('cxxstd', @@ -30,16 +35,18 @@ class Icu4c(AutotoolsPackage): conflicts('%intel@:16', when='@60.1:', msg="Intel compilers have immature C++11 and multibyte support") + conflicts('%gcc@:4', when='@67.1:', + msg="Older GCC compilers have immature C++11 support") + + patch('https://github.com/unicode-org/icu/commit/ddfc30860354cbcb78c2c0bcf800be5ab44a9e4f.patch', + sha256='dfc501d78ddfabafe09dc1a7aa70f96b799164b18f6a57d616a9d48aaf989333', + level=2, when='@58.0:59.99') configure_directory = 'source' def url_for_version(self, version): - if version >= Version('65'): - url = "https://github.com/unicode-org/icu/releases/download/release-{0}/icu4c-{1}-src.tgz" - return url.format(version.dashed, version.underscored) - else: - url = "http://download.icu-project.org/files/icu4c/{0}/icu4c-{1}-src.tgz" - return url.format(version.dotted, version.underscored) + url = "https://github.com/unicode-org/icu/releases/download/release-{0}/icu4c-{1}-src.tgz" + return url.format(version.dashed, version.underscored) def flag_handler(self, name, flags): if name == 'cxxflags': diff --git a/var/spack/repos/builtin/packages/imagemagick/package.py b/var/spack/repos/builtin/packages/imagemagick/package.py index bf13380928..63543ca552 100644 --- a/var/spack/repos/builtin/packages/imagemagick/package.py +++ b/var/spack/repos/builtin/packages/imagemagick/package.py @@ -27,6 +27,7 @@ class Imagemagick(AutotoolsPackage): depends_on('libtiff') depends_on('ghostscript') depends_on('ghostscript-fonts') + depends_on('libsm') def configure_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/jmol/package.py b/var/spack/repos/builtin/packages/jmol/package.py index 6bbe7e28cd..9da452f396 100644 --- a/var/spack/repos/builtin/packages/jmol/package.py +++ b/var/spack/repos/builtin/packages/jmol/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import os.path class Jmol(Package): @@ -11,15 +12,26 @@ class Jmol(Package): with features for chemicals, crystals, materials and biomolecules.""" homepage = "http://jmol.sourceforge.net/" - url = "https://sourceforge.net/projects/jmol/files/Jmol/Version%2014.8/Jmol%2014.8.0/Jmol-14.8.0-binary.tar.gz" + url = "https://sourceforge.net/projects/jmol/files/Jmol/Version%2014.8/Jmol%2014.8.0/Jmol-14.8.0-binary.tar.gz" + version('14.31.0', sha256='eee0703773607c8bd6d51751d0d062c3e10ce44c11e1d7828e4ea3d5f710e892') version('14.8.0', sha256='8ec45e8d289aa0762194ca71848edc7d736121ddc72276031a253a3651e6d588') + def url_for_version(self, version): + url = 'https://sourceforge.net/projects/jmol/files/Jmol/Version%20{0}/Jmol%20{1}/Jmol-{1}-binary.tar.gz' + return url.format(version.up_to(2), version) + depends_on('java', type='run') def install(self, spec, prefix): - install_tree('jmol-{0}'.format(self.version), prefix) + if os.path.exists('jmol-{0}'.format(self.version)): + # tar ball contains subdir with different versions + install_tree('jmol-{0}'.format(self.version), prefix) + else: + # no subdirs - tarball was unpacked in spack-src + install_tree('./', prefix) def setup_run_environment(self, env): env.prepend_path('PATH', self.prefix) env.set('JMOL_HOME', self.prefix) + env.prepend_path('PATH', self.spec['java'].prefix.bin) diff --git a/var/spack/repos/builtin/packages/jube/package.py b/var/spack/repos/builtin/packages/jube/package.py index dae9fc2932..aff47bc55e 100644 --- a/var/spack/repos/builtin/packages/jube/package.py +++ b/var/spack/repos/builtin/packages/jube/package.py @@ -14,6 +14,8 @@ class Jube(PythonPackage): homepage = "https://www.fz-juelich.de/jsc/jube/" url = "https://apps.fz-juelich.de/jsc/jube/jube2/download.php?version=2.2.2" + version('2.4.0', sha256='87c02555f3d1a8ecaff139cf8e7a7167cabd1049c8cc77f1bd8f4484e210d524', extension='tar.gz') + version('2.3.0', sha256='6051d45af2ff35031ccc460185fbfa61f7f36ea14f17a0d51a9e62cd7af3709a', extension="tar.gz") version('2.2.2', sha256='135bc03cf07c4624ef2cf581ba5ec52eb44ca1dac15cffb83637e86170980477', extension="tar.gz") version('2.2.1', sha256='68751bf2e17766650ccddb7a5321dd1ac8b34ffa3585db392befbe9ff180ddd9', extension="tar.gz") version('2.2.0', sha256='bc825884fc8506d0fb7b3b5cbb5ad4c7e82b1fe1d7ec861ca33699adfc8100f1', extension="tar.gz") diff --git a/var/spack/repos/builtin/packages/kallisto/package.py b/var/spack/repos/builtin/packages/kallisto/package.py index d33bd970a2..25e5fcb9a0 100644 --- a/var/spack/repos/builtin/packages/kallisto/package.py +++ b/var/spack/repos/builtin/packages/kallisto/package.py @@ -18,7 +18,6 @@ class Kallisto(CMakePackage): depends_on('zlib') depends_on('hdf5') - depends_on('mpich') # htslib isn't built in time to be used.... parallel = False diff --git a/var/spack/repos/builtin/packages/keepalived/package.py b/var/spack/repos/builtin/packages/keepalived/package.py index bb6cf01337..2b1e9f7b07 100644 --- a/var/spack/repos/builtin/packages/keepalived/package.py +++ b/var/spack/repos/builtin/packages/keepalived/package.py @@ -25,4 +25,4 @@ class Keepalived(AutotoolsPackage): version('2.0.12', sha256='fd50e433d784cfd948de5726752cf89ab7001f587fe10a5110c6c7cbda4b7b5e') version('2.0.11', sha256='a298b0c02a20959cfc365b62c14f45abd50d5e0595b2869f5bce10ec2392fa48') - depends_on('openssl', type='build') + depends_on('openssl') diff --git a/var/spack/repos/builtin/packages/lcio/package.py b/var/spack/repos/builtin/packages/lcio/package.py new file mode 100644 index 0000000000..c6ca4f6a95 --- /dev/null +++ b/var/spack/repos/builtin/packages/lcio/package.py @@ -0,0 +1,72 @@ +# 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) + + +from spack import * + + +class Lcio(CMakePackage): + """HEP Library for Linear Collider Input/Output""" + + homepage = "http://lcio.desy.de" + git = "https://github.com/iLCSoft/LCIO.git" + url = "https://github.com/iLCSoft/LCIO/archive/v02-13-03.tar.gz" + + maintainers = ['gaede', 'vvolkl'] + + version('master', branch='master') + version('2.13.3', sha256='35aaa7989be33574a7c44ea7e6d7780ab26ef8bd4aa29d495f3831a3cd269304') + version('2.13.2', sha256='9f153ba13e56ee16795378f9192678d40df1faca51d00aaa8fb80547bfecb8d8') + + variant('cxxstd', + default='17', + values=('11', '14', '17'), + multi=False, + description='Use the specified C++ standard when building.') + variant("jar", default=False, + description="Turn on to build/install lcio.jar") + variant("rootdict", default=True, + description="Turn on to build/install ROOT dictionary.") + variant("examples", default=False, + description="Turn on to build LCIO examples") + + depends_on('root@6.04:', when="+rootdict") + depends_on('openjdk', when="+jar") + # build error with +termlib, to be investigated + depends_on('ncurses~termlib', when="+examples") + depends_on('readline', when="+examples") + + def cmake_args(self): + args = [ + self.define('CMAKE_CXX_STANDARD', + self.spec.variants['cxxstd'].value), + self.define('BUILD_TESTING', self.run_tests), + self.define_from_variant("BUILD_LCIO_EXAMPLES", 'examples'), + self.define_from_variant("BUILD_ROOTDICT", 'rootdict'), + self.define_from_variant("INSTALL_JAR", 'jar'), + ] + return args + + def url_for_version(self, version): + base_url = self.url.rsplit('/', 1)[0] + major = str(version[0]).zfill(2) + minor = str(version[1]).zfill(2) + # handle the different cases for the patch version: + # first case, no patch version is given in spack, i.e 0.1 + if len(version) == 2: + url = base_url + "/v%s-%s.tar.gz" % (major, minor) + # a patch version is specified in spack, i.e. 0.1.x ... + elif len(version) == 3: + patch = str(version[2]).zfill(2) + # ... but it is zero, and not part of the ilc release url + if version[2] == 0: + url = base_url + "/v%s-%s.tar.gz" % (major, minor) + # ... if it is non-zero, it is part of the release url + else: + url = base_url + "/v%s-%s-%s.tar.gz" % (major, minor, patch) + else: + print('Error - Wrong version format provided') + return + return url diff --git a/var/spack/repos/builtin/packages/legion/package.py b/var/spack/repos/builtin/packages/legion/package.py index cac38dd030..f98e48e187 100644 --- a/var/spack/repos/builtin/packages/legion/package.py +++ b/var/spack/repos/builtin/packages/legion/package.py @@ -47,6 +47,8 @@ class Legion(CMakePackage): description='Build on top of ibv conduit for InfiniBand support') variant('shared', default=True, description='Build shared libraries') variant('hdf5', default=True, description='Enable HDF5 support') + variant('spy', default=False, + description='Enable detailed logging for Legion Spy') variant('build_type', default='Release', values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'), description='The build type to build', multi=False) @@ -87,4 +89,7 @@ class Legion(CMakePackage): else: options.append('-DLegion_USE_HDF5=OFF') + if '+spy' in self.spec: + options.append('-DLegion_SPY=ON') + return options diff --git a/var/spack/repos/builtin/packages/lhapdf/package.py b/var/spack/repos/builtin/packages/lhapdf/package.py index 10a69aba75..13adae4818 100644 --- a/var/spack/repos/builtin/packages/lhapdf/package.py +++ b/var/spack/repos/builtin/packages/lhapdf/package.py @@ -13,6 +13,7 @@ class Lhapdf(AutotoolsPackage): homepage = "https://lhapdf.hepforge.org/" url = "https://lhapdf.hepforge.org/downloads/?f=LHAPDF-6.2.3.tar.gz" + version('6.3.0', sha256='ed4d8772b7e6be26d1a7682a13c87338d67821847aa1640d78d67d2cef8b9b5d') version('6.2.3', sha256='d6e63addc56c57b6286dc43ffc56d901516f4779a93a0f1547e14b32cfd82dd1') depends_on('autoconf', type='build') diff --git a/var/spack/repos/builtin/packages/libelf/package.py b/var/spack/repos/builtin/packages/libelf/package.py index 9054753c48..2f59c61dfa 100644 --- a/var/spack/repos/builtin/packages/libelf/package.py +++ b/var/spack/repos/builtin/packages/libelf/package.py @@ -19,7 +19,11 @@ class Libelf(AutotoolsPackage): # homepage = "http://www.mr511.de/software/english.html" homepage = "https://directory.fsf.org/wiki/Libelf" - url = "https://fossies.org/linux/misc/old/libelf-0.8.13.tar.gz" + + urls = [ + 'https://fossies.org/linux/misc/old/libelf-0.8.13.tar.gz', + 'https://ftp.osuosl.org/pub/blfs/conglomeration/libelf/libelf-0.8.13.tar.gz' + ] version('0.8.13', sha256='591a9b4ec81c1f2042a97aa60564e0cb79d041c52faa7416acb38bc95bd2c76d') diff --git a/var/spack/repos/builtin/packages/libgd/package.py b/var/spack/repos/builtin/packages/libgd/package.py index d4907ae3e1..697ccd22a4 100644 --- a/var/spack/repos/builtin/packages/libgd/package.py +++ b/var/spack/repos/builtin/packages/libgd/package.py @@ -36,3 +36,12 @@ class Libgd(AutotoolsPackage): depends_on('jpeg') depends_on('libtiff') depends_on('fontconfig') + + def patch(self): + p = self.spec['jpeg'].libs.search_flags + filter_file( + 'LIBJPEG_LIBS " -ljpeg"', + 'LIBJPEG_LIBS "{0} -ljpeg"'.format(p), + 'configure', + string=True + ) diff --git a/var/spack/repos/builtin/packages/libint/package.py b/var/spack/repos/builtin/packages/libint/package.py index 27fdc3b41d..38cd2f677c 100644 --- a/var/spack/repos/builtin/packages/libint/package.py +++ b/var/spack/repos/builtin/packages/libint/package.py @@ -13,6 +13,10 @@ TUNE_VARIANTS = ( 'cp2k-lmax-5', 'cp2k-lmax-6', 'cp2k-lmax-7', + 'molgw-lmax-4', + 'molgw-lmax-5', + 'molgw-lmax-6', + 'molgw-lmax-7', ) @@ -136,6 +140,25 @@ class Libint(AutotoolsPackage): '--enable-generic-code', '--disable-unrolling', ] + if tune_value.startswith('molgw'): + lmax = int(tune_value.split('-lmax-')[1]) + config_args += [ + '--enable-1body=1', + '--enable-eri=0', + '--enable-eri2=0', + '--enable-eri3=0', + '--with-multipole-max-order=0', + '--with-max-am={0}'.format(lmax), + '--with-eri-max-am={0}'.format(lmax), + '--with-eri2-max-am={0}'.format(lmax), + '--with-eri3-max-am={0}'.format(lmax), + '--with-opt-am=2', + '--enable-contracted-ints', + # keep code-size at an acceptable limit, + # cf. https://github.com/evaleev/libint/wiki#program-specific-notes: + '--enable-generic-code', + '--disable-unrolling', + ] return config_args diff --git a/var/spack/repos/builtin/packages/libtree/package.py b/var/spack/repos/builtin/packages/libtree/package.py index 10ca8db31d..e44a4a8661 100644 --- a/var/spack/repos/builtin/packages/libtree/package.py +++ b/var/spack/repos/builtin/packages/libtree/package.py @@ -15,9 +15,9 @@ class Libtree(CMakePackage): maintainers = ['haampie'] - version('1.2.0', sha256='4316a52aed7c8d2f7d2736c935bbda952204be92e56948110a143283764c427c') - version('1.1.4', sha256='cfafb24c8f5e0d356c82777c338d58730ca6f3cb76dfe8a6857ee3ad65bf8be7') - version('1.1.3', sha256='7baf5aaecd3a076bf1e7a1aa86979e7b841ab3f678ca8ac0e2a22bbbccf0dd06') + version('1.2.0', sha256='3e74655f22b1dcc19e8a1b9e7796b8ad44bc37f29e9a99134119e8521e28be97') + version('1.1.4', sha256='38648f67c8fa72c3a4a3af2bb254b5fd6989c0f1362387ab298176db5cbbcc4e') + version('1.1.3', sha256='4c681d7b67ef3d62f95450fb7eb84e33ff10a3b9db1f7e195b965b2c3c58226b') version('1.1.2', sha256='31641c6bf6c2980ffa7b4c57392460434f97ba66fe51fe6346867430b33a0374') version('1.1.1', sha256='3e8543145a40a94e9e2ce9fed003d2bf68294e1fce9607028a286bc132e17dc4') version('1.1.0', sha256='6cf36fb9a4c8c3af01855527d4931110732bb2d1c19be9334c689f1fd1c78536') diff --git a/var/spack/repos/builtin/packages/libyogrt/package.py b/var/spack/repos/builtin/packages/libyogrt/package.py index 3590193516..a1ed17b3f1 100644 --- a/var/spack/repos/builtin/packages/libyogrt/package.py +++ b/var/spack/repos/builtin/packages/libyogrt/package.py @@ -38,6 +38,9 @@ class Libyogrt(AutotoolsPackage): conflicts('scheduler=lsf', when='@:1.22') + variant('static', default='False', + description="build static library") + def url_for_version(self, version): if version < Version(1.21): return "https://github.com/LLNL/libyogrt/archive/%s.tar.gz" % version @@ -51,4 +54,7 @@ class Libyogrt(AutotoolsPackage): if sched != "system": args.append('--with-%s=%s' % (sched, self.spec[sched].prefix)) + if '+static' in self.spec: + args.append('--enable-static=yes') + return args diff --git a/var/spack/repos/builtin/packages/ligra/package.py b/var/spack/repos/builtin/packages/ligra/package.py new file mode 100644 index 0000000000..8df4bbabae --- /dev/null +++ b/var/spack/repos/builtin/packages/ligra/package.py @@ -0,0 +1,44 @@ +# 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) + +from spack import * + + +class Ligra(MakefilePackage): + """A Lightweight Graph Processing Framework for Shared Memory""" + + homepage = "http://jshun.github.io/ligra/" + url = "https://github.com/jshun/ligra/archive/v.1.5.tar.gz" + + version('1.5', sha256='74113a5a3c19a0e319a5b9ebefc8a67c5d18d4d2a9670363092a966f4163f6b7') + version('1.4', sha256='bb70a1428c71cf2f7e1512cdedcd8330c754f5a2c8309ab9d9666591cff6a4e1') + version('1.3', sha256='df848038734bb9724d6c9bd95595c91eb6b07027642be93bff161f020ff257e4') + version('1.2', sha256='ec8778b0762772fc78437243ccaee72066d67a310bc352d6665dd2de520c04cc') + version('1.1', sha256='a7311b96fabc286a8f1250d8a6e2d1b1e4545c720fa6bb4acf7ed31211fcc99a') + version('1.0', sha256='fb39ae0a3eddb26f37b8cc0a543648575a50bcc488cecd4a5f1beaaf2458736c') + + variant('openmp', default=True, description="Build with OpenMP") + variant('mkl', default=False, description="Build with Intel MKL") + # TODO: Add cilk variant when spack has a cilk plus package created. + + depends_on('mkl', when='+mkl') + + def setup_build_environment(self, env): + if '+openmp' in self.spec: + env.set('OPENMP', '1') + # when +mkl, MKLROOT will be defined by intel-mkl package, + # triggering a build with mkl support + + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix.apps) + env.prepend_path('PATH', self.prefix.utils) + + def build(self, spec, prefix): + make('-C', 'apps') + make('-C', 'utils') + + def install(self, spec, prefix): + install_tree('.', prefix) + install_tree('ligra', prefix.include) diff --git a/var/spack/repos/builtin/packages/lmbench/fix_results_path_for_aarch64.patch b/var/spack/repos/builtin/packages/lmbench/fix_results_path_for_aarch64.patch new file mode 100644 index 0000000000..dc0f7026a0 --- /dev/null +++ b/var/spack/repos/builtin/packages/lmbench/fix_results_path_for_aarch64.patch @@ -0,0 +1,13 @@ +diff --git a/scripts/results b/scripts/results +index cd07c15..282ed19 100755 +--- a/scripts/results ++++ b/scripts/results +@@ -27,7 +27,7 @@ cd ../bin/$OS + PATH=.:${PATH}; export PATH + export SYNC_MAX + export OUTPUT +-lmbench $CONFIG 2>../${RESULTS} ++lmbench $CONFIG 2>${RESULTS} + + if [ X$MAIL = Xyes ] + then echo Mailing results diff --git a/var/spack/repos/builtin/packages/lmbench/package.py b/var/spack/repos/builtin/packages/lmbench/package.py index e38ca29e24..e0b5fe3620 100644 --- a/var/spack/repos/builtin/packages/lmbench/package.py +++ b/var/spack/repos/builtin/packages/lmbench/package.py @@ -19,6 +19,8 @@ class Lmbench(MakefilePackage): depends_on('libtirpc') + patch('fix_results_path_for_aarch64.patch', sha256='2af57abc9058c56b6dd0697bb01a98902230bef92b117017e318faba148eef60', when='target=aarch64:') + def setup_build_environment(self, env): env.prepend_path('CPATH', self.spec['libtirpc'].prefix.include.tirpc) env.append_flags('LDFLAGS', '-ltirpc') diff --git a/var/spack/repos/builtin/packages/looptools/package.py b/var/spack/repos/builtin/packages/looptools/package.py new file mode 100644 index 0000000000..7d31173dcf --- /dev/null +++ b/var/spack/repos/builtin/packages/looptools/package.py @@ -0,0 +1,25 @@ +# 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) + +from spack import * + + +class Looptools(AutotoolsPackage): + """LoopTools is a package for evaluation of scalar and tensor one-loop + integrals based on the FF package by G.J. van Oldenborgh. It + features an easy Fortran, C++, and Mathematica interface to the + scalar one-loop functions of FF and in addition provides + the 2-, 3-, and 4-point tensor coefficient functions. """ + + homepage = "http://www.feynarts.de/looptools/" + url = "http://www.feynarts.de/looptools/LoopTools-2.15.tar.gz" + + version('2.15', sha256='a065ffdc4fe6882aa3bb926134ba8ec875d6c0a633c3d4aa5f70db26542713f2') + version('2.8', sha256='2395518d0eac9b0883a2c249b9a5ba80df443929c520c45e60f5a4284166eb42') + + def configure_args(self): + args = ["FFLAGS=" + self.compiler.f77_pic_flag, + "CFLAGS=" + self.compiler.cc_pic_flag] + return args diff --git a/var/spack/repos/builtin/packages/ltrace/package.py b/var/spack/repos/builtin/packages/ltrace/package.py index 01f0e4fd86..9e0b72804f 100644 --- a/var/spack/repos/builtin/packages/ltrace/package.py +++ b/var/spack/repos/builtin/packages/ltrace/package.py @@ -17,3 +17,8 @@ class Ltrace(AutotoolsPackage): version('0.7.3', sha256='0e6f8c077471b544c06def7192d983861ad2f8688dd5504beae62f0c5f5b9503') conflicts('platform=darwin', msg='ltrace runs only on Linux.') + + def configure_args(self): + # Disable -Werror since some functions used by ltrace + # have been deprecated in recent version of glibc + return ['--disable-werror'] diff --git a/var/spack/repos/builtin/packages/lustre/package.py b/var/spack/repos/builtin/packages/lustre/package.py new file mode 100644 index 0000000000..2ce6a1ad55 --- /dev/null +++ b/var/spack/repos/builtin/packages/lustre/package.py @@ -0,0 +1,30 @@ +# 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) + +from spack import * + + +class Lustre(Package): + """Lustre is a type of parallel distributed file system, + generally used for large-scale cluster computing.""" + + homepage = 'http://lustre.org/' + has_code = False + + version('2.12') + + # Lustre is filesystem and needs to be installed on system. + # To have it as external package in SPACK, follow below: + # config file packages.yaml needs to be adjusted: + # lustre: + # version: [2.12] + # paths: + # lustre@2.12: /usr (Usual Lustre library path) + # buildable: False + + def install(self, spec, prefix): + raise InstallError( + self.spec.format('{name} is not installable, you need to specify ' + 'it as an external package in packages.yaml')) diff --git a/var/spack/repos/builtin/packages/m4/package.py b/var/spack/repos/builtin/packages/m4/package.py index 7b649656d0..daf89aed16 100644 --- a/var/spack/repos/builtin/packages/m4/package.py +++ b/var/spack/repos/builtin/packages/m4/package.py @@ -36,6 +36,9 @@ class M4(AutotoolsPackage, GNUMirrorPackage): spec = self.spec args = ['--enable-c++'] + if spec.satisfies('%cce@9:'): + args.append('LDFLAGS=-rtlib=compiler-rt') + if spec.satisfies('%clang') and not spec.satisfies('platform=darwin'): args.append('LDFLAGS=-rtlib=compiler-rt') diff --git a/var/spack/repos/builtin/packages/magics/package.py b/var/spack/repos/builtin/packages/magics/package.py index c9c331eeb5..902ac0db13 100644 --- a/var/spack/repos/builtin/packages/magics/package.py +++ b/var/spack/repos/builtin/packages/magics/package.py @@ -19,7 +19,12 @@ class Magics(CMakePackage): # The policy on which minor releases remain available and which get deleted # after a newer version becomes available is unclear. - version('4.2.4', sha256='920c7dbb1aaabe65a31c6c18010829210f8b2f8d614b6c405dc5a4530e346f07') + version('4.4.0', sha256='544058cd334f3e28a16d00ea7811e13cdf282f9c1ebec2ad7868171d925abd24') + version('4.3.3', sha256='27d3de71cf41f3d557fd85dabaea2baaab34c4c6422a5b5b15071a6a53387601') + version('4.3.1', sha256='b1995e2f5bf24943715446d1302cc5d7de4cacfe4cee7c3cfd1037ac183cd181') + version('4.3.0', sha256='f6c0d32c243913e53320dd94ce8e1e6a64bd9a44af77d5ac32c062bc18355b8a') + version('4.2.6', sha256='9b34a375d9125ab6e8a715b970da2e479f96370bac6a5bb8a015a079ed9e027c') + version('4.2.4', sha256='920c7dbb1aaabe65a31c6c18010829210f8b2f8d614b6c405dc5a4530e346f07') version('4.1.0', sha256='da626c31f53716990754dd72ab7b2f3902a8ad924b23ef3309bd14900d170541') version('2.34.3', sha256='38487562e83c0470f94d9c7fb9418cbadf92f1e643033237baba2abdc77e6238') version('2.34.1', sha256='8df27f8f262ebc32a61f8696df15a7b4a6e4203b2a8e53fe7aa13caa1c4e3fa4') @@ -59,7 +64,10 @@ class Magics(CMakePackage): depends_on('perl-xml-parser', type='build') # Non-optional dependencies - depends_on('proj@:5') + # change of proj4 api starting from version 4.3.0 + # https://github.com/OSGeo/PROJ/wiki/proj.h-adoption-status + depends_on('proj@:5', when='@:4.2.6') + depends_on('proj@6:', when='@4.3:') depends_on('boost') depends_on('expat') @@ -79,6 +87,10 @@ class Magics(CMakePackage): depends_on('eccodes', when='grib=eccodes') depends_on('grib-api', when='grib=grib-api') + # Even if netcdf is disabled and -DENABLE_NETCDF=OFF is set, building + # magics still requires legacy netcdf-cxx + depends_on('netcdf-cxx', when='@4.1.0:4.3.1') + # Optional dependencies depends_on('netcdf-cxx', when='+netcdf') depends_on('pango', when='+cairo') @@ -129,7 +141,8 @@ class Magics(CMakePackage): if self.spec.satisfies('@2.29.1:'): args.append('-DENABLE_ECCODES=OFF') - if '+netcdf' in self.spec: + # magics@4.2.4:4.3.1 cannot be built without netcdf + if '+netcdf' in self.spec or self.spec.satisfies('@4.1.0:4.3.1'): args.append('-DENABLE_NETCDF=ON') else: args.append('-DENABLE_NETCDF=OFF') diff --git a/var/spack/repos/builtin/packages/mapnik/package.py b/var/spack/repos/builtin/packages/mapnik/package.py index 2fc61f568d..880bd3bc13 100644 --- a/var/spack/repos/builtin/packages/mapnik/package.py +++ b/var/spack/repos/builtin/packages/mapnik/package.py @@ -15,11 +15,12 @@ class Mapnik(AutotoolsPackage): homepage = "https://mapnik.org/" url = "https://github.com/mapnik/mapnik/releases/download/v3.0.22/mapnik-v3.0.22.tar.bz2" + version('3.0.23', sha256='4b1352e01f7ce25ab099e586d7ae98e0b74145a3bf94dd365cb0a2bdab3b9dc2') version('3.0.22', sha256='930612ad9e604b6a29b9cea1bc1de85cf7cf2b2b8211f57ec8b6b94463128ab9') depends_on('python', type=('build', 'run')) - # Build fails with boost@1.70 - depends_on('boost@:1.69.0+regex+filesystem+system+icu+program_options cxxstd=11') + depends_on('boost@:1.72.0 +regex+filesystem+system+icu+program_options cxxstd=11', when='@3.0.23') + depends_on('boost@:1.69.0 +regex+filesystem+system+icu+program_options cxxstd=11', when='@3.0.22') depends_on('icu4c') depends_on('zlib') depends_on('freetype') diff --git a/var/spack/repos/builtin/packages/mcutils/package.py b/var/spack/repos/builtin/packages/mcutils/package.py new file mode 100644 index 0000000000..3065f70fe0 --- /dev/null +++ b/var/spack/repos/builtin/packages/mcutils/package.py @@ -0,0 +1,34 @@ +# 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) + +from spack import * + + +class Mcutils(MakefilePackage): + """A collection of routines for classification and manipulation of + particle physics simulated HepMC event records.""" + + homepage = "https://bitbucket.org/andybuckley/mcutils" + url = "https://bitbucket.org/andybuckley/mcutils/get/mcutils-1.3.4.tar.gz" + + version('1.3.4', sha256='0bf9795cc248871ab2b663d2eef647311eacaea4982997950096de68747e65a3') + version('1.3.3', sha256='bfb2f0e0e6de358928436f309f3f1b084d3d652073c440f262de878332116ecb') + version('1.3.2', sha256='e17d417e8d4f8d17a6879ea18dcd2cd76e161d37eae08b84893504d1b08f9708') + version('1.3.1', sha256='081263ee6844fccedad780e6a2fbaf1ad0073a6706bc4b34109050b72c2c4b27') + version('1.3.0', sha256='20a89ce536547dc8f56e7779a3ec8cfe9987edb1646009ecfc682ff1ddf0277b') + version('1.2.1', sha256='004325be41925d97e711ffe4311d9c8aa8e88873541bcc1a385d2e1ce1d17a96') + version('1.2.0', sha256='f9589d45bff06d8c8742d35d78d1ed570a0d181fd7ee5d6f97ab9e48f0ee32f4') + version('1.1.2', sha256='5a5781caf2d81c21f4b040a1d31975c354526bcf7c8c9067543f7303c8155844') + version('1.1.1', sha256='3e5c47d2264886613fc9423b020cf50dc7031a02b752da3a84f794c36ba7443a') + version('1.1.0', sha256='96fc2586430032ed4b378edb02150c5c9db405e1767dbf847ffe9ac043daf6e9') + version('1.0.3', sha256='b5bec5a4b2146b6987b351d632119c3b4c449c2ee53ae0ddc8cb1d3672907df5') + version('1.0.2', sha256='74e2c381f5f3719888b15a2e00075051bb2b84b3d73633d429818a77de66ca7c') + version('1.0.1', sha256='bb884a4cfb56b5139c08df0be554466e504e9c46096a858f904d659894a62131') + version('1.0.0', sha256='d08dea19fb42b1846e0a7134e2347648b037bf82b2d75086d018734bc2996b06') + + depends_on('heputils', when='@1.1.0:') + + def install(self, spec, prefix): + make('install', 'PREFIX={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/minio/package.py b/var/spack/repos/builtin/packages/minio/package.py new file mode 100644 index 0000000000..4485f650e7 --- /dev/null +++ b/var/spack/repos/builtin/packages/minio/package.py @@ -0,0 +1,29 @@ +# 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) + +from spack import * + + +class Minio(MakefilePackage): + """MinIO is a High Performance Object Storage released under Apache + License v2.0. It is API compatible with Amazon S3 cloud storage + service. Use MinIO to build high performance infrastructure for + machine learning, analytics and application data workloads.""" + + homepage = "https://min.io/" + url = "https://github.com/minio/minio/archive/RELEASE.2020-07-13T18-09-56Z.tar.gz" + + version('2020-07-13T18-09-56Z', sha256='147fca3930389162cc7306a0fa5cf478ee2deba4b31a9317f3d35e82aa58d41e') + version('2020-07-12T19-14-17Z', sha256='bb8ba5d93215ab37788171d8b9ce68e78d64e7b7c74aea508c15958158d85b03') + version('2020-07-02T00-15-09Z', sha256='4255c4d95a3e010f16a3f1e974768dc68509075403a97a9b9882f7d9e89fedc5') + + depends_on('go', type='build') + + def url_for_version(self, version): + return ("https://github.com/minio/minio/archive/RELEASE.{0}.tar.gz".format(version)) + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install('minio', prefix.bin) diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py index a485124476..d967611fdd 100644 --- a/var/spack/repos/builtin/packages/mpich/package.py +++ b/var/spack/repos/builtin/packages/mpich/package.py @@ -67,6 +67,8 @@ spack package at this time.''', variant('libxml2', default=True, description='Use libxml2 for XML support instead of the custom ' 'minimalistic implementation') + variant('argobots', default=False, + description='Enable Argobots support') provides('mpi') provides('mpi@:3.0', when='@3:') @@ -141,6 +143,9 @@ spack package at this time.''', depends_on('pmix', when='pmi=pmix') + # +argobots variant requires Argobots + depends_on('argobots', when='+argobots') + # building from git requires regenerating autotools files depends_on('automake@1.15:', when='@develop', type=("build")) depends_on('libtool@2.4.4:', when='@develop', type=("build")) @@ -307,4 +312,9 @@ spack package at this time.''', # for hydra, for hydra2, and for MPICH itself). config_args += self.enable_or_disable('libxml2') + # If +argobots specified, add argobots option + if '+argobots' in spec: + config_args.append('--with-thread-package=argobots') + config_args.append('--with-argobots=' + spec['argobots'].prefix) + return config_args diff --git a/var/spack/repos/builtin/packages/mpifileutils/package.py b/var/spack/repos/builtin/packages/mpifileutils/package.py index 30fc982505..c0130e554d 100644 --- a/var/spack/repos/builtin/packages/mpifileutils/package.py +++ b/var/spack/repos/builtin/packages/mpifileutils/package.py @@ -21,9 +21,10 @@ class Mpifileutils(Package): git = "https://github.com/hpc/mpifileutils.git" version('develop', branch='master') - version('0.10', sha256='5a71a9acd9841c3c258fc0eaea942f18abcb40098714cc90462b57696c07e3c5') - version('0.9.1', sha256='15a22450f86b15e7dc4730950b880fda3ef6f59ac82af0b268674d272aa61c69') - version('0.9', sha256='1b8250af01aae91c985ca5d61521bfaa4564e46efa15cee65cd0f82cf5a2bcfb') + version('0.10.1', sha256='4c8409ef4140f6f557d0e93f0c1267baf5d893c203b29fb7a33d9bc3c5a5d25c') + version('0.10', sha256='5a71a9acd9841c3c258fc0eaea942f18abcb40098714cc90462b57696c07e3c5') + version('0.9.1', sha256='15a22450f86b15e7dc4730950b880fda3ef6f59ac82af0b268674d272aa61c69') + version('0.9', sha256='1b8250af01aae91c985ca5d61521bfaa4564e46efa15cee65cd0f82cf5a2bcfb') conflicts('platform=darwin') diff --git a/var/spack/repos/builtin/packages/mumax/package.py b/var/spack/repos/builtin/packages/mumax/package.py new file mode 100644 index 0000000000..ac9183c45e --- /dev/null +++ b/var/spack/repos/builtin/packages/mumax/package.py @@ -0,0 +1,62 @@ +# 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) + +from spack import * +import os +import shutil + + +class Mumax(MakefilePackage, CudaPackage): + """GPU accelerated micromagnetic simulator.""" + + homepage = "http://mumax.github.io" + url = "https://github.com/mumax/3/archive/3.10beta.tar.gz" + + version('3.10beta', sha256='f20fbd90a4b531fe5a0d8acc3d4505a092a5e426f5f53218a22a87d445daf0e9') + + variant('cuda', default=True, + description='Use CUDA; must be true') + variant('cuda_arch', 'N/A', + description='Mumax will build GPU kernels that it supports') + variant('gnuplot', default=False, + description='Use gnuplot for graphs') + + depends_on('cuda') + depends_on('go', type='build') + depends_on('gnuplot', type='run', when='+gnuplot') + + conflicts('~cuda', msg='mumax requires cuda') + + patch('https://github.com/mumax/3/commit/2cf5c9a6985c9eb16a124c6bd96aed75b4a30c24.patch', + sha256='a43b2ca6c9f9edfb1fd6d916a599f85a57c8bb3f9ee38148b1988fd82feec8ad') + + @property + def gopath(self): + return self.stage.path + + @property + def mumax_gopath_dir(self): + return join_path(self.gopath, 'src/github.com/mumax/3') + + def do_stage(self, mirror_only=False): + super(Mumax, self).do_stage(mirror_only) + if not os.path.exists(self.mumax_gopath_dir): + # Need to move source to $GOPATH and then symlink the original + # stage directory + shutil.move(self.stage.source_path, self.mumax_gopath_dir) + force_symlink(self.mumax_gopath_dir, self.stage.source_path) + + # filter out targets that do not exist + def edit(self, spec, prefix): + filter_file(r'(^ln -sf .*)', r'#\1', 'make.bash') + filter_file(r'(^\(cd test)', r'#\1', 'make.bash') + + def setup_build_environment(self, env): + env.prepend_path('GOPATH', self.gopath) + + def install(self, spec, prefix): + make() + with working_dir(self.gopath): + install_tree('bin', prefix.bin) diff --git a/var/spack/repos/builtin/packages/nag/package.py b/var/spack/repos/builtin/packages/nag/package.py index ae191f9c08..c484350570 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): homepage = "http://www.nag.com/nagware/np.asp" maintainers = ['ThemosTsikas'] - version('7.0', sha256='bd53c988efe4bfd476a5f556ebd2b8924dc2a039f485e8e017581bca4e12ba01') + version('7.0', sha256='ef65805004255881a4ed27fe7bdb5b05dbbe5fde5bad287f71258fce1f02be77') version('6.2', sha256='9b60f6ffa4f4be631079676963e74eea25e8824512e5c864eb06758b2a3cdd2d') version('6.1', sha256='32580e0004e6798abf1fa52f0070281b28abeb0da2387530a4cc41218e813c7c') diff --git a/var/spack/repos/builtin/packages/namd/package.py b/var/spack/repos/builtin/packages/namd/package.py index a85dd7fd42..e14e92347e 100644 --- a/var/spack/repos/builtin/packages/namd/package.py +++ b/var/spack/repos/builtin/packages/namd/package.py @@ -19,8 +19,9 @@ class Namd(MakefilePackage): manual_download = True version("develop", branch="master") + version('2.14b2', sha256='cb4bd918d2d545bb618e4b4a20023a53916f0aa362d9e57f3de1562c36240b00') version('2.14b1', sha256='9407e54f5271b3d3039a5a9d2eae63c7e108ce31b7481e2197c19e1125b43919') - version('2.13', '9e3323ed856e36e34d5c17a7b0341e38') + version('2.13', '9e3323ed856e36e34d5c17a7b0341e38', preferred=True) version('2.12', '2a1191909b1ab03bf0205971ad4d8ee9') variant('fftw', default='3', values=('none', '2', '3', 'mkl'), diff --git a/var/spack/repos/builtin/packages/ncl/package.py b/var/spack/repos/builtin/packages/ncl/package.py index 4d9980ecc5..046dd9b3a8 100644 --- a/var/spack/repos/builtin/packages/ncl/package.py +++ b/var/spack/repos/builtin/packages/ncl/package.py @@ -144,7 +144,9 @@ class Ncl(Package): c2f_flags.extend(['-lgfortran', '-lm']) elif self.compiler.name == 'intel': fc_flags.append('-fp-model precise') - cc_flags.append('-fp-model precise') + cc_flags.append('-fp-model precise' + ' -std=c99' + ' -D_POSIX_C_SOURCE=2 -D_GNU_SOURCE') c2f_flags.extend(['-lifcore', '-lifport']) if self.spec.satisfies('%gcc@10:'): diff --git a/var/spack/repos/builtin/packages/nco/package.py b/var/spack/repos/builtin/packages/nco/package.py index 859dac6ab7..cd30f8742a 100644 --- a/var/spack/repos/builtin/packages/nco/package.py +++ b/var/spack/repos/builtin/packages/nco/package.py @@ -13,6 +13,12 @@ class Nco(AutotoolsPackage): homepage = "http://nco.sourceforge.net/" url = "https://github.com/nco/nco/archive/4.6.7.tar.gz" + version('4.9.3', sha256='eade5b79f3814b11ae3f52c34159567e76a73f05f0ab141eccaac68f0ca94aee') + version('4.9.2', sha256='1a98c37c946c00232fa7319d00d1d80f77603adda7c9239d10d68a8a3545a4d5') + version('4.9.1', sha256='9592efaf0dfd6ccdefd0b417d990cfccae7e89c20d90fb44ead6263009778834') + version('4.9.0', sha256='21dd53f427793cbc52d1c007e9b7339c83f6944a937a1acfbbe733e49b65378b') + version('4.8.1', sha256='ddae3fed46c266798ed1176d6a70b36376d2d320fa933c716a623172d1e13c68') + version('4.8.0', sha256='91f95ebfc9baa888adaec3016ca18a6297e2881b1429d74543a27fdfbe15fcab') version('4.7.9', sha256='048f6298bceb40913c3ae433f875dea1e9129b1c86019128e7271d08f274a879') version('4.6.7', sha256='2fe2dabf14a60bface694307cbe719df57103682b715348e9d77bfe8d31487f3') version('4.6.6', sha256='079d83f800b73d9b12b8de1634a88c2cbe40a639aaf7bc056cd2e836c6047697') diff --git a/var/spack/repos/builtin/packages/ncview/package.py b/var/spack/repos/builtin/packages/ncview/package.py index f142a435f2..3eb944ce9c 100644 --- a/var/spack/repos/builtin/packages/ncview/package.py +++ b/var/spack/repos/builtin/packages/ncview/package.py @@ -11,6 +11,7 @@ class Ncview(AutotoolsPackage): homepage = "http://meteora.ucsd.edu/~pierce/ncview_home_page.html" url = "ftp://cirrus.ucsd.edu/pub/ncview/ncview-2.1.7.tar.gz" + version('2.1.8', sha256='e8badc507b9b774801288d1c2d59eb79ab31b004df4858d0674ed0d87dfc91be') version('2.1.7', sha256='a14c2dddac0fc78dad9e4e7e35e2119562589738f4ded55ff6e0eca04d682c82') depends_on('netcdf-c') diff --git a/var/spack/repos/builtin/packages/netlib-scalapack/gcc10-compatibility.patch b/var/spack/repos/builtin/packages/netlib-scalapack/gcc10-compatibility.patch new file mode 100644 index 0000000000..d852742d12 --- /dev/null +++ b/var/spack/repos/builtin/packages/netlib-scalapack/gcc10-compatibility.patch @@ -0,0 +1,33 @@ +From 6dff04cc6f5ad2c35e76dec18b7eec86943a3ed1 Mon Sep 17 00:00:00 2001 +From: DesWurstes <DesWurstes@users.noreply.github.com> +Date: Fri, 15 May 2020 15:54:14 +0100 +Subject: [PATCH] Set -fallow-argument-mismatch + +--- + CMakeLists.txt | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 638dbdc..93fc34b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -14,6 +14,9 @@ if (UNIX) + if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "Intel") + set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fltconsistency -fp_port" ) + endif () ++ if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10) ++ set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch" ) ++ endif() + endif () + + # +@@ -79,6 +82,9 @@ if (UNIX) + if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "Intel") + set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fltconsistency -fp_port" ) + endif () ++ if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10) ++ set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch" ) ++ endif() + endif () + + macro(SCALAPACK_install_library lib) diff --git a/var/spack/repos/builtin/packages/netlib-scalapack/package.py b/var/spack/repos/builtin/packages/netlib-scalapack/package.py index 26fe53190a..64381c5b28 100644 --- a/var/spack/repos/builtin/packages/netlib-scalapack/package.py +++ b/var/spack/repos/builtin/packages/netlib-scalapack/package.py @@ -46,6 +46,8 @@ class NetlibScalapack(CMakePackage): patch("mpi2-compatibility.patch", when='@2.0.2:2.0.99') # See: https://github.com/Reference-ScaLAPACK/scalapack/pull/16 patch("int_overflow.patch", when='@2.0.0:2.1.0') + # See: https://github.com/Reference-ScaLAPACK/scalapack/pull/23 + patch("gcc10-compatibility.patch", when='@2.0.0:2.1.0') @property def libs(self): diff --git a/var/spack/repos/builtin/packages/nn-c/package.py b/var/spack/repos/builtin/packages/nn-c/package.py new file mode 100644 index 0000000000..20fa95054d --- /dev/null +++ b/var/spack/repos/builtin/packages/nn-c/package.py @@ -0,0 +1,33 @@ +# 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) + +from spack import * + + +class NnC(AutotoolsPackage): + """nn: Natural Neighbours interpolation. nn is a C code + for Natural Neighbours interpolation of 2D scattered data. + It provides a C library and a command line utility nnbathy.""" + + homepage = "https://github.com/sakov/nn-c" + git = "https://github.com/sakov/nn-c.git" + + version('master', branch='master') + version('1.86.2', commit='343c7784d38d3270d75d450569fc0b64767c37e9') + + variant('pic', default=True, + description='Produce position-independent code (for shared libs)') + + configure_directory = 'nn' + + def configure_args(self): + args = [] + if '+pic' in self.spec: + args.extend([ + 'CFLAGS={0}'.format(self.compiler.pic_flag), + 'CXXFLAGS={0}'.format(self.compiler.pic_flag), + 'FFLAGS={0}'.format(self.compiler.pic_flag) + ]) + return args diff --git a/var/spack/repos/builtin/packages/onednn/package.py b/var/spack/repos/builtin/packages/onednn/package.py index 82d22296f9..eb98cfe2ed 100644 --- a/var/spack/repos/builtin/packages/onednn/package.py +++ b/var/spack/repos/builtin/packages/onednn/package.py @@ -12,10 +12,11 @@ class Onednn(CMakePackage): Formerly known as Intel MKL-DNN and DNNL.""" homepage = "https://01.org/dnnl" - url = "https://github.com/oneapi-src/oneDNN/archive/v1.5.tar.gz" + url = "https://github.com/oneapi-src/oneDNN/archive/v1.5.1.tar.gz" maintainers = ['adamjstewart'] + version('1.5.1', sha256='aef4d2a726f76f5b98902491a1a4ac69954039aa8e5a1d67ef6ce58ed00e23a6') version('1.5', sha256='2aacc00129418185e0bc1269d3ef82f93f08de2c336932989c0c360279129edb') version('1.4', sha256='54737bcb4dc1961d32ee75da3ecc529fa48198f8b2ca863a079e19a9c4adb70f') version('1.3', sha256='b87c23b40a93ef5e479c81028db71c4847225b1a170f82af5e79f1cda826d3bf') diff --git a/var/spack/repos/builtin/packages/openblas/openblas_fujitsu2.patch b/var/spack/repos/builtin/packages/openblas/openblas_fujitsu2.patch new file mode 100644 index 0000000000..bfda30cced --- /dev/null +++ b/var/spack/repos/builtin/packages/openblas/openblas_fujitsu2.patch @@ -0,0 +1,13 @@ +--- OpenBLAS-0.3.10/f_check 2020-07-04 00:02:19.000000000 +0900 ++++ OpenBLAS-0.3.10/f_check_fix 2020-07-04 00:00:52.000000000 +0900 +@@ -337,8 +337,8 @@ + && ($flags !~ /kernel32/) + && ($flags !~ /advapi32/) + && ($flags !~ /shell32/) +- && ($flags !~ /omp/ || ($vendor !~ /PGI/ && $flags =~ /omp/)) +- && ($flags !~ /[0-9]+/) ++ && ($flags !~ /omp/ || ($vendor !~ /PGI/ && $vendor !~ /FUJITSU/ && $flags =~ /omp/)) ++ && ($flags !~ /[0-9]+/ || ($vendor == FUJITSU && $flags =~ /^-lfj90/)) + && ($flags !~ /^\-l$/) + ) { + $linker_l .= $flags . " "; diff --git a/var/spack/repos/builtin/packages/openblas/package.py b/var/spack/repos/builtin/packages/openblas/package.py index 61a530b37f..ad0a6c82f8 100644 --- a/var/spack/repos/builtin/packages/openblas/package.py +++ b/var/spack/repos/builtin/packages/openblas/package.py @@ -99,6 +99,7 @@ class Openblas(MakefilePackage): # Add conditions to f_check to determine the Fujitsu compiler patch('openblas_fujitsu.patch', when='%fj') + patch('openblas_fujitsu2.patch', when='@0.3.10 %fj') # See https://github.com/spack/spack/issues/3036 conflicts('%intel@16', when='@0.2.15:0.2.19') diff --git a/var/spack/repos/builtin/packages/opencascade/package.py b/var/spack/repos/builtin/packages/opencascade/package.py index 8267716e78..7df9668f01 100644 --- a/var/spack/repos/builtin/packages/opencascade/package.py +++ b/var/spack/repos/builtin/packages/opencascade/package.py @@ -16,6 +16,8 @@ class Opencascade(CMakePackage): homepage = "https://www.opencascade.com" url = "http://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V7_4_0;sf=tgz" + version('7.4.0p1', extension='tar.gz', + sha256='e00fedc221560fda31653c23a8f3d0eda78095c87519f338d4f4088e2ee9a9c0') version('7.4.0', extension='tar.gz', sha256='655da7717dac3460a22a6a7ee68860c1da56da2fec9c380d8ac0ac0349d67676') @@ -32,6 +34,14 @@ class Opencascade(CMakePackage): depends_on('vtk', when='+vtk') depends_on('freeimage', when='+freeimage') depends_on('rapidjson', when='+rapidjson') + depends_on('freetype') + depends_on('tcl') + depends_on('tk') + depends_on('gl') + + def url_for_version(self, version): + url = "http://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V{0};sf=tgz" + return url.format(version.underscored) def cmake_args(self): args = [] diff --git a/var/spack/repos/builtin/packages/openfoam-org/package.py b/var/spack/repos/builtin/packages/openfoam-org/package.py index dc9b5673ee..e2859dc838 100644 --- a/var/spack/repos/builtin/packages/openfoam-org/package.py +++ b/var/spack/repos/builtin/packages/openfoam-org/package.py @@ -332,15 +332,17 @@ class OpenfoamOrg(Package): # Having wmake and ~source is actually somewhat pointless... # Install 'etc' before 'bin' (for symlinks) - dirs = ['etc', 'bin', 'wmake'] + # META-INFO for 1812 and later (or backported) + dirs = ['META-INFO', 'etc', 'bin', 'wmake'] if '+source' in spec: dirs.extend(['applications', 'src', 'tutorials']) for d in dirs: - install_tree( - d, - join_path(self.projectdir, d), - symlinks=True) + if os.path.isdir(d): + install_tree( + d, + join_path(self.projectdir, d), + symlinks=True) dirs = ['platforms'] if '+source' in spec: diff --git a/var/spack/repos/builtin/packages/openfoam/package.py b/var/spack/repos/builtin/packages/openfoam/package.py index 275af6045f..3b9ff8a7dd 100644 --- a/var/spack/repos/builtin/packages/openfoam/package.py +++ b/var/spack/repos/builtin/packages/openfoam/package.py @@ -349,7 +349,7 @@ class Openfoam(Package): # kahip patch (wmake) patch('https://develop.openfoam.com/Development/openfoam/commit/8831dfc58b0295d0d301a78341dd6f4599073d45.patch', when='@1806', - sha256='21f1ab68c82dfa41ed1a4439427c94c43ddda02c84175c30da623d905d3e5d61' + sha256='531146be868dd0cda70c1cf12a22110a38a30fd93b5ada6234be3d6c9256c6cf' ) # Some user config settings @@ -773,15 +773,17 @@ class Openfoam(Package): # Having wmake and ~source is actually somewhat pointless... # Install 'etc' before 'bin' (for symlinks) - dirs = ['etc', 'bin', 'wmake'] + # META-INFO for 1812 and later (or backported) + dirs = ['META-INFO', 'etc', 'bin', 'wmake'] if '+source' in spec: dirs.extend(['applications', 'src', 'tutorials']) for d in dirs: - install_tree( - d, - join_path(self.projectdir, d), - symlinks=True) + if os.path.isdir(d): + install_tree( + d, + join_path(self.projectdir, d), + symlinks=True) dirs = ['platforms'] if '+source' in spec: diff --git a/var/spack/repos/builtin/packages/openloops/package.py b/var/spack/repos/builtin/packages/openloops/package.py new file mode 100644 index 0000000000..9a1081c2b6 --- /dev/null +++ b/var/spack/repos/builtin/packages/openloops/package.py @@ -0,0 +1,124 @@ +# 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) + +from spack import * +import os + + +class Openloops(Package): + """The OpenLoops 2 program is a fully automated implementation of the + Open Loops algorithm combined with on-the-fly reduction methods, + which allows for the fast and stable numerical evaluation of tree + and one-loop matrix elements for any Standard Model process + at NLO QCD and NLO EW. """ + + homepage = "https://openloops.hepforge.org/" + url = "https://openloops.hepforge.org/downloads?f=OpenLoops-2.1.1.tar.gz" + + version('2.1.1', sha256='f1c47ece812227eab584e2c695fef74423d2f212873f762b8658f728685bcb91') + + all_processes = ( + "tbln", "tbln_ew", "tbqq", "tbw", "pptttt", "pptttt_ew", "pptt", + "pptt_ew", "ppttbb", "ppttj", "ppttj_ew", "ppttjj", + "pptaj", "pptajj", "pptllj", "pptlljj", "pptln", "pptw", "pptwj", + "pptzj", "pptzjj", "ppthj", "ppthjj", "pptj", + "pptjj", "ppjj", "ppjj_ew", "ppjjj", "ppjjj_ew", "ppjjj_nf5", "ppjjjj", + "pplllvvv_ew", "ppatt", "ppatt_ew", + "ppattj", "pplltt", "pplltt_ew", "ppllttj", "ppllttj_ew", "pplntt", + "pplnttj", "ppwtt", "ppwtt_ew", "ppwttj", + "ppwttj_ew", "ppztt", "ppztt_ew", "ppzttj", "ppaatt", "ppwwtt", + "ppzatt", "ppzztt", "ppvvvv", "ppaaaj2", "ppllaa", + "ppllaaj", "pplllla", "ppvvv", "ppvvv2", "ppvvv_ew", "ppvvvj", + "ppaajj", "ppaajj2", "ppaajjj", "pplla", "pplla2", + "pplla_ew", "ppllaj", "ppllaj2", "ppllaj_ew", "ppllaj_nf5", "ppllajj", + "ppllll", "ppllll2", "ppllll2_nf5", + "ppllll2_onlyh", "ppllll_ew", "ppllllj", "ppllllj2", "ppllllj2_nf5", + "ppllllj2_nf5_notridr", "ppllllj2_nf5_sr", + "ppllllj2_onlyh", "ppllnnjj_ew", "ppllnnjj_vbs", "pplnajj", "ppvv", + "ppvv2", "ppvv_ew", "ppvvj", "ppvvj2", + "ppvvj_ew", "ppwajj", "ppwwjj", "ppzajj", "ppzwj_ew", "ppzwjj", + "ppzzjj", "ppajj", "ppajj2", "ppajj_ew", "ppajjj", + "ppllj", "ppllj2", "ppllj_ew", "ppllj_nf5", "pplljj", "pplljj_ew", + "pplljjj", "pplnj_ckm", "pplnjj", "pplnjj_ckm", + "pplnjj_ew", "pplnjjj", "ppnnjj_ew", "ppnnjjj", "ppvj", "ppvj2", + "ppvj_ew", "ppwj_ckm", "ppwjj", "ppwjj_ckm", + "ppwjj_ew", "ppwjjj", "ppzjj", "ppzjj_ew", "ppzjjj", "pphtt", + "pphtt_ew", "pphttj", "pphlltt", "pphll", "pphll2", + "pphll_ew", "pphllj", "pphllj2", "pphllj_ew", "pphlljj", "pphlljj_top", + "pphlnj_ckm", "pphlnjj", "pphv", "pphv_ew", + "pphwjj", "pphz2", "pphzj2", "pphzjj", "pphhtt", "pphhv", "pphhh2", + "heftpphh", "heftpphhj", "heftpphhjj", "pphh2", + "pphhj2", "pphhjj2", "pphhjj_vbf", "bbhj", "heftpphj", "heftpphjj", + "heftpphjjj", "pphbb", "pphbbj", "pphj2", + "pphjj2", "pphjj_vbf", "pphjj_vbf_ew", "pphjjj2", "eetttt", "eettttj", + "eellllbb", "eett", "eett_ew", "eettj", + "eettjj", "eevtt", "eevttj", "eevttjj", "eevvtt", "eevvttj", + "eellll_ew", "eevv_ew", "eevvjj", "eell_ew", "eevjj", + "eehtt", "eehttj", "eehll_ew", "eehvtt", "eehhtt", "heftppllj", + "heftpplljj", "heftpplljjj") + + variant('compile_extra', default=False, + description='Compile real radiation tree amplitudes') + variant('processes', description='Processes to install. See https://' + + 'openloops.hepforge.org/process_' + + 'library.php?repo=public for details', + values=disjoint_sets(('all.coll',), ('lhc.coll',), ('lcg.coll',), + all_processes).with_default('lhc.coll')) + + variant('num_jobs', description='Number of parallel jobs to run. ' + + 'Set to 1 if compiling a large number' + + 'of processes (e.g. lcg.coll)', default=0) + depends_on('python', type=("build", "run")) + + phases = ['configure', 'build', 'build_processes', 'install'] + + def configure(self, spec, prefix): + spack_env = ('PATH LD_LIBRARY_PATH CPATH C_INCLUDE_PATH' + + 'CPLUS_INCLUDE_PATH INTEL_LICENSE_FILE').split() + for k in env.keys(): + if k.startswith('SPACK_'): + spack_env.append(k) + + spack_env = ' '.join(spack_env) + is_intel = self.spec.satisfies('%intel') + njobs = self.spec.variants['num_jobs'].value + + with open('openloops.cfg', 'w') as f: + f.write('[OpenLoops]\n') + f.write('import_env={0}\n'.format(spack_env)) + f.write('num_jobs = {0}\n'.format(njobs)) + f.write('process_lib_dir = {0}\n'.format(self.spec.prefix.proclib)) + f.write('cc = {0}\n'.format(env['SPACK_CC'])) + f.write('cxx = {0}\n'.format(env['SPACK_CXX'])) + f.write('fortran_compiler = {0}\n'.format(env['SPACK_FC'])) + if self.spec.satisfies('@1.3.1') and not is_intel: + f.write('gfortran_f_flags = -ffree-line-length-none\n') + if self.spec.satisfies('@2.1.1') and not is_intel: + f.write('gfortran_f_flags = -ffree-line-length-none ' + + '-fdollar-ok -mcmodel=medium\n') + + if self.spec.satisfies('@:1.999.999 processes=lcg.coll'): + copy(join_path(os.path.dirname(__file__), 'sft1.coll'), 'lcg.coll') + elif self.spec.satisfies('@2:2.999.999 processes=lcg.coll'): + copy(join_path(os.path.dirname(__file__), 'sft2.coll'), 'lcg.coll') + + def build(self, spec, prefix): + scons = Executable('./scons') + scons('generator=1', 'compile=2') + + def build_processes(self, spec, prefix): + ol = Executable('./openloops') + processes = self.spec.variants['processes'].value + if '+compile_extra' in self.spec: + ce = 'compile_extra=1' + else: + ce = '' + + ol('libinstall', ce, *processes) + + def install(self, spec, prefix): + install_tree(join_path(self.stage.path, 'spack-src'), + self.prefix, + ignore=lambda x: x in ('process_obj', 'process_src')) diff --git a/var/spack/repos/builtin/packages/openloops/sft1.coll b/var/spack/repos/builtin/packages/openloops/sft1.coll new file mode 100644 index 0000000000..1a4bb5d404 --- /dev/null +++ b/var/spack/repos/builtin/packages/openloops/sft1.coll @@ -0,0 +1,26 @@ +ppll +ppllj +pplljj +ppln +pplnj +pplnjj +pptt +ppttj +ppttjj +pptj +pptjj +ppjj +ppjjj +ppjjjj +ppaa +ppaaj +ppaajj +ppw +ppwj +ppwjj +ppz +ppzj +ppzjj +tbw +eevvjj +eett diff --git a/var/spack/repos/builtin/packages/openloops/sft2.coll b/var/spack/repos/builtin/packages/openloops/sft2.coll new file mode 100644 index 0000000000..b7d9b2423c --- /dev/null +++ b/var/spack/repos/builtin/packages/openloops/sft2.coll @@ -0,0 +1,76 @@ +pptttt +pptt +pptt_ew +ppttbb +ppttj +ppttj_ew +pptw +pptj +pptjj +ppjj +ppjj_ew +ppjjj +ppjjj_ew +ppatt +ppattj +pplltt +ppllttj +pplntt +pplnttj +ppwtt +ppwttj +ppllaa +pplllla +ppvvv +ppvvv_ew +ppvvvj +ppaaj +ppaaj2 +pplla +pplla_ew +ppllaj +ppllll +ppllll2 +ppllll2_onlyh +ppllll_ew +ppllllj +ppllllj2 +ppllllj2_onlyh +ppllnnjj_ew +ppllnnjj_vbs +pplnajj +ppvv +ppvv2 +ppvv_ew +ppvvj +ppvvj2 +ppvvj_ew +ppajj +ppajj_ew +ppllj +ppllj_ew +pplljj +pplljj_ew +pplnjj +pplnjj_ew +ppnnjj_ew +ppvj +ppvj_ew +ppwjj +ppwjj_ew +ppzjj +ppzjj_ew +pphtt +pphtt_ew +pphttj +bbhj +heftpphj +heftpphjj +pph2 +pphbb +pphbbj +pphj2 +pphjj_vbf +pphjj_vbf_ew +eett +tbw diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py index 4184e64f02..1d19b1fbfd 100644 --- a/var/spack/repos/builtin/packages/openmpi/package.py +++ b/var/spack/repos/builtin/packages/openmpi/package.py @@ -219,6 +219,10 @@ class Openmpi(AutotoolsPackage): variant('cxx', default=False, description='Enable C++ MPI bindings') variant('cxx_exceptions', default=False, description='Enable C++ Exception support') variant('gpfs', default=True, description='Enable GPFS support (if present)') + variant('singularity', default=False, + description="Build support for the Singularity container") + variant('lustre', default=False, + description="Lustre filesystem library support") # Adding support to build a debug version of OpenMPI that activates # Memchecker, as described here: # @@ -265,6 +269,9 @@ class Openmpi(AutotoolsPackage): depends_on('sqlite', when='+sqlite3@:1.11') depends_on('zlib', when='@3.0.0:') depends_on('valgrind~mpi', when='+memchecker') + # Singularity release 3 works better + depends_on('singularity@3.0.0:', when='+singularity') + depends_on('lustre', when='+lustre') depends_on('opa-psm2', when='fabrics=psm2') depends_on('rdma-core', when='fabrics=verbs') @@ -317,6 +324,8 @@ class Openmpi(AutotoolsPackage): conflicts('schedulers=loadleveler', when='@3.0.0:', msg='The loadleveler scheduler is not supported with ' 'openmpi(>=3.0.0).') + conflicts('+singularity', when='@5:', + msg='singularity support has been dropped in OpenMPI 5') filter_compiler_wrappers('openmpi/*-wrapper-data*', relative_root='share') @@ -528,6 +537,15 @@ class Openmpi(AutotoolsPackage): '--with-valgrind={0}'.format(spec['valgrind'].prefix), ]) + # Singularity container support + if spec.satisfies('+singularity @:4.9'): + singularity_opt = '--with-singularity={0}'.format( + spec['singularity'].prefix) + config_args.append(singularity_opt) + # Lustre filesystem support + if spec.satisfies('+lustre'): + lustre_opt = '--with-lustre={0}'.format(spec['lustre'].prefix) + config_args.append(lustre_opt) # Hwloc support if spec.satisfies('@1.5.2:'): config_args.append('--with-hwloc={0}'.format(spec['hwloc'].prefix)) diff --git a/var/spack/repos/builtin/packages/openslide/package.py b/var/spack/repos/builtin/packages/openslide/package.py index d86af5a1aa..c41da2461b 100644 --- a/var/spack/repos/builtin/packages/openslide/package.py +++ b/var/spack/repos/builtin/packages/openslide/package.py @@ -19,3 +19,6 @@ class Openslide(AutotoolsPackage): depends_on('libtiff') depends_on('libxml2') depends_on('sqlite@3.6:') + depends_on('glib') + depends_on('cairo+pdf') + depends_on('gdk-pixbuf') diff --git a/var/spack/repos/builtin/packages/parallelmergetree/package.py b/var/spack/repos/builtin/packages/parallelmergetree/package.py new file mode 100644 index 0000000000..36069e755f --- /dev/null +++ b/var/spack/repos/builtin/packages/parallelmergetree/package.py @@ -0,0 +1,34 @@ +# 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) + +from spack import * + + +class Parallelmergetree(CMakePackage): + """A multi-runtime implementation of a distributed merge tree + segmentation algorithm. The implementation relies on the framework + BabelFlow, which allows to execute the algorithm on different runtime + systems.""" + + homepage = "https://bitbucket.org/cedmav/parallelmergetree" + git = "https://bitbucket.org/cedmav/parallelmergetree.git" + + maintainers = ['spetruzza'] + + version('develop', + commit='6774ed74fd13b9747ac792978a676ce6e8b05cab', + submodules=True) + + depends_on('babelflow@develop') + + variant("shared", default=True, description="Build ParallelMergeTree as shared libs") + + def cmake_args(self): + args = [ + '-DBUILD_SHARED_LIBS:BOOL={0}'.format( + 'ON' if '+shared' in spec else 'OFF'), + '-DLIBRARY_ONLY=ON' + ] + return args diff --git a/var/spack/repos/builtin/packages/poppler/package.py b/var/spack/repos/builtin/packages/poppler/package.py index 2848c81eb1..6ecab70351 100644 --- a/var/spack/repos/builtin/packages/poppler/package.py +++ b/var/spack/repos/builtin/packages/poppler/package.py @@ -15,6 +15,7 @@ class Poppler(CMakePackage): git = "https://gitlab.freedesktop.org/poppler/poppler.git" version('master', branch='master') + version('0.90.1', sha256='984d82e72e91418d280885298c8bdc855a2fd92665fd52a1345b27235e0c71c4') version('0.87.0', sha256='6f602b9c24c2d05780be93e7306201012e41459f289b8279a27a79431ad4150e') version('0.79.0', sha256='f985a4608fe592d2546d9d37d4182e502ff6b4c42f8db4be0a021a1c369528c8') version('0.77.0', sha256='7267eb4cbccd64a58244b8211603c1c1b6bf32c7f6a4ced2642865346102f36b') diff --git a/var/spack/repos/builtin/packages/precice/package.py b/var/spack/repos/builtin/packages/precice/package.py index 45548275c8..36e7811d81 100644 --- a/var/spack/repos/builtin/packages/precice/package.py +++ b/var/spack/repos/builtin/packages/precice/package.py @@ -19,6 +19,7 @@ class Precice(CMakePackage): maintainers = ['fsimonis', 'MakisH'] version('develop', branch='develop') + version('2.1.0', sha256='1e6432724f70d0c6c05fdd645e0026754edbc547719a35bf1d3c12a779b1d00e') version('2.0.2', sha256='72864480f32696e7b6da94fd404ef5cd6586e2e1640613e46b75f1afac8569ed') version('2.0.1', sha256='e4fe2d2063042761ab325f8c802f88ae088c90862af288ad1a642967d074bd50') version('2.0.0', sha256='c8979d366f06e35626a8da08a1c589df77ec13972eb524a1ba99a011e245701f') @@ -48,6 +49,7 @@ class Precice(CMakePackage): depends_on('libxml2') depends_on('mpi', when='+mpi') depends_on('petsc@3.6:', when='+petsc') + depends_on('petsc@3.12:', when='+petsc@2.1.0:') # Python 3 support was added in version 2.0 depends_on('python@2.7:2.8', when='@:1.9+python', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/prometheus/package.py b/var/spack/repos/builtin/packages/prometheus/package.py new file mode 100644 index 0000000000..10a9e956c3 --- /dev/null +++ b/var/spack/repos/builtin/packages/prometheus/package.py @@ -0,0 +1,34 @@ +# 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) + +from spack import * + + +class Prometheus(MakefilePackage): + """Prometheus, a Cloud Native Computing Foundation project, is a + systems and service monitoring system.""" + + homepage = "https://prometheus.io/" + url = "https://github.com/prometheus/prometheus/archive/v2.19.2.tar.gz" + + version('2.19.2', sha256='d4e84cae2fed6761bb8a80fcc69b6e0e9f274d19dffc0f38fb5845f11da1bbc3') + version('2.19.1', sha256='b72b9b6bdbae246dcc29ef354d429425eb3c0a6e1596fc8b29b502578a4ce045') + version('2.18.2', sha256='a26c106c97d81506e3a20699145c11ea2cce936427a0e96eb2fd0dc7cd1945ba') + version('2.17.1', sha256='d0b53411ea0295c608634ca7ef1d43fa0f5559e7ad50705bf4d64d052e33ddaf') + version('2.17.0', sha256='b5e508f1c747aaf50dd90a48e5e2a3117fec2e9702d0b1c7f97408b87a073009') + + depends_on('go', type='build') + depends_on('node-js@11.10.1:', type='build') + depends_on('yarn', type='build') + + def build(self, spec, prefix): + make('build', parallel=False) + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install('prometheus', prefix.bin) + install('promtool', prefix.bin) + install('tsdb/tsdb', prefix.bin) + install_tree('documentation', prefix.documentation) diff --git a/var/spack/repos/builtin/packages/protobuf/package.py b/var/spack/repos/builtin/packages/protobuf/package.py index 1cbd94b314..060d345b45 100644 --- a/var/spack/repos/builtin/packages/protobuf/package.py +++ b/var/spack/repos/builtin/packages/protobuf/package.py @@ -12,8 +12,13 @@ class Protobuf(Package): """Google's data interchange format.""" homepage = "https://developers.google.com/protocol-buffers" - url = "https://github.com/protocolbuffers/protobuf/archive/v3.10.1.tar.gz" + url = "https://github.com/protocolbuffers/protobuf/archive/v3.12.2.tar.gz" + version('3.12.2', sha256='bb8ce9ba11eb7bccf080599fe7cad9cc461751c8dd1ba61701c0070d58cde973') + version('3.12.1', sha256='cb9b3f9d625b5739a358268eb3421de11cacd90025f5f7672c3930553eca810e') + version('3.12.0', sha256='946ba5371e423e1220d2cbefc1f65e69a1e81ca5bab62a03d66894172983cfcd') + version('3.11.4', sha256='a79d19dcdf9139fa4b81206e318e33d245c4c9da1ffed21c87288ed4380426f9') + version('3.11.3', sha256='cf754718b0aa945b00550ed7962ddc167167bd922b842199eeb6505e6f344852') version('3.11.2', sha256='e8c7601439dbd4489fe5069c33d374804990a56c2f710e00227ee5d8fd650e67') version('3.11.1', sha256='4f8e805825c53bbc3c9f6b6abc009b5b5679e4702bccfca1121c42ff5ec801c7') version('3.11.0', sha256='6d356a6279cc76d2d5c4dfa6541641264b59eae0bc96b852381361e3400d1f1c') diff --git a/var/spack/repos/builtin/packages/psi4/package.py b/var/spack/repos/builtin/packages/psi4/package.py index 64cb85a5ee..bc2e6db011 100644 --- a/var/spack/repos/builtin/packages/psi4/package.py +++ b/var/spack/repos/builtin/packages/psi4/package.py @@ -51,7 +51,7 @@ class Psi4(CMakePackage): ] @run_after('install') - def filter_compilers(self, spec, prefix): + def filter_compilers(self): """Run after install to tell the configuration files to use the compilers that Spack built the package with. @@ -59,6 +59,9 @@ class Psi4(CMakePackage): Spack's generic cxx. We want it to be bound to whatever compiler it was built with.""" + spec = self.spec + prefix = spec.prefix + kwargs = {'ignore_absent': True, 'backup': False, 'string': True} cc_files = ['bin/psi4-config'] diff --git a/var/spack/repos/builtin/packages/py-argcomplete/package.py b/var/spack/repos/builtin/packages/py-argcomplete/package.py index 6a4ad018bd..f1362da76f 100644 --- a/var/spack/repos/builtin/packages/py-argcomplete/package.py +++ b/var/spack/repos/builtin/packages/py-argcomplete/package.py @@ -9,9 +9,11 @@ from spack import * class PyArgcomplete(PythonPackage): """Bash tab completion for argparse.""" - homepage = "https://pypi.python.org/pypi/argcomplete" - url = "https://pypi.io/packages/source/a/argcomplete/argcomplete-1.1.1.tar.gz" + homepage = "https://github.com/kislyuk/argcomplete" + url = "https://pypi.io/packages/source/a/argcomplete/argcomplete-1.12.0.tar.gz" - version('1.1.1', sha256='cca45b5fe07000994f4f06a0b95bd71f7b51b04f81c3be0b4ea7b666e4f1f084') + version('1.12.0', sha256='2fbe5ed09fd2c1d727d4199feca96569a5b50d44c71b16da9c742201f7cc295c') + version('1.1.1', sha256='cca45b5fe07000994f4f06a0b95bd71f7b51b04f81c3be0b4ea7b666e4f1f084') depends_on('py-setuptools', type='build') + depends_on('py-importlib-metadata@0.23:1.999', when='@1.12: ^python@:3.7', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-astropy-healpix/package.py b/var/spack/repos/builtin/packages/py-astropy-healpix/package.py new file mode 100644 index 0000000000..8dee2f92be --- /dev/null +++ b/var/spack/repos/builtin/packages/py-astropy-healpix/package.py @@ -0,0 +1,21 @@ +# 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) + + +class PyAstropyHealpix(PythonPackage): + """HEALPix (Hierarchical Equal Area isoLatitude Pixelisation) is + an algorithm for pixellizing a sphere that is sometimes used in + Astronomy to store data from all-sky surveys, but the general + algorithm can apply to any field that has to deal with + representing data on a sphere.""" + + homepage = 'https://astropy-healpix.readthedocs.io/en/latest/' + url = 'https://pypi.io/packages/source/a/astropy-healpix/astropy-healpix-0.5.tar.gz' + + version('0.5', sha256='5ae15da796a840f221fb83e25de791e827b6921bc21a365d99bc1a59c7c0cdad') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-astropy@2.0:', type=('build', 'run')) + depends_on('py-numpy@1.11:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-astropy/package.py b/var/spack/repos/builtin/packages/py-astropy/package.py index 1e85cbf070..40009e6d11 100644 --- a/var/spack/repos/builtin/packages/py-astropy/package.py +++ b/var/spack/repos/builtin/packages/py-astropy/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import os class PyAstropy(PythonPackage): @@ -52,6 +53,7 @@ class PyAstropy(PythonPackage): depends_on('py-asdf@2.3:', when='+extras', type=('build', 'run')) depends_on('py-bottleneck', when='+extras', type=('build', 'run')) depends_on('py-pytest', when='+extras', type=('build', 'run')) + depends_on('py-cython', type='build') # System dependencies depends_on('erfa') @@ -59,6 +61,13 @@ class PyAstropy(PythonPackage): depends_on('cfitsio') depends_on('expat') + def patch(self): + # forces the rebuild of files with cython + # avoids issues with PyCode_New() in newer + # versions of python in the distributed + # cython-ized files + os.remove('astropy/cython_version.py') + def build_args(self, spec, prefix): args = [ '--use-system-libraries', diff --git a/var/spack/repos/builtin/packages/py-azure-batch/package.py b/var/spack/repos/builtin/packages/py-azure-batch/package.py new file mode 100644 index 0000000000..b201ec7660 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-batch/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureBatch(PythonPackage): + """Microsoft Azure Batch Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-batch/azure-batch-9.0.0.zip" + + version('9.0.0', sha256='47ca6f50a640915e1cdc5ce3c1307abe5fa3a636236e561119cf62d9df384d84') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-cli-command-modules-nspkg/package.py b/var/spack/repos/builtin/packages/py-azure-cli-command-modules-nspkg/package.py new file mode 100644 index 0000000000..0a40cf2e44 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-cli-command-modules-nspkg/package.py @@ -0,0 +1,16 @@ +# 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) + + +class PyAzureCliCommandModulesNspkg(PythonPackage): + """Microsoft Azure CLI Command Modules Namespace Package.""" + + homepage = "https://github.com/Azure/azure-cli" + url = "https://pypi.io/packages/source/a/azure-cli-command-modules-nspkg/azure-cli-command-modules-nspkg-2.0.3.tar.gz" + + version('2.0.3', sha256='4bd62bf5facb92dd4f89080e75eaee2ea1d3dd4e57a3d2a760ce501cf53f4e7d') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-cli-nspkg@3.0.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-cli-core/package.py b/var/spack/repos/builtin/packages/py-azure-cli-core/package.py new file mode 100644 index 0000000000..07e520c530 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-cli-core/package.py @@ -0,0 +1,39 @@ +# 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) + + +class PyAzureCliCore(PythonPackage): + """Microsoft Azure Command-Line Tools Core Module.""" + + homepage = "https://github.com/Azure/azure-cli" + url = "https://pypi.io/packages/source/a/azure-cli-core/azure-cli-core-2.9.1.tar.gz" + + version('2.9.1', sha256='8618a30f7ea2188506f29801220c06396d731c26e4de92c327e6b0e8cc790db5') + + depends_on('py-setuptools', type='build') + depends_on('py-adal@1.2.3:1.2.999', type=('build', 'run')) + depends_on('py-argcomplete@1.8:1.999', type=('build', 'run')) + depends_on('py-azure-cli-telemetry', type=('build', 'run')) + depends_on('py-colorama@0.4.1:0.4.999', type=('build', 'run')) + depends_on('py-humanfriendly@4.7:8', type=('build', 'run')) + depends_on('py-jmespath', type=('build', 'run')) + depends_on('py-knack@0.7.1', type=('build', 'run')) + depends_on('py-msal@1.0.0:1.0.999', type=('build', 'run')) + depends_on('py-msal-extensions@0.1.3:0.1.999', type=('build', 'run')) + depends_on('py-msrest@0.4.4:', type=('build', 'run')) + depends_on('py-msrestazure@0.6.3:', type=('build', 'run')) + depends_on('py-paramiko@2.0.8:2.999', type=('build', 'run')) + depends_on('py-pyjwt', type=('build', 'run')) + depends_on('py-pyopenssl@17.1.0:', type=('build', 'run')) + depends_on('py-requests@2.22:2.999', type=('build', 'run')) + depends_on('py-six@1.12:1.999', type=('build', 'run')) + depends_on('py-pkginfo@1.5.0.1:', type=('build', 'run')) + depends_on('py-azure-mgmt-resource@10.0.0', type=('build', 'run')) + depends_on('py-azure-mgmt-core@1.0.0', type=('build', 'run')) + depends_on('py-enum34', when='^python@:3.3', type=('build', 'run')) + depends_on('py-ndg-httpsclient', when='^python@:2.7.8', type=('build', 'run')) + depends_on('py-pyasn1', when='^python@:2.7.8', type=('build', 'run')) + depends_on('py-futures', when='^python@:2', type=('build', 'run')) + depends_on('py-mock', type='test') diff --git a/var/spack/repos/builtin/packages/py-azure-cli-nspkg/package.py b/var/spack/repos/builtin/packages/py-azure-cli-nspkg/package.py new file mode 100644 index 0000000000..31fab8f659 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-cli-nspkg/package.py @@ -0,0 +1,16 @@ +# 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) + + +class PyAzureCliNspkg(PythonPackage): + """Microsoft Azure CLI Namespace Package.""" + + homepage = "https://github.com/Azure/azure-cli" + url = "https://pypi.io/packages/source/a/azure-cli-nspkg/azure-cli-nspkg-3.0.4.tar.gz" + + version('3.0.4', sha256='1bde56090f548c6435bd3093995cf88e4c445fb040604df8b5b5f70780d79181') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-nspkg@2.0.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py b/var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py new file mode 100644 index 0000000000..bb379686be --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py @@ -0,0 +1,18 @@ +# 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) + + +class PyAzureCliTelemetry(PythonPackage): + """Microsoft Azure CLI Telemetry Package.""" + + homepage = "https://github.com/Azure/azure-cli" + url = "https://pypi.io/packages/source/a/azure-cli-telemetry/azure-cli-telemetry-1.0.4.tar.gz" + + version('1.0.4', sha256='1f239d544d309c29e827982cc20113eb57037dba16db6cdd2e0283e437e0e577') + + depends_on('py-setuptools', type='build') + depends_on('py-applicationinsights@0.11.1:0.11.999', type=('build', 'run')) + depends_on('py-portalocker@1.2:1.999', type=('build', 'run')) + depends_on('py-mock', type='test') diff --git a/var/spack/repos/builtin/packages/py-azure-cli/package.py b/var/spack/repos/builtin/packages/py-azure-cli/package.py new file mode 100644 index 0000000000..faa09d1cfd --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-cli/package.py @@ -0,0 +1,102 @@ +# 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) + + +class PyAzureCli(PythonPackage): + """Microsoft Azure Command-Line Tools.""" + + homepage = "https://github.com/Azure/azure-cli" + url = "https://pypi.io/packages/source/a/azure-cli/azure-cli-2.9.1.tar.gz" + + version('2.9.1', sha256='749d850f73ea8956ab510288c1061dd7066180a8583081a6d560fdc7ac8314d6') + + depends_on('py-setuptools', type='build') + depends_on('py-antlr4-python3-runtime@4.7.2:4.7.999', type=('build', 'run')) + depends_on('py-azure-batch@9.0:9.999', type=('build', 'run')) + depends_on('py-azure-cli-command-modules-nspkg@2.0:2.999', type=('build', 'run')) + depends_on('py-azure-cli-core@2.9.1', type=('build', 'run')) + depends_on('py-azure-cli-nspkg@3.0.3:3.999', type=('build', 'run')) + depends_on('py-azure-cosmos@3.0.2:3.999', type=('build', 'run')) + depends_on('py-azure-datalake-store@0.0.48:0.0.999', type=('build', 'run')) + depends_on('py-azure-functions-devops-build@0.0.22:0.0.999', type=('build', 'run')) + depends_on('py-azure-graphrbac@0.60.0:0.60.999', type=('build', 'run')) + depends_on('py-azure-keyvault@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-advisor@2.0.1:2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-apimanagement@0.1.0:0.1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-applicationinsights@0.1.1:0.1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-appconfiguration@0.4.0:0.4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-authorization@0.52.0:0.52.999', type=('build', 'run')) + depends_on('py-azure-mgmt-batch@9.0.0:9.0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-batchai@2.0:2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-billing@0.2:0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-botservice@0.2.0:0.2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-cdn@4.1.0rc1', type=('build', 'run')) + depends_on('py-azure-mgmt-cognitiveservices@6.2.0:6.2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-compute@13.0:13.999', type=('build', 'run')) + depends_on('py-azure-mgmt-consumption@2.0:2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-containerinstance@1.4:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-containerregistry@3.0.0rc14', type=('build', 'run')) + depends_on('py-azure-mgmt-containerservice@9.0.1:9.0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-cosmosdb@0.15.0:0.15.999', type=('build', 'run')) + depends_on('py-azure-mgmt-datalake-analytics@0.2.1:0.2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-datalake-store@0.5.0:0.5.999', type=('build', 'run')) + depends_on('py-azure-mgmt-datamigration@0.1.0:0.1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-deploymentmanager@0.2.0:0.2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-devtestlabs@4.0:4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-dns@2.1:2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-eventgrid@3.0.0rc7', type=('build', 'run')) + depends_on('py-azure-mgmt-eventhub@4.0.0:4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-hdinsight@1.5.1:1.5.999', type=('build', 'run')) + depends_on('py-azure-mgmt-imagebuilder@0.4.0:0.4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-iotcentral@3.0.0:3.0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-iothub@0.12.0:0.12.999', type=('build', 'run')) + depends_on('py-azure-mgmt-iothubprovisioningservices@0.2.0:0.2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-keyvault@2.2.0:2.2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-kusto@0.3.0:0.3.999', type=('build', 'run')) + depends_on('py-azure-mgmt-loganalytics@0.7.0:0.7.999', type=('build', 'run')) + depends_on('py-azure-mgmt-managedservices@1.0:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-managementgroups@0.1:0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-maps@0.1.0:0.1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-marketplaceordering@0.1:0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-media@2.1:2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-monitor@0.10.0:0.10.999', type=('build', 'run')) + depends_on('py-azure-mgmt-msi@0.2:0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-netapp@0.8.0:0.8.999', type=('build', 'run')) + depends_on('py-azure-mgmt-network@11.0.0:11.0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-policyinsights@0.5.0:0.5.999', type=('build', 'run')) + depends_on('py-azure-mgmt-privatedns@0.1.0:0.1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-rdbms@2.2.0:2.2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-recoveryservices@0.4.0:0.4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-recoveryservicesbackup@0.6.0:0.6.999', type=('build', 'run')) + depends_on('py-azure-mgmt-redhatopenshift@0.1.0', type=('build', 'run')) + depends_on('py-azure-mgmt-redis@7.0.0:7.0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-relay@0.1.0:0.1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-reservations@0.6.0', type=('build', 'run')) + depends_on('py-azure-mgmt-search@2.0:2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-security@0.4.1:0.4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-servicebus@0.6.0:0.6.999', type=('build', 'run')) + depends_on('py-azure-mgmt-servicefabric@0.4.0:0.4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-signalr@0.4.0:0.4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-sql@0.19.0:0.19.999', type=('build', 'run')) + depends_on('py-azure-mgmt-sqlvirtualmachine@0.5.0:0.5.999', type=('build', 'run')) + depends_on('py-azure-mgmt-storage@11.1.0:11.1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-trafficmanager@0.51.0:0.51.999', type=('build', 'run')) + depends_on('py-azure-mgmt-web@0.47.0:0.47.999', type=('build', 'run')) + depends_on('py-azure-multiapi-storage@0.3.2:0.3.999', type=('build', 'run')) + depends_on('py-azure-loganalytics@0.1.0:0.1.999', type=('build', 'run')) + depends_on('py-azure-storage-common@1.4:1.999', type=('build', 'run')) + depends_on('py-cryptography@2.3.1:2.999', type=('build', 'run')) + depends_on('py-fabric@2.4:2.999', type=('build', 'run')) + depends_on('py-jsmin@2.2.2:2.2.999', type=('build', 'run')) + depends_on('py-pytz@2019.1', type=('build', 'run')) + depends_on('py-scp@0.13.2:0.13.999', type=('build', 'run')) + depends_on('py-sshtunnel@0.1.4:0.1.999', type=('build', 'run')) + depends_on('py-urllib3@1.18:1.999+secure', type=('build', 'run')) + depends_on('py-vsts-cd-manager@1.0.2:1.0.999', type=('build', 'run')) + depends_on('py-websocket-client@0.56.0:0.56.999', type=('build', 'run')) + depends_on('py-xmltodict@0.12:0.999', type=('build', 'run')) + depends_on('py-javaproperties@0.5.1', type=('build', 'run')) + depends_on('py-jsondiff@1.2.0', type=('build', 'run')) + depends_on('py-mock@4.0:4.999', type='test') diff --git a/var/spack/repos/builtin/packages/py-azure-core/package.py b/var/spack/repos/builtin/packages/py-azure-core/package.py index cfe14b0dae..e45bfcabfb 100644 --- a/var/spack/repos/builtin/packages/py-azure-core/package.py +++ b/var/spack/repos/builtin/packages/py-azure-core/package.py @@ -8,8 +8,9 @@ class PyAzureCore(PythonPackage): """Microsoft Azure Core Library for Python.""" homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/core/azure-core" - url = "https://pypi.io/packages/source/a/azure-core/azure-core-1.6.0.zip" + url = "https://pypi.io/packages/source/a/azure-core/azure-core-1.7.0.zip" + version('1.7.0', sha256='a66da240a287f447f9867f54ba09ea235895cec13ea38c5f490ce4eedefdd75c') version('1.6.0', sha256='d10b74e783cff90d56360e61162afdd22276d62dc9467e657ae866449eae7648') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-azure-cosmos/package.py b/var/spack/repos/builtin/packages/py-azure-cosmos/package.py new file mode 100644 index 0000000000..56ed2ae59f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-cosmos/package.py @@ -0,0 +1,23 @@ +# 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) + + +class PyAzureCosmos(PythonPackage): + """Microsoft Azure Cosmos Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-cosmos/azure-cosmos-4.0.0.zip" + + version('4.0.0', sha256='c4e40e0d378fd0c96664f46f1ad08e6c8aaaac31c463726a74aae9eae724442d') + version('3.2.0', sha256='4f77cc558fecffac04377ba758ac4e23f076dc1c54e2cf2515f85bc15cbde5c6', + url='https://pypi.io/packages/source/a/azure-cosmos/azure-cosmos-3.2.0.tar.gz') + + depends_on('py-setuptools', type='build') + depends_on('py-six@1.6:', type=('build', 'run')) + depends_on('py-azure-core@1.0.0:1.999', when='@4:', type=('build', 'run')) + depends_on('py-enum34@1.0.4:', when='@4: ^python@:3.3', type=('build', 'run')) + depends_on('py-azure-nspkg', when='^python@:2', type=('build', 'run')) + depends_on('py-typing', when='@4: ^python@:3.4', type=('build', 'run')) + depends_on('py-requests@2.10.0:', when='@:3', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-datalake-store/package.py b/var/spack/repos/builtin/packages/py-azure-datalake-store/package.py new file mode 100644 index 0000000000..84dc392932 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-datalake-store/package.py @@ -0,0 +1,21 @@ +# 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) + + +class PyAzureDatalakeStore(PythonPackage): + """Azure Data Lake Store Filesystem Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-data-lake-store-python" + url = "https://pypi.io/packages/source/a/azure-datalake-store/azure-datalake-store-0.0.48.tar.gz" + + version('0.0.48', sha256='d27c335783d4add00b3a5f709341e4a8009857440209e15a739a9a96b52386f7') + + depends_on('py-setuptools', type='build') + depends_on('py-cffi', type=('build', 'run')) + depends_on('py-adal@0.4.2:', type=('build', 'run')) + depends_on('py-requests@2.20.0:', type=('build', 'run')) + depends_on('py-pathlib2', when='^python@:3.3', type=('build', 'run')) + depends_on('py-futures', when='^python@:2', type=('build', 'run')) + depends_on('py-azure-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-functions-devops-build/package.py b/var/spack/repos/builtin/packages/py-azure-functions-devops-build/package.py new file mode 100644 index 0000000000..ee70dc2f03 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-functions-devops-build/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureFunctionsDevopsBuild(PythonPackage): + """Python package for integrating Azure Functions with Azure DevOps. + Specifically made for the Azure CLI.""" + + homepage = "https://github.com/Azure/azure-functions-devops-build" + url = "https://pypi.io/packages/source/a/azure-functions-devops-build/azure-functions-devops-build-0.0.22.tar.gz" + + version('0.0.22', sha256='c6341abda6098813f8fa625acd1e925410a17a8a1c7aaabdf975bb7cecb14edf') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest', type=('build', 'run')) + depends_on('py-vsts', type=('build', 'run')) + depends_on('py-jinja2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-graphrbac/package.py b/var/spack/repos/builtin/packages/py-azure-graphrbac/package.py index 60a87b0a92..4cd0dd661f 100644 --- a/var/spack/repos/builtin/packages/py-azure-graphrbac/package.py +++ b/var/spack/repos/builtin/packages/py-azure-graphrbac/package.py @@ -11,6 +11,7 @@ class PyAzureGraphrbac(PythonPackage): url = "https://pypi.io/packages/source/a/azure-graphrbac/azure-graphrbac-0.61.1.zip" version('0.61.1', sha256='53e98ae2ca7c19b349e9e9bb1b6a824aeae8dcfcbe17190d20fe69c0f185b2e2') + version('0.60.0', sha256='d0bb62d8bf8e196b903f3971ba4afa448e4fe14e8394ebfcdd941d84d62ecafe') depends_on('py-setuptools', type='build') depends_on('py-msrest@0.5.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault-certificates/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault-certificates/package.py new file mode 100644 index 0000000000..49ad0b0ea6 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-keyvault-certificates/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureKeyvaultCertificates(PythonPackage): + """Microsoft Azure Key Vault Certificates Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault/azure-keyvault-certificates" + url = "https://pypi.io/packages/source/a/azure-keyvault-certificates/azure-keyvault-certificates-4.1.0.zip" + + version('4.1.0', sha256='544f56480619e1db350f2e7b117b22af778e02174bd6bcb0af9ae00c50353419') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-core@1.2.1:1.999', type=('build', 'run')) + depends_on('py-msrest@0.6.0:', type=('build', 'run')) + depends_on('py-azure-keyvault-nspkg', when='^python@:2', type=('build', 'run')) + depends_on('py-enum34@1.0.4:', when='^python@:3.3', type=('build', 'run')) + depends_on('py-typing', when='^python@:3.4', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault-keys/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault-keys/package.py new file mode 100644 index 0000000000..7fa65939ac --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-keyvault-keys/package.py @@ -0,0 +1,21 @@ +# 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) + + +class PyAzureKeyvaultKeys(PythonPackage): + """Microsoft Azure Key Vault Keys Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault/azure-keyvault-keys" + url = "https://pypi.io/packages/source/a/azure-keyvault-keys/azure-keyvault-keys-4.1.0.zip" + + version('4.1.0', sha256='f9967b4deb48e619f6c40558f69e48978779cc09c8a7fad33d536cfc41cd68f9') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-core@1.2.1:1.999', type=('build', 'run')) + depends_on('py-cryptography@2.1.4:', type=('build', 'run')) + depends_on('py-msrest@0.6.0:', type=('build', 'run')) + depends_on('py-azure-keyvault-nspkg', when='^python@:2', type=('build', 'run')) + depends_on('py-enum34@1.0.4:', when='^python@:3.3', type=('build', 'run')) + depends_on('py-typing', when='^python@:3.4', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault-nspkg/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault-nspkg/package.py new file mode 100644 index 0000000000..16200150de --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-keyvault-nspkg/package.py @@ -0,0 +1,16 @@ +# 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) + + +class PyAzureKeyvaultNspkg(PythonPackage): + """Microsoft Azure Key Vault Namespace Package.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault" + url = "https://pypi.io/packages/source/a/azure-keyvault-nspkg/azure-keyvault-nspkg-1.0.0.zip" + + version('1.0.0', sha256='ac68b88aab9c6caf54a23da2a1d1c718d7520bae5adff04dd0a743228269b641') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-nspkg@3.0.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault-secrets/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault-secrets/package.py new file mode 100644 index 0000000000..cbc91cde3d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-keyvault-secrets/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureKeyvaultSecrets(PythonPackage): + """Microsoft Azure Key Vault Secrets Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault/azure-keyvault-secrets" + url = "https://pypi.io/packages/source/a/azure-keyvault-secrets/azure-keyvault-secrets-4.1.0.zip" + + version('4.1.0', sha256='4f3bfac60e025e01dd1c1998b73649d45d706975356c0cf147174cf5a6ddf8be') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-core@1.2.1:1.999', type=('build', 'run')) + depends_on('py-msrest@0.6.0:', type=('build', 'run')) + depends_on('py-azure-keyvault-nspkg', when='^python@:2', type=('build', 'run')) + depends_on('py-enum34@1.0.4:', when='^python@:3.3', type=('build', 'run')) + depends_on('py-typing', when='^python@:3.4', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault/package.py new file mode 100644 index 0000000000..b18a562226 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-keyvault/package.py @@ -0,0 +1,24 @@ +# 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) + + +class PyAzureKeyvault(PythonPackage): + """Microsoft Azure Key Vault Client Libraries for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault/azure-keyvault" + url = "https://pypi.io/packages/source/a/azure-keyvault/azure-keyvault-4.1.0.zip" + + version('4.1.0', sha256='69002a546921a8290eb54d9a3805cfc515c321bc1d4c0bfcfb463620245eca40') + version('1.1.0', sha256='37a8e5f376eb5a304fcd066d414b5d93b987e68f9212b0c41efa37d429aadd49') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-keyvault-certificates@4.1:4.999', when='@4:', type=('build', 'run')) + depends_on('py-azure-keyvault-secrets@4.1:4.999', when='@4:', type=('build', 'run')) + depends_on('py-azure-keyvault-keys@4.1:4.999', when='@4:', type=('build', 'run')) + depends_on('py-msrest@0.5.0:', when='@:1', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', when='@:1', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', when='@:1', type=('build', 'run')) + depends_on('py-cryptography@2.1.4:', when='@:1', type=('build', 'run')) + depends_on('py-requests@2.18.4:', when='@:1', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-loganalytics/package.py b/var/spack/repos/builtin/packages/py-azure-loganalytics/package.py new file mode 100644 index 0000000000..25a4e42317 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-loganalytics/package.py @@ -0,0 +1,17 @@ +# 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) + + +class PyAzureLoganalytics(PythonPackage): + """Microsoft Azure Log Analytics Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-loganalytics/azure-loganalytics-0.1.0.zip" + + version('0.1.0', sha256='3ceb350def677a351f34b0a0d1637df6be0c6fe87ff32a5270b17f540f6da06e') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.4.29:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-advisor/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-advisor/package.py new file mode 100644 index 0000000000..5e19a89dea --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-advisor/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtAdvisor(PythonPackage): + """Microsoft Azure Advisor Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-advisor/azure-mgmt-advisor-4.0.0.zip" + + version('4.0.0', sha256='1ecea7a9dc48c099c06aab68aace7fdbded91a5522932882b1707c29fa055054') + version('2.0.1', sha256='1929d6d5ba49d055fdc806e981b93cf75ea42ba35f78222aaf42d8dcf29d4ef3') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-apimanagement/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-apimanagement/package.py new file mode 100644 index 0000000000..538bfed522 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-apimanagement/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtApimanagement(PythonPackage): + """Microsoft Azure API Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-apimanagement/azure-mgmt-apimanagement-0.2.0.zip" + + version('0.2.0', sha256='790f01c0b32583706b8b8c59667c0f5a51cd70444eee76474e23a598911e1d72') + version('0.1.0', sha256='5d45d3438c6a11bae6bb8d4d5173cdb44b85683695f9f3433f22f45aecc47819') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-appconfiguration/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-appconfiguration/package.py new file mode 100644 index 0000000000..96f7a6dfff --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-appconfiguration/package.py @@ -0,0 +1,21 @@ +# 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) + + +class PyAzureMgmtAppconfiguration(PythonPackage): + """Microsoft Azure App Configuration Management Client Library for Python. + """ + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-appconfiguration/azure-mgmt-appconfiguration-0.5.0.zip" + + version('0.5.0', sha256='211527511d7616a383cc196956eaf2b7ee016f2367d367924b3715f2a41106da') + version('0.4.0', sha256='85f6202ba235fde6be274f3dec1578b90235cf31979abea3fcfa476d0b2ac5b6') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-applicationinsights/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-applicationinsights/package.py new file mode 100644 index 0000000000..b7b4089b9d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-applicationinsights/package.py @@ -0,0 +1,22 @@ +# 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) + + +class PyAzureMgmtApplicationinsights(PythonPackage): + """Microsoft Azure Application Insights Management Client Library for + Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-applicationinsights/azure-mgmt-applicationinsights-0.3.0.zip" + + version('0.3.0', sha256='3c788a54db4fbca1a8850151462ec1471ff59c86b3a10d6082952bbdaa7e6651') + version('0.1.1', sha256='f10229eb9e3e9d0ad20188b8d14d67055e86f3815b43b75eedf96b654bee2a9b') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', when='@0.3:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', when='@0.3:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='@0.3: ^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-authorization/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-authorization/package.py index acc9d25e66..5a5089966c 100644 --- a/var/spack/repos/builtin/packages/py-azure-mgmt-authorization/package.py +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-authorization/package.py @@ -11,6 +11,7 @@ class PyAzureMgmtAuthorization(PythonPackage): url = "https://pypi.io/packages/source/a/azure-mgmt-authorization/azure-mgmt-authorization-0.60.0.zip" version('0.60.0', sha256='31e875a34ac2c5d6fefe77b4a8079a8b2bdbe9edb957e47e8b44222fb212d6a7') + version('0.52.0', sha256='16a618c4357c11e96de376856c396f09e76a56473920cdf7a66735fabaa2a70c') depends_on('py-setuptools', type='build') depends_on('py-msrest@0.5.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-batch/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-batch/package.py new file mode 100644 index 0000000000..f11c869362 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-batch/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtBatch(PythonPackage): + """Microsoft Azure Batch Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-batch/azure-mgmt-batch-9.0.0.zip" + + version('9.0.0', sha256='03417eecfa1fac906e674cb1cb43ed7da27a96277277b091d7c389ba39f6c3fe') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-batchai/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-batchai/package.py new file mode 100644 index 0000000000..ec279bfc50 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-batchai/package.py @@ -0,0 +1,17 @@ +# 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) + + +class PyAzureMgmtBatchai(PythonPackage): + """Microsoft Azure Batch AI Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-batchai/azure-mgmt-batchai-2.0.0.zip" + + version('2.0.0', sha256='f1870b0f97d5001cdb66208e5a236c9717a0ed18b34dbfdb238a828f3ca2a683') + + depends_on('py-setuptools', type='build') + depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-billing/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-billing/package.py new file mode 100644 index 0000000000..a124ac5931 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-billing/package.py @@ -0,0 +1,17 @@ +# 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) + + +class PyAzureMgmtBilling(PythonPackage): + """Microsoft Azure Billing Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-billing/azure-mgmt-billing-0.2.0.zip" + + version('0.2.0', sha256='85f73bb3808a7d0d2543307e8f41e5b90a170ad6eeedd54fe7fcaac61b5b22d2') + + depends_on('py-setuptools', type='build') + depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-botservice/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-botservice/package.py new file mode 100644 index 0000000000..168259dac0 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-botservice/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtBotservice(PythonPackage): + """Microsoft Azure Bot Service Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-botservice/azure-mgmt-botservice-0.2.0.zip" + + version('0.2.0', sha256='b21d8858e69aa16d25b908c40116a1f773c127ec4dd602cbb8542ebf39a55d83') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-cdn/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-cdn/package.py new file mode 100644 index 0000000000..916934c841 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-cdn/package.py @@ -0,0 +1,21 @@ +# 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) + + +class PyAzureMgmtCdn(PythonPackage): + """Microsoft Azure CDN Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-cdn/azure-mgmt-cdn-4.0.0.zip" + + # Release candidate needed for py-azure-cli + version('4.1.0rc1', sha256='853c73d612f5d97387e079c5841a9f1a05702173d0c7c0c59ba7b0fd86380503') + version('4.0.0', sha256='a53e9e09e2711ce9109329538fe9a8a1a5d0809efb231d7df481e55d09c4f02a', preferred=True) + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-cognitiveservices/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-cognitiveservices/package.py new file mode 100644 index 0000000000..067f980c7d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-cognitiveservices/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtCognitiveservices(PythonPackage): + """Microsoft Azure Cognitive Services Management Client Library for + Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-cognitiveservices/azure-mgmt-cognitiveservices-6.2.0.zip" + + version('6.2.0', sha256='93503507ba87c18fe24cd3dfcd54e6e69a4daf7636f38b7537e09cee9a4c13ce') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-compute/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-compute/package.py new file mode 100644 index 0000000000..4b47781334 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-compute/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtCompute(PythonPackage): + """Microsoft Azure Compute Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-compute/azure-mgmt-compute-13.0.0.zip" + + version('13.0.0', sha256='7f331bafcbedf25d65aa42038f7553747dab18d7f10a5af3297192d31c45339e') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-consumption/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-consumption/package.py new file mode 100644 index 0000000000..8974a4500d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-consumption/package.py @@ -0,0 +1,21 @@ +# 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) + + +class PyAzureMgmtConsumption(PythonPackage): + """Microsoft Azure Consumption Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-consumption/azure-mgmt-consumption-3.0.0.zip" + + version('3.0.0', sha256='035d4b74ca7c47e2683bea17105fd9014c27060336fb6255324ac86b27f70f5b') + version('2.0.0', sha256='9a85a89f30f224d261749be20b4616a0eb8948586f7f0f20573b8ea32f265189') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', when='@3:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', when='@3:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='@3: ^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-containerinstance/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-containerinstance/package.py new file mode 100644 index 0000000000..c2ce7566d4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-containerinstance/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtContainerinstance(PythonPackage): + """Microsoft Azure Container Instance Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-containerinstance/azure-mgmt-containerinstance-2.0.0.zip" + + version('2.0.0', sha256='5ad247d186c3c040da7a1d40ad39c9881e99afc58271f673abb602abb0b6b85b') + version('1.5.0', sha256='b055386f04ba8433112b0df7fcbc260b5208828d7bb8c057e760fe596aa7a8cd') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-containerregistry/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-containerregistry/package.py index ac44498035..1a337d7a4a 100644 --- a/var/spack/repos/builtin/packages/py-azure-mgmt-containerregistry/package.py +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-containerregistry/package.py @@ -10,7 +10,9 @@ class PyAzureMgmtContainerregistry(PythonPackage): homepage = "https://github.com/Azure/azure-sdk-for-python" url = "https://pypi.io/packages/source/a/azure-mgmt-containerregistry/azure-mgmt-containerregistry-2.8.0.zip" - version('2.8.0', sha256='b24be1050d54f3158e8be7f6ad677f0c8888dddefd09fb8391ebfc73d40173a4') + # Release candidate needed for py-azure-cli + version('3.0.0rc14', sha256='d23ce93ec5903d00f79f0ac995e16bf47197130239f7f182509add3277b73071') + version('2.8.0', sha256='b24be1050d54f3158e8be7f6ad677f0c8888dddefd09fb8391ebfc73d40173a4', preferred=True) depends_on('py-setuptools', type='build') depends_on('py-msrest@0.5.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-containerservice/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-containerservice/package.py new file mode 100644 index 0000000000..3e592e4a13 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-containerservice/package.py @@ -0,0 +1,21 @@ +# 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) + + +class PyAzureMgmtContainerservice(PythonPackage): + """Microsoft Azure Container Service Management Client Library for Python. + """ + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-containerservice/azure-mgmt-containerservice-9.2.0.zip" + + version('9.2.0', sha256='e7904b60c42a153b64b1604f3c698602686b38787bebdaed6e808cd43b6e5967') + version('9.0.1', sha256='7e4459679bdba4aa67a4b5848e63d94e965a304a7418ef7607eb7a9ce295d886') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-core/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-core/package.py new file mode 100644 index 0000000000..4dfca888f6 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-core/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtCore(PythonPackage): + """Microsoft Azure Management Core Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/core/azure-mgmt-core" + url = "https://pypi.io/packages/source/a/azure-mgmt-core/azure-mgmt-core-1.2.0.zip" + + version('1.2.0', sha256='8fe3b59446438f27e34f7b24ea692a982034d9e734617ca1320eedeee1939998') + version('1.0.0', sha256='510faf49a10daec8346cc086143d8e667ef3b4f8c8022a8e710091027631a55e') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-core@1.7.0:1.999', when='@1.2:', type=('build', 'run')) + depends_on('py-azure-core@1.4.0:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) + depends_on('py-typing', when='^python@:3.4', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-cosmosdb/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-cosmosdb/package.py new file mode 100644 index 0000000000..978d659b9e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-cosmosdb/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtCosmosdb(PythonPackage): + """Microsoft Azure Cosmos DB Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-cosmosdb/azure-mgmt-cosmosdb-0.15.0.zip" + + version('0.15.0', sha256='e70fe9b3d9554c501d46e69f18b73de18d77fbcb98a7a87b965b3dd027cada0f') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-analytics/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-analytics/package.py new file mode 100644 index 0000000000..bcb73cd655 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-analytics/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtDatalakeAnalytics(PythonPackage): + """Microsoft Azure Data Lake Analytics Management Client Library for + Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-datalake-analytics/azure-mgmt-datalake-analytics-0.6.0.zip" + + version('0.6.0', sha256='0d64c4689a67d6138eb9ffbaff2eda2bace7d30b846401673183dcb42714de8f') + version('0.2.1', sha256='4c7960d094f5847d9a456c18b8a3c8e60c428e3080a3905f1c943d81ba6351a4') + + depends_on('py-setuptools', type='build') + depends_on('py-msrestazure@0.4.27:1.999', when='@0.6:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.7:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-store/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-store/package.py new file mode 100644 index 0000000000..994c8a60c1 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-store/package.py @@ -0,0 +1,17 @@ +# 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) + + +class PyAzureMgmtDatalakeStore(PythonPackage): + """Microsoft Azure Data Lake Store Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-datalake-store/azure-mgmt-datalake-store-0.5.0.zip" + + version('0.5.0', sha256='9376d35495661d19f8acc5604f67b0bc59493b1835bbc480f9a1952f90017a4c') + + depends_on('py-setuptools', type='build') + depends_on('py-msrestazure@0.4.27:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-datamigration/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-datamigration/package.py new file mode 100644 index 0000000000..7eaf2e926b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-datamigration/package.py @@ -0,0 +1,21 @@ +# 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) + + +class PyAzureMgmtDatamigration(PythonPackage): + """Microsoft Azure Data Migration Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-datamigration/azure-mgmt-datamigration-4.0.0.zip" + + version('4.0.0', sha256='1efda568d67af911156591eb308432b5f9a56075b57ac0a5dd9f7aee17d79217') + version('0.1.0', sha256='e754928992743f54d999800a5e0679ee3e91d804d23a25f12c2e6f2f86cd05df') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', when='@4:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', when='@4:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.27:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='@4: ^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-deploymentmanager/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-deploymentmanager/package.py new file mode 100644 index 0000000000..57d08f8805 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-deploymentmanager/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtDeploymentmanager(PythonPackage): + """Microsoft Azure Deployment Manager Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-deploymentmanager/azure-mgmt-deploymentmanager-0.2.0.zip" + + version('0.2.0', sha256='46e342227993fc9acab1dda42f2eb566b522a8c945ab9d0eea56276b46f6d730') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-devtestlabs/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-devtestlabs/package.py new file mode 100644 index 0000000000..10094a24da --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-devtestlabs/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtDevtestlabs(PythonPackage): + """Microsoft Azure DevTestLabs Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-devtestlabs/azure-mgmt-devtestlabs-4.0.0.zip" + + version('4.0.0', sha256='59549c4c4068f26466b1097b574a8e5099fb2cd6c8be0a00395b06d3b29e278d') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-dns/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-dns/package.py new file mode 100644 index 0000000000..ef7bab9ef7 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-dns/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtDns(PythonPackage): + """Microsoft Azure DNS Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-dns/azure-mgmt-dns-3.0.0.zip" + + version('3.0.0', sha256='6ecdf4e67d8eb5db593ec331e6d9f350616e77c31225c91d266605e03e63b37f') + version('2.1.0', sha256='3730b1b3f545a5aa43c0fff07418b362a789eb7d81286e2bed90ffef88bfa5d0') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-eventgrid/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-eventgrid/package.py new file mode 100644 index 0000000000..d1dc0f2264 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-eventgrid/package.py @@ -0,0 +1,21 @@ +# 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) + + +class PyAzureMgmtEventgrid(PythonPackage): + """Microsoft Azure EventGrid Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-eventgrid/azure-mgmt-eventgrid-2.2.0.zip" + + # Release candidate needed for py-azure-cli + version('3.0.0rc7', sha256='68f9eb18b74fa86e07cf4e4d1a2ed16fe549bdd53f21a707b05798616b01a9d4') + version('2.2.0', sha256='c62058923ed20db35b04491cd1ad6a692f337244d05c377ecc14a53c06651cc3', preferred=True) + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-eventhub/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-eventhub/package.py new file mode 100644 index 0000000000..bd25960c8c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-eventhub/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtEventhub(PythonPackage): + """Microsoft Azure EventHub Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-eventhub/azure-mgmt-eventhub-4.0.0.zip" + + version('4.0.0', sha256='65223196cf132899656c2f9cb71a14c972d99e5ecd815ee050dae1072cb73ae2') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-hdinsight/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-hdinsight/package.py new file mode 100644 index 0000000000..4107d2f68b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-hdinsight/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtHdinsight(PythonPackage): + """Microsoft Azure HDInsight Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-hdinsight/azure-mgmt-hdinsight-1.5.1.zip" + + version('1.5.1', sha256='76b94f3e43fdc6698023d79be731937dc645dc3178dc134854768528ecc0aea3') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-imagebuilder/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-imagebuilder/package.py new file mode 100644 index 0000000000..44e3e311e4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-imagebuilder/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtImagebuilder(PythonPackage): + """Microsoft Azure Image Builder Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-imagebuilder/azure-mgmt-imagebuilder-0.4.0.zip" + + version('0.4.0', sha256='4c9291bf16b40b043637e5e4f15650f71418ac237393e62219cab478a7951733') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-iotcentral/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-iotcentral/package.py new file mode 100644 index 0000000000..80154d6528 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-iotcentral/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtIotcentral(PythonPackage): + """Microsoft Azure IoTCentral Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-iotcentral/azure-mgmt-iotcentral-3.1.0.zip" + + version('3.1.0', sha256='c175f6642be514ad0efd3dc03d09e50d923596fd9e634381793dcc46bb8a57c7') + version('3.0.0', sha256='f6dacf442ccae2f18f1082e80bcbdcaa8c0efa2ba92b48c5db6ee01d37240047') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-iothub/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-iothub/package.py new file mode 100644 index 0000000000..a1954a9751 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-iothub/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtIothub(PythonPackage): + """Microsoft Azure IoTHub Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-iothub/azure-mgmt-iothub-0.12.0.zip" + + version('0.12.0', sha256='da20ee2b9b9a2c2f89be9037c3ee5421152e7f6d718eafbf50a91dbf0a07ffa0') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-iothubprovisioningservices/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-iothubprovisioningservices/package.py new file mode 100644 index 0000000000..37845cee5d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-iothubprovisioningservices/package.py @@ -0,0 +1,18 @@ +# 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) + + +class PyAzureMgmtIothubprovisioningservices(PythonPackage): + """Microsoft Azure IoTHub Provisioning Services Client Library for Python. + """ + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-iothubprovisioningservices/azure-mgmt-iothubprovisioningservices-0.2.0.zip" + + version('0.2.0', sha256='8c37acfd1c33aba845f2e0302ef7266cad31cba503cc990a48684659acb7b91d') + + depends_on('py-setuptools', type='build') + depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-kusto/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-kusto/package.py new file mode 100644 index 0000000000..faadc899cf --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-kusto/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtKusto(PythonPackage): + """Microsoft Azure Kusto Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-kusto/azure-mgmt-kusto-0.9.0.zip" + + version('0.9.0', sha256='9210db89fa18ee8ed53339cd63bbe6fe1d9624cd793b54b7451ddbda8ae92ef3') + version('0.3.0', sha256='9eb8b7781fd4410ee9e207cd0c3983baf9e58414b5b4a18849d09856e36bacde') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-loganalytics/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-loganalytics/package.py new file mode 100644 index 0000000000..925db35fa1 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-loganalytics/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtLoganalytics(PythonPackage): + """Microsoft Azure Log Analytics Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-loganalytics/azure-mgmt-loganalytics-0.7.0.zip" + + version('0.7.0', sha256='50fb7f714685d170ce9607e3c30488e194015845ef7f0a717b80609837a6c2a2') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-managedservices/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-managedservices/package.py new file mode 100644 index 0000000000..d7ac227ef3 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-managedservices/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtManagedservices(PythonPackage): + """Microsoft Azure Managed Services Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-managedservices/azure-mgmt-managedservices-1.0.0.zip" + + version('1.0.0', sha256='fed8399fc6773aada37c1d0496a46f59410d77c9494d0ca5967c531c3376ad19') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-managementgroups/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-managementgroups/package.py new file mode 100644 index 0000000000..6ce865aaba --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-managementgroups/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtManagementgroups(PythonPackage): + """Microsoft Azure Management Groups Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-managementgroups/azure-mgmt-managementgroups-0.2.0.zip" + + version('0.2.0', sha256='3d5237947458dc94b4a392141174b1c1258d26611241ee104e9006d1d798f682') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-maps/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-maps/package.py new file mode 100644 index 0000000000..8448f6fde4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-maps/package.py @@ -0,0 +1,17 @@ +# 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) + + +class PyAzureMgmtMaps(PythonPackage): + """Microsoft Azure Maps Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-maps/azure-mgmt-maps-0.1.0.zip" + + version('0.1.0', sha256='c120e210bb61768da29de24d28b82f8d42ae24e52396eb6569b499709e22f006') + + depends_on('py-setuptools', type='build') + depends_on('py-msrestazure@0.4.27:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-marketplaceordering/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-marketplaceordering/package.py new file mode 100644 index 0000000000..a09eaf331c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-marketplaceordering/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtMarketplaceordering(PythonPackage): + """Microsoft Azure Market Place Ordering Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-marketplaceordering/azure-mgmt-marketplaceordering-0.2.1.zip" + + version('0.2.1', sha256='dc765cde7ec03efe456438c85c6207c2f77775a8ce8a7adb19b0df5c5dc513c2') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-media/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-media/package.py new file mode 100644 index 0000000000..7ef8dd5201 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-media/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtMedia(PythonPackage): + """Microsoft Azure Media Services Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-media/azure-mgmt-media-2.2.0.zip" + + version('2.2.0', sha256='0adeee9e654a9011f5107def06fea6838864a3514a1e5a9ed495f3a56a687cc7') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-monitor/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-monitor/package.py new file mode 100644 index 0000000000..681dbf6c22 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-monitor/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtMonitor(PythonPackage): + """Microsoft Azure Monitor Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-monitor/azure-mgmt-monitor-0.11.0.zip" + + version('0.11.0', sha256='c6e1fe83dd2ddffa7f6d90c7aa63b3128042396a3893c14dc4816ad28cb15016') + version('0.10.0', sha256='d57d604cc1a7a9ce35eb7cf8a00d4924887c688aa78dc035ea1f80066b297464') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-msi/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-msi/package.py new file mode 100644 index 0000000000..abdbdc640a --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-msi/package.py @@ -0,0 +1,21 @@ +# 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) + + +class PyAzureMgmtMsi(PythonPackage): + """Microsoft Azure MSI Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-msi/azure-mgmt-msi-1.0.0.zip" + + version('1.0.0', sha256='d46f3aab25db3dad520e4055c1d67afe4fcc6d66335c762134e60f82265f8f58') + version('0.2.0', sha256='8622bc9a164169a0113728ebe7fd43a88189708ce6e10d4507247d6907987167') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', when='@1:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', when='@1:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.27:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='@1: ^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-netapp/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-netapp/package.py new file mode 100644 index 0000000000..401b2078c3 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-netapp/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtNetapp(PythonPackage): + """Microsoft Azure NetApp Files Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-netapp/azure-mgmt-netapp-0.11.0.zip" + + version('0.11.0', sha256='621a76b06c97e858d49b68953e66eb718ac24f91aa6bf090f32a335a38f02305') + version('0.8.0', sha256='67df7c7391c2179423a95927a639492c3a177bff8f3a80e4b2d666a86e2d6f6d') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-network/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-network/package.py index cbc0473e79..549160d7ea 100644 --- a/var/spack/repos/builtin/packages/py-azure-mgmt-network/package.py +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-network/package.py @@ -8,8 +8,9 @@ class PyAzureMgmtNetwork(PythonPackage): """Microsoft Azure Network Management Client Library for Python.""" homepage = "https://github.com/Azure/azure-sdk-for-python" - url = "https://pypi.io/packages/source/a/azure-mgmt-network/azure-mgmt-network-10.2.0.zip" + url = "https://pypi.io/packages/source/a/azure-mgmt-network/azure-mgmt-network-11.0.0.zip" + version('11.0.0', sha256='7fdfc631c660cb173eee88abbb7b8be7742f91b522be6017867f217409cd69bc') version('10.2.0', sha256='d50c74cdc1c9be6861ddef9adffd3b05afc5a5092baf0209eea30f4439cba2d9') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-policyinsights/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-policyinsights/package.py new file mode 100644 index 0000000000..c0532b307a --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-policyinsights/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtPolicyinsights(PythonPackage): + """Microsoft Azure Policy Insights Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-policyinsights/azure-mgmt-policyinsights-0.5.0.zip" + + version('0.5.0', sha256='ed229e3845c477e88dde413825d4fba0d38b3a5ffab4e694c7d0da995f3db0f3') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-privatedns/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-privatedns/package.py new file mode 100644 index 0000000000..5aa65aec57 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-privatedns/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtPrivatedns(PythonPackage): + """Microsoft Azure DNS Private Zones Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-privatedns/azure-mgmt-privatedns-0.1.0.zip" + + version('0.1.0', sha256='d29cfd8cec806e06673d9382d3f5766fc65d9a9de75b424705094a34a7db8d23') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-rdbms/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-rdbms/package.py new file mode 100644 index 0000000000..c375a82622 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-rdbms/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtRdbms(PythonPackage): + """Microsoft Azure RDBMS Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-rdbms/azure-mgmt-rdbms-2.2.0.zip" + + version('2.2.0', sha256='f93344897a9bfa6ebc57dd0c10ad79602ff7965c322c65115e3f4b8584bbe1c7') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservices/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservices/package.py new file mode 100644 index 0000000000..67a5987b8f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservices/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtRecoveryservices(PythonPackage): + """Microsoft Azure Recovery Services Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-recoveryservices/azure-mgmt-recoveryservices-0.5.0.zip" + + version('0.5.0', sha256='3c90e6b2e358dbe6d5c6d7204955bdf52c3e977c6f8b727cbbb8811427d7fd52') + version('0.4.0', sha256='e1e794760232239f8a9328d5de1740565ff70d1612a2921c9609746ba5671e6c') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservicesbackup/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservicesbackup/package.py new file mode 100644 index 0000000000..96b755acef --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservicesbackup/package.py @@ -0,0 +1,21 @@ +# 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) + + +class PyAzureMgmtRecoveryservicesbackup(PythonPackage): + """Microsoft Azure Recovery Services Backup Management Client Library for + Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-recoveryservicesbackup/azure-mgmt-recoveryservicesbackup-0.8.0.zip" + + version('0.8.0', sha256='a0ee89691b21945cc4b892a9194320f50c1cd242d98f00a82d7e3848c28517a5') + version('0.6.0', sha256='4df62479c90a6f93e7689f9d58e0a139899f0407f5e3298d5ce014442599428f') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-redhatopenshift/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-redhatopenshift/package.py new file mode 100644 index 0000000000..6503254cd8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-redhatopenshift/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtRedhatopenshift(PythonPackage): + """Microsoft Azure Red Hat Openshift Management Client Library for Python. + """ + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-redhatopenshift/azure-mgmt-redhatopenshift-0.1.0.zip" + + version('0.1.0', sha256='565afbc63f5283f37c76135174f2ca20dd417da3e24b3fb1e132c4a0e2a2c5bc') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-redis/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-redis/package.py new file mode 100644 index 0000000000..90d0e95241 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-redis/package.py @@ -0,0 +1,21 @@ +# 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) + + +class PyAzureMgmtRedis(PythonPackage): + """Microsoft Azure Redis Cache Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-redis/azure-mgmt-redis-6.0.0.zip" + + # Release candidate needed for py-azure-cli + version('7.0.0rc1', sha256='d3cc259c507b79962495ed00d0a3432a45e4e90a0fb48b49e80d51cdc398dc20') + version('6.0.0', sha256='db999e104edeee3a13a8ceb1881e15196fe03a02635e0e20855eb52c1e2ecca1', preferred=True) + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-relay/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-relay/package.py new file mode 100644 index 0000000000..fee12b519b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-relay/package.py @@ -0,0 +1,21 @@ +# 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) + + +class PyAzureMgmtRelay(PythonPackage): + """Microsoft Azure Relay Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-relay/azure-mgmt-relay-0.2.0.zip" + + version('0.2.0', sha256='a7e8341b2920d1d45bdf73d2b7825c44427d33fb0d820aceb11c94432323bf68') + version('0.1.0', sha256='d9f987cf2998b8a354f331b2a71082c049193f1e1cd345812e14b9b821365acb') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', when='@0.2:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', when='@0.2:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='@0.2: ^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-reservations/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-reservations/package.py new file mode 100644 index 0000000000..b14a6d83dc --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-reservations/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtReservations(PythonPackage): + """Microsoft Azure Reservations Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-reservations/azure-mgmt-reservations-0.7.0.zip" + + version('0.7.0', sha256='f65c1985a47e0ac55e7d5d9cc1bd5e95335a111566edc289d460aa2bc8f80991') + version('0.6.0', sha256='83a9a70d6fd78b8b3e92ca64bbc1fde8d1bc5e2efea54076052c51c946b4cc9b') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-search/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-search/package.py new file mode 100644 index 0000000000..42e7eae43d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-search/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtSearch(PythonPackage): + """Microsoft Azure Search Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-search/azure-mgmt-search-2.1.0.zip" + + version('2.1.0', sha256='92a40a1a7a9e3a82b6fa302042799e8d5a67d3996c20835af72afc14f1610501') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-security/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-security/package.py new file mode 100644 index 0000000000..27778ebcba --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-security/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtSecurity(PythonPackage): + """Microsoft Azure Security Center Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-security/azure-mgmt-security-0.4.1.zip" + + version('0.4.1', sha256='391c8df5400485049a6c19d50e536304c186bb64fd569eec0c6d01d20220ee21') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-servicebus/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-servicebus/package.py new file mode 100644 index 0000000000..22fba6dcf8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-servicebus/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtServicebus(PythonPackage): + """Microsoft Azure Service Bus Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-servicebus/azure-mgmt-servicebus-0.6.0.zip" + + version('0.6.0', sha256='f20920b8fb119ef4abeda4d2dac765a4fc48cd0bcf30c27f8c4cc6d890bc08b1') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-servicefabric/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-servicefabric/package.py new file mode 100644 index 0000000000..519f7c632f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-servicefabric/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtServicefabric(PythonPackage): + """Microsoft Azure Service Fabric Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-servicefabric/azure-mgmt-servicefabric-0.4.0.zip" + + version('0.4.0', sha256='a2cbd2797e796a550a93d37229b2ded22765f50166730a63c8e20a27677e28f4') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-signalr/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-signalr/package.py new file mode 100644 index 0000000000..298f1b7b05 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-signalr/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtSignalr(PythonPackage): + """Microsoft Azure SignalR Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-signalr/azure-mgmt-signalr-0.4.0.zip" + + version('0.4.0', sha256='6503ddda9d6f4b634dfeb8eb4bcd14ede5e0900585f6c83bf9010cf82215c126') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-sql/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-sql/package.py new file mode 100644 index 0000000000..8bfe3781bb --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-sql/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtSql(PythonPackage): + """Microsoft Azure SQL Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-sql/azure-mgmt-sql-0.19.0.zip" + + version('0.19.0', sha256='694649d4c9c5f89e543f23ec10e450b6382b2f1bc5843ef266cfc302276038c6') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-sqlvirtualmachine/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-sqlvirtualmachine/package.py new file mode 100644 index 0000000000..03565edb89 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-sqlvirtualmachine/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtSqlvirtualmachine(PythonPackage): + """Microsoft Azure SQL Virtual Machine Management Client Library for + Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-sqlvirtualmachine/azure-mgmt-sqlvirtualmachine-0.5.0.zip" + + version('0.5.0', sha256='b5a9423512a7b12844ac014366a1d53c81017a14f39676beedf004a532aa2aad') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-storage/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-storage/package.py index c2dd7d68f5..f53822ef94 100644 --- a/var/spack/repos/builtin/packages/py-azure-mgmt-storage/package.py +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-storage/package.py @@ -8,8 +8,9 @@ class PyAzureMgmtStorage(PythonPackage): """Microsoft Azure Storage Management Client Library for Python.""" homepage = "https://github.com/Azure/azure-sdk-for-python" - url = "https://pypi.io/packages/source/a/azure-mgmt-storage/azure-mgmt-storage-11.0.0.zip" + url = "https://pypi.io/packages/source/a/azure-mgmt-storage/azure-mgmt-storage-11.1.0.zip" + version('11.1.0', sha256='ef23587c1b6dc0866ebf0e91e83ba05d7f7e4fea7951b704781b9cd9f5f27f1c') version('11.0.0', sha256='f9791c2a84eee0a55bbf757632a2a4d1e102db958e75422d5e0e7306041129b8') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-trafficmanager/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-trafficmanager/package.py new file mode 100644 index 0000000000..fa6dc2c756 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-trafficmanager/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtTrafficmanager(PythonPackage): + """Microsoft Azure Traffic Manager Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-trafficmanager/azure-mgmt-trafficmanager-0.51.0.zip" + + version('0.51.0', sha256='fc8ae77022cfe52fda4379a2f31e0b857574d536e41291a7b569b5c0f4104186') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-web/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-web/package.py new file mode 100644 index 0000000000..b4d7f2ba45 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-web/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtWeb(PythonPackage): + """Microsoft Azure Web Apps Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-web/azure-mgmt-web-0.47.0.zip" + + version('0.47.0', sha256='789a328e2a60df48a82452ca6fbc1a7b4adf3c38d4701d278efe4e81cf21cce8') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-multiapi-storage/package.py b/var/spack/repos/builtin/packages/py-azure-multiapi-storage/package.py new file mode 100644 index 0000000000..5d5a8442b5 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-multiapi-storage/package.py @@ -0,0 +1,23 @@ +# 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) + + +class PyAzureMultiapiStorage(PythonPackage): + """Microsoft Azure Storage Client Library for Python with multi API + version support.""" + + homepage = "https://github.com/Azure/azure-multiapi-storage-python" + url = "https://pypi.io/packages/source/a/azure-multiapi-storage/azure-multiapi-storage-0.3.5.tar.gz" + + version('0.3.5', sha256='71c238c785786a159b3ffd587a5e7fa1d9a517b66b592ae277fed73a9fbfa2b0') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-common', type=('build', 'run')) + depends_on('py-cryptography', type=('build', 'run')) + depends_on('py-python-dateutil', type=('build', 'run')) + depends_on('py-requests', type=('build', 'run')) + depends_on('py-azure-core', type=('build', 'run')) + depends_on('py-futures', when='^python@:2', type=('build', 'run')) + depends_on('py-azure-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-storage-common/package.py b/var/spack/repos/builtin/packages/py-azure-storage-common/package.py new file mode 100644 index 0000000000..70902f28d9 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-storage-common/package.py @@ -0,0 +1,21 @@ +# 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) + + +class PyAzureStorageCommon(PythonPackage): + """Microsoft Azure Storage Common Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-storage-python" + url = "https://pypi.io/packages/source/a/azure-storage-common/azure-storage-common-2.1.0.tar.gz" + + version('2.1.0', sha256='ccedef5c67227bc4d6670ffd37cec18fb529a1b7c3a5e53e4096eb0cf23dc73f') + version('1.4.2', sha256='4ec87c7537d457ec95252e0e46477e2c1ccf33774ffefd05d8544682cb0ae401') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-common@1.1.5:', type=('build', 'run')) + depends_on('py-cryptography', type=('build', 'run')) + depends_on('py-python-dateutil', type=('build', 'run')) + depends_on('py-requests', type=('build', 'run')) + depends_on('py-azure-storage-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-storage-nspkg/package.py b/var/spack/repos/builtin/packages/py-azure-storage-nspkg/package.py new file mode 100644 index 0000000000..da8878813f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-storage-nspkg/package.py @@ -0,0 +1,16 @@ +# 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) + + +class PyAzureStorageNspkg(PythonPackage): + """Microsoft Azure Storage Namespace Package.""" + + homepage = "https://github.com/Azure/azure-storage-python" + url = "https://pypi.io/packages/source/a/azure-storage-nspkg/azure-storage-nspkg-3.1.0.tar.gz" + + version('3.1.0', sha256='6f3bbe8652d5f542767d8433e7f96b8df7f518774055ac7c92ed7ca85f653811') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-nspkg@2.0.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-boto/package.py b/var/spack/repos/builtin/packages/py-boto/package.py new file mode 100644 index 0000000000..005ba180ed --- /dev/null +++ b/var/spack/repos/builtin/packages/py-boto/package.py @@ -0,0 +1,19 @@ +# 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) + +from spack import * + + +class PyBoto(PythonPackage): + """Boto is a Python package that provides interfaces to + Amazon Web Services.""" + + homepage = "https://github.com/boto/boto" + url = "https://github.com/boto/boto/archive/2.49.0.tar.gz" + + version('2.49.0', sha256='3dbefd4f4542f85a323d4f54601f31ed4d362fc87945245f32e4a85029513314') + + depends_on('python@2.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-chainmap/package.py b/var/spack/repos/builtin/packages/py-chainmap/package.py new file mode 100644 index 0000000000..f68782e7b4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-chainmap/package.py @@ -0,0 +1,22 @@ +# 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) + +from spack import * + + +class PyChainmap(PythonPackage): + """Clone/backport of ChainMap for Python 2.6, Python 3.2, and PyPy3 + based on Python 3.2--versions that currently lack their own + ChainMap implementations.""" + + homepage = "https://bitbucket.org/jeunice/chainmap/src/default/" + url = "https://pypi.io/packages/source/c/chainmap/chainmap-1.0.3.tar.gz" + + version('1.0.3', sha256='e42aaa4b3e2f66102a11bfd563069704bfbfd84fdcb517b564effd736bf53cd9') + version('1.0.2', sha256='405da3bce9913bfb33e6e497803b447b60d12ab44031ca357626143e087e0526') + version('1.0.1', sha256='c1cd76c679dd7af982ec5a45788ef4a0dfc20e77f27ccdeca289a5141862ff64') + version('1.0.0', sha256='2e24b2efa3494b16772282812efcd712b1d6b80e1b761a56b1b7cbc8fe0313c4') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-commonmark/package.py b/var/spack/repos/builtin/packages/py-commonmark/package.py new file mode 100644 index 0000000000..0d0e31bc68 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-commonmark/package.py @@ -0,0 +1,19 @@ +# 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) + +from spack import * + + +class PyCommonmark(PythonPackage): + """commonmark.py is a pure Python port of jgm's commonmark.js, a Markdown + parser and renderer for the CommonMark specification, using only native + modules.""" + + homepage = "https://github.com/readthedocs/commonmark.py" + url = "https://pypi.io/packages/source/c/commonmark/commonmark-0.9.0.tar.gz" + + version('0.9.0', sha256='867fc5db078ede373ab811e16b6789e9d033b15ccd7296f370ca52d1ee792ce0') + + depends_on('py-future') diff --git a/var/spack/repos/builtin/packages/py-cython/package.py b/var/spack/repos/builtin/packages/py-cython/package.py index f017a53c08..42282d5152 100644 --- a/var/spack/repos/builtin/packages/py-cython/package.py +++ b/var/spack/repos/builtin/packages/py-cython/package.py @@ -10,7 +10,7 @@ class PyCython(PythonPackage): """The Cython compiler for writing C extensions for the Python language.""" homepage = "https://pypi.python.org/pypi/cython" - url = "https://pypi.io/packages/source/c/cython/Cython-0.29.16.tar.gz" + url = "https://pypi.io/packages/source/c/cython/Cython-0.29.21.tar.gz" import_modules = [ 'cython', 'Cython', 'Cython.Build', 'Cython.Compiler', @@ -20,6 +20,7 @@ class PyCython(PythonPackage): 'Cython.Tempita', 'pyximport', ] + version('0.29.21', sha256='e57acb89bd55943c8d8bf813763d20b9099cc7165c0f16b707631a7654be9cad') version('0.29.16', sha256='232755284f942cbb3b43a06cd85974ef3c970a021aef19b5243c03ee2b08fa05') version('0.29.15', sha256='60d859e1efa5cc80436d58aecd3718ff2e74b987db0518376046adedba97ac30') version('0.29.14', sha256='e4d6bb8703d0319eb04b7319b12ea41580df44fd84d83ccda13ea463c6801414') diff --git a/var/spack/repos/builtin/packages/py-dp-gp-cluster/package.py b/var/spack/repos/builtin/packages/py-dp-gp-cluster/package.py new file mode 100644 index 0000000000..42e56516d1 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-dp-gp-cluster/package.py @@ -0,0 +1,33 @@ +# 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) + +from spack import * +from os import unlink +from glob import glob + + +class PyDpGpCluster(PythonPackage): + """DP_GP_cluster clusters genes by expression over a time course using a + Dirichlet process Gaussian process model.""" + + homepage = "https://github.com/PrincetonUniversity/DP_GP_cluster" + git = "https://github.com/PrincetonUniversity/DP_GP_cluster.git" + + version('2019-09-22', commit='eec12e74219f916aa86e253783905f7b5e30f6f4') + + depends_on('python@2.7:2.8', type=('build', 'run')) + + depends_on('py-cython', type='build') + depends_on('py-gpy@0.8.8:0.9.9', type=('build', 'run')) + depends_on('py-pandas', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-scipy@0.14:', type=('build', 'run')) + depends_on('py-matplotlib', type=('build', 'run')) + depends_on('py-scikit-learn', type=('build', 'run')) + + @run_before('build') + def remove_cython_output(self): + for f in glob('DP_GP/*.c'): + unlink(f) diff --git a/var/spack/repos/builtin/packages/py-fabric/package.py b/var/spack/repos/builtin/packages/py-fabric/package.py new file mode 100644 index 0000000000..b8ccb624bb --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fabric/package.py @@ -0,0 +1,17 @@ +# 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) + + +class PyFabric(PythonPackage): + """High level SSH command execution.""" + + homepage = "http://fabfile.org/" + url = "https://pypi.io/packages/source/f/fabric/fabric-2.5.0.tar.gz" + + version('2.5.0', sha256='24842d7d51556adcabd885ac3cf5e1df73fc622a1708bf3667bf5927576cdfa6') + + depends_on('py-setuptools', type='build') + depends_on('py-invoke@1.3:1.999', type=('build', 'run')) + depends_on('py-paramiko@2.4:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-fortran-language-server/package.py b/var/spack/repos/builtin/packages/py-fortran-language-server/package.py new file mode 100644 index 0000000000..277cf91c9d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fortran-language-server/package.py @@ -0,0 +1,23 @@ +# 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) + +from spack import * + + +class PyFortranLanguageServer(PythonPackage): + """A Fortran implementation of the Language Server Protocol using Python + (2.7+ or 3.0+).""" + + homepage = "https://github.com/hansec/fortran-language-server" + url = "https://github.com/hansec/fortran-language-server/archive/v1.10.3.tar.gz" + + maintainers = ['AndrewGaspar'] + + version('1.11.1', sha256='8f03782dd992d6652a3f2d349115fdad3aa3464fee3fafbbc4f8ecf780166e3c') + + depends_on('python@2.7:', type=('build', 'run')) + depends_on('py-future', type=('build', 'run'), when='^python@:2') + depends_on('py-argparse', type=('build', 'run'), when='^python@:2.6,3.0:3.1') + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-gensim/package.py b/var/spack/repos/builtin/packages/py-gensim/package.py index a08cbbe98d..fe3e4a192c 100644 --- a/var/spack/repos/builtin/packages/py-gensim/package.py +++ b/var/spack/repos/builtin/packages/py-gensim/package.py @@ -16,12 +16,22 @@ class PyGensim(PythonPackage): maintainers = ['adamjstewart'] + version('3.8.3', sha256='786adb0571f75114e9c5f7a31dd2e6eb39a9791f22c8757621545e2ded3ea367') version('3.8.1', sha256='33277fc0a8d7b0c7ce70fcc74bb82ad39f944c009b334856c6e86bf552b1dfdc') version('3.8.0', sha256='ec5de7ff2bfa8692fa96a846bb5aae52f267fc322fbbe303c1f042d258af5766') depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-numpy@1.11.3:', type=('build', 'run')) - depends_on('py-scipy@0.18.1:', type=('build', 'run')) + + depends_on('py-numpy@1.11.3:1.16.1', when='^python@:2.999', type=('build', 'run')) + depends_on('py-numpy@1.11.3:', when='^python@3:', type=('build', 'run')) + + depends_on('py-scipy@0.18.1:1.2.3', when='^python@:2.999', type=('build', 'run')) + depends_on('py-scipy@0.18.1:', when='^python@3:', type=('build', 'run')) + depends_on('py-six@1.5.0:', type=('build', 'run')) - depends_on('py-smart-open@1.8.1:', type=('build', 'run')) + + depends_on('py-smart-open@1.7.0:1.10.9999', when='@3.8.0^python@:2.999', type=('build', 'run')) + depends_on('py-smart-open@1.7.0:', when='@3.8.0^python@3:', type=('build', 'run')) + depends_on('py-smart-open@1.8.1:1.10.9999', when='@3.8.1:^python@:2.999', type=('build', 'run')) + depends_on('py-smart-open@1.8.1:', when='@3.8.1:^python@3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-hieroglyph/package.py b/var/spack/repos/builtin/packages/py-hieroglyph/package.py new file mode 100644 index 0000000000..fa8a0dab06 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-hieroglyph/package.py @@ -0,0 +1,22 @@ +# 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) + +from spack import * + + +class PyHieroglyph(PythonPackage): + """Hieroglyph is an extension for Sphinx which builds HTML + presentations from ReStructured Text documents. + """ + + homepage = "https://github.com/nyergler/hieroglyph" + url = "https://pypi.io/packages/source/h/hieroglyph/hieroglyph-1.0.0.tar.gz" + + version('1.0.0', sha256='8e137f0b1cd60c47b870011089790d3c8ddb74fcf409a75ddf2c7f2516ff337c') + version('master') + + depends_on('py-setuptools') + depends_on('py-sphinx@1.2:') + depends_on('py-six') diff --git a/var/spack/repos/builtin/packages/py-invoke/package.py b/var/spack/repos/builtin/packages/py-invoke/package.py index 28a4bcd2b1..29414d5fbc 100644 --- a/var/spack/repos/builtin/packages/py-invoke/package.py +++ b/var/spack/repos/builtin/packages/py-invoke/package.py @@ -10,8 +10,9 @@ class PyInvoke(PythonPackage): """Pythonic task execution""" homepage = "http://www.pyinvoke.org/" - url = "https://pypi.io/packages/source/i/invoke/invoke-1.2.0.tar.gz" + url = "https://pypi.io/packages/source/i/invoke/invoke-1.4.1.tar.gz" + version('1.4.1', sha256='de3f23bfe669e3db1085789fd859eb8ca8e0c5d9c20811e2407fa042e8a5e15d') version('1.2.0', sha256='dc492f8f17a0746e92081aec3f86ae0b4750bf41607ea2ad87e5a7b5705121b7') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-javaproperties/package.py b/var/spack/repos/builtin/packages/py-javaproperties/package.py new file mode 100644 index 0000000000..89358b1b67 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-javaproperties/package.py @@ -0,0 +1,18 @@ +# 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) + + +class PyJavaproperties(PythonPackage): + """Read & write Java .properties files.""" + + homepage = "https://github.com/jwodder/javaproperties" + url = "https://pypi.io/packages/source/j/javaproperties/javaproperties-0.7.0.tar.gz" + + version('0.7.0', sha256='cf45b39fcbaeced1dfc0b7f2bda16e34fc0349116269e001dada42fd2e145d87') + version('0.5.1', sha256='2b0237b054af4d24c74f54734b7d997ca040209a1820e96fb4a82625f7bd40cf') + + depends_on('python@2.7:2.8,3.4:3.999', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-six@1.4:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-jsmin/package.py b/var/spack/repos/builtin/packages/py-jsmin/package.py new file mode 100644 index 0000000000..b0ace422ee --- /dev/null +++ b/var/spack/repos/builtin/packages/py-jsmin/package.py @@ -0,0 +1,15 @@ +# 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) + + +class PyJsmin(PythonPackage): + """JavaScript minifier.""" + + homepage = "https://github.com/tikitu/jsmin/" + url = "https://pypi.io/packages/source/j/jsmin/jsmin-2.2.2.tar.gz" + + version('2.2.2', sha256='b6df99b2cd1c75d9d342e4335b535789b8da9107ec748212706ef7bbe5c2553b') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-jsondiff/package.py b/var/spack/repos/builtin/packages/py-jsondiff/package.py new file mode 100644 index 0000000000..a6bad6fa93 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-jsondiff/package.py @@ -0,0 +1,15 @@ +# 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) + + +class PyJsondiff(PythonPackage): + """Diff JSON and JSON-like structures in Python.""" + + homepage = "https://github.com/ZoomerAnalytics/jsondiff" + url = "https://pypi.io/packages/source/j/jsondiff/jsondiff-1.2.0.tar.gz" + + version('1.2.0', sha256='34941bc431d10aa15828afe1cbb644977a114e75eef6cc74fb58951312326303') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-knack/package.py b/var/spack/repos/builtin/packages/py-knack/package.py new file mode 100644 index 0000000000..4fb7ce188f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-knack/package.py @@ -0,0 +1,22 @@ +# 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) + + +class PyKnack(PythonPackage): + """A Command-Line Interface framework.""" + + homepage = "https://github.com/microsoft/knack" + url = "https://pypi.io/packages/source/k/knack/knack-0.7.1.tar.gz" + + version('0.7.1', sha256='fcef6040164ebe7d69629e4e089b398c9b980791446496301befcf8381dba0fc') + + depends_on('py-setuptools', type='build') + depends_on('py-argcomplete', type=('build', 'run')) + depends_on('py-colorama', type=('build', 'run')) + depends_on('py-jmespath', type=('build', 'run')) + depends_on('py-pygments', type=('build', 'run')) + depends_on('py-pyyaml', type=('build', 'run')) + depends_on('py-six', type=('build', 'run')) + depends_on('py-tabulate', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-lockfile/package.py b/var/spack/repos/builtin/packages/py-lockfile/package.py index 95b5289b89..9731208b51 100644 --- a/var/spack/repos/builtin/packages/py-lockfile/package.py +++ b/var/spack/repos/builtin/packages/py-lockfile/package.py @@ -23,3 +23,4 @@ class PyLockfile(PythonPackage): version('0.10.2', sha256='9e42252f17d1dd89ee31745e0c4fbe58862c25147eb0ef5295c9cd9bcb4ea2c1') depends_on("py-setuptools", type='build') + depends_on("py-pbr", type='build') diff --git a/var/spack/repos/builtin/packages/py-maestrowf/package.py b/var/spack/repos/builtin/packages/py-maestrowf/package.py index 5fdefea272..a5a6f5f89d 100644 --- a/var/spack/repos/builtin/packages/py-maestrowf/package.py +++ b/var/spack/repos/builtin/packages/py-maestrowf/package.py @@ -11,7 +11,7 @@ class PyMaestrowf(PythonPackage): simulation studies.""" homepage = "https://github.com/LLNL/maestrowf/" - url = "https://github.com/LLNL/maestrowf/archive/v1.1.6.tar.gz" + url = "https://pypi.io/packages/source/m/maestrowf/maestrowf-1.1.8.tar.gz" git = "https://github.com/LLNL/maestrowf/" maintainers = ['FrankD412'] @@ -21,22 +21,28 @@ class PyMaestrowf(PythonPackage): version('master', branch='master') # Pre-release candidates - version('1.1.5dev', sha256='eb3d6f31c233e2cde3b84e15c657002b83ff43d4d6b218b33d023a4f527b9e08') - version('1.1.4dev1.0', sha256='67f59eed6fa69fc71b88a0a769de9f080300497d3c30d3a0893eabd0702bc48e') - version('1.1.4dev1.1', sha256='c8612b5423b44f11e2a7c4fbc31eb741013245870512ee2dbf7367024517528f') + version('1.1.7dev0', sha256='bcef838f13da396dd33cc7f503655de7a8f16ee5fe7b1e2a553044334a03f1f0') # pypi releases - version('1.1.6', sha256='27a4ab9072c5b5e2edf91c192d9fe67f040dd45be7f3e44fd9a998ce4cb1e92d', preferred=True) - version('1.1.4', sha256='2cb0fa6f6281d8618ac79217ea5f4fd8cb24955c4315e873657f96b815f171d5') - version('1.1.2', sha256='ebb45bff54625435bc9f2462e1bdc3b5bdc4d943378c53e7810c11836794c5e0') - version('1.1.1', sha256='a476ad4b40846d7b7f9540d6413df1b42eb655735e8d3c6c07e0baa68e20a8bb') - version('1.1.0', sha256='14e701d6a10ab758215aab6b6809817d9a39416a4f477cd2f2551883fc68477b') - version('1.0.1', sha256='cdd503f0b11db9114405132274b28766044402d1183b5836406ed91d558fd06c') - - depends_on('py-setuptools', type='build') - depends_on('py-pyyaml@4.2b1:', type=('build', 'run')) - depends_on('py-six', type=('build', 'run')) - depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3') - depends_on('py-enum34', type=('build', 'run'), when='@:1.1.3') - depends_on('py-tabulate', type=('build', 'run'), when='@1.1.0:') - depends_on('py-filelock', type=('build', 'run'), when='@1.1.0:') + version('1.1.8', sha256='fa8f8eb8dd3adfb9646d7b0dfd498a00423d2131adbc8dbc8016c4159b2ec1d5', preferred=True) + version('1.1.7', sha256='ff1b6696f30254b105fcadd297ad437c0c666ebc70124b231a713b89f47f4e94') + version('1.1.6', sha256='9812e67d9bd83c452cc99d82fbceb3017b5e36dafdf52eda939748bad4a88756') + version('1.1.4', sha256='6603b93494e8e9d939a4ab40ecdfe7923a85960a8a8bddea4734e230d8144016') + version('1.1.3', sha256='9812e67d9bd83c452cc99d82fbceb3017b5e36dafdf52eda939748bad4a88756') + version('1.1.2', sha256='6998ba2c6ee4ef205c6d47d98cf35d5eaa184e1e859cc41b4120e2aa12c06df3') + version('1.1.1', sha256='689ed42ba1fb214db0594756ff6015e466470103f726a5e5bf4d21c1086ad2b1') + version('1.1.0', sha256='1bfec546831f2ef577d7823bb50dcd12622644dad0d3d761998eafd0905b6977') + version('1.0.1', sha256='dd42ffeac1f0492a576c630b37e5d3593273e59664407f2ebf78d49322d37146') + + depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-pyyaml@4.2b1:', type=('build', 'run')) + depends_on('py-six', type=('build', 'run')) + depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3') + depends_on('py-enum34', type=('build', 'run'), when='@:1.1.3') + depends_on('py-tabulate', type=('build', 'run'), when='@1.1.0:') + depends_on('py-filelock', type=('build', 'run'), when='@1.1.0:') + depends_on('py-coloredlogs', type=('build', 'run'), when='@1.1.7:') + depends_on('py-chainmap', type=('build', 'run'), when='@1.1.7: ^python@:2') + depends_on('py-dill', type=('build', 'run'), when='@1.1.7:') + depends_on('py-jsonschema', type=('build', 'run'), when='@1.1.7:') diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py index a1b4c94e40..f67eaeb1e0 100644 --- a/var/spack/repos/builtin/packages/py-matplotlib/package.py +++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py @@ -13,7 +13,7 @@ class PyMatplotlib(PythonPackage): and interactive visualizations in Python.""" homepage = "https://matplotlib.org/" - url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-3.2.2.tar.gz" + url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-3.3.0.tar.gz" maintainers = ['adamjstewart'] @@ -27,6 +27,7 @@ class PyMatplotlib(PythonPackage): 'matplotlib.testing.jpl_units' ] + version('3.3.0', sha256='24e8db94948019d531ce0bcd637ac24b1c8f6744ac86d2aa0eb6dbaeb1386f82') version('3.2.2', sha256='3d77a6630d093d74cbbfebaa0571d00790966be1ed204e4a8239f5cbd6835c5d') version('3.2.1', sha256='ffe2f9cdcea1086fc414e82f42271ecf1976700b8edd16ca9d376189c6d93aee') version('3.2.0', sha256='651d76daf9168250370d4befb09f79875daa2224a9096d97dfc3ed764c842be4') @@ -77,12 +78,14 @@ class PyMatplotlib(PythonPackage): # https://matplotlib.org/users/installing.html#dependencies # Required dependencies extends('python', ignore=r'bin/nosetests.*$|bin/pbr$') - depends_on('python@2.7:2.8,3.4:', when='@:2') - depends_on('python@3.5:', when='@3:') - depends_on('python@3.6:', when='@3.1:') - depends_on('freetype@2.3:') + depends_on('python@2.7:2.8,3.4:', when='@:2', type=('build', 'link', 'run')) + depends_on('python@3.5:', when='@3:', type=('build', 'link', 'run')) + depends_on('python@3.6:', when='@3.1:', type=('build', 'link', 'run')) + depends_on('freetype@2.3:') # freetype 2.6.1 needed for tests to pass + depends_on('qhull@2015.2:', when='@3.3:') depends_on('libpng@1.2:') depends_on('py-numpy@1.11:', type=('build', 'run')) + depends_on('py-numpy@1.15:', when='@3.3:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) # See #3813 depends_on('py-cycler@0.10:', type=('build', 'run')) depends_on('py-python-dateutil@2.1:', type=('build', 'run')) @@ -90,7 +93,7 @@ class PyMatplotlib(PythonPackage): depends_on('py-pyparsing@2.0.3,2.0.5:2.1.1,2.1.3:2.1.5,2.1.7:', type=('build', 'run')) depends_on('py-pytz', type=('build', 'run'), when='@:2') depends_on('py-subprocess32', type=('build', 'run'), when='^python@:2.7') - depends_on('py-functools32', type=('build', 'run'), when='@:2.0.999 ^python@2.7') + depends_on('py-functools32', type=('build', 'run'), when='@:2.0.999 ^python@:2.7') depends_on('py-backports-functools-lru-cache', type=('build', 'run'), when='@2.1.0:2.999.999 ^python@:2') depends_on('py-six@1.10.0:', type=('build', 'run'), when='@2.0:2.999') @@ -142,7 +145,7 @@ class PyMatplotlib(PythonPackage): patch('freetype-include-path.patch', when='@2.2.2:2.9.9') @run_before('build') - def set_backend(self): + def configure(self): """Set build options with regards to backend GUI libraries.""" backend = self.spec.variants['backend'].value @@ -152,6 +155,13 @@ class PyMatplotlib(PythonPackage): setup.write('[rc_options]\n') setup.write('backend = ' + backend + '\n') + # Starting with version 3.3.0, freetype is downloaded by default + # Force matplotlib to use Spack installations of freetype and qhull + if self.version >= Version('3.3.0'): + setup.write('[libs]\n') + setup.write('system_freetype = True\n') + setup.write('system_qhull = True\n') + def test(self): pytest = which('pytest') pytest() diff --git a/var/spack/repos/builtin/packages/py-msal/package.py b/var/spack/repos/builtin/packages/py-msal/package.py index ade131afc8..7b870ed9d0 100644 --- a/var/spack/repos/builtin/packages/py-msal/package.py +++ b/var/spack/repos/builtin/packages/py-msal/package.py @@ -14,6 +14,7 @@ class PyMsal(PythonPackage): url = "https://pypi.io/packages/source/m/msal/msal-1.3.0.tar.gz" version('1.3.0', sha256='5442a3a9d006506e653d3c4daff40538bdf067bf07b6b73b32d1b231d5e77a92') + version('1.0.0', sha256='ecbe3f5ac77facad16abf08eb9d8562af3bc7184be5d4d90c9ef4db5bde26340') depends_on('py-setuptools', type='build') depends_on('py-requests@2.0.0:2.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py index f437b43063..65b7e8fcb0 100644 --- a/var/spack/repos/builtin/packages/py-numpy/package.py +++ b/var/spack/repos/builtin/packages/py-numpy/package.py @@ -16,7 +16,7 @@ class PyNumpy(PythonPackage): number capabilities""" homepage = "https://numpy.org/" - url = "https://pypi.io/packages/source/n/numpy/numpy-1.19.0.zip" + url = "https://pypi.io/packages/source/n/numpy/numpy-1.19.1.zip" git = "https://github.com/numpy/numpy.git" maintainers = ['adamjstewart'] @@ -30,6 +30,7 @@ class PyNumpy(PythonPackage): ] version('master', branch='master') + version('1.19.1', sha256='b8456987b637232602ceb4d663cb34106f7eb780e247d51a260b84760fd8f491') version('1.19.0', sha256='76766cc80d6128750075378d3bb7812cf146415bd29b588616f72c943c00d598') version('1.18.5', sha256='34e96e9dae65c4839bd80012023aadd6ee2ccb73ce7fdf3074c62f301e63120b') version('1.18.4', sha256='bbcc85aaf4cd84ba057decaead058f43191cc0e30d6bc5d44fe336dc3d3f4509') @@ -88,6 +89,7 @@ class PyNumpy(PythonPackage): # 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('blas', when='+blas') depends_on('lapack', when='+lapack') diff --git a/var/spack/repos/builtin/packages/py-opt-einsum/package.py b/var/spack/repos/builtin/packages/py-opt-einsum/package.py index 4de5712076..0f430c76f8 100644 --- a/var/spack/repos/builtin/packages/py-opt-einsum/package.py +++ b/var/spack/repos/builtin/packages/py-opt-einsum/package.py @@ -12,9 +12,13 @@ class PyOptEinsum(PythonPackage): homepage = "https://github.com/dgasmith/opt_einsum" url = "https://pypi.io/packages/source/o/opt_einsum/opt_einsum-3.1.0.tar.gz" + version('3.2.1', sha256='83b76a98d18ae6a5cc7a0d88955a7f74881f0e567a0f4c949d24c942753eb998') + version('3.2.0', sha256='738b0a1db1d3084d360081bb64d826f9db06d2df7cc0bf8e2c9356028da1fa31') version('3.1.0', sha256='edfada4b1d0b3b782ace8bc14e80618ff629abf53143e1e6bbf9bd00b11ece77') + version('2.3.2', sha256='d3d464b4da7ef09e444c30e4003a27def37f85ff10ff2671e5f7d7813adac35b') - depends_on('python@3.5:', type=('build', 'run')) + depends_on('python@:2', type=('build', 'run'), when='@2') + depends_on('python@3.5:', type=('build', 'run'), when='@3:') depends_on('py-setuptools', type='build') depends_on('py-numpy@1.7:', type=('build', 'run')) depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-paramiko/package.py b/var/spack/repos/builtin/packages/py-paramiko/package.py index 043b04ed5e..db07fccd09 100644 --- a/var/spack/repos/builtin/packages/py-paramiko/package.py +++ b/var/spack/repos/builtin/packages/py-paramiko/package.py @@ -11,10 +11,14 @@ class PyParamiko(PythonPackage): """SSH2 protocol library""" homepage = "http://www.paramiko.org/" - url = "https://pypi.io/packages/source/p/paramiko/paramiko-2.1.2.tar.gz" + url = "https://pypi.io/packages/source/p/paramiko/paramiko-2.7.1.tar.gz" + version('2.7.1', sha256='920492895db8013f6cc0179293147f830b8c7b21fdfc839b6bad760c27459d9f') version('2.1.2', sha256='5fae49bed35e2e3d45c4f7b0db2d38b9ca626312d91119b3991d0ecf8125e310') - depends_on('py-setuptools', type='build') - depends_on('py-pyasn1@0.1.7:', type=('build', 'run')) - depends_on('py-cryptography@1.1:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-bcrypt@3.1.3:', when='@2.7:', type=('build', 'run')) + depends_on('py-cryptography@1.1:', type=('build', 'run')) + depends_on('py-cryptography@2.5:', when='@2.7:', type=('build', 'run')) + depends_on('py-pyasn1@0.1.7:', when='@:2.1', type=('build', 'run')) + depends_on('py-pynacl@1.0.1:', when='@2.7:', 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 c2f1efd2f9..4876832dcf 100644 --- a/var/spack/repos/builtin/packages/py-protobuf/package.py +++ b/var/spack/repos/builtin/packages/py-protobuf/package.py @@ -20,6 +20,7 @@ class PyProtobuf(PythonPackage): variant('cpp', default=False, description='Enable the cpp implementation') + version('3.12.2', sha256='49ef8ab4c27812a89a76fa894fe7a08f42f2147078392c0dee51d4a444ef6df5') version('3.11.2', sha256='3d7a7d8d20b4e7a8f63f62de2d192cfd8b7a53c56caba7ece95367ca2b80c574') version('3.11.1', sha256='aecdf12ef6dc7fd91713a6da93a86c2f2a8fe54840a3b1670853a2b7402e77c9') version('3.11.0', sha256='97b08853b9bb71512ed52381f05cf2d4179f4234825b505d8f8d2bb9d9429939') diff --git a/var/spack/repos/builtin/packages/py-pygments-pytest/package.py b/var/spack/repos/builtin/packages/py-pygments-pytest/package.py new file mode 100644 index 0000000000..3808bb80b7 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pygments-pytest/package.py @@ -0,0 +1,17 @@ +# 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) + +from spack import * + + +class PyPygmentsPytest(PythonPackage): + """A pygments lexer for pytest output.""" + + homepage = "https://github.com/asottile/pygments-pytest" + url = "https://pypi.io/packages/source/P/pygments-pytest-1.2.0.tar.gz" + + version('1.2.0', sha256='fc48e2fffd6d3c047a61c1db8b88ab069983f50e733fe70a7846098eb28bc955') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pynacl/package.py b/var/spack/repos/builtin/packages/py-pynacl/package.py new file mode 100644 index 0000000000..a428b3756e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pynacl/package.py @@ -0,0 +1,18 @@ +# 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) + + +class PyPynacl(PythonPackage): + """Python binding to the Networking and Cryptography (NaCl) library.""" + + homepage = "https://github.com/pyca/pynacl/" + url = "https://pypi.io/packages/source/P/PyNaCl/PyNaCl-1.4.0.tar.gz" + + version('1.4.0', sha256='54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505') + + depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-six', type=('build', 'run')) + depends_on('py-cffi@1.4.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pysam/package.py b/var/spack/repos/builtin/packages/py-pysam/package.py index 38a2a26b40..5459ef0a16 100644 --- a/var/spack/repos/builtin/packages/py-pysam/package.py +++ b/var/spack/repos/builtin/packages/py-pysam/package.py @@ -25,3 +25,6 @@ class PyPysam(PythonPackage): depends_on('samtools') depends_on('htslib@:1.6', when='@:0.13') + + def setup_build_environment(self, env): + env.set('LDFLAGS', self.spec['curl'].libs.search_flags) diff --git a/var/spack/repos/builtin/packages/py-pyscf/package.py b/var/spack/repos/builtin/packages/py-pyscf/package.py new file mode 100644 index 0000000000..d0c36d5a79 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyscf/package.py @@ -0,0 +1,43 @@ +# 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) + + +from spack import * + + +class PyPyscf(PythonPackage): + """PySCF is a collection of electronic structure programs powered + by Python.""" + + homepage = "https://sunqm.github.io/pyscf/" + git = "https://github.com/pyscf/pyscf" + + maintainers = ['naromero77'] + + version('1.7.3', tag='v1.7.3') + + # dependencies + depends_on('cmake@2.8:', type='build') + depends_on('python@2.6:', type=('build', 'run')) + depends_on('py-numpy@1.8.0:', type=('build', 'run')) + depends_on('py-scipy@0.12:', type=('build', 'run')) + depends_on('py-h5py@2.3.0:', type=('build', 'run')) + depends_on('blas') + depends_on('libcint+coulomb_erf+f12') + depends_on('libxc') + depends_on('xcfun@:2.0.0a2') # PySCF does not support recent version of the xcfun API' + + def setup_build_environment(self, env): + # Tell PSCF where supporting libraries are located." + spec = self.spec + + pyscf_search_dir = [] + pyscf_search_dir.append(spec['blas'].prefix) + pyscf_search_dir.append(spec['libcint'].prefix) + pyscf_search_dir.append(spec['libxc'].prefix) + pyscf_search_dir.append(spec['xcfun'].prefix) + pyscf_search_dir.append(spec['xcfun'].prefix.include.XCFun) + + env.set('PYSCF_INC_DIR', ":".join(pyscf_search_dir)) diff --git a/var/spack/repos/builtin/packages/py-python-docs-theme/package.py b/var/spack/repos/builtin/packages/py-python-docs-theme/package.py new file mode 100644 index 0000000000..4b1b7232b4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-python-docs-theme/package.py @@ -0,0 +1,19 @@ +# 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) + +from spack import * + + +class PyPythonDocsTheme(PythonPackage): + """This is the theme for the Python documentation. + """ + + homepage = "https://docs.python.org/3/" + url = "https://pypi.io/packages/source/p/python-docs-theme/python-docs-theme-2018.7.tar.gz" + + version('2020.1', sha256='29c33ba393bdb9377910116a0c1cc329573a4e040227c58a3293d27928d8262a') + version('2018.7', sha256='018a5bf2a7318c9c9a8346303dac8afc6bc212d92e86561c9b95a3372714155a') + + depends_on('py-setuptools') diff --git a/var/spack/repos/builtin/packages/py-python-json-logger/package.py b/var/spack/repos/builtin/packages/py-python-json-logger/package.py new file mode 100644 index 0000000000..b3aa3efbca --- /dev/null +++ b/var/spack/repos/builtin/packages/py-python-json-logger/package.py @@ -0,0 +1,18 @@ +# 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) + +from spack import * + + +class PyPythonJsonLogger(PythonPackage): + """"A python library adding a json log formatter.""" + + homepage = "https://github.com/madzak/python-json-logger" + url = "https://pypi.io/packages/source/p/python-json-logger/python-json-logger-0.1.11.tar.gz" + + version('0.1.11', sha256='b7a31162f2a01965a5efb94453ce69230ed208468b0bbc7fdfc56e6d8df2e281') + + depends_on('python@2.7:', type=('build', 'run')) + depends_on('py-setuptools') 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 bd8f766624..a016686406 100644 --- a/var/spack/repos/builtin/packages/py-python-swiftclient/package.py +++ b/var/spack/repos/builtin/packages/py-python-swiftclient/package.py @@ -16,6 +16,7 @@ class PyPythonSwiftclient(PythonPackage): import_modules = ['sys', 'setuptools', 'requests'] + version('3.10.0', sha256='66227eaf29a691c70675fb9982022980b92797c273dd5e6dc7e680425e9a3634') version('3.9.0', sha256='4f2097492e4c76e948882fc859bfa033ade09bed72f8e6b328e34a3467d9a377') version('3.8.1', sha256='3a013303643f77a99befa05582dfb93671e1fba1aed9f4a517418129700aedb8') version('3.8.0', sha256='107a9d5356663365a9f7c0b3a2b55da97a0a9ba7f10da2319b3972481510f33d') diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py index 6775d533fa..c63d539dad 100644 --- a/var/spack/repos/builtin/packages/py-scipy/package.py +++ b/var/spack/repos/builtin/packages/py-scipy/package.py @@ -12,7 +12,7 @@ class PyScipy(PythonPackage): as routines for numerical integration and optimization.""" homepage = "https://www.scipy.org/" - url = "https://pypi.io/packages/source/s/scipy/scipy-1.5.0.tar.gz" + url = "https://pypi.io/packages/source/s/scipy/scipy-1.5.2.tar.gz" maintainers = ['adamjstewart'] install_time_test_callbacks = ['install_test', 'import_module_test'] @@ -30,6 +30,8 @@ class PyScipy(PythonPackage): 'scipy.sparse.linalg.eigen.lobpcg', 'scipy.special._precompute' ] + version('1.5.2', sha256='066c513d90eb3fd7567a9e150828d39111ebd88d3e924cdfc9f8ce19ab6f90c9') + version('1.5.1', sha256='039572f0ca9578a466683558c5bf1e65d442860ec6e13307d528749cfe6d07b8') version('1.5.0', sha256='4ff72877d19b295ee7f7727615ea8238f2d59159df0bdd98f91754be4a2767f0') version('1.4.1', sha256='dee1bbf3a6c8f73b6b218cb28eed8dd13347ea2f87d572ce19b289d6fd3fbc59') version('1.4.0', sha256='31f7cfa93b01507c935c12b535e24812594002a02a56803d7cd063e9920d25e8') diff --git a/var/spack/repos/builtin/packages/py-shroud/package.py b/var/spack/repos/builtin/packages/py-shroud/package.py index 504c992f15..0e66ca1a23 100644 --- a/var/spack/repos/builtin/packages/py-shroud/package.py +++ b/var/spack/repos/builtin/packages/py-shroud/package.py @@ -14,10 +14,11 @@ class PyShroud(PythonPackage): version('develop', branch='develop') version('master', branch='master') + version('0.12.1', tag='v0.12.1') version('0.11.0', tag='v0.11.0') version('0.10.1', tag='v0.10.1') version('0.9.0', tag='v0.9.0') version('0.8.0', tag='v0.8.0') - depends_on("py-setuptools", type='build') + depends_on("py-setuptools", type=('build', 'run')) depends_on("py-pyyaml@4.2b1:", type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-sphinx-gallery/package.py b/var/spack/repos/builtin/packages/py-sphinx-gallery/package.py new file mode 100644 index 0000000000..f96e5a11f4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sphinx-gallery/package.py @@ -0,0 +1,23 @@ +# 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) + +from spack import * + + +class PySphinxGallery(PythonPackage): + """A `Sphinx` extension that builds an HTML version of any Python script + and puts it into an examples gallery. + """ + + homepage = "https://sphinx-gallery.github.io" + url = "https://files.pythonhosted.org/packages/9d/20/79118154e64a5280060b55c7ad025ad16f89b8192a6a9f0ffdbf71717bf0/sphinx-gallery-0.7.0.tar.gz" + + version('0.7.0', sha256='05ead72c947718ab4183c33a598e29743e771dcf75aec84c53048423bd2f4580') + version('0.4.0', sha256='a286cf2eea47ce838a0754ecef617616afb1f40e41e52fe765723464f52e0c2f') + + depends_on('py-setuptools') + depends_on('py-matplotlib') + depends_on('py-pillow') + depends_on('py-sphinx') diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py index 9ba3dbc720..d7820786b0 100644 --- a/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py @@ -14,6 +14,7 @@ class PySphinxcontribBibtex(PythonPackage): import_modules = ['sphinxcontrib', 'sphinxcontrib.bibtex'] + version('1.0.0', sha256='629612b001f86784669d65e662377a482052decfd9a0a17c46860878eef7b9e0') version('0.3.5', sha256='c93e2b4a0d14f0ab726f95f0a33c1675965e9df3ed04839635577b8f978206cd') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-mermaid/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-mermaid/package.py new file mode 100644 index 0000000000..b525971d46 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-mermaid/package.py @@ -0,0 +1,20 @@ +# 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) + +from spack import * + + +class PySphinxcontribMermaid(PythonPackage): + """This extension allows you to embed + `Mermaid <http://knsv.github.io/mermaid/>`_ graphs in your documents, + including general flowcharts, sequence and gantt diagrams.""" + + homepage = "https://github.com/mgaitan/sphinxcontrib-mermaid" + url = "https://files.pythonhosted.org/packages/8e/0a/8a97b65608a63c43a99a9d6a37a5baff853f306e8506bf21ce54bb50d4f3/sphinxcontrib-mermaid-0.4.0.tar.gz" + + version('0.4.0', sha256='0ee45ba45b9575505eacdd6212e4e545213f4f93dfa32c7eeca32720dbc3b468') + version('0.3.1', sha256='649738afc3022d25a742a928f7b4146cf6024b1d8bb49017962713d2de78123c', extension='zip') + + depends_on('py-sphinx@1.7:') diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/package.py new file mode 100644 index 0000000000..191907db4f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/package.py @@ -0,0 +1,22 @@ +# 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) + +from spack import * + + +class PySphinxcontribTrio(PythonPackage): + """This sphinx extension helps you document Python code that uses + async/await, or abstract methods, or context managers, or generators, + or ... you get the idea.""" + + homepage = "https://github.com/python-trio/sphinxcontrib-trio" + url = "https://files.pythonhosted.org/packages/ca/33/ee48d86e30bb3c5d72a47f49b1ebf5c23dd253b04d8d5fc3e6c68407a03e/sphinxcontrib-trio-1.1.2.tar.gz" + + version('1.1.2', sha256='9f1ba9c1d5965b534e85258d8b677dd94e9b1a9a2e918b85ccd42590596b47c0') + version('1.1.0', sha256='d90f46d239ba0556e53d9a110989f98c9eb2cea76ab47937a1f39b62f63fe654') + + depends_on('py-sphinx@1.7:') + + patch('sphinxcontrib-trio.patch', when='@1.1.0') diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/sphinxcontrib-trio.patch b/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/sphinxcontrib-trio.patch new file mode 100644 index 0000000000..49465f4a11 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/sphinxcontrib-trio.patch @@ -0,0 +1,10 @@ +diff -urN a/setup.py b/setup.py +--- a/setup.py 2019-08-01 10:44:29.583879243 +0200 ++++ b/setup.py 2019-08-01 11:57:01.815819059 +0200 +@@ -32,4 +32,5 @@ + "Framework :: Twisted", + "Topic :: Documentation :: Sphinx", + "Topic :: Software Development :: Documentation", +- ]) ++ ], ++ namespace_packages=['sphinxcontrib']) diff --git a/var/spack/repos/builtin/packages/py-sshtunnel/package.py b/var/spack/repos/builtin/packages/py-sshtunnel/package.py new file mode 100644 index 0000000000..c9a13fa06e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sshtunnel/package.py @@ -0,0 +1,16 @@ +# 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) + + +class PySshtunnel(PythonPackage): + """Pure python SSH tunnels.""" + + homepage = "https://github.com/pahaz/sshtunnel" + url = "https://pypi.io/packages/source/s/sshtunnel/sshtunnel-0.1.5.tar.gz" + + version('0.1.5', sha256='c813fdcda8e81c3936ffeac47cb69cfb2d1f5e77ad0de656c6dab56aeebd9249') + + depends_on('py-setuptools', type='build') + depends_on('py-paramiko@1.15.2:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-tensorflow/package.py b/var/spack/repos/builtin/packages/py-tensorflow/package.py index 5c8a10a4a9..7c4a0849c5 100644 --- a/var/spack/repos/builtin/packages/py-tensorflow/package.py +++ b/var/spack/repos/builtin/packages/py-tensorflow/package.py @@ -141,8 +141,9 @@ class PyTensorflow(Package, CudaPackage): depends_on('py-keras-preprocessing@1.1.0:', type=('build', 'run'), when='@2.1:') depends_on('py-keras-preprocessing@1.0.5:', type=('build', 'run'), when='@1.12:') depends_on('py-keras-preprocessing@1.0.3:', type=('build', 'run'), when='@1.11:') - depends_on('py-numpy@1.16.0:1.999', type=('build', 'run'), when='@1.13.2,1.15:') - depends_on('py-numpy@1.14.5:1.999', type=('build', 'run'), when='@1.12.1,1.14.0') + # https://github.com/tensorflow/tensorflow/issues/40688 + depends_on('py-numpy@1.16.0:1.18', type=('build', 'run'), when='@1.13.2,1.15:') + depends_on('py-numpy@1.14.5:1.18', type=('build', 'run'), when='@1.12.1,1.14.0') depends_on('py-numpy@1.13.3:1.14.5', type=('build', 'run'), when='@1.10.0:1.10.1') depends_on('py-numpy@1.13.3:', type=('build', 'run'), when='@1.6:') depends_on('py-numpy@1.12.1:', type=('build', 'run'), when='@1.4:') diff --git a/var/spack/repos/builtin/packages/py-torch/package.py b/var/spack/repos/builtin/packages/py-torch/package.py index 1ffeb81b23..bebf83d3d6 100644 --- a/var/spack/repos/builtin/packages/py-torch/package.py +++ b/var/spack/repos/builtin/packages/py-torch/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import os class PyTorch(PythonPackage, CudaPackage): @@ -68,6 +69,7 @@ class PyTorch(PythonPackage, CudaPackage): variant('cuda', default=True, description='Build with CUDA') variant('cudnn', default=True, description='Enables the cuDNN build') + variant('rocm', default=False, description='Build with ROCm build') variant('magma', default=False, description='Enables the MAGMA build') variant('fbgemm', default=False, description='Enables the FBGEMM build') variant('test', default=False, description='Enables the test build') @@ -112,6 +114,7 @@ class PyTorch(PythonPackage, CudaPackage): conflicts('cuda_arch=none', when='+cuda', msg='Must specify CUDA compute capabilities of your GPU, see ' 'https://developer.nvidia.com/cuda-gpus') + conflicts('+rocm', when='+cuda') # Required dependencies depends_on('cmake@3.5:', type='build') @@ -173,6 +176,9 @@ class PyTorch(PythonPackage, CudaPackage): # Fixes CMake configuration error when XNNPACK is disabled patch('xnnpack.patch', when='@1.5.0:1.5.999') + # Fixes Build error for when ROCm is enable for pytorch-1.5 release + patch('rocm.patch', when='@1.5.0:1.5.999+rocm') + # https://github.com/pytorch/pytorch/pull/37086 # Fixes compilation with Clang 9.0.0 and Apple Clang 11.0.3 patch('https://github.com/pytorch/pytorch/commit/e921cd222a8fbeabf5a3e74e83e0d8dfb01aa8b5.patch', @@ -244,7 +250,9 @@ class PyTorch(PythonPackage, CudaPackage): enable_or_disable('fbgemm') enable_or_disable('test', keyword='BUILD') - + enable_or_disable('rocm') + if '+rocm' in self.spec: + env.set('USE_MKLDNN', 0) if '+miopen' in self.spec: env.set('MIOPEN_LIB_DIR', self.spec['miopen'].libs.directories[0]) env.set('MIOPEN_INCLUDE_DIR', self.spec['miopen'].prefix.include) @@ -297,6 +305,11 @@ class PyTorch(PythonPackage, CudaPackage): enable_or_disable('zstd', newer=True) enable_or_disable('tbb', newer=True) + @run_before('install') + def build_amd(self): + if '+rocm' in self.spec: + python(os.path.join('tools', 'amd_build', 'build_amd.py')) + def install_test(self): with working_dir('test'): python('run_test.py') diff --git a/var/spack/repos/builtin/packages/py-torch/rocm.patch b/var/spack/repos/builtin/packages/py-torch/rocm.patch new file mode 100644 index 0000000000..b50cc7e159 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-torch/rocm.patch @@ -0,0 +1,98 @@ +diff --git a/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h b/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h +index 9cd678dfb4cc7..4630465115c7c 100644 +--- a/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h ++++ b/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h +@@ -67,6 +67,14 @@ namespace at { namespace cuda { + // + // HIP doesn't have + // cuGetErrorString (maps to non-functional hipGetErrorString___) ++// ++// HIP from ROCm 3.5 on renamed hipOccupancyMaxActiveBlocksPerMultiprocessor ++// to hipModuleOccupancyMaxActiveBlocksPerMultiprocessor. ++#if HIP_VERSION < 305 ++#define HIPOCCUPANCYMAXACTIVEBLOCKSPERMULTIPROCESSOR hipOccupancyMaxActiveBlocksPerMultiprocessor ++#else ++#define HIPOCCUPANCYMAXACTIVEBLOCKSPERMULTIPROCESSOR cuOccupancyMaxActiveBlocksPerMultiprocessor ++#endif + + #define AT_FORALL_NVRTC(_) \ + _(nvrtcVersion) \ +@@ -76,7 +84,7 @@ namespace at { namespace cuda { + _(nvrtcGetPTX) \ + _(cuModuleLoadData) \ + _(cuModuleGetFunction) \ +- _(cuOccupancyMaxActiveBlocksPerMultiprocessor) \ ++ _(HIPOCCUPANCYMAXACTIVEBLOCKSPERMULTIPROCESSOR)\ + _(nvrtcGetErrorString) \ + _(nvrtcGetProgramLogSize) \ + _(nvrtcGetProgramLog) \ +diff --git a/aten/src/ATen/native/cuda/SoftMax.cu b/aten/src/ATen/native/cuda/SoftMax.cu +index da1995123ecfc..f935eb4ef3d0e 100644 +--- a/aten/src/ATen/native/cuda/SoftMax.cu ++++ b/aten/src/ATen/native/cuda/SoftMax.cu +@@ -127,8 +127,8 @@ void SpatialSoftMax_getLaunchSizes( + uint32_t block_threads = block.x * block.y; + smem_size = block.x == 1 ? 0 : block_threads * sizeof(accscalar_t); + int max_active_blocks; +-#ifdef __HIP_PLATFORM_HCC__ +- // XXX HIP function signature is not compatible yet. ++#if defined(__HIP_PLATFORM_HCC__) && HIP_VERSION < 305 ++ // HIP function signature is not compatible yet. + uint32_t max_blocks; + cudaOccupancyMaxActiveBlocksPerMultiprocessor(&max_blocks, + k, block_threads, smem_size); +diff --git a/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp b/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp +index 5586e49919727..27315ee475277 100644 +--- a/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp ++++ b/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp +@@ -140,10 +140,10 @@ FusedKernelCUDA::FusedKernelCUDA( + nvrtc().cuModuleGetFunction(&function_, module_, name_.c_str())); + + // Computes max blocks +-#ifdef __HIP_PLATFORM_HCC__ +- // XXX HIP function signature is not compatible yet ++#if defined(__HIP_PLATFORM_HCC__) && HIP_VERSION < 305 ++ // HIP function signature is not compatible yet + uint32_t max_blocks; +- AT_CUDA_DRIVER_CHECK(nvrtc().cuOccupancyMaxActiveBlocksPerMultiprocessor( ++ AT_CUDA_DRIVER_CHECK(nvrtc().hipOccupancyMaxActiveBlocksPerMultiprocessor( + &max_blocks, function_, 128, 0)); + maxBlocks_ = max_blocks; + #else +diff --git a/torch/utils/hipify/cuda_to_hip_mappings.py b/torch/utils/hipify/cuda_to_hip_mappings.py +index 7e21363cbe6af..26f269d92ae38 100644 +--- a/torch/utils/hipify/cuda_to_hip_mappings.py ++++ b/torch/utils/hipify/cuda_to_hip_mappings.py +@@ -2890,7 +2890,7 @@ + ( + "cuOccupancyMaxActiveBlocksPerMultiprocessor", + ( +- "hipOccupancyMaxActiveBlocksPerMultiprocessor", ++ "hipModuleOccupancyMaxActiveBlocksPerMultiprocessor", + CONV_OCCUPANCY, + API_DRIVER, + ), +@@ -2898,7 +2898,7 @@ + ( + "cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", + ( +- "hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", ++ "hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", + CONV_OCCUPANCY, + API_DRIVER, + HIP_UNSUPPORTED, +@@ -2906,12 +2906,12 @@ + ), + ( + "cuOccupancyMaxPotentialBlockSize", +- ("hipOccupancyMaxPotentialBlockSize", CONV_OCCUPANCY, API_DRIVER), ++ ("hipModuleOccupancyMaxPotentialBlockSize", CONV_OCCUPANCY, API_DRIVER), + ), + ( + "cuOccupancyMaxPotentialBlockSizeWithFlags", + ( +- "hipOccupancyMaxPotentialBlockSizeWithFlags", ++ "hipModuleOccupancyMaxPotentialBlockSizeWithFlags", + CONV_OCCUPANCY, + API_DRIVER, + HIP_UNSUPPORTED, diff --git a/var/spack/repos/builtin/packages/py-vsts-cd-manager/package.py b/var/spack/repos/builtin/packages/py-vsts-cd-manager/package.py new file mode 100644 index 0000000000..0e44620e69 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-vsts-cd-manager/package.py @@ -0,0 +1,17 @@ +# 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) + + +class PyVstsCdManager(PythonPackage): + """Python wrapper around some of the VSTS APIs.""" + + homepage = "https://github.com/microsoft/vsts-cd-manager" + url = "https://pypi.io/packages/source/v/vsts-cd-manager/vsts-cd-manager-1.0.2.tar.gz" + + version('1.0.2', sha256='0bb09059cd553e1c206e92ef324cb0dcf92334846d646c44c684f6256b86447b') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.2.0:', type=('build', 'run')) + depends_on('py-mock', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-vsts/package.py b/var/spack/repos/builtin/packages/py-vsts/package.py new file mode 100644 index 0000000000..ed597e3cbd --- /dev/null +++ b/var/spack/repos/builtin/packages/py-vsts/package.py @@ -0,0 +1,16 @@ +# 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) + + +class PyVsts(PythonPackage): + """Python wrapper around the VSTS APIs.""" + + homepage = "https://github.com/Microsoft/vsts-python-api" + url = "https://pypi.io/packages/source/v/vsts/vsts-0.1.25.tar.gz" + + version('0.1.25', sha256='da179160121f5b38be061dbff29cd2b60d5d029b2207102454d77a7114e64f97') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.6.0:0.6.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-websocket-client/package.py b/var/spack/repos/builtin/packages/py-websocket-client/package.py index 75ce5e69cc..c55df5e899 100644 --- a/var/spack/repos/builtin/packages/py-websocket-client/package.py +++ b/var/spack/repos/builtin/packages/py-websocket-client/package.py @@ -11,6 +11,7 @@ class PyWebsocketClient(PythonPackage): url = "https://pypi.io/packages/source/w/websocket_client/websocket_client-0.57.0.tar.gz" version('0.57.0', sha256='d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010') + version('0.56.0', sha256='1fd5520878b68b84b5748bb30e592b10d0a91529d5383f74f4964e72b297fd3a') depends_on('python@2.6:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-yolk3k/package.py b/var/spack/repos/builtin/packages/py-yolk3k/package.py new file mode 100644 index 0000000000..d744f93f94 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-yolk3k/package.py @@ -0,0 +1,22 @@ +# 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) + +from spack import * + + +class PyYolk3k(PythonPackage): + """Yolk is a Python tool for obtaining information about installed Python + packages and querying packages avilable on PyPI (Python Package Index). + Yolk3k is a fork of the original yolk. `yolk3k` add Python 3 support and + adds additional features.""" + + homepage = "https://github.com/myint/yolk" + url = "https://pypi.io/packages/source/y/yolk3k/yolk3k-0.9.tar.gz" + + version('0.9', sha256='cf8731dd0a9f7ef50b5dc253fe0174383e3fed295a653672aa918c059eef86ae') + + depends_on('py-pygments') + depends_on('py-jinja2') + depends_on('py-docutils') diff --git a/var/spack/repos/builtin/packages/qhull/package.py b/var/spack/repos/builtin/packages/qhull/package.py index d5ec542ce6..884499fd36 100644 --- a/var/spack/repos/builtin/packages/qhull/package.py +++ b/var/spack/repos/builtin/packages/qhull/package.py @@ -18,12 +18,21 @@ class Qhull(CMakePackage): homepage = "http://www.qhull.org" + version('2020.1', sha256='1ac92a5538f61e297c72aebe4d4ffd731ceb3e6045d6d15faf1c212713798df4', + url="http://www.qhull.org/download/qhull-2020-src-8.0.0.tgz") + version('2019.1', sha256='2b7990558c363076261564f61b74db4d0d73b71869755108a469038c07dc43fb', + url="http://www.qhull.org/download/qhull-2019-src-7.3.2.tgz") version('2015.2', sha256='78b010925c3b577adc3d58278787d7df08f7c8fb02c3490e375eab91bb58a436', url="http://www.qhull.org/download/qhull-2015-src-7.2.0.tgz") - version('2012.1', sha256='a35ecaa610550b7f05c3ce373d89c30cf74b059a69880f03080c556daebcff88', url="http://www.qhull.org/download/qhull-2012.1-src.tgz") patch('qhull-unused-intel-17.02.patch', when='@2015.2') - depends_on('cmake@2.6:', type='build') + depends_on('cmake@3.0:', type='build') + + def flag_handler(self, name, flags): + # See https://github.com/qhull/qhull/issues/65 + if name == 'cxxflags' and self.version == Version('2020.1'): + flags.append(self.compiler.cxx11_flag) + return (flags, None, None) diff --git a/var/spack/repos/builtin/packages/qt/package.py b/var/spack/repos/builtin/packages/qt/package.py index 7e016846ab..6081911e4a 100644 --- a/var/spack/repos/builtin/packages/qt/package.py +++ b/var/spack/repos/builtin/packages/qt/package.py @@ -158,6 +158,7 @@ class Qt(Package): # Non-macOS dependencies and special macOS constraints if MACOS_VERSION is None: depends_on("fontconfig", when='freetype=spack') + depends_on("libsm") depends_on("libx11") depends_on("libxcb") depends_on("libxkbcommon") @@ -177,6 +178,7 @@ class Qt(Package): # Mapping for compilers/systems in the QT 'mkspecs' compiler_mapping = {'intel': ('icc',), + 'apple-clang': ('clang-libc++', 'clang'), 'clang': ('clang-libc++', 'clang'), 'gcc': ('g++',)} platform_mapping = {'darwin': 'macx'} diff --git a/var/spack/repos/builtin/packages/quicksilver/package.py b/var/spack/repos/builtin/packages/quicksilver/package.py index ceef9e1bfb..e39a82337d 100644 --- a/var/spack/repos/builtin/packages/quicksilver/package.py +++ b/var/spack/repos/builtin/packages/quicksilver/package.py @@ -14,12 +14,13 @@ class Quicksilver(MakefilePackage): tags = ['proxy-app'] homepage = "https://codesign.llnl.gov/quicksilver.php" - url = "https://github.com/LLNL/Quicksilver" + url = "https://github.com/LLNL/Quicksilver/tarball/V1.0" git = "https://github.com/LLNL/Quicksilver.git" maintainers = ['richards12'] version('master', branch='master') + version('1.0', sha256='83371603b169ec75e41fb358881b7bd498e83597cd251ff9e5c35769ef22c59a') variant('openmp', default=True, description='Build with OpenMP support') variant('mpi', default=True, description='Build with MPI support') diff --git a/var/spack/repos/builtin/packages/r-adegraphics/package.py b/var/spack/repos/builtin/packages/r-adegraphics/package.py new file mode 100644 index 0000000000..d007d6cb97 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-adegraphics/package.py @@ -0,0 +1,29 @@ +# 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) + +from spack import * + + +class RAdegraphics(RPackage): + """adegraphics: An S4 Lattice-Based Package for the Representation of + Multivariate Data. + + Graphical functionalities for the representation of multivariate data. + It is a complete re-implementation of the functions available in the 'ade4' + package.""" + + homepage = "http://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" + + version('1.0-15', sha256='87bbcd072e9a898955f5ede4315e82365086a50a2887bf5bd2e94bbb4d3f678a') + + depends_on('r@3.0.2:', type=('build', 'run')) + depends_on('r-ade4@1.7-13:', type=('build', 'run')) + depends_on('r-kernsmooth', type=('build', 'run')) + depends_on('r-lattice', type=('build', 'run')) + depends_on('r-latticeextra', type=('build', 'run')) + depends_on('r-rcolorbrewer', type=('build', 'run')) + depends_on('r-sp@1.1-1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-adephylo/package.py b/var/spack/repos/builtin/packages/r-adephylo/package.py new file mode 100644 index 0000000000..3527a2fb6f --- /dev/null +++ b/var/spack/repos/builtin/packages/r-adephylo/package.py @@ -0,0 +1,24 @@ +# 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) + +from spack import * + + +class RAdephylo(RPackage): + """adephylo: Exploratory Analyses for the Phylogenetic Comparative Method. + + Multivariate tools to analyze comparative data, i.e. a phylogeny and + some traits measured for each taxa.""" + + homepage = "https://cloud.r-project.org/package=adephylo" + url = "https://cloud.r-project.org/src/contrib/adephylo_1.1-11.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/adephylo" + + version('1.1-11', sha256='154bf2645eac4493b85877933b9445442524ca4891aefe4e80c294c398cff61a') + + depends_on('r-ade4@1.7-10:', type=('build', 'run')) + depends_on('r-phylobase', type=('build', 'run')) + depends_on('r-ape', type=('build', 'run')) + depends_on('r-adegenet', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-adespatial/package.py b/var/spack/repos/builtin/packages/r-adespatial/package.py new file mode 100644 index 0000000000..aeaaae67f5 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-adespatial/package.py @@ -0,0 +1,32 @@ +# 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) + +from spack import * + + +class RAdespatial(RPackage): + """adespatial: Multivariate Multiscale Spatial Analysis. + + Tools for the multiscale spatial analysis of multivariate data. Several + methods are based on the use of a spatial weighting matrix and its + eigenvector decomposition (Moran's Eigenvectors Maps, MEM). Several + approaches are described in the review Dray et al (2012) + <doi:10.1890/11-1183.1>.""" + + homepage = "https://cloud.r-project.org/package=adespatial" + url = "https://cloud.r-project.org/src/contrib/adespatial_0.3-8.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/adespatial" + + version('0.3-8', sha256='e3fd3209ce3f0a862a0794187e8c884f1697c87c96e569a2f51f252e00022906') + + depends_on('r-ade4@1.7-13:', type=('build', 'run')) + depends_on('r-adegraphics', type=('build', 'run')) + depends_on('r-adephylo', type=('build', 'run')) + depends_on('r-sp', type=('build', 'run')) + depends_on('r-spdep', type=('build', 'run')) + depends_on('r-lattice', type=('build', 'run')) + depends_on('r-mass', type=('build', 'run')) + depends_on('r-shiny', type=('build', 'run')) + depends_on('r-vegan', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-biocgenerics/package.py b/var/spack/repos/builtin/packages/r-biocgenerics/package.py index dc403c878e..2bee149fb8 100644 --- a/var/spack/repos/builtin/packages/r-biocgenerics/package.py +++ b/var/spack/repos/builtin/packages/r-biocgenerics/package.py @@ -14,6 +14,7 @@ class RBiocgenerics(RPackage): homepage = "https://bioconductor.org/packages/BiocGenerics" git = "https://git.bioconductor.org/packages/BiocGenerics.git" + version('0.34.0', commit='f7c2020') version('0.30.0', commit='fc7c3af4a5635a30988a062ed09332c13ca1d1a8') version('0.28.0', commit='041fc496504f2ab1d4d863fffb23372db214394b') version('0.26.0', commit='5b2a6df639e48c3cd53789e0b174aec9dda6b67d') diff --git a/var/spack/repos/builtin/packages/r-bsseq/package.py b/var/spack/repos/builtin/packages/r-bsseq/package.py new file mode 100644 index 0000000000..c753c549a0 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-bsseq/package.py @@ -0,0 +1,55 @@ +# 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) + +from spack import * + + +class RBsseq(RPackage): + """A collection of tools for analyzing and visualizing bisulfite sequencing + data.""" + + homepage = "https://github.com/kasperdanielhansen/bsseq" + git = "https://git.bioconductor.org/packages/bsseq" + + version('1.24.4', commit='8fe7a03') + version('1.22.0', commit='d4f7301') + version('1.20.0', commit='07e398b') + + depends_on('r@3.5:', type=('build', 'run')) + + depends_on('r-biocgenerics', type=('build', 'run')) + + depends_on('r-genomicranges@1.29.14:', type=('build', 'run')) + depends_on('r-genomicranges@1.33.6:', when='@1.24.4:', type=('build', 'run')) + + depends_on('r-summarizedexperiment@1.9.18:', type=('build', 'run')) + depends_on('r-summarizedexperiment@1.17.4:', when='@1.24.4:', type=('build', 'run')) + + depends_on('r-iranges@2.11.16:', type=('build', 'run')) + depends_on('r-iranges@2.22.2:', when='@1.24.4:', type=('build', 'run')) + + depends_on('r-genomeinfodb', type=('build', 'run')) + depends_on('r-scales', type=('build', 'run')) + depends_on('r-biobase', type=('build', 'run')) + depends_on('r-locfit', type=('build', 'run')) + depends_on('r-gtools', type=('build', 'run')) + depends_on('r-data-table@1.11.8:', type=('build', 'run')) + + depends_on('r-s4vectors', type=('build', 'run')) + depends_on('r-s4vectors@0.23.11:', when='@1.22.0:', type=('build', 'run')) + depends_on('r-s4vectors@0.25.14:', when='@1.24.4', type=('build', 'run')) + + depends_on('r-r-utils@2.0.0:', type=('build', 'run')) + depends_on('r-delayedmatrixstats@1.5.2:', type=('build', 'run')) + depends_on('r-permute', type=('build', 'run')) + depends_on('r-limma', type=('build', 'run')) + depends_on('r-delayedarray@0.9.8:', type=('build', 'run')) + depends_on('r-rcpp', type=('build', 'run')) + depends_on('r-biocparallel', type=('build', 'run')) + depends_on('r-bsgenome', type=('build', 'run')) + depends_on('r-biostrings', type=('build', 'run')) + depends_on('r-hdf5array@1.11.9:', type=('build', 'run')) + depends_on('r-rhdf5', type=('build', 'run')) + depends_on('r-beachmat', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-countrycode/package.py b/var/spack/repos/builtin/packages/r-countrycode/package.py new file mode 100644 index 0000000000..b2b07ff2e4 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-countrycode/package.py @@ -0,0 +1,19 @@ +# 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) + +from spack import * + + +class RCountrycode(RPackage): + """Countrycode standardizes country names, converts them into + ~40 different coding schemes, and assigns region descriptors.""" + + homepage = "https://vincentarelbundock.github.io/countrycode/" + url = "https://cloud.r-project.org/src/contrib/countrycode_1.2.0.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/countrycode" + + version('1.2.0', sha256='32c65702dcc33d512ff99f14c12f4e0c48fe7ed7c8aa2f0a64194576d129dd40') + + depends_on('r@2.10:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-data-table/package.py b/var/spack/repos/builtin/packages/r-data-table/package.py index b9a008eff0..87d5735541 100644 --- a/var/spack/repos/builtin/packages/r-data-table/package.py +++ b/var/spack/repos/builtin/packages/r-data-table/package.py @@ -16,6 +16,7 @@ class RDataTable(RPackage): url = "https://cloud.r-project.org/src/contrib/data.table_1.10.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/data.table" + version('1.12.8', sha256='d3a75f3a355ff144cc20a476041617e21fcf2a9f79265fd9bbd4693f3671f9dc') version('1.12.2', sha256='db55c18f0d703a8bc1c806dd1f7551bb405cb867717f52ef9dd64405394d22f5') version('1.12.0', sha256='611b112123dbd4ebd5200770fcdfaaeaab622adeb2b290d36018d3092742e3f7') version('1.11.8', sha256='dc427465599cadd848b28a78e2fce3362867847b44148252054385999fe566d9') diff --git a/var/spack/repos/builtin/packages/r-devtools/package.py b/var/spack/repos/builtin/packages/r-devtools/package.py index 9b4c4a2332..280769399e 100644 --- a/var/spack/repos/builtin/packages/r-devtools/package.py +++ b/var/spack/repos/builtin/packages/r-devtools/package.py @@ -13,27 +13,50 @@ class RDevtools(RPackage): url = "https://cloud.r-project.org/src/contrib/devtools_1.12.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/devtools" + version('2.3.0', sha256='4fc375c171335c67bd71df4e0b1b3dff2ae3aa17b3e0566b790ba0808b39dcd0') version('2.1.0', sha256='c1f75346a90adf0669b5508fe68cc78bd3b114c1303fa7d22bf90991edd9230d') version('2.0.2', sha256='99a2fa957068254b8ecdb3fc2d50e2950230910ea31c314fc0e7d934e4bd1709') version('1.12.0', sha256='8a3e2ca3988dffe29341e45a160bb588995eae43485d6a811a9ae4836d37afd4') version('1.11.1', sha256='51c876f9ddbfdf611f6ea0b06c0b46da8cefcb8cc98d60e06d576b61f0a06346') depends_on('r@3.0.2:', type=('build', 'run')) - depends_on('r-httr@0.4:', type=('build', 'run')) - depends_on('r-memoise@1.0.0:', type=('build', 'run')) - depends_on('r-whisker', when='@:1.9.9', type=('build', 'run')) - depends_on('r-digest', type=('build', 'run')) - depends_on('r-rstudioapi@0.7.0:', type=('build', 'run')) - depends_on('r-jsonlite', type=('build', 'run')) - depends_on('r-git2r@0.23.0:', type=('build', 'run')) - depends_on('r-withr', type=('build', 'run')) depends_on('r-usethis@1.5.0:', when='@2.0.0:', type=('build', 'run')) + depends_on('r-usethis@1.6.0:', when='@2.3.0:', type=('build', 'run')) depends_on('r-callr', when='@2.0.0:', type=('build', 'run')) + depends_on('r-callr@3.4.3:', when='@2.3.0:', type=('build', 'run')) depends_on('r-cli', when='@2.0.0:', type=('build', 'run')) + depends_on('r-cli@2.0.2:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-covr@3.5.0:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-crayon@1.3.4:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-desc@1.2.0:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-dt@0.13:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-digest', type=('build', 'run')) + depends_on('r-digest@0.6.25:', when='@3.2.0:', type=('build', 'run')) + depends_on('r-ellipsis@0.3.0:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-glue@1.4.0:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-git2r@0.23.0:', type=('build', 'run')) + depends_on('r-git2r@0.26.1:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-httr@0.4:', type=('build', 'run')) + depends_on('r-httr@1.4.1:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-jsonlite', type=('build', 'run')) + depends_on('r-jsonlite@1.6.1:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-memoise@1.0.0:', type=('build', 'run')) + depends_on('r-memoise@1.1.0:', when='@2.3.0:', type=('build', 'run')) depends_on('r-pkgbuild@1.0.3:', when='@2.0.0:', type=('build', 'run')) + depends_on('r-pkgbuild@1.0.6:', when='@2.3.0:', type=('build', 'run')) depends_on('r-pkgload@1.0.2:', when='@2.0.0:', type=('build', 'run')) depends_on('r-rcmdcheck@1.3.3:', when='@2.0.0:', type=('build', 'run')) depends_on('r-remotes@2.1.0:', when='@2.0.0:', type=('build', 'run')) + depends_on('r-remotes@2.1.1:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-rlang@0.4.5:', when='@2.3.0:', type=('build', 'run')) depends_on('r-roxygen2@6.1.1:', when='@2.0.0:', type=('build', 'run')) + depends_on('r-roxygen2@7.1.0:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-rstudioapi@0.7.0:', type=('build', 'run')) + depends_on('r-rstudioapi@0.11.0:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-rversions@2.0.1:', when='@2.3.0:', type=('build', 'run')) depends_on('r-sessioninfo@1.1.1:', when='@2.0.0:', type=('build', 'run')) depends_on('r-testthat@2.1.1:', when='@2.0.0:', type=('build', 'run')) + depends_on('r-testthat@2.3.2:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-whisker', when='@:1.9.9', type=('build', 'run')) + depends_on('r-withr', type=('build', 'run')) + depends_on('r-withr@2.1.2:', when='@2.3.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-dss/package.py b/var/spack/repos/builtin/packages/r-dss/package.py new file mode 100644 index 0000000000..7d4f8f2318 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-dss/package.py @@ -0,0 +1,30 @@ +# 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) + +from spack import * + + +class RDss(RPackage): + """Dispersion shrinkage for sequencing data. + + DSS is an R library performing differntial analysis for count-based + sequencing data. It detectes differentially expressed genes (DEGs) from + RNA-seq, and differentially methylated loci or regions (DML/DMRs) from + bisulfite sequencing (BS-seq). The core of DSS is a new dispersion + shrinkage method for estimating the dispersion parameter from Gamma-Poisson + or Beta-Binomial distributions.""" + + homepage = "http://bioconductor.org/packages/DSS/" + git = "https://git.bioconductor.org/packages/DSS" + + version('2.36.0', commit='841c7ed') + version('2.34.0', commit='f9819c7') + version('2.32.0', commit='ffb502d') + + depends_on('r@3.3:', type=('build', 'run')) + depends_on('r-biobase', type=('build', 'run')) + depends_on('r-bsseq', type=('build', 'run')) + depends_on('r-biocparallel', when='@2.36.0:', type=('build', 'run')) + depends_on('r-delayedarray', when='@2.36.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-glue/package.py b/var/spack/repos/builtin/packages/r-glue/package.py index 1472728e93..20371a9740 100644 --- a/var/spack/repos/builtin/packages/r-glue/package.py +++ b/var/spack/repos/builtin/packages/r-glue/package.py @@ -17,6 +17,7 @@ class RGlue(RPackage): url = "https://cloud.r-project.org/src/contrib/glue_1.2.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/glue" + version('1.4.1', sha256='f8b687d35cacb5ee7fcada6e9c26ea20c04d0bdc9d37e919a03abd1137513bc8') version('1.4.0', sha256='ea6c409f7141754baa090deba96cff270a11b185452cf9e6fb69cb148a9069c1') version('1.3.1', sha256='4fc1f2899d71a634e1f0adb7942772feb5ac73223891abe30ea9bd91d3633ea8') version('1.3.0', sha256='789e5a44c3635c3d3db26666e635e88adcf61cd02b75465125d95d7a12291cee') diff --git a/var/spack/repos/builtin/packages/r-gsodr/package.py b/var/spack/repos/builtin/packages/r-gsodr/package.py new file mode 100644 index 0000000000..8f1fa82e4d --- /dev/null +++ b/var/spack/repos/builtin/packages/r-gsodr/package.py @@ -0,0 +1,24 @@ +# 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) + +from spack import * + + +class RGsodr(RPackage): + """A Global Surface Summary of the Day (GSOD) Weather Data Client for R""" + + homepage = "https://docs.ropensci.org/GSODR/" + url = "https://cloud.r-project.org/src/contrib/GSODR_2.1.1.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/GSODR" + + version('2.1.1', sha256='dba732e5bd1e367b9d710e6b8924f0c02fa4546202f049124dba02bc2e3329f5') + + depends_on('r@3.5.0:', type=('build', 'run')) + depends_on('r-countrycode', type=('build', 'run')) + depends_on('r-curl', type=('build', 'run')) + depends_on('r-data-table@1.11.6:', type=('build', 'run')) + depends_on('r-future-apply', type=('build', 'run')) + depends_on('r-httr', type=('build', 'run')) + depends_on('r-r-utils', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-iranges/package.py b/var/spack/repos/builtin/packages/r-iranges/package.py index 5cf6493342..581d613875 100644 --- a/var/spack/repos/builtin/packages/r-iranges/package.py +++ b/var/spack/repos/builtin/packages/r-iranges/package.py @@ -19,6 +19,7 @@ class RIranges(RPackage): homepage = "https://bioconductor.org/packages/IRanges" git = "https://git.bioconductor.org/packages/IRanges.git" + version('2.22.2', commit='8c5e991') version('2.18.3', commit='c98a7ba074e72f2e5ec98252dffe9d3392711972') version('2.16.0', commit='26834c6868d7c279dd8ac1bb9daa16e6fef273c2') version('2.14.12', commit='00af02756c14771a23df9efcf379409ab6eb3041') @@ -38,3 +39,5 @@ class RIranges(RPackage): depends_on('r-s4vectors@0.19.11:', when='@2.16.0:', type=('build', 'run')) depends_on('r-s4vectors@0.21.9:', when='@2.18.3:', type=('build', 'run')) + + depends_on('r-s4vectors@0.25.14:', when='@2.22.2:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-phylobase/package.py b/var/spack/repos/builtin/packages/r-phylobase/package.py new file mode 100644 index 0000000000..7cfe791b3b --- /dev/null +++ b/var/spack/repos/builtin/packages/r-phylobase/package.py @@ -0,0 +1,26 @@ +# 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) + +from spack import * + + +class RPhylobase(RPackage): + """phylobase: Base Package for Phylogenetic Structures and Comparative + Data. + + Provides a base S4 class for comparative methods, incorporating one or + more trees and trait data.""" + + homepage = "https://github.com/fmichonneau/phylobase" + url = "https://cloud.r-project.org/src/contrib/phylobase_0.8.10.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/phylobase" + + version('0.8.10', sha256='5a44380ff49bab333a56f6f96157324ade8afb4af0730e013194c4badb0bf94b') + + depends_on('r-ade4', type=('build', 'run')) + depends_on('r-ape@3.0:', type=('build', 'run')) + depends_on('r-rcpp@0.11.0:', type=('build', 'run')) + depends_on('r-rncl@0.6.0:', type=('build', 'run')) + depends_on('r-rnexml', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-rncl/package.py b/var/spack/repos/builtin/packages/r-rncl/package.py new file mode 100644 index 0000000000..4501e1c2f3 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-rncl/package.py @@ -0,0 +1,26 @@ +# 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) + +from spack import * + + +class RRncl(RPackage): + """rncl: An Interface to the Nexus Class Library. + + An interface to the Nexus Class Library which allows parsing of NEXUS, + Newick and other phylogenetic tree file formats. It provides elements of + the file that can be used to build phylogenetic objects such as ape's + 'phylo' or phylobase's 'phylo4(d)'. This functionality is demonstrated with + 'read_newick_phylo()' and 'read_nexus_phylo()'.""" + + homepage = "https://github.com/fmichonneau/rncl" + url = "https://cloud.r-project.org/src/contrib/rncl_0.8.4.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/rncl" + + version('0.8.4', sha256='6b19d0dd9bb08ecf99766be5ad684bcd1894d1cd9291230bdd709dbd3396496b') + + depends_on('r@3.1.1:', type=('build', 'run')) + depends_on('r-rcpp@0.11.0:', type=('build', 'run')) + depends_on('r-progress@1.1.2:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-rnexml/package.py b/var/spack/repos/builtin/packages/r-rnexml/package.py new file mode 100644 index 0000000000..bffab45a28 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-rnexml/package.py @@ -0,0 +1,35 @@ +# 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) + +from spack import * + + +class RRnexml(RPackage): + """RNeXML: Semantically Rich I/O for the 'NeXML' Format. + + Provides access to phyloinformatic data in 'NeXML' format. The package + should add new functionality to R such as the possibility to manipulate + 'NeXML' objects in more various and refined way and compatibility with + 'ape' objects.""" + + homepage = "https://github.com/ropensci/RNeXML" + url = "https://cloud.r-project.org/src/contrib/RNeXML_2.4.5.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/RNeXML" + + version('2.4.5', sha256='2b667ecb6400e4c0c125ca73a98cde81330cde3a85b764261f77159e702754f3') + + depends_on('r@3.0.0:', type=('build', 'run')) + depends_on('r-ape@3.1:', type=('build', 'run')) + depends_on('r-xml@3.95:', type=('build', 'run')) + depends_on('r-plyr@1.8:', type=('build', 'run')) + depends_on('r-reshape2@1.2.2:', type=('build', 'run')) + depends_on('r-httr@0.3:', type=('build', 'run')) + depends_on('r-uuid@0.1-1:', type=('build', 'run')) + depends_on('r-dplyr@0.5.0:', type=('build', 'run')) + depends_on('r-lazyeval@0.1.0:', type=('build', 'run')) + depends_on('r-tidyr@0.3.1:', type=('build', 'run')) + depends_on('r-stringr@1.0:', type=('build', 'run')) + depends_on('r-stringi', type=('build', 'run')) + depends_on('r-xml2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-s4vectors/package.py b/var/spack/repos/builtin/packages/r-s4vectors/package.py index 132218b109..909b33bb2e 100644 --- a/var/spack/repos/builtin/packages/r-s4vectors/package.py +++ b/var/spack/repos/builtin/packages/r-s4vectors/package.py @@ -21,6 +21,7 @@ class RS4vectors(RPackage): homepage = "https://bioconductor.org/packages/S4Vectors" git = "https://git.bioconductor.org/packages/S4Vectors.git" + version('0.26.1', commit='935769c') version('0.22.1', commit='d25e517b48ca4184a4c2ee1f8223c148a55a8b8a') version('0.20.1', commit='1878b2909086941e556c5ea953c6fd86aebe9b02') version('0.18.3', commit='d6804f94ad3663828440914920ac933b934aeff1') @@ -30,4 +31,5 @@ class RS4vectors(RPackage): depends_on('r@3.3.0:', type=('build', 'run')) depends_on('r-biocgenerics@0.21.1:', type=('build', 'run')) - depends_on('r-biocgenerics@0.23.3:', when='@0.16.0:', type=('build', 'run')) + depends_on('r-biocgenerics@0.23.3:', when='@0.16.0:0.22.1', type=('build', 'run')) + depends_on('r-biocgenerics@0.31.1:', when='@0.26.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py b/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py index 2d4ffdf571..5834c170da 100644 --- a/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py +++ b/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py @@ -17,6 +17,7 @@ class RSummarizedexperiment(RPackage): homepage = "https://bioconductor.org/packages/SummarizedExperiment" git = "https://git.bioconductor.org/packages/SummarizedExperiment.git" + version('1.18.2', commit='e22fafe') version('1.14.1', commit='2c68d99e11c7345e5ed388370822ea48395c64a4') version('1.12.0', commit='5f8416864636add121ec1d6737ebb89a42227fd7') version('1.10.1', commit='7ad2e991c8285bfc4b2e15b29d94cc86d07f8f2b') diff --git a/var/spack/repos/builtin/packages/r-usethis/package.py b/var/spack/repos/builtin/packages/r-usethis/package.py index e82085b541..43567532f4 100644 --- a/var/spack/repos/builtin/packages/r-usethis/package.py +++ b/var/spack/repos/builtin/packages/r-usethis/package.py @@ -16,20 +16,25 @@ class RUsethis(RPackage): url = "https://cloud.r-project.org/src/contrib/usethis_1.5.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/usethis" + version('1.6.1', sha256='60339059a97ed07dea7f8908b828b5bb42e0fd0b471165c061bc9660b0d59d6f') version('1.5.1', sha256='9e3920a04b0df82adf59eef2c1b2b4d835c4a757a51b3c163b8fc619172f561d') depends_on('r@3.2:', type=('build', 'run')) depends_on('r-clipr@0.3.0:', type=('build', 'run')) - depends_on('r-clisymbols', type=('build', 'run')) + depends_on('r-clisymbols', when='@:1.5', type=('build', 'run')) + depends_on('r-cli', when='@1.6.1:', type=('build', 'run')) depends_on('r-crayon', type=('build', 'run')) depends_on('r-curl@2.7:', type=('build', 'run')) depends_on('r-desc', type=('build', 'run')) depends_on('r-fs@1.3.0:', type=('build', 'run')) depends_on('r-gh', type=('build', 'run')) + depends_on('r-gh@1.1.0', when='@1.6.1:', type=('build', 'run')) depends_on('r-git2r@0.23:', type=('build', 'run')) depends_on('r-glue@1.3.0:', type=('build', 'run')) depends_on('r-purrr', type=('build', 'run')) + depends_on('r-rematch2', when='@1.6.1:', type=('build', 'run')) depends_on('r-rlang', type=('build', 'run')) + depends_on('r-rlang@0.4.3', when='@1.6.1:', type=('build', 'run')) depends_on('r-rprojroot@1.2:', type=('build', 'run')) depends_on('r-rstudioapi', type=('build', 'run')) depends_on('r-whisker', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/raja/package.py b/var/spack/repos/builtin/packages/raja/package.py index b7a6218056..5f984c8e08 100644 --- a/var/spack/repos/builtin/packages/raja/package.py +++ b/var/spack/repos/builtin/packages/raja/package.py @@ -29,6 +29,7 @@ class Raja(CMakePackage, CudaPackage): version('0.4.0', tag='v0.4.0', submodules="True") variant('openmp', default=True, description='Build OpenMP backend') + variant('shared', default=True, description='Build Shared Libs') depends_on('cmake@3.8:', type='build') depends_on('cmake@3.9:', when='+cuda', type='build') @@ -44,11 +45,14 @@ class Raja(CMakePackage, CudaPackage): options.extend([ '-DENABLE_CUDA=On', '-DCUDA_TOOLKIT_ROOT_DIR=%s' % (spec['cuda'].prefix)]) - if not spec.satisfies('cuda_arch=none'): cuda_arch = spec.variants['cuda_arch'].value options.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch[0])) - + # shared vs static libs + if "+shared" in spec: + options.append('-DBUILD_SHARED_LIBS=ON') + else: + options.append('-DBUILD_SHARED_LIBS=OFF') # Work around spack adding -march=ppc64le to SPACK_TARGET_ARGS which # is used by the spack compiler wrapper. This can go away when BLT # removes -Werror from GTest flags diff --git a/var/spack/repos/builtin/packages/random123/package.py b/var/spack/repos/builtin/packages/random123/package.py index 48df03fee8..bc958abe38 100644 --- a/var/spack/repos/builtin/packages/random123/package.py +++ b/var/spack/repos/builtin/packages/random123/package.py @@ -15,15 +15,20 @@ class Random123(Package): homepage = "http://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') + version('1.10', sha256='4afdfba4b941e33e23b5de9b7907b7e3ac326cb4d34b5fa8225edd00b5fe053b') version('1.09', sha256='cf6abf623061bcf3d17e5e49bf3f3f0ae400ee89ae2e97c8cb8dcb918b1ebabe') patch('ibmxl.patch', when='@1.09') patch('arm-gcc.patch', when='@1.09') + patch('v1132-xl161.patch', when='@1.13.2') def install(self, spec, prefix): # Random123 doesn't have a build system. # We have to do our own install here. install_tree('include', prefix.include) install('./LICENSE', "%s" % prefix) - # used by some packages, e.g. quinoa - install('examples/uniform.hpp', join_path(prefix.include, 'Random123')) + if spec.satisfies('@1.09'): + # used by some packages, e.g. quinoa + install('examples/uniform.hpp', + join_path(prefix.include, 'Random123')) diff --git a/var/spack/repos/builtin/packages/random123/v1132-xl161.patch b/var/spack/repos/builtin/packages/random123/v1132-xl161.patch new file mode 100644 index 0000000000..398de3cc2a --- /dev/null +++ b/var/spack/repos/builtin/packages/random123/v1132-xl161.patch @@ -0,0 +1,13 @@ +diff --git a/include/Random123/features/compilerfeatures.h b/include/Random123/features/compilerfeatures.h +index 2341a7a..3c5d999 100644 +--- a/include/Random123/features/compilerfeatures.h ++++ b/include/Random123/features/compilerfeatures.h +@@ -206,7 +206,7 @@ added to each of the *features.h files, AND to examples/ut_features.cpp. + #include "nvccfeatures.h" + #elif defined(__ICC) + #include "iccfeatures.h" +-#elif defined(__xlC__) ++#elif defined(__xlC__) || defined(__ibmxl__) + #include "xlcfeatures.h" + #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) + #include "sunprofeatures.h" diff --git a/var/spack/repos/builtin/packages/rivet/gsl.m4 b/var/spack/repos/builtin/packages/rivet/gsl.m4 new file mode 100644 index 0000000000..61c89c957c --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/gsl.m4 @@ -0,0 +1,60 @@ +# AC_SEARCH_GSL(actionIfFound, actionIfNotFound) +AC_DEFUN([AC_SEARCH_GSL],[ + AC_ARG_WITH([gsl], AC_HELP_STRING(--with-gsl, [path to GSL library and header files])) + + ## Use a specified --with-gsl arg to set basic paths, if provided + GSLCONFIG_PATH=$PATH + if test -e "$with_gsl"; then + GSLCONFIG_PATH="$with_gsl/bin:$GSLCONFIG_PATH" + GSLPATH="$with_gsl" + GSLINCPATH="$GSLPATH/include" + GSLLIBPATH="$GSLPATH/lib" + GSL_CPPFLAGS="-I$GSLINCPATH" + GSL_CXXFLAGS="" + GSL_LDFLAGS="-L$GSLPATH/lib -lgsl -lgslcblas -lm" + fi + + ## Try to do better, using the gsl-config script + AC_PATH_PROG(GSLCONFIG, gsl-config, [], [$GSLCONFIG_PATH]) + if test -x "$GSLCONFIG"; then + AC_MSG_NOTICE(Using $GSLCONFIG to find GSL flags) + GSLPATH=`$GSLCONFIG --prefix` + GSLINCPATH="$GSLPATH/include" + GSLLIBPATH="$GSLPATH/lib" + GSL_CPPFLAGS=`$GSLCONFIG --cflags` + GSL_CXXFLAGS=`$GSLCONFIG --cflags` + GSL_LDFLAGS=`$GSLCONFIG --libs` + fi + + ## If it's worked, propagate the conditionals and execute success arg + if test -e "$GSLPATH"; then + AM_CONDITIONAL([WITH_GSL], true) + AM_CONDITIONAL([WITH_GSLLIB], true) + AM_CONDITIONAL([WITH_GSLINC], true) + AM_CONDITIONAL([WITHOUT_GSL], false) + AM_CONDITIONAL([WITHOUT_GSLLIB], false) + AM_CONDITIONAL([WITHOUT_GSLINC], false) + $1 + else + ## Otherwise execute the fail arg + AM_CONDITIONAL([WITH_GSL], false) + AM_CONDITIONAL([WITH_GSLLIB], false) + AM_CONDITIONAL([WITH_GSLINC], false) + AM_CONDITIONAL([WITHOUT_GSL], true) + AM_CONDITIONAL([WITHOUT_GSLLIB], true) + AM_CONDITIONAL([WITHOUT_GSLINC], true) + $2 + fi + + ## Propagate path and flag variables + AC_SUBST([GSLPATH]) + AC_SUBST([GSLINCPATH]) + AC_SUBST([GSLLIBPATH]) + AC_SUBST([GSL_CPPFLAGS]) + AC_SUBST([GSL_CXXFLAGS]) + AC_SUBST([GSL_LDFLAGS]) + AC_MSG_NOTICE([GSL include path is $GSLINCPATH]) + AC_MSG_NOTICE([GSL CPPFLAGS is $GSL_CPPFLAGS]) + AC_MSG_NOTICE([GSL CXXFLAGS is $GSL_CXXFLAGS]) + AC_MSG_NOTICE([GSL LDFLAGS is $GSL_LDFLAGS]) +]) diff --git a/var/spack/repos/builtin/packages/rivet/package.py b/var/spack/repos/builtin/packages/rivet/package.py new file mode 100644 index 0000000000..3d28b81632 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/package.py @@ -0,0 +1,170 @@ +# 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) + +from spack import * +import os + + +class Rivet(AutotoolsPackage): + """Rivet - the particle-physics MC analysis toolkit""" + + homepage = "https://rivet.hepforge.org/" + url = "https://rivet.hepforge.org/downloads/?f=Rivet-3.1.2.tar.bz2" + + version('3.1.2', sha256='c041d09644f4eae7c212d82237033267fbc1583dfbb4e3e67377f86cece9577a') + version('3.1.1', sha256='7c98b26af5f859bc65200499d15765e4b056b4cf233b34176f27a7e6bc4cf9b1') + version('3.1.0', sha256='4e156daee5eb10bd1573ef32d4a6a6df74788cd9180fc977db93ef4cb281000c') + version('3.0.2', sha256='9624d6cdcad77eafde40312cf6a1c97f4263f22faf9244b198c140b2c256d2f3') + version('3.0.1', sha256='e7551168b86a05c9c029c319c313a0aa142a476195e7ff986c896c1b868f89dd') + version('3.0.0', sha256='3944434d3791dccb54f7b2257589df6252cc7c065ce9deb57fbef466ff9e62b1') + version('2.7.2b', sha256='e9f0a709f8226cde54f9406d36efab1e1b8ed0c6574fbcb1d72a186b09188106') + version('2.7.2', sha256='a6634537c005660e56514b70ab9efb9d466c50685d6fb45ed03e9e1988479f02') + version('2.7.1', sha256='b4145d8369b8a9fa0ada7ba2e5a2e9992d8e4a12ca4874d835246d2e708cbdef') + version('2.7.0', sha256='34ad6a0b47dc4736feac8580a275e8b3a46df8fbeefd91e813add0a1525aacaf') + version('2.6.2', sha256='9dde49d5c02038a295f03d2972f85be8746205bdb5ca1eab868b2c9129ade37a') + version('2.6.1', sha256='e490d1f35aafa3e175690ae92f862c07a5fe2c51f693c88c87789f0441c89022') + version('2.6.0', sha256='fb3229dccd31ea40b0af09974253073f6ad0a3a97e9a0cf44b53748ea8e2f900') + version('2.5.4', sha256='772252193698d994fd111f790e72a4024df7572d492e3d5a9e840a074c5527e2') + version('2.5.3', sha256='99e10330564ac479c6637d317c08882889a272db8ee204ad45a6ee1dcb291de4') + version('2.5.2', sha256='70aa27764a14159c94c0b753a0c3d3600ac669def398cb2d8a6c63ae17704f05') + version('2.5.1', sha256='14ee5828de217e96a30e666192515a2083afee030d81d36fc6bea948e9f7810a') + version('2.5.0', sha256='c59ff35715be0caf65d6ba808b3badad0f6f7e7758f2049fb6ba43ed579bd4af') + version('2.4.3', sha256='18aafecab6c3baeac871a9743946433c2dc01825d8fe291b157719a15c342682') + version('2.4.2', sha256='accb146f3082719781a51eec879427c31401577c44f60b27ec8450102fe68aff') + version('2.4.1', sha256='c14f0f58d1792d84d62c62b44ebb94db004776feba83fd8186bba898d55123cf') + version('2.4.0', sha256='5ee2f34a277ed058b8aef750d946b40d4cf781023b9adab03ca95e803a39fb06') + version('2.3.0', sha256='dd07702981d586e4b97b0fa56ae08cd08a631a952322a9b52e7622a46a7741ab') + version('2.2.1', sha256='9e64ba19d567bdf4d0cc42b435491c4363b5fec90170d034445a99a1e752b691') + version('2.2.0', sha256='3bdafe2007ff54c4734e0c8bc6ba9dc97028d4c41d538201b9582a869af8ae1a') + version('2.1.2', sha256='40a20c1ee186326e5bfd906e0bc88f16dc740551be9cc274e9a826873d9c1eed') + version('2.1.1', sha256='eefa936de6f6c34a6bab39899841f3189d7621c8ba227032f0f32e6e20dfcf85') + version('2.1.0', sha256='58a1ca7b5a47719933782c050e67d0eb3823a7384cfc3c434fece41724c307e6') + version('2.0.0', sha256='038f81f92fbba001ed23b56c1229a4f3b41e0c32e00bc92ea58d042909e3855a') + version('1.9.0', sha256='55ef552b351328c287194aa99fa2b797e6632dc3fa88dfccd58264602012e044') + version('1.8.3', sha256='aa82742fd4d7c68bfbef1367c4c605e06f9fed479a753db96aa6659407fcc4fd') + version('1.8.2', sha256='56be98d31693253543f3e657c8f8edc7979c89fdb0ede1bdddfb3a9f5d4cfc3a') + version('1.8.1', sha256='7e06d22350bec30220186e796caa93e9bfebd8d771a7efd35673897248437c61') + version('1.8.0', sha256='7b28f9163f74583b1542b87c48f28a3ad1338da6136d8e3ca0aeba21095f5fe0') + version('1.7.0', sha256='180741f590f210474b686d60241ad59e008221751ead21f0950c59aff93e54fd') + version('1.6.0', sha256='1affd9e779f48477402e4150f315b3179204cbbc920db2d0129cd9c38bd18b26') + version('1.5.1', sha256='9f24e9824286d5b0302c7e440f4803a8e3b8da50e1260e78c3b3c2eb587b317a') + version('1.5.0', sha256='b7fe63e8caacc5c038ab567fe505d275288eedaa1aed6c379057629eef126006') + version('1.4.0', sha256='067c94659bb7859904e20e72a676f94f103e6e012b7dba8071f51e8a6e624dbb') + version('1.3.0', sha256='5ce41c8492c2fcf809a7135bf8335a01a98ea85fb556b3d00bd4260151efd12f') + version('1.2.1', sha256='2d0380b819f778d8d9c2a462af90bd6a6188121e4edcc6202d936130b59bab17') + version('1.2.0', sha256='ff5869f6dc9465f429e54686e12c39becac57a83273542179a59bac7561b6404') + version('1.1.3', sha256='4be3cd9e6f808cdc5511991be2756f5fa838b6ecd01806fdbe7aec0aa382f946') + version('1.1.2', sha256='a15b5d3339481446dec1b719d7d531a87a2e9d11c9fe8044e270ea69611b07c8') + version('1.1.1', sha256='bd87fefee6bb8368216755342dc80ab3f8f3c813732dd03c6f94135d45f7036b') + + # According to A. Buckley (main Rivet developer): + # "typically a given Rivet version will work with + # all YODA releases of that middle-digit version, + # and maybe older. Generally it's always a good idea + # to be using the latest versions of both.". The versions below + # are taken from LCG stack which, in most cases, is the definition + # of "latest" at the moment of release. + depends_on('yoda@1.0.4', when='@2.0.0') + depends_on('yoda@1.0.5', when='@2.1.0') + depends_on('yoda@1.0.6', when='@2.1.1') + depends_on('yoda@1.1.0', when='@2.1.2') + depends_on('yoda@1.3.0', when='@2.2.0') + depends_on('yoda@1.3.1', when='@2.2.1') + depends_on('yoda@1.4.0', when='@2.3.0') + depends_on('yoda@1.5.5', when='@2.4.0') + depends_on('yoda@1.5.9', when='@2.4.2') + depends_on('yoda@1.6.1', when='@2.4.3') + depends_on('yoda@1.6.2', when='@2.5.0') + depends_on('yoda@1.6.3', when='@2.5.1') + depends_on('yoda@1.6.5', when='@2.5.2') + depends_on('yoda@1.6.6', when='@2.5.3') + depends_on('yoda@1.6.7', when='@2.5.4') + depends_on('yoda@1.7.1', when='@2.6.1') + depends_on('yoda@1.7.4', when='@2.6.2') + depends_on('yoda@1.7.5', when='@2.7.2') + depends_on('yoda@1.7.5', when='@2.7.2b') + depends_on('yoda@1.7.7', when='@3.0.1') + 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') + + # The following versions were not a part of LCG stack + # and thus the exact version of YODA is unknown + depends_on('yoda@1.7.0:1.7.999', when='@2.6.0,2.7.0,2.7.1,3.0.0,3.0.2,3.1.0') + depends_on('yoda@1.5.0:1.5.999', when='@2.4.1') + + depends_on('hepmc', type=('build', 'run')) + depends_on('boost', when='@:2.5.0,3:', type=('build', 'run')) + depends_on('fastjet', type=('build', 'run')) + depends_on('fjcontrib', type=('build', 'run'), when='@3.0.0:') + depends_on('gsl', type=('build', 'run'), when='@:2.6.0,2.6.2:') + depends_on('python', type=('build', 'run')) + depends_on('swig', type=('build', 'run')) + depends_on('yaml-cpp', when='@2.0.0:2.1.2', type=('build', 'run')) + + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('m4', type='build') + + patch('rivet-1.8.2.patch', when='@1.8.2', level=0) + patch('rivet-1.9.0.patch', when='@1.9.0', level=0) + patch('rivet-2.2.0.patch', when='@2.2.0', level=0) + patch('rivet-2.2.1.patch', when='@2.2.1', level=0) + patch('rivet-2.4.0.patch', when='@2.4.0', level=0) + patch('rivet-2.4.2.patch', when='@2.4.2', level=0) + patch('rivet-2.4.3.patch', when='@2.4.3', level=0) + patch('rivet-2.5.1.patch', when='@2.5.1', level=0) + patch('rivet-2.5.2.patch', when='@2.5.2', level=0) + patch('rivet-2.5.3.patch', when='@2.5.3', level=0) + patch('rivet-2.5.4.patch', when='@2.5.4', level=0) + patch('rivet-2.6.0.patch', when='@2.6.0', level=0) + patch('rivet-2.6.1.patch', when='@2.6.1', level=0) + patch('rivet-2.6.2.patch', when='@2.6.2', level=0) + patch('rivet-2.7.0.patch', when='@2.7.0', level=0) + patch('rivet-3.0.0.patch', when='@3.0.0', level=0) + patch('rivet-3.0.1.patch', when='@3.0.1', level=0) + patch('rivet-3.1.0.patch', when='@3.1.0', level=0) + patch('rivet-3.1.1.patch', when='@3.1.1', level=0) + + @run_before('configure') + def copy_gsl_m4(self): + if self.spec.satisfies('@2.6.2:'): + copy(join_path(os.path.dirname(__file__), 'gsl.m4'), 'm4/gsl.m4') + + @property + def force_autoreconf(self): + return self.version >= Version('2.6.2') + + def setup_build_environment(self, env): + # this avoids an "import site" error in the build + env.unset('PYTHONHOME') + + def configure_args(self): + args = [] + args += ['--with-hepmc=' + self.spec['hepmc'].prefix] + + if self.spec.satisfies('@:1.999.999'): + args += ['--with-boost-incpath=' + self.spec['boost'].includes] + else: + if self.spec.satisfies('@:2.5.0,3:'): + args += ['--with-boost=' + self.spec['boost'].prefix] + + args += ['--with-fastjet=' + self.spec['fastjet'].prefix] + if self.spec.satisfies('@2:'): + args += ['--with-yoda=' + self.spec['yoda'].prefix] + + if self.spec.satisfies('@:2.6.0,2.6.2:'): + args += ['--with-gsl=' + self.spec['gsl'].prefix] + + if self.spec.satisfies('@3.0.0:'): + args += ['--with-fjcontrib=' + self.spec['fjcontrib'].prefix] + + args += ['--disable-pdfmanual', '--enable-unvalidated'] + + if self.spec.satisfies('@2:'): + args += ['--enable-stdcxx11'] + + return args diff --git a/var/spack/repos/builtin/packages/rivet/rivet-1.8.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-1.8.2.patch new file mode 100644 index 0000000000..95cbe774a0 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-1.8.2.patch @@ -0,0 +1,44 @@ +--- src/Tools/Makefile.in.orig 2013-05-15 14:02:25.000000000 +0200 ++++ src/Tools/Makefile.in 2013-05-15 14:03:14.000000000 +0200 +@@ -79,7 +79,7 @@ + libRivetTools_la-ParticleIdUtils.lo \ + libRivetTools_la-tinyxml.lo libRivetTools_la-tinyxmlerror.lo \ + libRivetTools_la-tinyxmlparser.lo \ +- libRivetTools_la-BinnedHistogram.lo \ ++# libRivetTools_la-BinnedHistogram.lo \ + libRivetTools_la-mt2_bisect.lo libRivetTools_la-RivetMT2.lo \ + libRivetTools_la-BinnedHistogram.lo + libRivetTools_la_OBJECTS = $(am_libRivetTools_la_OBJECTS) +@@ -371,7 +371,7 @@ + TinyXML/tinyxml.cpp \ + TinyXML/tinyxmlerror.cpp \ + TinyXML/tinyxmlparser.cpp \ +- BinnedHistogram.cc \ ++# BinnedHistogram.cc \ + mt2_bisect.cc \ + RivetMT2.cc \ + BinnedHistogram.cc +--- include/LWH/Axis.h.orig 2013-05-14 18:30:02.000000000 +0200 ++++ include/LWH/Axis.h 2013-05-14 18:31:35.000000000 +0200 + +@@ -115,7 +115,7 @@ + * + */ + int coordToIndex(double coord) const { +- assert( ! isnan(coord) ); ++ assert( ! std::isnan(coord) ); + if ( coord >= upper ) return OVERFLOW_BIN; + else if ( coord < lower ) return UNDERFLOW_BIN; + else return int((coord - lower)/binWidth(0)); + +--- src/Tools/Makefile.am.orig 2013-05-15 13:14:11.000000000 +0200 ++++ src/Tools/Makefile.am 2013-05-15 13:16:53.000000000 +0200 +@@ -14,7 +14,7 @@ + TinyXML/tinyxml.cpp \ + TinyXML/tinyxmlerror.cpp \ + TinyXML/tinyxmlparser.cpp \ +- BinnedHistogram.cc \ ++# BinnedHistogram.cc \ + mt2_bisect.cc \ + RivetMT2.cc \ + BinnedHistogram.cc diff --git a/var/spack/repos/builtin/packages/rivet/rivet-1.9.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-1.9.0.patch new file mode 100644 index 0000000000..9d274550b7 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-1.9.0.patch @@ -0,0 +1,30 @@ +--- bin/rivet-buildplugin.in.orig 2014-09-02 11:22:32.000000000 +0200 ++++ bin/rivet-buildplugin.in 2014-09-02 11:26:31.000000000 +0200 +@@ -62,6 +62,7 @@ + mycppflags="" + prefix="@prefix@" + irivet="@includedir@" ++exec_prefix=@exec_prefix@ + test -n "$irivet" && mycppflags="$mycppflags -I${irivet}" + ihepmc="@HEPMCINCPATH@" + test -n "$ihepmc" && mycppflags="$mycppflags -I${ihepmc}" +@@ -74,7 +75,7 @@ + + ## Get Rivet system linker flags (duplicating that in rivet-config.in) + myldflags="" +-lrivet="@libdir@" ++lrivet="${exec_prefix}/lib" + test -n "$lrivet" && myldflags="$myldflags -L${lrivet}" + lhepmc="@HEPMCLIBPATH@" + test -n "$lhepmc" && myldflags="$myldflags -L${lhepmc}" +--- bin/rivet-findid 2015-06-23 09:15:28.000000001 +0200 ++++ bin/rivet-findid 2015-06-23 09:15:38.000000001 +0200 +@@ -170,7 +170,7 @@ + if k=='code': + entries[v] = c.text + if entries.get('9') == 'SPIRESTeX': +- result['bibtex'] = entries['z'] ++ result['bibtex'] = entries['a'] + + if i.get('tag') == '037': + entries = {} diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.2.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.2.0.patch new file mode 100644 index 0000000000..ac9268a252 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.2.0.patch @@ -0,0 +1,11 @@ +--- bin/rivet-findid 2015-06-23 09:39:49.000000001 +0200 ++++ bin/rivet-findid 2015-06-23 09:40:09.000000001 +0200 +@@ -160,7 +160,7 @@ + if k=='code': + entries[v] = c.text + if entries.get('9') == 'SPIRESTeX': +- result['bibtex'] = entries['z'] ++ result['bibtex'] = entries['a'] + + if i.get('tag') == '037': + entries = {} diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.2.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.2.1.patch new file mode 100644 index 0000000000..a9fceb92c0 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.2.1.patch @@ -0,0 +1,11 @@ +--- bin/rivet-findid 2015-06-23 09:40:38.000000001 +0200 ++++ bin/rivet-findid 2015-06-23 09:40:45.000000001 +0200 +@@ -160,7 +160,7 @@ + if k=='code': + entries[v] = c.text + if entries.get('9') == 'SPIRESTeX': +- result['bibtex'] = entries['z'] ++ result['bibtex'] = entries['a'] + + if i.get('tag') == '037': + entries = {} diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.4.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.4.0.patch new file mode 100644 index 0000000000..7ce4f1dd55 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.4.0.patch @@ -0,0 +1,12 @@ +--- configure 2015-10-07 12:35:57.000000000 +0300 ++++ configure 2015-10-09 16:18:02.432562522 +0300 +@@ -18728,7 +18728,7 @@ + ## Boost utility library + echo "$as_me: this is boost.m4 serial 24" >&5 + boost_save_IFS=$IFS +-boost_version_req=1.55.0 ++boost_version_req=1.53.0 + IFS=. + set x $boost_version_req 0 0 0 + IFS=$boost_save_IFS + diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.4.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.4.2.patch new file mode 100644 index 0000000000..98436c5acf --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.4.2.patch @@ -0,0 +1,39 @@ +--- configure.orig 2016-09-30 14:12:42.317369715 +0200 ++++ configure 2016-09-30 14:17:21.690229397 +0200 +@@ -19644,11 +19644,15 @@ + cat >conftest.py <<_ACEOF + + import sys, string ++# Python 2 and 3 compatible ++from future.builtins import map ++# Python 2 and 3: forward-compatible ++from future.builtins import range + # split strings by '.' and convert to numeric. Append some zeros + # because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.5', '.')) + [0, 0, 0] ++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0] + minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] ++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i] + if sys.hexversion >= minverhex: + sys.exit( 0 ) + else: +@@ -19676,15 +19680,15 @@ + fi + + +- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"` ++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(map(str, sys.version_info[:2])));"` + +- RIVET_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"` ++ RIVET_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"` + + ## Test for Python header + if test -x "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 + $as_echo_n "checking for Python include path... " >&6; } +- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"` ++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5 + $as_echo "$python_incpath" >&6; } + python_header="$python_incpath/Python.h" diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.4.3.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.4.3.patch new file mode 100644 index 0000000000..9d006df8c0 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.4.3.patch @@ -0,0 +1,39 @@ +--- configure.orig 2016-06-28 23:57:35.000000000 +0200 ++++ configure 2016-09-19 12:44:23.411192406 +0200 +@@ -19643,11 +19643,15 @@ + cat >conftest.py <<_ACEOF + + import sys, string ++# Python 2 and 3 compatible ++from future.builtins import map ++# Python 2 and 3: forward-compatible ++from future.builtins import range + # split strings by '.' and convert to numeric. Append some zeros + # because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.5', '.')) + [0, 0, 0] ++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0] + minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] ++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i] + if sys.hexversion >= minverhex: + sys.exit( 0 ) + else: +@@ -19675,15 +19679,15 @@ + fi + + +- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"` ++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(map(str, sys.version_info[:2])));"` + +- RIVET_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"` ++ RIVET_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"` + + ## Test for Python header + if test -x "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 + $as_echo_n "checking for Python include path... " >&6; } +- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"` ++python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5 + $as_echo "$python_incpath" >&6; } + python_header="$python_incpath/Python.h" diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.1.patch new file mode 100644 index 0000000000..dc5f484203 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.1.patch @@ -0,0 +1,39 @@ +--- configure.orig 2016-09-30 09:25:10.000000000 +0200 ++++ configure 2016-09-30 09:27:01.000000000 +0200 +@@ -19681,11 +19681,15 @@ + cat >conftest.py <<_ACEOF + + import sys, string ++# Python 2 and 3 compatible ++from future.builtins import map ++# Python 2 and 3: forward-compatible ++from future.builtins import range + # split strings by '.' and convert to numeric. Append some zeros + # because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.5', '.')) + [0, 0, 0] ++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0] + minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] ++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i] + if sys.hexversion >= minverhex: + sys.exit( 0 ) + else: +@@ -19713,15 +19717,15 @@ + fi + + +- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"` ++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(map(str, sys.version_info[:2])));"` + +- RIVET_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"` ++ RIVET_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"` + + ## Test for Python header + if test -x "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 + $as_echo_n "checking for Python include path... " >&6; } +- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"` ++python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5 + $as_echo "$python_incpath" >&6; } + python_header="$python_incpath/Python.h" diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.2.patch new file mode 100644 index 0000000000..9f536d3751 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.2.patch @@ -0,0 +1,10 @@ +--- ./include/Rivet/Tools/RivetSTL.hh.orig 2017-08-03 11:49:33.005431033 +0200 ++++ ./include/Rivet/Tools/RivetSTL.hh 2017-08-03 11:50:13.817841608 +0200 +@@ -19,6 +19,7 @@ + #include <iomanip> + #include <cmath> + #include <limits> ++#include <functional> + + + #ifndef foreach diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.3.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.3.patch new file mode 100644 index 0000000000..bebf5c73ab --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.3.patch @@ -0,0 +1,43 @@ +--- include/Rivet/Config/RivetCommon.hh.orig 2017-05-31 12:32:04.547062840 +0200 ++++ include/Rivet/Config/RivetCommon.hh 2017-05-31 12:32:12.379054886 +0200 +@@ -2,6 +2,7 @@ + #define RIVET_RivetCommon_HH + + // Convenience build-setup header for Rivet internal use ++#include <functional> + + // Automatic build info from autoconf + #include "Rivet/Config/RivetConfig.hh" +--- include/Rivet/Run.hh.orig 2017-05-31 12:36:00.225823486 +0200 ++++ include/Rivet/Run.hh 2017-05-31 12:36:18.653804770 +0200 +@@ -4,6 +4,7 @@ + + #include "Rivet/Tools/RivetSTL.hh" + #include "Rivet/Tools/RivetHepMC.hh" ++#include <functional> + + namespace Rivet { + +--- include/Rivet/Particle.hh.orig 2017-05-31 12:39:14.273626411 +0200 ++++ include/Rivet/Particle.hh 2017-05-31 14:00:02.387272379 +0200 +@@ -11,6 +11,8 @@ + // NOTE: Rivet/Tools/ParticleUtils.hh included at the end + #include "fastjet/PseudoJet.hh" + ++#include <functional> ++ + namespace Rivet { + + +--- include/Rivet/Tools/RivetSTL.hh.orig 2017-05-31 14:05:28.368975178 +0200 ++++ include/Rivet/Tools/RivetSTL.hh 2017-05-31 14:05:44.432960512 +0200 +@@ -1,6 +1,8 @@ + #ifndef RIVET_RivetSTL_HH + #define RIVET_RivetSTL_HH + ++#include <functional> ++ + #include <string> + #include <vector> + #include <set> + diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.4.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.4.patch new file mode 100644 index 0000000000..af338da6d5 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.4.patch @@ -0,0 +1,42 @@ +patch written by GENSER to avoid system libraries of GLS coming from fastjet-config +--- include/Rivet/Tools/JetUtils.hh ++++ include/Rivet/Tools/JetUtils.hh +@@ -47,4 +47,5 @@ + struct BoolJetFunctor { + virtual bool operator()(const Jet& p) const = 0; ++ virtual ~BoolJetFunctor() {} + }; + +--- include/Rivet/Tools/ParticleBaseUtils.hh ++++ include/Rivet/Tools/ParticleBaseUtils.hh +@@ -23,4 +23,5 @@ + struct BoolParticleBaseFunctor { + virtual bool operator()(const ParticleBase& p) const = 0; ++ virtual ~BoolParticleBaseFunctor() {} + }; + +@@ -397,4 +398,5 @@ + struct DoubleParticleBaseFunctor { + virtual double operator()(const ParticleBase& p) const = 0; ++ virtual ~DoubleParticleBaseFunctor() {} + }; + +--- include/Rivet/Tools/ParticleUtils.hh ++++ include/Rivet/Tools/ParticleUtils.hh +@@ -486,4 +486,5 @@ + struct BoolParticleFunctor { + virtual bool operator()(const Particle& p) const = 0; ++ virtual ~BoolParticleFunctor() {} + }; + +--- src/Makefile.in.orig 2018-01-30 13:52:58.641670247 +0100 ++++ src/Makefile.in 2018-01-30 13:53:19.377586118 +0100 +@@ -449,7 +449,7 @@ + libRivet_la_SOURCES = + libRivet_la_LDFLAGS = -export-dynamic -avoid-version -L$(YODALIBPATH) -L$(HEPMCLIBPATH) + libRivet_la_LIBADD = Core/libRivetCore.la Projections/libRivetProjections.la Tools/libRivetTools.la $(ANA_LIBADD) \ +- -lYODA -lHepMC -ldl -lm $(FASTJETCONFIGLIBADD) $(GSL_LDFLAGS) ++ -lYODA -lHepMC -ldl -lm $(GSL_LDFLAGS) $(FASTJETCONFIGLIBADD) + + all: all-recursive + diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.6.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.6.0.patch new file mode 100644 index 0000000000..2cb7cab14b --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.6.0.patch @@ -0,0 +1,90 @@ +--- include/Rivet/Tools/JetUtils.hh ++++ include/Rivet/Tools/JetUtils.hh +@@ -47,4 +47,5 @@ + struct BoolJetFunctor { + virtual bool operator()(const Jet& p) const = 0; ++ virtual ~BoolJetFunctor() {} + }; + +--- include/Rivet/Tools/ParticleBaseUtils.hh ++++ include/Rivet/Tools/ParticleBaseUtils.hh +@@ -23,4 +23,5 @@ + struct BoolParticleBaseFunctor { + virtual bool operator()(const ParticleBase& p) const = 0; ++ virtual ~BoolParticleBaseFunctor() {} + }; + +@@ -397,4 +398,5 @@ + struct DoubleParticleBaseFunctor { + virtual double operator()(const ParticleBase& p) const = 0; ++ virtual ~DoubleParticleBaseFunctor() {} + }; + +--- include/Rivet/Tools/ParticleUtils.hh ++++ include/Rivet/Tools/ParticleUtils.hh +@@ -486,4 +486,5 @@ + struct BoolParticleFunctor { + virtual bool operator()(const Particle& p) const = 0; ++ virtual ~BoolParticleFunctor() {} + }; + +--- analyses/Makefile.in.orig 2018-06-28 09:22:46.722022129 +0200 ++++ analyses/Makefile.in 2018-06-28 10:11:59.772373529 +0200 +@@ -523,21 +523,21 @@ + @ENABLE_ANALYSES_TRUE@%.so: + @ENABLE_ANALYSES_TRUE@ @+echo && RIVET_BUILDPLUGIN_BEFORE_INSTALL=1 bash $(top_builddir)/bin/rivet-buildplugin -j2 $@ $^ -I$(top_builddir)/include + +-@ENABLE_ANALYSES_TRUE@RivetALICEAnalyses.so: $(shell ls $(srcdir)/pluginALICE/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetATLASAnalyses.so: $(shell ls $(srcdir)/pluginATLAS/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetCDFAnalyses.so : $(shell ls $(srcdir)/pluginCDF/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetCMSAnalyses.so : $(shell ls $(srcdir)/pluginCMS/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetD0Analyses.so : $(shell ls $(srcdir)/pluginD0/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetHERAAnalyses.so : $(shell ls $(srcdir)/pluginHERA/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetLEPAnalyses.so : $(shell ls $(srcdir)/pluginLEP/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetLHCbAnalyses.so : $(shell ls $(srcdir)/pluginLHCb/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetLHCfAnalyses.so : $(shell ls $(srcdir)/pluginLHCf/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetMCAnalyses.so : $(shell ls $(srcdir)/pluginMC/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetMiscAnalyses.so : $(shell ls $(srcdir)/pluginMisc/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetPetraAnalyses.so: $(shell ls $(srcdir)/pluginPetra/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetRHICAnalyses.so : $(shell ls $(srcdir)/pluginRHIC/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetSPSAnalyses.so : $(shell ls $(srcdir)/pluginSPS/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetTOTEMAnalyses.so: $(shell ls $(srcdir)/pluginTOTEM/*.cc) ++@ENABLE_ANALYSES_TRUE@RivetALICEAnalyses.so: $(shell find $(srcdir)/pluginALICE/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetATLASAnalyses.so: $(shell find $(srcdir)/pluginATLAS/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetCDFAnalyses.so : $(shell find $(srcdir)/pluginCDF/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetCMSAnalyses.so : $(shell find $(srcdir)/pluginCMS/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetD0Analyses.so : $(shell find $(srcdir)/pluginD0/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetHERAAnalyses.so : $(shell find $(srcdir)/pluginHERA/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetLEPAnalyses.so : $(shell find $(srcdir)/pluginLEP/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetLHCbAnalyses.so : $(shell find $(srcdir)/pluginLHCb/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetLHCfAnalyses.so : $(shell find $(srcdir)/pluginLHCf/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetMCAnalyses.so : $(shell find $(srcdir)/pluginMC/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetMiscAnalyses.so : $(shell find $(srcdir)/pluginMisc/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetPetraAnalyses.so: $(shell find $(srcdir)/pluginPetra/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetRHICAnalyses.so : $(shell find $(srcdir)/pluginRHIC/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetSPSAnalyses.so : $(shell find $(srcdir)/pluginSPS/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetTOTEMAnalyses.so: $(shell find $(srcdir)/pluginTOTEM/ -name '*.cc' -not -name 'tmp*') + + @ENABLE_ANALYSES_TRUE@all-local: $(PLUGIN_LIBS) $(PLUGIN_DATAFILES) + @ENABLE_ANALYSES_TRUE@ mkdir -p $(builddir)/data +--- analyses/pluginATLAS/ATLAS_2016_CONF_2016_037.cc.orig 2018-07-02 10:43:08.656094368 +0200 ++++ analyses/pluginATLAS/ATLAS_2016_CONF_2016_037.cc 2018-07-02 10:44:04.920361160 +0200 +@@ -2,6 +2,7 @@ + #include "Rivet/Analysis.hh" + #include "Rivet/Projections/FinalState.hh" + #include "Rivet/Projections/PromptFinalState.hh" ++#include "Rivet/Projections/ChargedFinalState.hh" + #include "Rivet/Projections/FastJets.hh" + #include "Rivet/Projections/Sphericity.hh" + #include "Rivet/Projections/SmearedParticles.hh" +--- include/Rivet/AnalysisHandler.hh.orig 2018-07-10 10:39:21.719532209 +0200 ++++ include/Rivet/AnalysisHandler.hh 2018-07-10 10:39:29.225608530 +0200 +@@ -17,7 +17,7 @@ + + // Needed to make smart pointers compare equivalent in the STL set + struct CmpAnaHandle { +- bool operator() (const AnaHandle& a, const AnaHandle& b) { ++ bool operator() (const AnaHandle& a, const AnaHandle& b) const { + return a.get() < b.get(); + } + }; diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.6.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.6.1.patch new file mode 100644 index 0000000000..878e72d739 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.6.1.patch @@ -0,0 +1,24 @@ +--- doc/Makefile.in.orig 2018-10-17 18:29:15.568630034 +0200 ++++ doc/Makefile.in 2018-10-17 18:31:45.829375147 +0200 +@@ -594,15 +594,15 @@ + .PRECIOUS: Makefile + + @ENABLE_PYEXT_TRUE@analyses.html: $(top_srcdir)/analyses $(srcdir)/mk-analysis-html +-@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(LD_LIBRARY_PATH) \ +-@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(DYLD_LIBRARY_PATH) \ ++@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(LD_LIBRARY_PATH) \ ++@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(DYLD_LIBRARY_PATH) \ + @ENABLE_PYEXT_TRUE@ PYTHONPATH=$(YODA_PYTHONPATH):$(RIVET_PYTHONPATH):$(PYTHONPATH) \ +-@ENABLE_PYEXT_TRUE@ $(srcdir)/mk-analysis-html ++@ENABLE_PYEXT_TRUE@ $(PYTHON) $(srcdir)/mk-analysis-html + @ENABLE_PYEXT_TRUE@analyses.json: $(top_srcdir)/analyses $(srcdir)/mk-analysis-json +-@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(LD_LIBRARY_PATH) \ +-@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(DYLD_LIBRARY_PATH) \ ++@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(LD_LIBRARY_PATH) \ ++@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(DYLD_LIBRARY_PATH) \ + @ENABLE_PYEXT_TRUE@ PYTHONPATH=$(YODA_PYTHONPATH):$(RIVET_PYTHONPATH):$(PYTHONPATH) \ +-@ENABLE_PYEXT_TRUE@ $(srcdir)/mk-analysis-json ++@ENABLE_PYEXT_TRUE@ $(PYTHON) $(srcdir)/mk-analysis-json + + @WITH_ASCIIDOC_TRUE@compare-histos.html: compare-histos.txt + @WITH_ASCIIDOC_TRUE@ asciidoc -a toc compare-histos.txt diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.6.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.6.2.patch new file mode 100644 index 0000000000..a327f481d4 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.6.2.patch @@ -0,0 +1,97 @@ +--- configure.ac.orig 2019-01-23 11:02:06.206570992 +0100 ++++ configure.ac 2019-01-23 11:02:26.704761899 +0100 +@@ -151,12 +151,12 @@ + + + # ## GNU Scientific Library +-# AC_SEARCH_GSL +-# AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])]) +-# oldCPPFLAGS=$CPPFLAGS +-# CPPFLAGS="$CPPFLAGS -I$GSLINCPATH" +-# AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])]) +-# CPPFLAGS=$oldCPPFLAGS ++AC_SEARCH_GSL ++AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])]) ++oldCPPFLAGS=$CPPFLAGS ++CPPFLAGS="$CPPFLAGS -I$GSLINCPATH" ++AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])]) ++CPPFLAGS=$oldCPPFLAGS + + + ## Disable build/install of standard analyses +@@ -256,7 +256,7 @@ + ## Set default build flags + AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include" + #AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)/include/eigen3" +-#AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)" ++AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)" + dnl AM_CPPFLAGS="$AM_CPPFLAGS \$(BOOST_CPPFLAGS)" + AM_CPPFLAGS="$AM_CPPFLAGS -I\$(YODAINCPATH)" + AM_CPPFLAGS="$AM_CPPFLAGS -I\$(HEPMCINCPATH)" +--- bin/rivet-config.in.orig 2019-01-23 11:08:04.608907832 +0100 ++++ bin/rivet-config.in 2019-01-23 11:08:25.058098155 +0100 +@@ -82,8 +82,8 @@ + test -n "$iyoda" && OUT="$OUT -I${iyoda}" + ifastjet="@FASTJETINCPATH@" + test -n "$ifastjet" && OUT="$OUT -I${ifastjet}" +- # igsl="@GSLINCPATH@" +- # test -n "$igsl" && OUT="$OUT -I${igsl}" ++ igsl="@GSLINCPATH@" ++ test -n "$igsl" && OUT="$OUT -I${igsl}" + # iboost="@BOOST_CPPFLAGS@" + # test -n "$iboost" && OUT="$OUT ${iboost}" + fi +@@ -98,8 +98,8 @@ + test -n "$lyoda" && OUT="$OUT -L${lyoda} -lYODA" + lfastjet="@FASTJETCONFIGLIBADD@" + test -n "$lfastjet" && OUT="$OUT ${lfastjet}" +- # lgsl="@GSLLIBPATH@" +- # test -n "$lgsl" && OUT="$OUT -L${lgsl}" ++ lgsl="@GSLLIBPATH@" ++ test -n "$lgsl" && OUT="$OUT -L${lgsl}" + fi + + tmp=$( echo "$*" | egrep -- '--\<libs\>|--\<ldadd\>') +--- bin/rivet-buildplugin.in.orig 2019-01-23 11:10:07.804054317 +0100 ++++ bin/rivet-buildplugin.in 2019-01-23 11:10:34.370301517 +0100 +@@ -169,8 +169,8 @@ + test -n "$iyoda" && mycppflags="$mycppflags -I${iyoda}" + ifastjet="@FASTJETINCPATH@" + test -n "$ifastjet" && mycppflags="$mycppflags -I${ifastjet}" +-# igsl="@GSLINCPATH@" +-# test -n "$igsl" && mycppflags="$mycppflags -I${igsl}" ++igsl="@GSLINCPATH@" ++test -n "$igsl" && mycppflags="$mycppflags -I${igsl}" + # iboost="@BOOST_CPPFLAGS@" + # test -n "$iboost" && mycppflags="$mycppflags ${iboost}" + +--- pyext/setup.py.in.orig 2019-01-23 11:12:04.694141901 +0100 ++++ pyext/setup.py.in 2019-01-23 11:12:44.531512512 +0100 +@@ -29,11 +29,11 @@ + + + ## Be careful with extracting the GSL path from the flags string +-# import re +-# re_libdirflag = re.compile(r".*-L\s*(\S+).*") +-# re_match = re_libdirflag.search("@GSL_LDFLAGS@") +-# if re_match: +- # lookupdirs.append( re_match.group(1) ) ++import re ++re_libdirflag = re.compile(r".*-L\s*(\S+).*") ++re_match = re_libdirflag.search("@GSL_LDFLAGS@") ++if re_match: ++ lookupdirs.append( re_match.group(1) ) + + ## A helper function + def ext(name, depends=[], statics=[]): +@@ -47,8 +47,8 @@ + language="c++", + # depends=depends, + include_dirs=[incdir1, incdir2, incdir3, incdir4], +- # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(), +- extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(), ++ extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(), ++ # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(), + extra_link_args=BASE_LINK_ARGS, + library_dirs=lookupdirs, + runtime_library_dirs=lookupdirs[1:], diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.7.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.7.0.patch new file mode 100644 index 0000000000..a327f481d4 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.7.0.patch @@ -0,0 +1,97 @@ +--- configure.ac.orig 2019-01-23 11:02:06.206570992 +0100 ++++ configure.ac 2019-01-23 11:02:26.704761899 +0100 +@@ -151,12 +151,12 @@ + + + # ## GNU Scientific Library +-# AC_SEARCH_GSL +-# AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])]) +-# oldCPPFLAGS=$CPPFLAGS +-# CPPFLAGS="$CPPFLAGS -I$GSLINCPATH" +-# AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])]) +-# CPPFLAGS=$oldCPPFLAGS ++AC_SEARCH_GSL ++AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])]) ++oldCPPFLAGS=$CPPFLAGS ++CPPFLAGS="$CPPFLAGS -I$GSLINCPATH" ++AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])]) ++CPPFLAGS=$oldCPPFLAGS + + + ## Disable build/install of standard analyses +@@ -256,7 +256,7 @@ + ## Set default build flags + AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include" + #AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)/include/eigen3" +-#AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)" ++AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)" + dnl AM_CPPFLAGS="$AM_CPPFLAGS \$(BOOST_CPPFLAGS)" + AM_CPPFLAGS="$AM_CPPFLAGS -I\$(YODAINCPATH)" + AM_CPPFLAGS="$AM_CPPFLAGS -I\$(HEPMCINCPATH)" +--- bin/rivet-config.in.orig 2019-01-23 11:08:04.608907832 +0100 ++++ bin/rivet-config.in 2019-01-23 11:08:25.058098155 +0100 +@@ -82,8 +82,8 @@ + test -n "$iyoda" && OUT="$OUT -I${iyoda}" + ifastjet="@FASTJETINCPATH@" + test -n "$ifastjet" && OUT="$OUT -I${ifastjet}" +- # igsl="@GSLINCPATH@" +- # test -n "$igsl" && OUT="$OUT -I${igsl}" ++ igsl="@GSLINCPATH@" ++ test -n "$igsl" && OUT="$OUT -I${igsl}" + # iboost="@BOOST_CPPFLAGS@" + # test -n "$iboost" && OUT="$OUT ${iboost}" + fi +@@ -98,8 +98,8 @@ + test -n "$lyoda" && OUT="$OUT -L${lyoda} -lYODA" + lfastjet="@FASTJETCONFIGLIBADD@" + test -n "$lfastjet" && OUT="$OUT ${lfastjet}" +- # lgsl="@GSLLIBPATH@" +- # test -n "$lgsl" && OUT="$OUT -L${lgsl}" ++ lgsl="@GSLLIBPATH@" ++ test -n "$lgsl" && OUT="$OUT -L${lgsl}" + fi + + tmp=$( echo "$*" | egrep -- '--\<libs\>|--\<ldadd\>') +--- bin/rivet-buildplugin.in.orig 2019-01-23 11:10:07.804054317 +0100 ++++ bin/rivet-buildplugin.in 2019-01-23 11:10:34.370301517 +0100 +@@ -169,8 +169,8 @@ + test -n "$iyoda" && mycppflags="$mycppflags -I${iyoda}" + ifastjet="@FASTJETINCPATH@" + test -n "$ifastjet" && mycppflags="$mycppflags -I${ifastjet}" +-# igsl="@GSLINCPATH@" +-# test -n "$igsl" && mycppflags="$mycppflags -I${igsl}" ++igsl="@GSLINCPATH@" ++test -n "$igsl" && mycppflags="$mycppflags -I${igsl}" + # iboost="@BOOST_CPPFLAGS@" + # test -n "$iboost" && mycppflags="$mycppflags ${iboost}" + +--- pyext/setup.py.in.orig 2019-01-23 11:12:04.694141901 +0100 ++++ pyext/setup.py.in 2019-01-23 11:12:44.531512512 +0100 +@@ -29,11 +29,11 @@ + + + ## Be careful with extracting the GSL path from the flags string +-# import re +-# re_libdirflag = re.compile(r".*-L\s*(\S+).*") +-# re_match = re_libdirflag.search("@GSL_LDFLAGS@") +-# if re_match: +- # lookupdirs.append( re_match.group(1) ) ++import re ++re_libdirflag = re.compile(r".*-L\s*(\S+).*") ++re_match = re_libdirflag.search("@GSL_LDFLAGS@") ++if re_match: ++ lookupdirs.append( re_match.group(1) ) + + ## A helper function + def ext(name, depends=[], statics=[]): +@@ -47,8 +47,8 @@ + language="c++", + # depends=depends, + include_dirs=[incdir1, incdir2, incdir3, incdir4], +- # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(), +- extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(), ++ extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(), ++ # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(), + extra_link_args=BASE_LINK_ARGS, + library_dirs=lookupdirs, + runtime_library_dirs=lookupdirs[1:], diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.0.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.0.0.patch new file mode 100644 index 0000000000..229bfb4acc --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-3.0.0.patch @@ -0,0 +1,70 @@ +--- bin/rivet-buildplugin.in.orig Mon Jul 08 15:16:09 2019 +0100 ++++ bin/rivet-buildplugin.in Wed Jul 10 16:15:41 2019 +0100 +@@ -172,4 +172,6 @@ + ifastjet="@FASTJETINCPATH@" + test -n "$ifastjet" && mycppflags="$mycppflags -I${ifastjet}" ++ifjcontrib="@FJCONTRIBCPPFLAGS@" ++test -n "$ifjcontrib" && mycppflags="$mycppflags ${ifjcontrib}" + + ## Get Rivet system linker flags (duplicating that in rivet-config.in) +--- bin/rivet-config.in.orig Mon Jul 08 15:16:09 2019 +0100 ++++ bin/rivet-config.in Wed Jul 10 16:15:41 2019 +0100 +@@ -83,4 +83,6 @@ + ifastjet="@FASTJETINCPATH@" + test -n "$ifastjet" && OUT="$OUT -I${ifastjet}" ++ ifjcontrib="@FJCONTRIBCPPFLAGS@" ++ test -n "$ifjcontrib" && OUT="$OUT ${ifjcontrib}" + fi + +--- configure.ac.orig Mon Jul 08 15:16:09 2019 +0100 ++++ configure.ac Wed Jul 10 16:15:41 2019 +0100 +@@ -197,10 +197,26 @@ + FASTJETLIBADD="$FASTJETLIBADD -lEECambridgePlugin -lJadePlugin" + fi; ++ ++## FastJet contrib (allow paths specified separately from FJ) ++AC_ARG_WITH([fjcontrib], ++ [AC_HELP_STRING(--with-fjcontrib, path to FastJet Contrib @<:@$FASTJETPATH@:>@)], [], []) ++if test -n "$with_fjcontrib"; then ++ AC_MSG_NOTICE([FastJet Contrib base path given: $with_fjcontrib]) ++ FJCONTRIBINCPATH=$with_fjcontrib/include ++ FJCONTRIBLIBPATH=$with_fjcontrib/lib ++ FJCONTRIBCPPFLAGS=-I$FJCONTRIBINCPATH ++ AC_SUBST(FJCONTRIBINCPATH) ++ AC_SUBST(FJCONTRIBLIBPATH) ++ AC_SUBST(FJCONTRIBCPPFLAGS) ++ FASTJETLIBADD="-L$FJCONTRIBLIBPATH $FASTJETLIBADD" ++fi + FASTJETLIBADD="$FASTJETLIBADD -lfastjetcontribfragile -lfastjettools" ++ ++## Test FastJet + Contrib ++## Check for FastJet headers that require the --enable-all(cxx)plugins option + AC_MSG_NOTICE([FastJet LIBADD = $FASTJETLIBADD]) + AC_SUBST(FASTJETLIBADD) +-# Check for FastJet headers that require the --enable-all(cxx)plugins option + oldCPPFLAGS=$CPPFLAGS +-CPPFLAGS="$CPPFLAGS -I$FASTJETINCPATH" ++CPPFLAGS="$CPPFLAGS $FASTJETCPPFLAGS $FJCONTRIBCPPFLAGS" + oldLIBS=$LIBS + LIBS="$LIBS $FASTJETLIBADD" +@@ -339,5 +355,4 @@ + #AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)/include/eigen3" + #AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)" +-dnl AM_CPPFLAGS="$AM_CPPFLAGS \$(BOOST_CPPFLAGS)" + AM_CPPFLAGS="$AM_CPPFLAGS -I\$(YODAINCPATH)" + if test x$use_hepmc2 = xyes ; then +@@ -346,5 +361,5 @@ + AM_CPPFLAGS="$AM_CPPFLAGS -I\$(HEPMC3INCPATH)" + fi +-AM_CPPFLAGS="$AM_CPPFLAGS -I\$(FASTJETINCPATH)" ++AM_CPPFLAGS="$AM_CPPFLAGS \$(FASTJETCPPFLAGS) \$(FJCONTRIBCPPFLAGS)" + AC_CEDAR_CHECKCXXFLAG([-pedantic], [AM_CXXFLAGS="$AM_CXXFLAGS -pedantic"]) + AC_CEDAR_CHECKCXXFLAG([-Wall], [AM_CXXFLAGS="$AM_CXXFLAGS -Wall"]) +--- src/AnalysisTools/Makefile.am.org Mon Jul 08 15:16:09 2019 +0100 ++++ src/AnalysisTools/Makefile.am Wed Jul 10 16:15:41 2019 +0100 +@@ -6,4 +6,4 @@ + MC_JetSplittings.cc + +-libRivetAnalysisTools_la_LDFLAGS = $(AM_LDFLAGS) -L$(FASTJETLIBPATH) ++libRivetAnalysisTools_la_LDFLAGS = $(AM_LDFLAGS) -L$(FASTJETLIBPATH) -L$(FJCONTRIBLIBPATH) + libRivetAnalysisTools_la_LIBS = $(FASTJETLIBADD) diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.0.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.0.1.patch new file mode 100644 index 0000000000..31bdcbc7e3 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-3.0.1.patch @@ -0,0 +1,11 @@ +--- bin/rivet-buildplugin.in.orig 2020-04-30 14:41:44.988555918 +0200 ++++ bin/rivet-buildplugin.in 2020-04-30 14:42:21.301319083 +0200 +@@ -249,7 +249,7 @@ + srcnames[$idx]="$tmpfile" + fi + done +-objnames=("${srcnames[@]/.cc/.o}") ++objnames=("${srcnames[@]/%.cc/.o}") + + if [[ -z "$debug" ]]; then silencer="@"; fi + tmpmakefile=$(mktemp Makefile.tmp.XXXXXXXXXX) diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.1.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.1.0.patch new file mode 100644 index 0000000000..ff09f52862 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-3.1.0.patch @@ -0,0 +1,11 @@ +--- bin/rivet-build.in.orig 2020-04-30 11:11:53.820773774 +0200 ++++ bin/rivet-build.in 2020-04-30 11:12:32.766024110 +0200 +@@ -249,7 +249,7 @@ + srcnames[$idx]="$tmpfile" + fi + done +-objnames=("${srcnames[@]/.cc/.o}") ++objnames=("${srcnames[@]/%.cc/.o}") + + if [[ -z "$debug" ]]; then silencer="@"; fi + tmpmakefile=$(mktemp Makefile.tmp.XXXXXXXXXX) diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.1.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.1.1.patch new file mode 100644 index 0000000000..687d22819a --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-3.1.1.patch @@ -0,0 +1,11 @@ +--- configure.ac.orig 2020-05-12 11:26:03.482506197 +0200 ++++ configure.ac 2020-05-12 11:54:55.569077342 +0200 +@@ -211,7 +211,7 @@ + if test "$fjmajor" -lt 3; then + AC_MSG_ERROR([FastJet version 3.0.0 or later is required]) + fi +- FASTJETLIBADD="$($FJCONFIG --plugins --shared --libs| tr ' ' '\n' | grep -v gcc | tr '\n' ' ')" ++ FASTJETLIBADD="$($FJCONFIG --plugins --shared --libs)" + else + FASTJETLIBADD="-L$FASTJETLIBPATH -l$FASTJETLIBNAME" + FASTJETLIBADD="$FASTJETLIBADD -lSISConePlugin -lsiscone -lsiscone_spherical" diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py index 0e590e30ae..73770b31b9 100644 --- a/var/spack/repos/builtin/packages/root/package.py +++ b/var/spack/repos/builtin/packages/root/package.py @@ -26,6 +26,7 @@ class Root(CMakePackage): # Development version (when more recent than production). # Production version + version('6.22.00', sha256='efd961211c0f9cd76cf4a486e4f89badbcf1d08e7535bba556862b3c1a80beed') version('6.20.04', sha256='1f8c76ccdb550e64e6ddb092b4a7e9d0a10655ef80044828cba12d5e7c874472') version('6.20.02', sha256='0997586bf097c0afbc6f08edbffcebf5eb6a4237262216114ba3f5c8087dcba6') version('6.20.00', sha256='68421eb0434b38b66346fa8ea6053a0fdc9a6d254e4a72019f4e3633ae118bf0') @@ -235,6 +236,7 @@ class Root(CMakePackage): depends_on('r', when='+r', type=('build', 'run')) depends_on('r-rcpp', when='+r', type=('build', 'run')) depends_on('r-rinside', when='+r', type=('build', 'run')) + depends_on('readline', when='+r') depends_on('shadow', when='+shadow') depends_on('sqlite', when='+sqlite') depends_on('tbb', when='+tbb') @@ -381,7 +383,7 @@ class Root(CMakePackage): ['pythia8'], ['qt', 'qt4'], # See conflicts ['qtgsi', 'qt4'], # See conflicts - ['r', 'R'], + ['r', 'r'], ['rfio', False], ['roofit'], ['root7'], # See conflicts @@ -447,9 +449,10 @@ class Root(CMakePackage): return options def setup_build_environment(self, env): - if 'lz4' in self.spec: - env.append_path('CMAKE_PREFIX_PATH', - self.spec['lz4'].prefix) + spec = self.spec + + if 'lz4' in spec: + env.append_path('CMAKE_PREFIX_PATH', spec['lz4'].prefix) # This hack is made necessary by a header name collision between # asimage's "import.h" and Python's "import.h" headers... @@ -463,20 +466,20 @@ class Root(CMakePackage): # into SPACK_INCLUDE_DIRS, even in a deprioritized form, because some # system/compiler combinations don't like having -I/usr/include around. def add_include_path(dep_name): - include_path = self.spec[dep_name].prefix.include + include_path = spec[dep_name].prefix.include if not is_system_path(include_path): env.append_path('SPACK_INCLUDE_DIRS', include_path) # With that done, let's go fixing those deps - if self.spec.satisfies('+x @:6.08.99'): - add_include_path('xextproto') - if self.spec.satisfies('@:6.12.99'): + if spec.satisfies('@:6.12.99'): add_include_path('zlib') - if '+x' in self.spec: + if '+x' in spec: + if spec.satisfies('@:6.08.99') or spec.satisfies('@6.22:'): + add_include_path('xextproto') add_include_path('fontconfig') add_include_path('libx11') add_include_path('xproto') - if '+opengl' in self.spec: + if '+opengl' in spec: add_include_path('glew') add_include_path('mesa-glu') diff --git a/var/spack/repos/builtin/packages/rsync/package.py b/var/spack/repos/builtin/packages/rsync/package.py index 078f11e630..2e361f7f6c 100644 --- a/var/spack/repos/builtin/packages/rsync/package.py +++ b/var/spack/repos/builtin/packages/rsync/package.py @@ -11,12 +11,17 @@ 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.2', sha256='644bd3841779507665211fd7db8359c8a10670c57e305b4aab61b4e40037afa8') version('3.1.3', sha256='55cc554efec5fdaad70de921cd5a5eeb6c29a95524c715f3bbf849235b0800c0') version('3.1.2', sha256='ecfa62a7fa3c4c18b9eccd8c16eaddee4bd308a76ea50b5c02a5840f09c0a1c2') version('3.1.1', sha256='7de4364fcf5fe42f3bdb514417f1c40d10bbca896abe7e7f2c581c6ea08a2621') depends_on('zlib') depends_on('popt') + depends_on('openssl', when='@3.2:') + depends_on('xxhash', when='@3.2:') + depends_on('zstd', when='@3.2:') + depends_on('lz4', when='@3.2:') def configure_args(self): return ['--with-included-zlib=no'] diff --git a/var/spack/repos/builtin/packages/scons/fjcompiler.patch b/var/spack/repos/builtin/packages/scons/fjcompiler.patch new file mode 100644 index 0000000000..54ec369c55 --- /dev/null +++ b/var/spack/repos/builtin/packages/scons/fjcompiler.patch @@ -0,0 +1,179 @@ +diff -u -r -N a/engine/SCons/Tool/fcc.py b/engine/SCons/Tool/fcc.py +--- a/engine/SCons/Tool/fcc.py 1970-01-01 09:00:00.000000000 +0900 ++++ b/engine/SCons/Tool/fcc.py 2020-07-21 17:28:12.000000000 +0900 +@@ -0,0 +1,82 @@ ++"""SCons.Tool.fcc ++ ++Tool-specific initialization for Fujitsu C/C++ compiler. ++ ++There normally shouldn't be any need to import this module directly. ++It will usually be imported through the generic SCons.Tool.Tool() ++selection method. ++ ++""" ++ ++# ++# Copyright (c) 2001 - 2019 The SCons Foundation ++# ++# 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. ++# ++ ++__revision__ = "src/engine/SCons/Tool/fcc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan" ++ ++from . import cc ++from . import cxx ++import os ++import re ++import subprocess ++ ++import SCons.Util ++import SCons.Tool ++ ++from . import gcc ++ ++compilers = ['fcc'] ++ ++ ++def generate(env): ++ """Add Builders and construction variables for Fujitsu C/C++ compiler to an Environment.""" ++ static_obj, shared_obj = SCons.Tool.createObjBuilders(env) ++ ++ if 'CC' not in env: ++ env['CC'] = env.Detect(compilers) or compilers[0] ++ ++ cc.generate(env) ++ ++ env['SHCCFLAGS'] = SCons.Util.CLVar('$CCFLAGS -fPIC') ++ # determine C compiler version ++ version = gcc.detect_version(env, env['CC']) ++ if version: ++ env['CCVERSION'] = version ++ ++ if 'CXX' not in env: ++ env['CXX'] = env.Detect('FCC') or 'FCC' ++ ++ cxx.generate(env) ++ ++ # determine C++ compiler version ++ version = gcc.detect_version(env, env['CXX']) ++ if version: ++ env['CXXVERSION'] = version ++ ++def exists(env): ++ return env.Detect(compilers) ++ ++# Local Variables: ++# tab-width:4 ++# indent-tabs-mode:nil ++# End: ++# vim: set expandtab tabstop=4 shiftwidth=4: +diff -u -r -N a/engine/SCons/Tool/frt.py b/engine/SCons/Tool/frt.py +--- a/engine/SCons/Tool/frt.py 1970-01-01 09:00:00.000000000 +0900 ++++ b/engine/SCons/Tool/frt.py 2020-07-21 17:28:57.000000000 +0900 +@@ -0,0 +1,63 @@ ++"""SCons.Tool.frt ++ ++Tool-specific initialization for frt, the Fujitsu Fortran 95/Fortran ++2003 compiler. ++ ++There normally shouldn't be any need to import this module directly. ++It will usually be imported through the generic SCons.Tool.Tool() ++selection method. ++ ++""" ++ ++# ++# Copyright (c) 2001 - 2019 The SCons Foundation ++# ++# 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. ++# ++ ++__revision__ = "src/engine/SCons/Tool/frt.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan" ++ ++import SCons.Util ++ ++from . import fortran ++ ++def generate(env): ++ """Add Builders and construction variables for frt to an ++ Environment.""" ++ fortran.generate(env) ++ ++ for dialect in ['F77', 'F90', 'FORTRAN', 'F95', 'F03', 'F08']: ++ env['%s' % dialect] = 'frt' ++ env['SH%s' % dialect] = 'frt' ++ env['SH%sFLAGS' % dialect] = SCons.Util.CLVar('$%sFLAGS -fPIC' % dialect) ++ ++ env['INC%sPREFIX' % dialect] = "-I" ++ env['INC%sSUFFIX' % dialect] = "" ++ ++ env['FORTRANMODDIRPREFIX'] = "-M" ++ ++def exists(env): ++ return env.Detect('frt') ++ ++# Local Variables: ++# tab-width:4 ++# indent-tabs-mode:nil ++# End: ++# vim: set expandtab tabstop=4 shiftwidth=4: +diff -u -r -N a/engine/SCons/Tool/__init__.py b/engine/SCons/Tool/__init__.py +--- a/engine/SCons/Tool/__init__.py 2020-07-21 11:39:14.000000000 +0900 ++++ b/engine/SCons/Tool/__init__.py 2020-07-21 16:30:54.000000000 +0900 +@@ -1259,10 +1259,10 @@ + else: + "prefer GNU tools on all other platforms" + linkers = ['gnulink', 'ilink'] +- c_compilers = ['gcc', 'intelc', 'icc', 'cc'] +- cxx_compilers = ['g++', 'intelc', 'icc', 'cxx'] ++ c_compilers = ['fcc', 'gcc', 'intelc', 'icc', 'cc'] ++ cxx_compilers = ['fcc', 'g++', 'intelc', 'icc', 'cxx'] + assemblers = ['gas', 'nasm', 'masm'] +- fortran_compilers = ['gfortran', 'g77', 'ifort', 'ifl', 'f95', 'f90', 'f77'] ++ fortran_compilers = ['frt', 'gfortran', 'g77', 'ifort', 'ifl', 'f95', 'f90', 'f77'] + ars = ['ar', ] + + if not str(platform) == 'win32': +@@ -1282,7 +1282,7 @@ + ar = None + else: + # Don't use g++ if the C compiler has built-in C++ support: +- if c_compiler in ('msvc', 'intelc', 'icc'): ++ if c_compiler in ('msvc', 'intelc', 'icc', 'fcc'): + cxx_compiler = None + else: + cxx_compiler = FindTool(cxx_compilers, env) or cxx_compilers[0] diff --git a/var/spack/repos/builtin/packages/scons/package.py b/var/spack/repos/builtin/packages/scons/package.py index 328fa558ab..872e4cb852 100644 --- a/var/spack/repos/builtin/packages/scons/package.py +++ b/var/spack/repos/builtin/packages/scons/package.py @@ -25,6 +25,8 @@ class Scons(PythonPackage): depends_on('python@:2', when='@:2', type=('build', 'run')) depends_on('py-setuptools', when='@3.0.2:', type='build') + patch('fjcompiler.patch', when='%fj') + # Prevent passing --single-version-externally-managed to # setup.py, which it does not support. @when('@3.0.2:') diff --git a/var/spack/repos/builtin/packages/scorep/package.py b/var/spack/repos/builtin/packages/scorep/package.py index d7b57c0c44..61586ac43c 100644 --- a/var/spack/repos/builtin/packages/scorep/package.py +++ b/var/spack/repos/builtin/packages/scorep/package.py @@ -32,6 +32,8 @@ class Scorep(AutotoolsPackage): variant('papi', default=True, description="Enable PAPI") variant('pdt', default=False, description="Enable PDT") variant('shmem', default=False, description='Enable shmem tracing') + variant('unwind', default=False, + description="Enable sampling via libunwind and lib wrapping") # Dependencies for SCORE-P are quite tight. See the homepage for more # information. Starting with scorep 4.0 / cube 4.4, Score-P only depends on @@ -64,6 +66,8 @@ class Scorep(AutotoolsPackage): depends_on('mpi', when="+mpi") depends_on('papi', when="+papi") depends_on('pdt', when="+pdt") + depends_on('llvm', when="+unwind") + depends_on('libunwind', when="+unwind") # Score-P requires a case-sensitive file system, and therefore # does not work on macOS @@ -96,6 +100,10 @@ class Scorep(AutotoolsPackage): if "+pdt" in spec: config_args.append("--with-pdt=%s" % spec['pdt'].prefix.bin) + if "+unwind" in spec: + config_args.append("--with-libunwind=%s" % + spec['libunwind'].prefix) + config_args += self.with_or_without('shmem') config_args += self.with_or_without('mpi') diff --git a/var/spack/repos/builtin/packages/screen/package.py b/var/spack/repos/builtin/packages/screen/package.py index d68164b4d4..e2ac6fc7d9 100644 --- a/var/spack/repos/builtin/packages/screen/package.py +++ b/var/spack/repos/builtin/packages/screen/package.py @@ -14,6 +14,7 @@ class Screen(AutotoolsPackage, GNUMirrorPackage): homepage = "https://www.gnu.org/software/screen/" gnu_mirror_path = "screen/screen-4.3.1.tar.gz" + version('4.8.0', sha256='6e11b13d8489925fde25dfb0935bf6ed71f9eb47eff233a181e078fde5655aa1') version('4.6.2', sha256='1b6922520e6a0ce5e28768d620b0f640a6631397f95ccb043b70b91bb503fa3a') version('4.3.1', sha256='fa4049f8aee283de62e283d427f2cfd35d6c369b40f7f45f947dbfd915699d63') version('4.3.0', sha256='5164e89bcc60d7193177e6e02885cc42411d1d815c839e174fb9abafb9658c46') diff --git a/var/spack/repos/builtin/packages/sdsl-lite/package.py b/var/spack/repos/builtin/packages/sdsl-lite/package.py index d5d2a251c0..ba2485c6b7 100644 --- a/var/spack/repos/builtin/packages/sdsl-lite/package.py +++ b/var/spack/repos/builtin/packages/sdsl-lite/package.py @@ -32,5 +32,11 @@ class SdslLite(Package): tar('-xvf', self.stage.archive_file) with working_dir('sdsl-lite-{0}'.format(spec.version.dotted)): + if self.spec.satisfies('%fj'): + filter_file( + 'stdlib=libc', + 'stdlib=libstdc', + './CMakeLists.txt' + ) helper = Executable('./install.sh') helper(prefix) diff --git a/var/spack/repos/builtin/packages/shapeit4/package.py b/var/spack/repos/builtin/packages/shapeit4/package.py new file mode 100644 index 0000000000..009e5084bf --- /dev/null +++ b/var/spack/repos/builtin/packages/shapeit4/package.py @@ -0,0 +1,55 @@ +# 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) + +from spack import * + + +class Shapeit4(MakefilePackage): + """SHAPEIT4 is a fast and accurate method for estimation of haplotypes + (aka phasing) for SNP array and high coverage sequencing data.""" + + homepage = "https://odelaneau.github.io/shapeit4/" + url = "https://github.com/odelaneau/shapeit4/archive/v4.1.3.tar.gz" + + version('4.1.3', sha256='d209731277b00bca1e3478b7e0a0cbe40fbe23826c3d640ad12e0dd6033cbbb8') + + maintainers = ['ilbiondo'] + + depends_on('htslib') + depends_on('boost') + depends_on('bzip2') + depends_on('xz') + + def edit(self, spec, prefix): + + makefile = FileFilter('makefile') + makefile.filter('CXX=.*', 'CXX = c++') + + makefile.filter('CXXFLAG=.*', 'CXXFLAG = -O3') + makefile.filter('LDFLAG=.*', 'LDFLAG = -O3') + + makefile.filter('HTSLIB_INC=.*', 'HTSLIB_INC = ' + + self.spec['htslib'].prefix.include) + + makefile.filter('HTSLIB_LIB=.*', 'HTSLIB_LIB = ' + + self.spec['htslib'].prefix.lib + '/libhts.so') + + makefile.filter('BOOST_INC=.*', 'BOOST_INC = ' + + self.spec['boost'].prefix.include) + + makefile.filter('BOOST_LIB_IO=.*', 'BOOST_LIB_IO = ' + + self.spec['boost'].prefix.lib + + "/libboost_iostreams.so") + + makefile.filter('BOOST_LIB_PO=.*', 'BOOST_LIB_PO = ' + + self.spec['boost'].prefix.lib + + "/libboost_program_options.so") + + def install(self, spec, prefix): + + install_tree('bin', prefix.bin) + install_tree('test', join_path(self.prefix, 'test')) + install_tree('docs', join_path(self.prefix, 'docs')) + install_tree('maps', join_path(self.prefix, 'maps')) diff --git a/var/spack/repos/builtin/packages/shapelib/package.py b/var/spack/repos/builtin/packages/shapelib/package.py new file mode 100644 index 0000000000..47be5cdaa1 --- /dev/null +++ b/var/spack/repos/builtin/packages/shapelib/package.py @@ -0,0 +1,18 @@ +# 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) + +from spack import * + + +class Shapelib(CMakePackage): + """The Shapefile C Library provides the ability to write simple C programs + for reading, writing and updating (to a limited extent) ESRI Shapefiles, + and the associated attribute file (.dbf). + """ + + homepage = "http://shapelib.maptools.org/" + url = "https://github.com/OSGeo/shapelib/archive/v1.5.0.tar.gz" + + version('1.5.0', sha256='48de3a6a8691b0b111b909c0b908af4627635c75322b3a501c0c0885f3558cad') diff --git a/var/spack/repos/builtin/packages/singularity/package.py b/var/spack/repos/builtin/packages/singularity/package.py index 9f4c898e61..3f8d99e1f5 100644 --- a/var/spack/repos/builtin/packages/singularity/package.py +++ b/var/spack/repos/builtin/packages/singularity/package.py @@ -24,12 +24,13 @@ class Singularity(MakefilePackage): ''' homepage = "https://www.sylabs.io/singularity/" - url = "https://github.com/sylabs/singularity/releases/download/v3.1.1/singularity-3.1.1.tar.gz" + url = "https://github.com/sylabs/singularity/releases/download/v3.6.1/singularity-3.6.1.tar.gz" git = "https://github.com/sylabs/singularity.git" maintainers = ['alalazo'] version('master', branch='master') + version('3.6.1', sha256='6cac56106ee7f209150aaee9f8788d03b58796af1b767245d343f0b8a691121c') version('3.5.3', sha256='0c76f1e3808bf4c10e92b17150314b2b816be79f8101be448a6e9d7a96c9e486') version('3.5.2', sha256='f9c21e289377a4c40ed7a78a0c95e1ff416dec202ed49a6c616dd2c37700eab8') version('3.4.1', sha256='638fd7cc5ab2a20e779b8768f73baf21909148339d6c4edf6ff61349c53a70c2') diff --git a/var/spack/repos/builtin/packages/smartdenovo/inline-limit.patch b/var/spack/repos/builtin/packages/smartdenovo/inline-limit.patch new file mode 100644 index 0000000000..9a42bd29cd --- /dev/null +++ b/var/spack/repos/builtin/packages/smartdenovo/inline-limit.patch @@ -0,0 +1,24 @@ +diff -Nur smartdenovo/wtlay.h smartdenovo-new/wtlay.h +--- smartdenovo/wtlay.h 2020-07-09 02:47:13.503412360 +0800 ++++ smartdenovo-new/wtlay.h 2020-07-09 02:49:02.775412360 +0800 +@@ -503,17 +503,17 @@ + return e2; + } + +-inline int cut_biedge_strgraph_core(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx, int closed){ ++static inline int cut_biedge_strgraph_core(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx, int closed){ + edge_strgraph(g, node_id, dir, eidx)->closed = closed; + edge_partner_strgraph(g, node_id, dir, eidx)->closed = closed; + return 1; + } + +-inline int cut_biedge_strgraph(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx){ ++static inline int cut_biedge_strgraph(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx){ + return cut_biedge_strgraph_core(g, node_id, dir, eidx, 1); + } + +-inline int cut_biedge_strgraph2(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx){ ++static inline int cut_biedge_strgraph2(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx){ + return cut_biedge_strgraph_core(g, node_id, dir, eidx, 2); + } + diff --git a/var/spack/repos/builtin/packages/smartdenovo/package.py b/var/spack/repos/builtin/packages/smartdenovo/package.py index f18b8583d9..48109ea9e4 100644 --- a/var/spack/repos/builtin/packages/smartdenovo/package.py +++ b/var/spack/repos/builtin/packages/smartdenovo/package.py @@ -17,8 +17,8 @@ class Smartdenovo(MakefilePackage): depends_on('sse2neon', when='target=aarch64:') - patch('aarch64.patch', when='target=aarch64:', - sha256='7dd4bca28aafb0680cc1823aa58ac9000819993538e92628554666c4b3acc470') + patch('aarch64.patch', sha256='7dd4bca28aafb0680cc1823aa58ac9000819993538e92628554666c4b3acc470', when='target=aarch64:') + patch('inline-limit.patch', sha256='9f514ed72c37cf52ee2ffbe06f9ca1ed5a3e0819dab5876ecd83107c5e5bed81') def install(self, spec, prefix): install_files = [ diff --git a/var/spack/repos/builtin/packages/snappy/package.py b/var/spack/repos/builtin/packages/snappy/package.py index d5ade343f3..2e0154aa6f 100644 --- a/var/spack/repos/builtin/packages/snappy/package.py +++ b/var/spack/repos/builtin/packages/snappy/package.py @@ -10,8 +10,9 @@ class Snappy(CMakePackage): """A fast compressor/decompressor: https://code.google.com/p/snappy""" homepage = "https://github.com/google/snappy" - url = "https://github.com/google/snappy/archive/1.1.7.tar.gz" + url = "https://github.com/google/snappy/archive/1.1.8.tar.gz" + version('1.1.8', sha256='16b677f07832a612b0836178db7f374e414f94657c138e6993cbfc5dcc58651f') version('1.1.7', sha256='3dfa02e873ff51a11ee02b9ca391807f0c8ea0529a4924afa645fbf97163f9d4') variant('shared', default=True, description='Build shared libraries') diff --git a/var/spack/repos/builtin/packages/sas/package.py b/var/spack/repos/builtin/packages/static-analysis-suite/package.py index 8b09cf4d79..fe6d82cc4a 100644 --- a/var/spack/repos/builtin/packages/sas/package.py +++ b/var/spack/repos/builtin/packages/static-analysis-suite/package.py @@ -6,7 +6,7 @@ from spack import * -class Sas(CMakePackage): +class StaticAnalysisSuite(CMakePackage): """SAS (Static Analysis Suite) is a powerful tool for running static analysis on C++ code.""" diff --git a/var/spack/repos/builtin/packages/storm/package.py b/var/spack/repos/builtin/packages/storm/package.py index a4da7325cd..d9a2ad2ece 100644 --- a/var/spack/repos/builtin/packages/storm/package.py +++ b/var/spack/repos/builtin/packages/storm/package.py @@ -13,16 +13,18 @@ class Storm(Package): Storm provides a set of general primitives for doing realtime computation. """ - homepage = "https://www-eu.apache.org/dist/storm" - url = "https://www-eu.apache.org/dist/storm/apache-storm-2.1.0/apache-storm-2.1.0.tar.gz" - url_list = homepage - list_depth = 2 + homepage = "https://storm.apache.org/" + url = "https://archive.apache.org/dist/storm/apache-storm-2.2.0/apache-storm-2.2.0.tar.gz" + list_url = "https://archive.apache.org/dist/storm/" + list_depth = 1 + version('2.2.0', sha256='f621163f349a8e85130bc3d2fbb34e3b08f9c039ccac5474f3724e47a3a38675') version('2.1.0', sha256='e279a495dda42af7d9051543989f74a1435a5bda53e795a1de4a1def32027fc4') version('2.0.0', sha256='0a4a6f985242a99f899a01bd01dacf9365f381e2acc473caa84073fbe84f6703') version('1.2.3', sha256='d45322253db06353a521284f31b30bd964dab859f3a279a305bd79112803425a') - depends_on('java', type='run') + depends_on('java@8', type=('build', 'run')) + depends_on('zookeeper', type='run') def install(self, spec, prefix): install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/stow/package.py b/var/spack/repos/builtin/packages/stow/package.py index bc3515407d..2ce4c91b3e 100644 --- a/var/spack/repos/builtin/packages/stow/package.py +++ b/var/spack/repos/builtin/packages/stow/package.py @@ -17,6 +17,7 @@ class Stow(AutotoolsPackage, GNUMirrorPackage): homepage = "https://www.gnu.org/software/stow/" gnu_mirror_path = "stow/stow-2.2.2.tar.bz2" + version('2.3.1', sha256='26a6cfdfdaca0eea742db5487798c15fcd01889dc86bc5aa62614ec9415a422f') version('2.2.2', sha256='a0022034960e47a8d23dffb822689f061f7a2d9101c9835cf11bf251597aa6fd') version('2.2.0', sha256='86bc30fe1d322a5c80ff3bd7580c2758149aad7c3bbfa18b48a9d95c25d66b05') version('2.1.3', sha256='2dff605c801fee9fb7d0fef6988bbb8a0511fad469129b20cae60e0544ba1443') diff --git a/var/spack/repos/builtin/packages/subversion/package.py b/var/spack/repos/builtin/packages/subversion/package.py index 4e3f774037..1f5f65215c 100644 --- a/var/spack/repos/builtin/packages/subversion/package.py +++ b/var/spack/repos/builtin/packages/subversion/package.py @@ -10,8 +10,13 @@ class Subversion(AutotoolsPackage): """Apache Subversion - an open source version control system.""" homepage = 'https://subversion.apache.org/' - url = 'https://archive.apache.org/dist/subversion/subversion-1.12.2.tar.gz' + urls = [ + 'https://archive.apache.org/dist/subversion/subversion-1.12.2.tar.gz', + 'https://downloads.apache.org/subversion/subversion-1.13.0.tar.gz' + ] + version('1.14.0', sha256='ef3d1147535e41874c304fb5b9ea32745fbf5d7faecf2ce21d4115b567e937d0') + version('1.13.0', sha256='daad440c03b8a86fcca804ea82217bb1902cfcae1b7d28c624143c58dcb96931') version('1.12.2', sha256='f4927d6603d96c5ddabebbafe9a0f6833c18a891ff0ce1ea6ffd186ce9bc21f3') version('1.9.7', sha256='c72a209c883e20245f14c4e644803f50ae83ae24652e385ff5e82300a0d06c3c') version('1.9.6', sha256='a400cbc46d05cb29f2d7806405bb539e9e045b24013b0f12f8f82688513321a7') diff --git a/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py b/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py index 6b2b74649f..58976df975 100644 --- a/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py +++ b/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py @@ -11,8 +11,9 @@ class TensorflowServingClient(CMakePackage): proto files""" homepage = "https://github.com/figroc/tensorflow-serving-client" - url = "https://github.com/figroc/tensorflow-serving-client/archive/v2.1.0.tar.gz" + url = "https://github.com/figroc/tensorflow-serving-client/archive/v2.2.0.tar.gz" + version('2.2.0', sha256='010b464b3b09c3c33c5dc2aebbc85447c4d5f775b9cd45d90a9035ca015c1c08') version('2.1.0', sha256='7a31d8cfa1d861f73953d4728665dd6d74e205d1fa01062a6c2b1aeee4674f73') version('2.0.0', sha256='55310ad484f257173ad5194df7f7116b2049260c3d29049ef8d789d1d8bd9948') diff --git a/var/spack/repos/builtin/packages/texlive/package.py b/var/spack/repos/builtin/packages/texlive/package.py index 42969052c8..aaa18dab71 100644 --- a/var/spack/repos/builtin/packages/texlive/package.py +++ b/var/spack/repos/builtin/packages/texlive/package.py @@ -18,7 +18,7 @@ class Texlive(AutotoolsPackage): around the world.""" homepage = "http://www.tug.org/texlive" - url = 'http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2019/texlive-20190410-source.tar.xz' + 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' list_depth = 1 @@ -29,12 +29,18 @@ class Texlive(AutotoolsPackage): # connection at install time and the package versions could change over # time. It is better to use a version built from tarballs, as defined with # the "releases" below. - version('live', sha256='44aa41b5783e345b7021387f19ac9637ff1ce5406a59754230c666642dfe7750', - url='ftp://tug.org/historic/systems/texlive/2019/install-tl-unx.tar.gz') + version('live', sha256='7c90a50e55533d57170cbc7c0370a010019946eb18570282948e1af6f809382d', + url='ftp://tug.org/historic/systems/texlive/2020/install-tl-unx.tar.gz') # Add information for new versions below. releases = [ { + 'version': '20200406', + 'year': '2020', + 'sha256_source': 'e32f3d08cbbbcf21d8d3f96f2143b64a1f5e4cb01b06b761d6249c8785249078', + 'sha256_texmf': '0aa97e583ecfd488e1dc60ff049fec073c1e22dfe7de30a3e4e8c851bb875a95', + }, + { 'version': '20190410', 'year': '2019', 'sha256_source': 'd2a29fef04e34dc3d2d2296c18995fc357aa7625e7a6bbf40fb92d83d3d0d7b5', diff --git a/var/spack/repos/builtin/packages/thepeg/package.py b/var/spack/repos/builtin/packages/thepeg/package.py new file mode 100644 index 0000000000..bc7580cf9a --- /dev/null +++ b/var/spack/repos/builtin/packages/thepeg/package.py @@ -0,0 +1,103 @@ +# 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) + +from spack import * + + +class Thepeg(AutotoolsPackage): + """Toolkit for High Energy Physics Event Generation""" + + homepage = "http://home.thep.lu.se/~leif/ThePEG/" + url = "https://thepeg.hepforge.org/downloads/?f=ThePEG-2.2.1.tar.bz2" + + # The commented out versions exist, but may need patches + # and/or recipe changes + version('2.2.1', sha256='63abc7215e6ad45c11cf9dac013738e194cc38556a8368b850b70ab1b57ea58f') + version('2.2.0', sha256='d3e1474811b7d9f61a4a98db1e9d60d8ef8f913a50de4cae4dc2cc4f98e6fbf8') + # version('2.1.7', sha256='2e15727afc1fbfb158fa42ded31c4b1e5b51c25ed6bb66a38233e1fc594329c8') + version('2.1.6', sha256='c1e51f83716bfca815b55100fbab3805ef5f9b9215e4373b22762693f5353f4f') + version('2.1.5', sha256='c61a00fb6cf406f0f98e8c934683d8d5efcb655747842113abc92e9526e4b5e6') + # version('2.1.4', sha256='400c37319aa967ed993fdbec84fc65b24f6cb3779fb1b173d7f5d7a56b772df5') + version('2.1.3', sha256='16e8f6507530c2b80ed873ad22946efefed7355d15c7026f3465f18acebc1c0c') + # version('2.1.2', sha256='6a0f675a27e10863d495de069f25b892e532beb32e9cbfe5a58317d015387f49') + version('2.1.1', sha256='e1b0bdc116fbc9a6e598b601f2aa670530cf2e1cd46b4572814a9b0130b10281') + # version('2.1.0', sha256='fe6e7740ce3cd4a3ce3d7a0079a16c9214ad18f432e29d034ae763bfc40f3d39') + # version('2.0.4', sha256='f3b625b411667e2708995f1d1379b5b8691406853c8c2cca2f4e4e6e062da0e4') + # version('2.0.3', sha256='c57ba68fbfda06a0ba256e06f276f91434bf2529a13f6287c051a4cd6da44634') + # version('2.0.2', sha256='d4249e019543d5c7520733292d2edfb0bdd9733177200a63837781ed6194789b') + # version('2.0.1', sha256='ec284abdc82ceaf10a8736f908e7955f49f872b79aaa62d22aa33bc5c7679bdb') + # version('2.0.0', sha256='571730cc956027dc82780dc04ef6e7382ab5ea853fcfebe259e488c6df302a04') + version('1.9.2', sha256='ff7bbb256866f994dae04ade1f57c92d2670edaac3df11c9a300419a5343faf4') + # version('1.9.1', sha256='8ec6d0669eba51e308be4e33aeb219999418170eae3aad93ec1491c942c2a4e9') + version('1.9.0', sha256='3ee58e5e3a26184567df1b9a10ca70df228e86f322e72f018dd7d8d5a4700a5d') + version('1.8.3', sha256='55ede3a3dd0bd07b90d0d49cf7ae28c18cd965780fdf53528508b97d57152fc7') + # version('1.8.2', sha256='44ccd0d70e42bb6ecd801a51bade6c25b3953c56f33017402d4f52ee6492dffa') + # version('1.8.1', sha256='84c2a212a681545cddd541dca191eb65d96f41df86c87480b6f4f7d4f9683562') + # version('1.8.0', sha256='4b22fda1078f410b999a23a17f611c9ae3a7f0f4cee4e83dc82c9336b7adf037') + # version('1.7.3', sha256='066d5df74118d6e984bb60e1c0bea08a8edcbcf917d83d8bc32ec6fea0726187') + # version('1.7.2', sha256='3b885c6c5a39b7399ccd45d1f5a866b7a65c96174a56a7ff4ae423347843d013') + # version('1.7.1', sha256='13434dc7a8623cacb94c0b5c8d7e15b4c5d5187fe9322d1afc1c91b2c940102e') + # version('1.7.0', sha256='40eb7196139a8bf4c35f5bb69818135943d534457df64aeb1cf60b6621435312') + # version('1.6.1', sha256='5bc074b78f8b663a6a33df9c94dcaa3100269f8da59f9553a565298e55af270f') + # version('1.6.0', sha256='c0ac06b70f3e8046fce4e49ba5916c9b49450f528d0e25f8f7f1427c62fec680') + # version('1.5.0', sha256='ccbf102cf1d350a21487518d12e7e03e6e50010e5604f0201f256fa46a7a50c2') + # version('1.4.2', sha256='40444304e40e07fd417a8ebf8e5c1cf07e895ceac52ef4f7c1eecc911f6f775c') + # version('1.4.1', sha256='156d06fd1ce68466d1f2adb9cc13f412b8b87073ec6a1d02102b173c34c29b8a') + # version('1.4.0', sha256='b1f55e9a3bec713e9abf2fe71c5bd8cf8df936ea00b09f96df9123d0d5ab233f') + # version('1.3.0', sha256='f731ebf3ce5a52b6d750d6e3c282fdc74d8ffd78bccb47b68f10a4daf44c7045') + + patch('thepeg-1.8.3.patch', when='@1.8.3', level=0) + patch('thepeg-1.9.0.patch', when='@1.9.0', level=0) + patch('thepeg-1.9.2.patch', when='@1.9.2', level=0) + patch('thepeg-2.1.1.patch', when='@2.1.1:2.2.1', level=0) + + depends_on('gsl') + depends_on('lhapdf') + depends_on('lhapdf@:6.2.999', when='@:1.9.999') + depends_on('hepmc', when='hepmc=2') + depends_on('hepmc3', when='hepmc=3') + conflicts('hepmc=3', when='@:2.1.999', msg='HepMC3 support was added in 2.2.0') + depends_on('fastjet', when='@2.0.0:') + depends_on('rivet', when='@2.0.3:') + depends_on('boost', when='@2.1.1:') + + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('m4', type='build') + + variant('hepmc', default='2', values=('2', '3'), description='HepMC interface to build ') + + install_targets = ['install-strip'] + + def configure_args(self): + args = ['--with-gsl=' + self.spec['gsl'].prefix, '--without-javagui'] + + if self.spec.satisfies('@:1.8.999'): + args += ['--with-LHAPDF=' + self.spec['lhapdf'].prefix] + else: + args += ['--with-lhapdf=' + self.spec['lhapdf'].prefix] + + if self.spec.satisfies('hepmc=2'): + args += ['--with-hepmc=' + self.spec['hepmc'].prefix] + else: + args += ['--with-hepmc=' + self.spec['hepmc3'].prefix] + + if self.spec.satisfies('@2.2.0:'): + args += ['--with-hepmcversion=' + + self.spec.variants['hepmc'].value] + + if self.spec.satisfies('@2.0.0:'): + args += ['--with-fastjet=' + self.spec['fastjet'].prefix] + + if self.spec.satisfies('@2.0.3:'): + args += ['--with-rivet=' + self.spec['rivet'].prefix] + + if self.spec.satisfies('@:2.1.999'): + args += ['--with-boost=' + self.spec['boost'].prefix] + + args += ['CFLAGS=-O2', 'CXXFLAGS=-O2', 'FFLAGS=-O2'] + + return args diff --git a/var/spack/repos/builtin/packages/thepeg/thepeg-1.8.3.patch b/var/spack/repos/builtin/packages/thepeg/thepeg-1.8.3.patch new file mode 100644 index 0000000000..c396634779 --- /dev/null +++ b/var/spack/repos/builtin/packages/thepeg/thepeg-1.8.3.patch @@ -0,0 +1,24 @@ +--- PDF/LHAPDF.cc 2013-10-26 01:48:12.000000000 +0200 ++++ PDF/LHAPDF.cc 2013-12-05 17:23:13.000000000 +0100 +@@ -33,6 +33,7 @@ + #include "config.h" + #include "ThePEG/Persistency/PersistentOStream.h" + #include "ThePEG/Persistency/PersistentIStream.h" ++#include "stdlib.h" + + #ifdef ThePEG_HAS_FPU_CONTROL + #include <fpu_control.h> +@@ -228,7 +229,12 @@ + + std::string LHAPDF::getIndexPath() { + // macro is passed in from -D compile flag +- return std::string(LHAPDF_PKGDATADIR) + "/PDFsets.index"; ++ char const* tmp = getenv( "LHAPATH" ); ++ if ( tmp != NULL ) { ++ return std::string(getenv("LHAPATH")) + "/../PDFsets.index"; ++ } else { ++ return std::string(LHAPDF_PKGDATADIR) + "/PDFsets.index"; ++ }; + } + + bool LHAPDF::openLHAIndex(ifstream & is) { diff --git a/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.0.patch b/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.0.patch new file mode 100644 index 0000000000..76bc91211b --- /dev/null +++ b/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.0.patch @@ -0,0 +1,34 @@ +--- PDF/LHAPDF.cc 2013-10-26 01:48:12.000000000 +0200 ++++ PDF/LHAPDF.cc 2013-12-05 17:23:13.000000000 +0100 +@@ -33,6 +33,7 @@ + #include "config.h" + #include "ThePEG/Persistency/PersistentOStream.h" + #include "ThePEG/Persistency/PersistentIStream.h" ++#include "stdlib.h" + + #ifdef ThePEG_HAS_FPU_CONTROL + #include <fpu_control.h> +@@ -228,7 +229,12 @@ + + std::string LHAPDF::getIndexPath() { + // macro is passed in from -D compile flag +- return std::string(LHAPDF_PKGDATADIR) + "/PDFsets.index"; ++ char const* tmp = getenv( "LHAPATH" ); ++ if ( tmp != NULL ) { ++ return std::string(getenv("LHAPATH")) + "/../PDFsets.index"; ++ } else { ++ return std::string(LHAPDF_PKGDATADIR) + "/PDFsets.index"; ++ }; + } + + bool LHAPDF::openLHAIndex(ifstream & is) { +--- ACDC/ACDCGen.h.orig 2014-04-02 16:20:59.000000000 +0200 ++++ ACDC/ACDCGen.h 2014-04-02 16:22:40.000000000 +0200 +@@ -13,6 +13,7 @@ + #include "ACDCTraits.h" + #include "ACDCGenCell.h" + #include "ThePEG/Utilities/Exception.h" ++#include <algorithm> + + namespace ACDCGenerator { + diff --git a/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.2.patch b/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.2.patch new file mode 100644 index 0000000000..556b683560 --- /dev/null +++ b/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.2.patch @@ -0,0 +1,83 @@ +diff -r 2d8e0f74b65e PDF/LHAPDF6.cc +--- PDF/LHAPDF6.cc.orig Mon Jul 07 09:16:48 2014 +0100 ++++ PDF/LHAPDF6.cc Fri Sep 26 14:41:55 2014 +0100 +@@ -54,8 +54,8 @@ + return new_ptr(*this); + } + +-void ThePEG::LHAPDF::doinit() { +- PDFBase::doinit(); ++void ThePEG::LHAPDF::initPDFptr() { ++ if ( thePDF ) return; + thePDF = ::LHAPDF::mkPDF(thePDFName, theMember); + xMin = thePDF->xMin(); + xMax = thePDF->xMax(); +@@ -63,6 +63,11 @@ + Q2Max = thePDF->q2Max() * GeV2; + } + ++void ThePEG::LHAPDF::doinit() { ++ PDFBase::doinit(); ++ initPDFptr(); ++} ++ + void ThePEG::LHAPDF::dofinish() { + PDFBase::dofinish(); + delete thePDF; +@@ -71,11 +76,7 @@ + + void ThePEG::LHAPDF::doinitrun() { + PDFBase::doinitrun(); +- thePDF = ::LHAPDF::mkPDF(thePDFName, theMember); +- xMin = thePDF->xMin(); +- xMax = thePDF->xMax(); +- Q2Min = thePDF->q2Min() * GeV2; +- Q2Max = thePDF->q2Max() * GeV2; ++ initPDFptr(); + } + + void ThePEG::LHAPDF::setPDFName(string name) { +@@ -387,6 +388,7 @@ + lastQ2 = -1.0*GeV2; + lastX = -1.0; + lastP2 = -1.0*GeV2; ++ initPDFptr(); + } + + ThePEG::ClassDescription<ThePEG::LHAPDF> ThePEG::LHAPDF::initLHAPDF; +diff -r 2d8e0f74b65e PDF/LHAPDF6.h +--- PDF/LHAPDF6.h.orig Mon Jul 07 09:16:48 2014 +0100 ++++ PDF/LHAPDF6.h Fri Sep 26 14:41:55 2014 +0100 +@@ -147,6 +147,12 @@ + void checkUpdate(double x, Energy2 Q2, Energy2 P2) const; + + /** ++ * Initialize the LHAPDF library for the chosen PDF set if it has ++ * not been done before. ++ */ ++ void initPDFptr(); ++ ++ /** + * Used by the interface to select a set according to a file name. + */ + void setPDFName(string name); +--- Persistency/PersistentOStream.h.orig 2018-11-07 14:46:59.055432275 +0100 ++++ Persistency/PersistentOStream.h 2018-11-07 14:47:20.639293703 +0100 +@@ -219,7 +219,7 @@ + * Write a double. + */ + PersistentOStream & operator<<(double d) { +- if ( isnan(d) || isinf(d) ) ++ if ( std::isnan(d) || std::isinf(d) ) + throw WriteError() + << "Tried to write a NaN or Inf double to a persistent stream." + << Exception::runerror; +@@ -232,7 +232,7 @@ + * Write a float. + */ + PersistentOStream & operator<<(float f) { +- if ( isnan(f) || isinf(f) ) ++ if ( std::isnan(f) || std::isinf(f) ) + throw WriteError() + << "Tried to write a NaN or Inf float to a persistent stream." + << Exception::runerror; diff --git a/var/spack/repos/builtin/packages/thepeg/thepeg-2.1.1.patch b/var/spack/repos/builtin/packages/thepeg/thepeg-2.1.1.patch new file mode 100644 index 0000000000..90c61fc991 --- /dev/null +++ b/var/spack/repos/builtin/packages/thepeg/thepeg-2.1.1.patch @@ -0,0 +1,14 @@ +--- m4/rivet.m4.orig 2013-10-16 10:50:05.000000000 +0200 ++++ m4/rivet.m4 2017-08-02 12:26:22.897894696 +0200 +@@ -33,10 +33,7 @@ + else + AC_MSG_RESULT([$with_rivet]) + RIVETINCLUDE="$( $with_rivet/bin/rivet-config --cppflags )" +- RIVETLIBS="-L$with_rivet/lib -R$with_rivet/lib -lRivet" +- if test "${host_cpu}" == "x86_64" -a -e $with_rivet/lib64/libRivet.so ; then +- RIVETLIBS="-L$with_rivet/lib64 -R$with_rivet/lib64 -lRivet" +- fi ++ RIVETLIBS="$( $with_rivet/bin/rivet-config --libs ) -lYODA" + fi + + if test "x$with_rivet" != "xno"; then diff --git a/var/spack/repos/builtin/packages/tmux/package.py b/var/spack/repos/builtin/packages/tmux/package.py index e6677668fd..8a50e2ebe9 100644 --- a/var/spack/repos/builtin/packages/tmux/package.py +++ b/var/spack/repos/builtin/packages/tmux/package.py @@ -17,6 +17,7 @@ class Tmux(AutotoolsPackage): homepage = "http://tmux.github.io" url = "https://github.com/tmux/tmux/releases/download/2.6/tmux-2.6.tar.gz" + version('3.1b', sha256='d93f351d50af05a75fe6681085670c786d9504a5da2608e481c47cf5e1486db9') version('3.0a', sha256='4ad1df28b4afa969e59c08061b45082fdc49ff512f30fc8e43217d7b0e5f8db9') version('2.9', sha256='34901232f486fd99f3a39e864575e658b5d49f43289ccc6ee57c365f2e2c2980') version('2.8', sha256='7f6bf335634fafecff878d78de389562ea7f73a7367f268b66d37ea13617a2ba') diff --git a/var/spack/repos/builtin/packages/totalview/package.py b/var/spack/repos/builtin/packages/totalview/package.py new file mode 100644 index 0000000000..50553aaeea --- /dev/null +++ b/var/spack/repos/builtin/packages/totalview/package.py @@ -0,0 +1,108 @@ +# Copyright 2013-2019 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 * + +import os + + +class Totalview(Package): + """Totalview parallel debugger. + + Source must be made available to Spack + externally, either by having the tarballs in the current working directory + or having the tarballs in a Spack mirror. + + The documentation tarball will + be used as the primary source and the architecture appropriate tarball will + be downloaded as a resource.""" + + homepage = "https://www.roguewave.com/products-services/totalview" + maintainers = ['nicholas-sly'] + manual_download = True + license_required = True + license_comment = '#' + license_files = ['licenses/license.dat'] + license_vars = ['TV_LICENSE_FILE'] + + # As the install of Totalview is via multiple tarballs, the base install + # will be the documentation. The architecture-specific tarballs are added + # as resources dependent on the specific architecture used. + version('2019.2.18', + sha256='09e5c554032af945f8cf147dd548421267e50e906cc9686fb5cd0e8e63fcf650') + + # Distributed with Totalview + variant('memoryscape', default=True, description='Install memoryscape') + + # Because the actual source tarball is architecture dependent, the main + # download is the documentation tarball and the source is downloaded as a + # resource once the target architecture is known. + resource( + name='x86_64', + url='totalview_{0}_linux_x86-64.tar'.format(version), + destination='.', + sha256='3b0ab078deff3654ddc912a004d256f1376978aa1c4dd5a8a41fa9fbb474d07c', + when='@2019.2.18 target=x86_64:') + resource( + name='aarch64', + url='totalview_{0}_linux_arm64.tar'.format(version), + destination='.', + sha256='3bbda1aa7c06ce82874c1517bf949c9f6cbd0f4c9ebe283d21f0643f6e724b6b', + when='@2019.2.18 target=aarch64:') + resource( + name='ppcle', + url='totalview_{0}_linux_powerle.tar'.format(version), + destination='.', + sha256='c0e4dbf145312fc7143ad0b7e9474e653933581990e0b9d07237c73dbdff8365', + when='@2019.2.18 target=ppc64le:') + + def url_for_version(self, version): + return "file://{0}/totalview.{1}-doc.tar".format(os.getcwd(), version) + + def setup_run_environment(self, env): + env.prepend_path('PATH', + join_path(self.prefix, 'toolworks', + 'totalview.{0}'.format(self.version), 'bin') + ) + env.prepend_path('TVROOT', + join_path(self.prefix, 'toolworks', + 'totalview.{0}'.format(self.version))) + env.prepend_path('TVDSVRLAUNCHCMD', 'ssh') + + def install(self, spec, prefix): + # Assemble install line + install_cmd = which('./Install') + arg_list = ["-agree", "-nosymlink", "-directory", "{0}".format(prefix)] + + # Platform specification. + if spec.target.family == "x86_64": + arg_list.extend(["-platform", "linux-x86-64"]) + elif spec.target.family == "x86": + arg_list.extend(["-platform", "linux-x86"]) + elif spec.target.family == "aarch64": + arg_list.extend(["-platform", "linux-arm64"]) + elif spec.target.family == "ppc64le": + arg_list.extend(["-platform", "linux-powerle"]) + elif spec.target.family == "ppc64": + arg_list.extend(["-platform", "linux-power"]) + else: + raise InstallError('Architecture {0} not permitted!' + .format(spec.target.family)) + + # Docs are the 'base' install used with every architecture. + install_cmd.exe.extend(arg_list) + install_cmd("-install", "doc-pdf") + + # Run install script for totalview and memoryscape (optional). + with working_dir("./totalview.{0}".format(self.version)): + + install_cmd = which('./Install') + arg_list.extend(["-install", "totalview"]) + # If including memoryscape. + if '+memoryscape' in spec: + arg_list.append("memoryscape") + + install_cmd.exe.extend(arg_list) + install_cmd() diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index 7896d809f2..d5d595142f 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -28,7 +28,7 @@ class Trilinos(CMakePackage): url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-12-12-1.tar.gz" git = "https://github.com/trilinos/Trilinos.git" - maintainers = ['aprokop', 'keitat'] + maintainers = ['keitat'] # ###################### Versions ########################## diff --git a/var/spack/repos/builtin/packages/typhon/package.py b/var/spack/repos/builtin/packages/typhon/package.py index 350bd6ded2..621b2479e4 100644 --- a/var/spack/repos/builtin/packages/typhon/package.py +++ b/var/spack/repos/builtin/packages/typhon/package.py @@ -23,3 +23,7 @@ class Typhon(CMakePackage): version('3.0', sha256='b9736269ebe9c0fd7efabc4716b0543144780ed26ddaf595083354113aa2efd7') depends_on('mpi') + + def setup_build_environment(self, env): + if self.spec.satisfies('%fj'): + env.set('LDFLAGS', '--linkfortran') diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py index 928d8aa80c..cc9ccbebd5 100644 --- a/var/spack/repos/builtin/packages/umpire/package.py +++ b/var/spack/repos/builtin/packages/umpire/package.py @@ -38,6 +38,7 @@ class Umpire(CMakePackage, CudaPackage): variant('fortran', default=False, description='Build C/Fortran API') variant('c', default=True, description='Build C API') variant('numa', default=False, description='Enable NUMA support') + variant('shared', default=True, description='Enable Shared libs') variant('openmp', default=False, description='Build with OpenMP support') variant('deviceconst', default=False, description='Enables support for constant device memory') @@ -80,6 +81,9 @@ class Umpire(CMakePackage, CudaPackage): options.append('-DENABLE_OPENMP={0}'.format( 'On' if '+openmp' in spec else 'Off')) + options.append('-DBUILD_SHARED_LIBS={0}'.format( + 'On' if '+shared' in spec else 'Off')) + options.append('-DENABLE_TESTS={0}'.format( 'On' if self.run_tests else 'Off')) diff --git a/var/spack/repos/builtin/packages/vasp/package.py b/var/spack/repos/builtin/packages/vasp/package.py new file mode 100644 index 0000000000..22b17ee88b --- /dev/null +++ b/var/spack/repos/builtin/packages/vasp/package.py @@ -0,0 +1,138 @@ +# Copyright 2013-2019 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 * +import os + + +class Vasp(MakefilePackage): + """ + The Vienna Ab initio Simulation Package (VASP) + is a computer program for atomic scale materials modelling, + e.g. electronic structure calculations + and quantum-mechanical molecular dynamics, from first principles. + """ + + homepage = "http://vasp.at" + url = "file://{0}/vasp.5.4.4.tar.gz".format(os.getcwd()) + + version('5.4.4', sha256='5bd2449462386f01e575f9adf629c08cb03a13142806ffb6a71309ca4431cfb3') + + resource(name='vaspsol', + git='https://github.com/henniggroup/VASPsol.git', + tag='V1.0', + when='+vaspsol') + + variant('scalapack', default=False, + description='Enables build with SCALAPACK') + + variant('cuda', default=False, + description='Enables running on Nvidia GPUs') + + variant('vaspsol', default=False, + description='Enable VASPsol implicit solvation model\n' + 'https://github.com/henniggroup/VASPsol') + + depends_on('rsync', type='build') + depends_on('blas') + depends_on('lapack') + depends_on('fftw') + depends_on('mpi', type=('build', 'link', 'run')) + depends_on('netlib-scalapack', when='+scalapack') + depends_on('cuda', when='+cuda') + + conflicts('%gcc@:8', msg='GFortran before 9.x does not support all features needed to build VASP') + conflicts('+vaspsol', when='+cuda', msg='+vaspsol only available for CPU') + + parallel = False + + def edit(self, spec, prefix): + + if '%gcc' in spec: + make_include = join_path('arch', 'makefile.include.linux_gnu') + else: + make_include = join_path('arch', + 'makefile.include.linux_' + + spec.compiler.name) + + os.rename(make_include, 'makefile.include') + + # This bunch of 'filter_file()' is to make these options settable + # as environment variables + filter_file('^CPP_OPTIONS[ ]{0,}=[ ]{0,}', + 'CPP_OPTIONS ?= ', + 'makefile.include') + + filter_file('^LIBDIR[ ]{0,}=.*$', '', 'makefile.include') + filter_file('^BLAS[ ]{0,}=.*$', 'BLAS ?=', 'makefile.include') + filter_file('^LAPACK[ ]{0,}=.*$', 'LAPACK ?=', 'makefile.include') + filter_file('^FFTW[ ]{0,}?=.*$', 'FFTW ?=', 'makefile.include') + filter_file('^MPI_INC[ ]{0,}=.*$', 'MPI_INC ?=', 'makefile.include') + filter_file('-DscaLAPACK.*$\n', '', 'makefile.include') + filter_file('^SCALAPACK*$', '', 'makefile.include') + + if '+cuda' in spec: + filter_file('^OBJECTS_GPU[ ]{0,}=.*$', + 'OBJECTS_GPU ?=', + 'makefile.include') + + filter_file('^CPP_GPU[ ]{0,}=.*$', + 'CPP_GPU ?=', + 'makefile.include') + + filter_file('^CFLAGS[ ]{0,}=.*$', + 'CFLAGS ?=', + 'makefile.include') + + if '+vaspsol' in spec: + copy('VASPsol/src/solvation.F', 'src/') + + def setup_build_environment(self, spack_env): + spec = self.spec + + cpp_options = ['-DHOST=\\"LinuxGNU\\"', '-DMPI -DMPI_BLOCK=8000', + '-Duse_collective', '-DCACHE_SIZE=4000', + '-Davoidalloc', '-Duse_bse_te', + '-Dtbdyn', '-Duse_shmem'] + + cflags = ['-fPIC', '-DADD_'] + + spack_env.set('BLAS', spec['blas'].libs.ld_flags) + spack_env.set('LAPACK', spec['lapack'].libs.ld_flags) + spack_env.set('FFTW', spec['fftw'].prefix) + spack_env.set('MPI_INC', spec['mpi'].prefix.include) + + if '+scalapack' in spec: + cpp_options.append('-DscaLAPACK') + spack_env.set('SCALAPACK', spec['netlib-scalapack'].libs.ld_flags) + + if '+cuda' in spec: + cpp_gpu = ['-DCUDA_GPU', '-DRPROMU_CPROJ_OVERLAP', + '-DCUFFT_MIN=28', '-DUSE_PINNED_MEMORY'] + + objects_gpu = ['fftmpiw.o', 'fftmpi_map.o', 'fft3dlib.o', + 'fftw3d_gpu.o', 'fftmpiw_gpu.o'] + + cflags.extend(['-DGPUSHMEM=300', '-DHAVE_CUBLAS']) + + spack_env.set('CUDA_ROOT', spec['cuda'].prefix) + spack_env.set('CPP_GPU', ' '.join(cpp_gpu)) + spack_env.set('OBJECTS_GPU', ' '.join(objects_gpu)) + + if '+vaspsol' in spec: + cpp_options.append('-Dsol_compat') + + # Finally + spack_env.set('CPP_OPTIONS', ' '.join(cpp_options)) + spack_env.set('CFLAGS', ' '.join(cflags)) + + def build(self, spec, prefix): + if '+cuda' in self.spec: + make('gpu', 'gpu_ncl') + else: + make() + + def install(self, spec, prefix): + install_tree('bin/', prefix.bin) diff --git a/var/spack/repos/builtin/packages/vbfnlo/package.py b/var/spack/repos/builtin/packages/vbfnlo/package.py new file mode 100644 index 0000000000..99a9b53f3b --- /dev/null +++ b/var/spack/repos/builtin/packages/vbfnlo/package.py @@ -0,0 +1,43 @@ +# 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) + +from spack import * + + +class Vbfnlo(AutotoolsPackage): + """VBFNLO is a fully flexible parton level Monte Carlo program + for the simulation of vector boson fusion, double and triple + vector boson production in hadronic collisions at + next to leading order in the strong coupling constant. """ + + homepage = "https://www.itp.kit.edu/vbfnlo/wiki/doku.php?id=overview" + url = "https://github.com/vbfnlo/vbfnlo/archive/v3.0.0beta5.tar.gz" + + # The commented out versions exist, but are not tested + version('3.0.0beta5', sha256='777a3dedb365ea9abc38848a60f30d325da3799cbad69fa308664b94a8c31a90') + version('3.0.0beta4', sha256='511e84765e9634a75766a160eae1925812dacbb3943e7e3b4dc90e2eacac8a2c') + # version('3.0.0beta3', sha256='ab4cc3289051ab09ed94fa41d0eb1c5c4adcd9f39fa04e3c95a3867f256541bc') + version('3.0.0beta2', sha256='33dd0781e645a5baa664fc5aa81d43c12586bf095ef25895e86cb4192c22473b') + version('3.0.0beta1', sha256='19f0bf7e4c93b0f287d2531d6802c114a78eb46cde28ea820b2a074a5819c7ca') + version('2.7.1', sha256='13e33d73d8a8ef64094621f87e6f94e01712e76cc19a86298d0b52cfcb9decca', preferred=True) + # version('2.7.0', sha256='0e96c0912599e3000fffec5305700b947b604a7b06c7975851503f445311e4ef') + + depends_on('hepmc') + depends_on('gsl') + depends_on('lhapdf') + depends_on('looptools') + + @when('@2.7.1') + def setup_build_environment(self, env): + env.unset('F77') + + def configure_args(self): + args = ["--with-hepmc=" + self.spec['hepmc'].prefix, + "--with-gsl=" + self.spec['gsl'].prefix, + "--with-LHAPDF=" + self.spec['lhapdf'].prefix, + "--with-LOOPTOOLS=" + self.spec['looptools'].prefix, + "FCFLAGS=-std=legacy"] + + return args diff --git a/var/spack/repos/builtin/packages/vim/package.py b/var/spack/repos/builtin/packages/vim/package.py index 5539adfc02..d1533cfe52 100644 --- a/var/spack/repos/builtin/packages/vim/package.py +++ b/var/spack/repos/builtin/packages/vim/package.py @@ -18,6 +18,7 @@ class Vim(AutotoolsPackage): homepage = "http://www.vim.org" url = "https://github.com/vim/vim/archive/v8.1.0338.tar.gz" + version('8.2.1201', sha256='39032fe866f44724b104468038dc9ac4ff2c00a4b18c9a1e2c27064ab1f1143d') version('8.1.2141', sha256='7be3c3d88a6c871121230ffb9b7371b1d2ab462118dedb967c7265473af1144b') version('8.1.0338', sha256='3febcc4e49eaca458be1a1e8055a3a52887aa2054b03e24d5f38d192c3de51a0') version('8.1.0001', sha256='c342acaa26589f371fa34a5ca213b95811f26185c12443f8f48ad2868dee2935') diff --git a/var/spack/repos/builtin/packages/visit/package.py b/var/spack/repos/builtin/packages/visit/package.py index cd72bcda2c..d2f3987895 100644 --- a/var/spack/repos/builtin/packages/visit/package.py +++ b/var/spack/repos/builtin/packages/visit/package.py @@ -25,6 +25,11 @@ class Visit(CMakePackage): # linux: # spack install visit ^python+shared ^glib@2.56.3 ^py-setuptools@44.1.0 # + # linux w/o opengl: (add mesa as opengl if system lacks system opengl ) + # + # spack install visit ^python+shared ^glib@2.56.3 ^py-setuptools@44.1.0 \ + # ^mesa+opengl + # # macOS: # spack install visit ^python+shared ^glib@2.56.3 ^py-setuptools@44.1.0 \ # ^qt~framework @@ -159,6 +164,7 @@ class Visit(CMakePackage): # https://github.com/visit-dav/visit/issues/3498 depends_on('vtk@8.1.0:8.1.999+opengl2~python', when='~python @3.0:3.999,develop') depends_on('vtk@8.1.0:8.1.999+opengl2+python', when='+python @3.0:3.999,develop') + depends_on('glu', when='platform=linux') depends_on('vtk@6.1.0~opengl2', when='@:2.999') depends_on('vtk+python', when='+python @3.0:,develop') depends_on('vtk~mpi', when='~mpi') diff --git a/var/spack/repos/builtin/packages/votca-tools/package.py b/var/spack/repos/builtin/packages/votca-tools/package.py index f676fb633b..8bedb0477a 100644 --- a/var/spack/repos/builtin/packages/votca-tools/package.py +++ b/var/spack/repos/builtin/packages/votca-tools/package.py @@ -30,7 +30,7 @@ class VotcaTools(CMakePackage): version('1.4', sha256='41638122e7e59852af61d391b4ab8c308fd2e16652f768077e13a99d206ec5d3') # https://github.com/votca/tools/pull/229, fix mkl in exported target - patch("https://github.com/votca/tools/pull/229.patch", sha256="250d0b679e5d3104e3c8d6adf99751b71386c7ed4cbdae1c75408717ef3f401f", when="@1.6+mkl") + patch("https://github.com/votca/tools/pull/229.patch", sha256="250d0b679e5d3104e3c8d6adf99751b71386c7ed4cbdae1c75408717ef3f401f", when="@1.6:1.6.0+mkl") variant('mkl', default=False, description='Build with MKL support') conflicts('+mkl', when='@1.4:1.5.9999') diff --git a/var/spack/repos/builtin/packages/vtk-h/package.py b/var/spack/repos/builtin/packages/vtk-h/package.py index 2a934a442a..9ed842b508 100644 --- a/var/spack/repos/builtin/packages/vtk-h/package.py +++ b/var/spack/repos/builtin/packages/vtk-h/package.py @@ -34,13 +34,20 @@ class VtkH(Package, CudaPackage): and DIY2 to provide a toolkit with hybrid parallel capabilities.""" homepage = "https://github.com/Alpine-DAV/vtk-h" - url = "https://github.com/Alpine-DAV/vtk-h/releases/download/v0.5.0/vtkh-v0.5.0.tar.gz" + url = "https://github.com/Alpine-DAV/vtk-h/releases/download/v0.5.8/vtkh-v0.5.8.tar.gz" git = "https://github.com/Alpine-DAV/vtk-h.git" maintainers = ['cyrush'] version('develop', branch='develop', submodules=True) - version('0.5.0', sha256="9014a8a61a8d7ff636866c6e3b1ebb918ff23fa67cf8d4de801c4a2981de8c96") + version('0.6.1', sha256="ca30b5ff1a48fa247cd20b3f19452f7744eb744465e0b64205135aece42d274f") + version('0.6.0', sha256="2fc054f88ae253fb1bfcae22a156bcced08eca963ba90384dcd5b5791e6dfbf4") + version('0.5.8', sha256="203b337f4280a24a2b75722384f77e0e2f5965058b541efc153db76b7ab98133") + version('0.5.7', sha256="e8c1925dc34ee6be17cec734121e43002e3c02b54ef8dac341b51a455b95e402") + version('0.5.6', sha256="c78c0fa71a9687c2951a06d2112b52aa81fdcdcfbc9464d1578326d03fbb205e") + version('0.5.4', sha256="92bf3741df7a15e36ff41a9a783f3b88eecc86e55cad1defba76f141baa2610b") + version('0.5.3', sha256="0c4aae3bd2a5906738a6806de2b62ea2049ac8b40ebe7fc2ba25505272c2d359") + version('0.5.2', sha256="db2e6250c0ece6381fc90540317ad7b5869dbcce0231ce9be125916a77bfdb25") variant("shared", default=True, description="Build vtk-h as shared libs") variant("mpi", default=True, description="build mpi support") @@ -48,6 +55,8 @@ class VtkH(Package, CudaPackage): variant("cuda", default=False, description="build cuda support") variant("openmp", default=(sys.platform != 'darwin'), description="build openmp support") + variant("logging", default=False, description="Build vtk-h with logging enabled") + variant("contourtree", default=False, description="Enable contour tree support") # use cmake 3.14, newest that provides proper cuda support # and we have seen errors with cuda in 3.15 @@ -56,17 +65,17 @@ class VtkH(Package, CudaPackage): depends_on("mpi", when="+mpi") depends_on("cuda", when="+cuda") - depends_on("vtk-m@1.5.0~tbb+openmp", when="+openmp") - depends_on("vtk-m@1.5.0~tbb~openmp", when="~openmp") + depends_on("vtk-m@ascent_ver~tbb+openmp", when="+openmp") + depends_on("vtk-m@ascent_ver~tbb~openmp", when="~openmp") - depends_on("vtk-m@1.5.0+cuda~tbb+openmp", when="+cuda+openmp") - depends_on("vtk-m@1.5.0+cuda~tbb~openmp", when="+cuda~openmp") + depends_on("vtk-m@ascent_ver+cuda~tbb+openmp", when="+cuda+openmp") + depends_on("vtk-m@ascent_ver+cuda~tbb~openmp", when="+cuda~openmp") - depends_on("vtk-m@1.5.0~tbb+openmp~shared", when="+openmp~shared") - depends_on("vtk-m@1.5.0~tbb~openmp~shared", when="~openmp~shared") + depends_on("vtk-m@ascent_ver~tbb+openmp~shared", when="+openmp~shared") + depends_on("vtk-m@ascent_ver~tbb~openmp~shared", when="~openmp~shared") - depends_on("vtk-m@1.5.0+cuda~tbb+openmp~shared", when="+cuda+openmp~shared") - depends_on("vtk-m@1.5.0+cuda~tbb~openmp~shared", when="+cuda~openmp~shared") + depends_on("vtk-m@ascent_ver+cuda~tbb+openmp~shared", when="+cuda+openmp~shared") + depends_on("vtk-m@ascent_ver+cuda~tbb~openmp~shared", when="+cuda~openmp~shared") def install(self, spec, prefix): with working_dir('spack-build', create=True): @@ -99,6 +108,13 @@ class VtkH(Package, CudaPackage): if "+openmp" in spec: cmake_args.append("-DENABLE_OPENMP=ON") + # build with logging + if "+logging" in spec: + cmake_args.append("-DENABLE_LOGGING=ON") + + if "+contourtree" in spec: + cmake_args.append("-DENABLE_FILTER_CONTOUR_TREE=ON") + # cuda support if "+cuda" in spec: cmake_args.append("-DVTKm_ENABLE_CUDA:BOOL=ON") @@ -216,6 +232,14 @@ class VtkH(Package, CudaPackage): cfg.write(cmake_cache_entry("ENABLE_SERIAL", "OFF")) ####################### + # Logging + ####################### + if "+logging" in spec: + cfg.write(cmake_cache_entry("ENABLE_LOGGING", "ON")) + else: + cfg.write(cmake_cache_entry("ENABLE_LOGGING", "OFF")) + + ####################### # MPI ####################### diff --git a/var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch b/var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch deleted file mode 100644 index 2f90477e76..0000000000 --- a/var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/src/vtkh/filters/CMakeLists.txt b/src/vtkh/filters/CMakeLists.txt -index 4a42d61..f586155 100644 ---- a/src/vtkh/filters/CMakeLists.txt -+++ b/src/vtkh/filters/CMakeLists.txt -@@ -41,6 +41,11 @@ set(vtkh_filters_deps vtkh_core vtkh_utils ) - if(CUDA_FOUND) - # triggers cuda compile - list(APPEND vtkh_filters_deps cuda) -+ -+ if(CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 10.0.0) -+ set(particle_cuda_src "${CMAKE_CURRENT_SOURCE_DIR}/Lagrangian.cpp") -+ set_source_files_properties(${particle_cuda_src} PROPERTIES COMPILE_FLAGS "-Xptxas --opt-level=0") -+ endif() - endif() - - diff --git a/var/spack/repos/builtin/packages/vtk-m/disable_flying_edges.patch b/var/spack/repos/builtin/packages/vtk-m/disable_flying_edges.patch new file mode 100644 index 0000000000..9b875ce5e0 --- /dev/null +++ b/var/spack/repos/builtin/packages/vtk-m/disable_flying_edges.patch @@ -0,0 +1,14 @@ +diff --git a/vtkm/worklet/Contour.h b/vtkm/worklet/Contour.h +index c28c5ec09..70737777f 100644 +--- a/vtkm/worklet/Contour.h ++++ b/vtkm/worklet/Contour.h +@@ -46,7 +46,8 @@ struct DeduceCoordType + vtkm::cont::CellSetSingleType<>& result, + Args&&... args) const + { +- result = flying_edges::execute(cells, coords, std::forward<Args>(args)...); ++ result = marching_cells::execute(cells, coords, std::forward<Args>(args)...); ++ //result = flying_edges::execute(cells, coords, std::forward<Args>(args)...); + } + }; + diff --git a/var/spack/repos/builtin/packages/vtk-m/package.py b/var/spack/repos/builtin/packages/vtk-m/package.py index 5fd77da94d..c3f5a70328 100644 --- a/var/spack/repos/builtin/packages/vtk-m/package.py +++ b/var/spack/repos/builtin/packages/vtk-m/package.py @@ -30,7 +30,11 @@ class VtkM(CMakePackage, CudaPackage): version('1.3.0', sha256="f88c1b0a1980f695240eeed9bcccfa420cc089e631dc2917c9728a2eb906df2e") version('1.2.0', sha256="607272992e05f8398d196f0acdcb4af025a4a96cd4f66614c6341f31d4561763") version('1.1.0', sha256="78618c81ca741b1fbba0853cb5d7af12c51973b514c268fc96dfb36b853cdb18") - + # version used by ascent + version('ascent_ver', commit="a3b8525ef97d94996ae843db0dd4f675c38e8b1e") + # patches, required for ascent + patch('vtkmdiy_fpic.patch', when='@ascent_ver') + patch('disable_flying_edges.patch', when='@ascent_ver') # use release, instead of release with debug symbols b/c vtkm libs # can overwhelm compilers with too many symbols variant('build_type', default='Release', description='CMake build type', @@ -102,7 +106,7 @@ class VtkM(CMakePackage, CudaPackage): # logging support if "+logging" in spec: - if spec.satisfies('@:1.2.0'): + if not spec.satisfies('@1.3.0:,ascent_ver'): raise InstallError('logging is not supported for\ vtkm version lower than 1.3') options.append("-DVTKm_ENABLE_LOGGING:BOOL=ON") @@ -111,7 +115,7 @@ class VtkM(CMakePackage, CudaPackage): # mpi support if "+mpi" in spec: - if spec.satisfies('@:1.2.0'): + if not spec.satisfies('@1.3.0:,ascent_ver'): raise InstallError('mpi is not supported for\ vtkm version lower than 1.3') options.append("-DVTKm_ENABLE_MPI:BOOL=ON") @@ -121,7 +125,7 @@ class VtkM(CMakePackage, CudaPackage): # openmp support if "+openmp" in spec: # openmp is added since version 1.3.0 - if spec.satisfies('@:1.2.0'): + if not spec.satisfies('@1.3.0:,ascent_ver'): raise InstallError('OpenMP is not supported for\ vtkm version lower than 1.3') options.append("-DVTKm_ENABLE_OPENMP:BOOL=ON") diff --git a/var/spack/repos/builtin/packages/vtk-m/vtkmdiy_fpic.patch b/var/spack/repos/builtin/packages/vtk-m/vtkmdiy_fpic.patch new file mode 100644 index 0000000000..765efe1c58 --- /dev/null +++ b/var/spack/repos/builtin/packages/vtk-m/vtkmdiy_fpic.patch @@ -0,0 +1,12 @@ +diff --git a/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt b/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt +index 5211330..3e991f3 100644 +--- a/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt ++++ b/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt +@@ -139,6 +139,7 @@ function(add_diy_mpi_library use_mpi) + endif() + + add_library(${lib_name} ${sources}) ++ set_property(TARGET ${lib_name} PROPERTY POSITION_INDEPENDENT_CODE ON) + target_compile_features(${lib_name} PRIVATE cxx_std_11) + target_compile_definitions(${lib_name} + PRIVATE -DVTKMDIY_HAS_MPI=${has_mpi_val} diff --git a/var/spack/repos/builtin/packages/wannier90/package.py b/var/spack/repos/builtin/packages/wannier90/package.py index 5be0134141..e4aa1017c7 100644 --- a/var/spack/repos/builtin/packages/wannier90/package.py +++ b/var/spack/repos/builtin/packages/wannier90/package.py @@ -15,8 +15,10 @@ class Wannier90(MakefilePackage): Wannier90 is released under the GNU General Public License. """ homepage = 'http://wannier.org' - url = 'http://wannier.org/code/wannier90-2.0.1.tar.gz' + url = 'https://github.com/wannier-developers/wannier90/archive/v3.1.0.tar.gz' + version('3.1.0', sha256='40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254') + version('3.0.0', sha256='f196e441dcd7b67159a1d09d2d7de2893b011a9f03aab6b30c4703ecbf20fe5b') version('2.1.0', sha256='ee90108d4bc4aa6a1cf16d72abebcb3087cf6c1007d22dda269eb7e7076bddca') version('2.0.1', sha256='05ea7cd421a219ce19d379ad6ae3d9b1a84be4ffb367506ffdfab1e729309e94') @@ -26,17 +28,40 @@ class Wannier90(MakefilePackage): parallel = False - build_targets = [ - 'wannier', 'post', 'lib', 'w90chk2chk', 'w90vdw', 'w90pov' - ] + variant( + 'shared', + default=True, + description='Builds a shared version of the library' + ) @property - def makefile_name(self): - # Older versions use 'make.sys' - filename = 'make.sys' + def build_targets(self): + targets = [] + if '@:2' in self.spec: + targets = [ + 'lib', 'wannier', 'post', 'w90chk2chk', 'w90vdw', 'w90pov' + ] + if '@3:' in self.spec: + targets = ['wannier', 'post', 'lib', 'w90chk2chk', 'w90vdw'] + if '+shared' in self.spec: + targets.append('dynlib') + + return targets + + def url_for_version(self, version): + if (version > Version('2')): + url = 'https://github.com/wannier-developers/wannier90/archive/v{0}.tar.gz' + else: + url = 'http://wannier.org/code/wannier90-{0}.tar.gz' + return url.format(version) - # While newer search for 'make.inc' - if self.spec.satisfies('@2.1.0:'): + @property + def makefile_name(self): + # Version 2.0.1 uses make.sys, + # other verions use make.inc + if self.spec.satisfies('@2.0.1'): + filename = 'make.sys' + else: filename = 'make.inc' abspath = join_path(self.stage.source_path, filename) @@ -46,10 +71,12 @@ class Wannier90(MakefilePackage): lapack = self.spec['lapack'].libs blas = self.spec['blas'].libs + mpi = self.spec['mpi'].libs + substitutions = { '@F90': spack_fc, '@MPIF90': self.spec['mpi'].mpifc, - '@LIBS': (lapack + blas).joined() + '@LIBS': (lapack + blas + mpi).joined() } template = join_path( @@ -61,10 +88,67 @@ class Wannier90(MakefilePackage): for key, value in substitutions.items(): filter_file(key, value, self.makefile_name) - def install(self, spec, prefix): + if '@:2 +shared' in self.spec: + # this is to build a .shared wannier90 library + filter_file('LIBRARY = ../../libwannier.a', + 'LIBRARY = ../../libwannier.' + dso_suffix, + join_path(self.stage.source_path, 'src/Makefile.2')) + filter_file('parameters.o kmesh.o io.o comms.o ' + 'utility.o get_oper.o constants.o ' + 'postw90_common.o wan_ham.o spin.o ' + 'dos.o berry.o kpath.o kslice.o ' + 'boltzwann.o geninterp.o', + 'comms.o get_oper.o postw90_common.o ' + 'wan_ham.o spin.o dos.o berry.o ' + 'kpath.o kslice.o boltzwann.o geninterp.o', + join_path(self.stage.source_path, + 'src/Makefile.2')) + filter_file('../../wannier90.x: .*', + '../../wannier90.x: $(OBJS) ' + '../wannier_prog.F90 $(LIBRARY)', + join_path(self.stage.source_path, + 'src/Makefile.2')) + filter_file('../../postw90.x: $(OBJS_POST) ' + '$(POSTDIR)postw90.F90', + '../../postw90.x: $(OBJS_POST) ' + '$(POSTDIR)postw90.F90 $(LIBRARY)', + join_path(self.stage.source_path, + 'src/Makefile.2'), string=True) + filter_file( + '$(COMPILER) ../wannier_prog.F90 ' + '$(LDOPTS) $(OBJS) $(LIBS) ' + '-o ../../wannier90.x', + '$(COMPILER) -I../obj ../wannier_prog.F90 ' + '$(LDOPTS) -L../.. -lwannier ' + '-o ../../wannier90.x', + join_path(self.stage.source_path, + 'src/Makefile.2'), string=True) + filter_file( + '$(COMPILER) $(POSTDIR)postw90.F90 ' + '$(POSTOPTS) $(LDOPTS) ' + '$(OBJS_POST) ' + '$(LIBS) -o ../../postw90.x', + '$(COMPILER) -I../obj $(POSTDIR)postw90.F90 ' + '$(POSTOPTS) $(LDOPTS) $(OBJS_POST) ' + '-L../.. -lwannier $(LIBS) -o ../../postw90.x', + join_path(self.stage.source_path, + 'src/Makefile.2'), string=True) + filter_file( + '$(AR) $(ARFLAGS) ' + '$(LIBRARY) $(OBJS2) $(OBJS)', + '$(MPIF90) $(FCOPTS) -shared -o ' + '$(LIBRARY) $(OBJS2) $(OBJS) $(LIBS)', + join_path(self.stage.source_path, + 'src/Makefile.2'), string=True) + + def setup_build_environment(self, env): + env.set('MPIFC', self.prefix.bin.mpifc) + def install(self, spec, prefix): mkdirp(self.prefix.bin) mkdirp(self.prefix.lib) + if '+shared' in spec: + mkdirp(self.prefix.modules) install( join_path(self.stage.source_path, 'wannier90.x'), @@ -76,10 +160,17 @@ class Wannier90(MakefilePackage): join_path(self.prefix.bin, 'postw90.x') ) - install( - join_path(self.stage.source_path, 'libwannier.a'), - join_path(self.prefix.lib, 'libwannier.a') - ) + inst = [] + if '+shared' in spec: + inst.append('libwannier.' + dso_suffix) + # version 3 or 2 without the shared variant + # also has a .a version of the library + if '@3:' in spec or '~shared' in spec: + inst.append('libwannier.a') + + for file in inst: + install(join_path(self.stage.source_path, file), + join_path(self.prefix.lib, file)) install( join_path(self.stage.source_path, 'w90chk2chk.x'), @@ -91,12 +182,18 @@ class Wannier90(MakefilePackage): join_path(self.prefix.bin, 'w90vdw.x') ) - install( - join_path(self.stage.source_path, 'utility', 'w90pov', 'w90pov'), - join_path(self.prefix.bin, 'w90pov') - ) + if spec.satisfies('@:2'): + install( + join_path(self.stage.source_path, + 'utility', 'w90pov', 'w90pov'), + join_path(self.prefix.bin, 'w90pov') + ) install_tree( join_path(self.stage.source_path, 'pseudo'), join_path(self.prefix.bin, 'pseudo') ) + + for file in find(join_path(self.stage.source_path, 'src/obj'), + '*.mod'): + install(file, self.prefix.modules) diff --git a/var/spack/repos/builtin/packages/whizard/package.py b/var/spack/repos/builtin/packages/whizard/package.py index 1ad8e07568..1fcb556d86 100644 --- a/var/spack/repos/builtin/packages/whizard/package.py +++ b/var/spack/repos/builtin/packages/whizard/package.py @@ -12,19 +12,26 @@ class Whizard(AutotoolsPackage): and simulated event samples.""" homepage = "whizard.hepforge.org" - url = "https://whizard.hepforge.org/downloads/?f=whizard-2.8.2.tar.gz" + url = "https://whizard.hepforge.org/downloads/?f=whizard-2.8.3.tar.gz" git = "https://gitlab.tp.nt.uni-siegen.de/whizard/public.git" maintainers = ['vvolkl'] version('master', branch="master") version('3.0.0_alpha', sha256='4636e5a10350bb67ccc98cd105bc891ea04f3393c2420f81be3d21240be20009') - version('2.8.2', sha256='32c9be342d01b3fc6f947fddce74bf2d81ece37fb39bca1f37778fb0c07e2568', prefered=True) + version('2.8.4', sha256='49893f077484470934a9d6e1545bbda7d398076568bceda00880d58132f26432', preferred=True) + version('2.8.3', sha256='96a9046682d4b992b477eb96d561c3db789207e1049b60c9bd140db40eb1e5d7') + version('2.8.2', sha256='32c9be342d01b3fc6f947fddce74bf2d81ece37fb39bca1f37778fb0c07e2568') version('2.8.1', sha256='0c759ce0598e25f38e04659f745c5963d238c4b5c12209f16449b6c0bc6dc64e') version('2.8.0', sha256='3b5175eafa879d1baca20237d18fb2b18bee89631e73ada499de9c082d009696') - variant('hepmc', default=True, - description="builds with hepmc") + variant( + 'hepmc', + default='3', + description='builds with hepmc 2/3', + values=('off', '2', '3'), + multi=False + ) variant('pythia8', default=True, description="builds with pythia8") @@ -41,15 +48,23 @@ class Whizard(AutotoolsPackage): variant('openmp', default=False, description="builds with openmp") + variant('openloops', default=False, + description="builds with openloops") + variant('latex', default=False, description="data visualization with latex") depends_on('ocaml', type='build', when="@3:") depends_on('ocaml@:4.8.2', type='build', when="@:2.99.99") - depends_on('hepmc', when="+hepmc") + depends_on('hepmc', when="hepmc=2") + depends_on('hepmc3', when="hepmc=3") + depends_on('lcio', when="+lcio") depends_on('pythia8', when="+pythia8") depends_on('lhapdf', when="+lhapdf") depends_on('fastjet', when="+fastjet") + depends_on('openloops@2.0.0: +compile_extra num_jobs=1 ' + 'processes=eett,eevvjj,ppllj,tbw', + when="+openloops") depends_on('texlive', when="+latex") depends_on('zlib') @@ -66,21 +81,31 @@ class Whizard(AutotoolsPackage): def configure_args(self): spec = self.spec args = [ - '--enable-hepmc=%s' % ("yes" if "+hepmc" in spec else "no"), + '--enable-hepmc=%s' % ("no" if "hepmc=off" in spec else "yes"), '--enable-fastjet=%s' % ("yes" if "+fastjet" in spec else "no"), '--enable-pythia8=%s' % ("yes" if "+pythia8" in spec else "no"), '--enable-lcio=%s' % ("yes" if "+lcio" in spec else "no"), '--enable-lhapdf=%s' % ("yes" if "+lhapdf" in spec else "no"), - # todo: openloops + '--enable-openloops=%s' % ("yes" if "+openloops" in spec + else "no"), + '--with-openloops=%s' % spec['openloops'].prefix, # todo: hoppet # todo: recola # todo: looptools # todo: gosam # todo: pythia6 ] + + if "+lcio" in spec: + args.append('--with-lcio=%s' % spec['lcio'].prefix) + + if "hepmc=3" in spec: + args.append('--with-hepmc=%s' % spec['hepmc3'].prefix) + if "hepmc=2" in spec: + args.append('--with-hepmc=%s' % spec['hepmc'].prefix) + if "+openmp" not in spec: args.append('--disable-openmp') - return args def url_for_version(self, version): diff --git a/var/spack/repos/builtin/packages/xbraid/package.py b/var/spack/repos/builtin/packages/xbraid/package.py index d3dff7d295..d58ac78016 100644 --- a/var/spack/repos/builtin/packages/xbraid/package.py +++ b/var/spack/repos/builtin/packages/xbraid/package.py @@ -12,7 +12,7 @@ class Xbraid(MakefilePackage): """XBraid: Parallel time integration with Multigrid""" homepage = "https://computing.llnl.gov/projects/parallel-time-integration-multigrid/software" - url = "https://computing.llnl.gov/projects/parallel-time-integration-multigrid/download/braid_2.2.0.tar.gz" + url = "https://github.com/XBraid/xbraid/archive/v2.2.0.tar.gz" version('2.2.0', sha256='082623b2ddcd2150b3ace65b96c1e00be637876ec6c94dc8fefda88743b35ba3') diff --git a/var/spack/repos/builtin/packages/xcfun/package.py b/var/spack/repos/builtin/packages/xcfun/package.py index a40234c643..7369702279 100644 --- a/var/spack/repos/builtin/packages/xcfun/package.py +++ b/var/spack/repos/builtin/packages/xcfun/package.py @@ -16,6 +16,8 @@ class Xcfun(CMakePackage): version('2.0.0a6', sha256='a51086490890393439f98c5e3e4e1622908fe934bbc5063b1d4363cc4c15496d') + version('2.0.0a2', + sha256='f29e80fdb5c8089fb0eeb7827659111005cb13eb42bf75fcb0c034f6bd067c31') extends('python') depends_on('cmake@3.11:', type='build') diff --git a/var/spack/repos/builtin/packages/xxhash/package.py b/var/spack/repos/builtin/packages/xxhash/package.py index 421026f496..84bcd8966d 100644 --- a/var/spack/repos/builtin/packages/xxhash/package.py +++ b/var/spack/repos/builtin/packages/xxhash/package.py @@ -17,6 +17,7 @@ class Xxhash(MakefilePackage): homepage = "https://github.com/Cyan4973/xxHash" url = "https://github.com/Cyan4973/xxHash/archive/v0.6.5.tar.gz" + version('0.7.4', sha256='4d9706c9da4fbdf901598f5e3b71db0eddd4ac962e827a73ebf75d66dfd820fe') version('0.6.5', sha256='19030315f4fc1b4b2cdb9d7a317069a109f90e39d1fe4c9159b7aaa39030eb95') version('0.6.4', sha256='4570ccd111df6b6386502791397906bf69b7371eb209af7d41debc2f074cdb22') version('0.6.3', sha256='d8c739ec666ac2af983a61dc932aaa2a8873df974d333a9922d472a121f2106e') diff --git a/var/spack/repos/builtin/packages/yoda/package.py b/var/spack/repos/builtin/packages/yoda/package.py new file mode 100644 index 0000000000..4da424c2a8 --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/package.py @@ -0,0 +1,84 @@ +# 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) + +from spack import * + + +class Yoda(AutotoolsPackage): + """YODA - Yet more Objects for Data Analysis""" + + homepage = "https://yoda.hepforge.org/" + url = "https://yoda.hepforge.org/downloads/?f=YODA-1.8.3.tar.bz2" + + version('1.8.3', sha256='d9dd0ea5e0f630cdf4893c09a40c78bd44455777c2125385ecc26fa9a2acba8a') + version('1.8.2', sha256='89558c11cf9b88b0899713e5b4bf8781fdcecc480ff155985ebbf148c6d80bdb') + version('1.8.1', sha256='51472e12065b9469f13906f0dc609e036d0c1dbd2a8e445e7d654aba73660112') + version('1.8.0', sha256='82c62bbaedb4b6b7d50cd42ce5409d453d46c1cc6724047db5efa74d34dd6dc5') + version('1.7.7', sha256='cfb64b099a79ec4d138792f0b464a8fbb04c4345143f77bbdca07acb744628ce') + version('1.7.6', sha256='864a1459c82676c991fcaed931263a415e815e3c9dc2cad2f94bda6fa4d112e5') + version('1.7.5', sha256='7b1dc7bb380d0fbadce12072f5cc21912c115e826182a3922d864e7edea131db') + version('1.7.4', sha256='3df316b89e9c0052104f8956e4f7d26c0b0b05cdace7d908be35c383361e3a71') + version('1.7.3', sha256='ebf6094733823e9cc2d1586aff06db2d8999c74a47e666baf305322f62c48058') + version('1.7.2', sha256='7f093cf947824ec118767c7c1999a50ea9343c173cf8c5062e3800ba54c2943e') + version('1.7.1', sha256='edd7971ecd272314309c800395200b07cf68547cbac3378a02d0b8c9ac03027b') + version('1.7.0', sha256='b3d6bfb0c52ed87cd240cee5e93e09102832d9ef32505d7275f4d3191a35ce3b') + version('1.6.7', sha256='2abf378573832c201bc6a9fecfff5b2006fc98c7a272540326cda8eb5bd95e16') + version('1.6.6', sha256='cf172a496d9108b93420530ea91055d07ecd514d2894d78db46b806530e91d21') + version('1.6.5', sha256='1477fe754cfe2e4e06aa363a773accf18aab960a8b899968b77834368cac14c5') + version('1.6.4', sha256='4c01f43c18b7b2e71f61dea0bb8c6fdc099c8e1a66256c510652884c4ffffbca') + version('1.6.3', sha256='1dd7e334fe54a05ff911d9e227d395abc5efd29e29d60187a036b2201f97da19') + version('1.6.2', sha256='5793cd1320694118423888801ca520f2719565fde04699ee69e1751f47cb57a8') + version('1.6.1', sha256='ec3f4cc4eb57f94fb431cc37db10eb831f025df95ffd9e516b8009199253c62b') + version('1.6.0', sha256='2920ef2588268484b650dc08438664a3539b79c65a9e80d58e3771bb699e2a6b') + version('1.5.9', sha256='1a19cc8c34c08f1797a93d355250e682eb85d62d4ab277b6714d7873b4bdde75') + version('1.5.8', sha256='011c5be5cc565f8baf02e7ebbe57a57b4d70dc6a528d5b0102700020bbf5a973') + version('1.5.7', sha256='f775df11b034154b8f5d43f12007692c3314672e60d3e554b3928fe5b0f00c29') + version('1.5.6', sha256='050e17b1b80658213281a2e4112dfecc0096f01f269cd739d601b2fd0e790a0c') + version('1.5.5', sha256='ce45df6248c6c50633953048240513dc52ca5c9144ef69ea72ada2df23bc4918') + version('1.5.4', sha256='c41853a1f3aa0794875ae09c1ba4348942eb890e798ac7cee6e3505a9b68b678') + version('1.5.3', sha256='1220ac0ae204c3ed6b22a6a35c30d9b5c1ded35a1054cff131861b4a919d4904') + version('1.5.2', sha256='ec113c53a6174b174aaea8f45802cc419184ce056123b93ab8d3f80fc1bd4986') + version('1.5.1', sha256='a8b088b3ede67d560e40f91f4f99be313f21841c46ce2f657af7692a7bbe3276') + version('1.5.0', sha256='2c2b77344854fac937a8ef07c0928c50829ff4c69bcad6e0afb92da611b7dd18') + version('1.4.0', sha256='e76a129f7c2b72b53525fe0b712606eeeab0dc145daa070ebf0728f0384eaf48') + version('1.3.1', sha256='274e196d009e3aac6dd1f2db876de9613ca1a3c21ec3364bc3662f5493bc9747') + version('1.3.0', sha256='d63197d5940b481ecb06cf4703d9c0b49388f32cad61ccae580d1b80312bd215') + version('1.2.1', sha256='e86964e91e4fbbba443d2848f55c028001de4713dcc64c40339389de053e7d8b') + version('1.2.0', sha256='143fa86cd7965d26d3897a5752307bfe08f4866c2f9a9f226a393127d19ee353') + version('1.1.0', sha256='5d2e8f3c1cddfb59fe651931c7c605fe0ed067864fa86047aed312c6a7938e01') + version('1.0.7', sha256='145c27d922c27a4e1d6d50030f4ddece5f03d6c309a5e392a5fcbb5e83e747ab') + version('1.0.6', sha256='357732448d67a593e5ff004418f2a2a263a1401ffe84e021f8a714aa183eaa21') + version('1.0.5', sha256='ba72bc3943a1b39fa63900570948199cf5ed5c7523f2c4af4740e51b098f1794') + version('1.0.4', sha256='697fe397c69689feecb2a731e19b2ff85e19343b8198c4f18a7064c4f7123950') + version('1.0.3', sha256='6a1d1d75d9d74da457726ea9463c1b0b6ba38d4b43ef54e1c33f885e70fdae4b') + + variant("root", default=False, description="Enable ROOT interface") + + depends_on('python', type=('build', 'run')) + depends_on('py-future', type=('build', 'run')) + depends_on('boost', when='@:1.6.0', type=('build', 'run')) + depends_on('py-cython', type='build') + depends_on('py-matplotlib', when='@1.3.0:', type=('build', 'run')) + depends_on('root', type=('build', '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') + patch('yoda-1.6.1.patch', level=0, when='@1.6.1') + patch('yoda-1.6.2.patch', level=0, when='@1.6.2') + patch('yoda-1.6.3.patch', level=0, when='@1.6.3') + patch('yoda-1.6.4.patch', level=0, when='@1.6.4') + patch('yoda-1.6.5.patch', level=0, when='@1.6.5') + patch('yoda-1.6.6.patch', level=0, when='@1.6.6') + patch('yoda-1.6.7.patch', level=0, when='@1.6.7') + + def configure_args(self): + args = [] + if self.spec.satisfies('@:1.6.0'): + args += '--with-boost=' + self.spec['boost'].prefix + + if '+root' in self.spec: + args += '--enable-root' + + return args diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.5.5.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.5.5.patch new file mode 100644 index 0000000000..ba86d4cc31 --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.5.5.patch @@ -0,0 +1,50 @@ +--- configure.orig 2016-09-30 08:52:56.000000000 +0200 ++++ configure 2016-09-30 08:56:39.000000000 +0200 +@@ -16568,11 +16568,15 @@ + cat >conftest.py <<_ACEOF + + import sys, string ++# Python 2 and 3 compatible ++from future.builtins import map ++# Python 2 and 3: forward-compatible ++from future.builtins import range + # split strings by '.' and convert to numeric. Append some zeros + # because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.5', '.')) + [0, 0, 0] ++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0] + minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] ++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i] + if sys.hexversion >= minverhex: + sys.exit( 0 ) + else: +@@ -16600,15 +16604,15 @@ + fi + + +- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"` ++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"` + +- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"` ++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"` + + ## Test for Python header + if test -x "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 + $as_echo_n "checking for Python include path... " >&6; } +- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"` ++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5 + $as_echo "$python_incpath" >&6; } + python_header="$python_incpath/Python.h" + --- pyext/setup.py.in.orig 2016-09-30 08:57:23.000000000 +0200 + +++ pyext/setup.py.in 2016-09-30 08:57:58.000000000 +0200 + @@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present + -if os.environ.has_key("BUILD_ROOTCOMPAT"): + +if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.5.9.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.5.9.patch new file mode 100644 index 0000000000..37a9ffab32 --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.5.9.patch @@ -0,0 +1,50 @@ +--- configure.orig 2016-09-30 09:01:00.000000000 +0200 ++++ configure 2016-09-30 09:03:05.000000000 +0200 +@@ -16574,11 +16574,15 @@ + cat >conftest.py <<_ACEOF + + import sys, string ++# Python 2 and 3 compatible ++from future.builtins import map ++# Python 2 and 3: forward-compatible ++from future.builtins import range + # split strings by '.' and convert to numeric. Append some zeros + # because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.5', '.')) + [0, 0, 0] ++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0] + minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] ++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i] + if sys.hexversion >= minverhex: + sys.exit( 0 ) + else: +@@ -16606,15 +16610,15 @@ + fi + + +- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"` ++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"` + +- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"` ++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"` + + ## Test for Python header + if test -x "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 + $as_echo_n "checking for Python include path... " >&6; } +- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"` ++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5 + $as_echo "$python_incpath" >&6; } + python_header="$python_incpath/Python.h" + --- pyext/setup.py.in.orig 2016-09-30 09:03:25.000000000 +0200 + +++ pyext/setup.py.in 2016-09-30 09:04:03.000000000 +0200 + @@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present + -if os.environ.has_key("BUILD_ROOTCOMPAT"): + +if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.1.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.1.patch new file mode 100644 index 0000000000..0a5996a70d --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.1.patch @@ -0,0 +1,72 @@ +--- bin/yoda-config.in.orig 2016-07-11 14:43:05.700511377 +0300 ++++ bin/yoda-config.in 2016-07-11 14:43:50.312499322 +0300 +@@ -59,7 +59,7 @@ + + ## "Pre-rolled" build info + tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>') +-test -n "$tmp" && OUT="$OUT -I@includedir@ @BOOST_CPPFLAGS@" ++test -n "$tmp" && OUT="$OUT -I@includedir@" + + tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>') + test -n "$tmp" && OUT="$OUT -L@libdir@ -lYODA" +--- bin/yoda-config.orig 2016-07-11 14:43:31.960503275 +0300 ++++ bin/yoda-config 2016-07-11 14:43:41.200501112 +0300 +@@ -59,7 +59,7 @@ + + ## "Pre-rolled" build info + tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>') +-test -n "$tmp" && OUT="$OUT -I${prefix}/include @BOOST_CPPFLAGS@" ++test -n "$tmp" && OUT="$OUT -I${prefix}/include" + + tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>') + test -n "$tmp" && OUT="$OUT -L${exec_prefix}/lib -lYODA" +--- configure.orig 2016-09-30 09:04:54.000000000 +0200 ++++ configure 2016-09-30 09:07:44.000000000 +0200 +@@ -16508,11 +16508,15 @@ + cat >conftest.py <<_ACEOF + + import sys, string ++# Python 2 and 3 compatible ++from future.builtins import map ++# Python 2 and 3: forward-compatible ++from future.builtins import range + # split strings by '.' and convert to numeric. Append some zeros + # because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.5', '.')) + [0, 0, 0] ++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0] + minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] ++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i] + if sys.hexversion >= minverhex: + sys.exit( 0 ) + else: +@@ -16540,15 +16544,15 @@ + fi + + +- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"` ++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"` + +- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"` ++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"` + + ## Test for Python header + if test -x "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 + $as_echo_n "checking for Python include path... " >&6; } +- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"` ++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5 + $as_echo "$python_incpath" >&6; } + python_header="$python_incpath/Python.h" + --- pyext/setup.py.in.orig 2016-09-30 09:07:58.000000000 +0200 + +++ pyext/setup.py.in 2016-09-30 09:08:17.000000000 +0200 + @@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present + -if os.environ.has_key("BUILD_ROOTCOMPAT"): + +if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.2.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.2.patch new file mode 100644 index 0000000000..a0eb97d0f3 --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.2.patch @@ -0,0 +1,22 @@ +--- bin/yoda-config.in.orig 2016-07-11 14:43:05.700511377 +0300 ++++ bin/yoda-config.in 2016-07-11 14:43:50.312499322 +0300 +@@ -59,7 +59,7 @@ + + ## "Pre-rolled" build info + tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>') +-test -n "$tmp" && OUT="$OUT -I@includedir@ @BOOST_CPPFLAGS@" ++test -n "$tmp" && OUT="$OUT -I@includedir@" + + tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>') + test -n "$tmp" && OUT="$OUT -L@libdir@ -lYODA" +--- bin/yoda-config.orig 2016-07-11 14:43:31.960503275 +0300 ++++ bin/yoda-config 2016-07-11 14:43:41.200501112 +0300 +@@ -59,7 +59,7 @@ + + ## "Pre-rolled" build info + tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>') +-test -n "$tmp" && OUT="$OUT -I${prefix}/include @BOOST_CPPFLAGS@" ++test -n "$tmp" && OUT="$OUT -I${prefix}/include" + + tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>') + test -n "$tmp" && OUT="$OUT -L${exec_prefix}/lib -lYODA" diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.3.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.3.patch new file mode 100644 index 0000000000..4d50a3cf2d --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.3.patch @@ -0,0 +1,50 @@ +--- configure.orig 2016-08-09 21:07:54.000000000 +0200 ++++ configure 2016-09-19 11:49:18.560986340 +0200 +@@ -16520,11 +16520,15 @@ + cat >conftest.py <<_ACEOF + + import sys, string ++# Python 2 and 3 compatible ++from future.builtins import map ++# Python 2 and 3: forward-compatible ++from future.builtins import range + # split strings by '.' and convert to numeric. Append some zeros + # because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.5', '.')) + [0, 0, 0] ++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0] + minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] ++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i] + if sys.hexversion >= minverhex: + sys.exit( 0 ) + else: +@@ -16552,15 +16556,15 @@ + fi + + +- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"` ++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"` + +- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"` ++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"` + + ## Test for Python header + if test -x "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 + $as_echo_n "checking for Python include path... " >&6; } +- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"` ++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5 + $as_echo "$python_incpath" >&6; } + python_header="$python_incpath/Python.h" + --- pyext/setup.py.in.orig 2016-09-06 17:25:39.993785138 +0200 + +++ pyext/setup.py.in 2016-09-06 17:26:10.368489432 +0200 + @@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present + -if os.environ.has_key("BUILD_ROOTCOMPAT"): + +if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.4.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.4.patch new file mode 100644 index 0000000000..44b8ed06bc --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.4.patch @@ -0,0 +1,11 @@ +--- pyext/setup.py.in.orig 2016-09-30 09:13:02.000000000 +0200 ++++ pyext/setup.py.in 2016-09-30 09:13:21.000000000 +0200 +@@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present +-if os.environ.has_key("BUILD_ROOTCOMPAT"): ++if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.5.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.5.patch new file mode 100644 index 0000000000..ee632655ad --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.5.patch @@ -0,0 +1,23 @@ +--- bin/yoda2aida.orig 2016-10-07 13:25:57.355168158 +0200 ++++ bin/yoda2aida 2016-10-07 13:26:04.779169090 +0200 +@@ -18,7 +18,7 @@ + parser.add_option("-M", "--unmatch", dest="UNMATCH", metavar="PATT", default=None, + help="exclude histograms whose path matches this regex") + +-sys.stderr.write("WARNING: yoda2aida is DEPRECATED.\n It will die when AIDA does... *soon*\n" ++sys.stderr.write("WARNING: yoda2aida is DEPRECATED.\n It will die when AIDA does... *soon*\n") + + opts, args = parser.parse_args() + in_out = parse_x2y_args(args, ".yoda", ".aida") + +--- pyext/setup.py.in.orig 2016-09-30 09:13:02.000000000 +0200 ++++ pyext/setup.py.in 2016-09-30 09:13:21.000000000 +0200 +@@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present +-if os.environ.has_key("BUILD_ROOTCOMPAT"): ++if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.6.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.6.patch new file mode 100644 index 0000000000..fd400e4d7e --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.6.patch @@ -0,0 +1,11 @@ +--- pyext/setup.py.in.orig 2017-02-01 15:24:41.000000000 +0100 ++++ pyext/setup.py.in 2017-02-01 15:25:04.000000000 +0100 +@@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present +-if os.environ.has_key("BUILD_ROOTCOMPAT"): ++if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.7.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.7.patch new file mode 100644 index 0000000000..cc45b3e689 --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.7.patch @@ -0,0 +1,11 @@ +--- pyext/setup.py.in.orig 2017-07-17 12:13:12.057895620 +0200 ++++ pyext/setup.py.in 2017-07-17 12:15:11.991048036 +0200 +@@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present +-if os.environ.has_key("BUILD_ROOTCOMPAT"): ++if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/zsh/package.py b/var/spack/repos/builtin/packages/zsh/package.py index 60bb3cd3e7..1288eddbad 100644 --- a/var/spack/repos/builtin/packages/zsh/package.py +++ b/var/spack/repos/builtin/packages/zsh/package.py @@ -13,11 +13,14 @@ class Zsh(AutotoolsPackage): """ homepage = "http://www.zsh.org" - url = "http://downloads.sourceforge.net/project/zsh/zsh/5.4.2/zsh-5.4.2.tar.gz" - - version('5.4.2', sha256='957bcdb2c57f64c02f673693ea5a7518ef24b6557aeb3a4ce222cefa6d74acc9') - version('5.3.1', sha256='3d94a590ff3c562ecf387da78ac356d6bea79b050a9ef81e3ecb9f8ee513040e') - version('5.1.1', sha256='94ed5b412023761bc8d2f03c173f13d625e06e5d6f0dff2c7a6e140c3fa55087') + url = "http://downloads.sourceforge.net/project/zsh/zsh/5.4.2/zsh-5.4.2.tar.xz" + + version('5.8', sha256='dcc4b54cc5565670a65581760261c163d720991f0d06486da61f8d839b52de27') + version('5.7.1', sha256='7260292c2c1d483b2d50febfa5055176bd512b32a8833b116177bf5f01e77ee8') + version('5.6.2', sha256='a50bd66c0557e8eca3b8fa24e85d0de533e775d7a22df042da90488623752e9e') + version('5.4.2', sha256='a80b187b6b770f092ea1f53e89021d06c03d8bbe6a5e996bcca3267de14c5e52') + version('5.3.1', sha256='fc886cb2ade032d006da8322c09a7e92b2309177811428b121192d44832920da') + version('5.1.1', sha256='74e9453b5470b3c0970f9f93cfd603d241c3d7b1968adc0e4b3951073e8d3dec') # Testing for terminal related things causes failures in e.g. Jenkins. # See e.g. https://www.zsh.org/mla/users/2003/msg00845.html, |