From b093929f91997cdeae3677a80d5885e362951083 Mon Sep 17 00:00:00 2001 From: Cory Bloor Date: Sun, 4 Sep 2022 20:18:33 -0600 Subject: [PATCH 001/241] rocthrust: add amdgpu_target and spack build test (#31203) This change adds support for building the rocthrust tests and adds the `amdgpu_target` variant to the `rocthrust` package. - [x] rocthrust: add amdgpu_target and spack build test - [x] Drop numactl as it is not a direct dependency --- .../repos/builtin/packages/rocthrust/package.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/rocthrust/package.py b/var/spack/repos/builtin/packages/rocthrust/package.py index 572ea2ce544..c19903013fe 100644 --- a/var/spack/repos/builtin/packages/rocthrust/package.py +++ b/var/spack/repos/builtin/packages/rocthrust/package.py @@ -77,6 +77,11 @@ class Rocthrust(CMakePackage): deprecated=True, ) + amdgpu_targets = ROCmPackage.amdgpu_targets + + # the rocthrust library itself is header-only, but the build_type and amdgpu_target + # are relevant to the test client + variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets)) variant( "build_type", default="Release", @@ -85,7 +90,8 @@ class Rocthrust(CMakePackage): ) depends_on("cmake@3.10.2:", type="build", when="@4.2.0:") depends_on("cmake@3.5.1:", type="build") - depends_on("numactl", when="@3.7.0:") + + depends_on("googletest@1.10.0:", type="test") for ver in [ "3.5.0", @@ -114,7 +120,13 @@ def setup_build_environment(self, env): env.set("CXX", self.spec["hip"].hipcc) def cmake_args(self): - args = [self.define("CMAKE_MODULE_PATH", "{0}/cmake".format(self.spec["hip"].prefix))] + args = [ + self.define("CMAKE_MODULE_PATH", "{0}/cmake".format(self.spec["hip"].prefix)), + self.define("BUILD_TEST", self.run_tests), + ] + + if "auto" not in self.spec.variants["amdgpu_target"]: + args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) if self.spec.satisfies("^cmake@3.21.0:3.21.2"): args.append(self.define("__skip_rocmclang", "ON")) From d7d59a24d12eba3ea87b052eab1e978ebca20428 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Tue, 6 Sep 2022 11:56:44 +0200 Subject: [PATCH 002/241] Mark a test xfail on Python 2.7 (#32526) refers #32470 --- lib/spack/spack/test/concretize.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/spack/spack/test/concretize.py b/lib/spack/spack/test/concretize.py index f9d8cced628..97f01660ef9 100644 --- a/lib/spack/spack/test/concretize.py +++ b/lib/spack/spack/test/concretize.py @@ -1769,6 +1769,9 @@ def test_git_ref_version_errors_if_unknown_version(self, git_ref): s.concretized() @pytest.mark.regression("31484") + @pytest.mark.skipif( + sys.version_info[:2] == (2, 7), reason="Fixture fails intermittently with Python 2.7" + ) def test_installed_externals_are_reused(self, mutable_database, repo_with_changing_recipe): """Test that external specs that are in the DB can be reused.""" if spack.config.get("config:concretizer") == "original": From c7292aa4b67ca6ab9e454a0fa4dd6b974ca8666c Mon Sep 17 00:00:00 2001 From: "Seth R. Johnson" Date: Tue, 6 Sep 2022 12:50:59 -0400 Subject: [PATCH 003/241] Fix spack locking on some NFS systems (#32426) Co-authored-by: Todd Gamblin --- lib/spack/llnl/util/lock.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/spack/llnl/util/lock.py b/lib/spack/llnl/util/lock.py index 0682ce059a1..6dfba50abb4 100644 --- a/lib/spack/llnl/util/lock.py +++ b/lib/spack/llnl/util/lock.py @@ -386,8 +386,12 @@ def _ensure_parent_directory(self): try: os.makedirs(parent) except OSError as e: - # makedirs can fail when diretory already exists. - if not (e.errno == errno.EEXIST and os.path.isdir(parent) or e.errno == errno.EISDIR): + # os.makedirs can fail in a number of ways when the directory already exists. + # With EISDIR, we know it exists, and others like EEXIST, EACCES, and EROFS + # are fine if we ensure that the directory exists. + # Python 3 allows an exist_ok parameter and ignores any OSError as long as + # the directory exists. + if not (e.errno == errno.EISDIR or os.path.isdir(parent)): raise return parent From 92018261aa5dc2038d3d2812540bc4ac71dfa747 Mon Sep 17 00:00:00 2001 From: luker Date: Tue, 6 Sep 2022 12:14:06 -0500 Subject: [PATCH 004/241] update libflame for work with crayCC, craycc, ... (#32533) update libflame for work with crayCC, craycc, crayftn compiler wrappers. These lightweight compiler drivers do not add the `-L` like the CC/cc/ftn compiler drivers do. I've made a slight change to add the lib directories. --- var/spack/repos/builtin/packages/libflame/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/libflame/package.py b/var/spack/repos/builtin/packages/libflame/package.py index ef26c72a967..a7b9ca49a16 100644 --- a/var/spack/repos/builtin/packages/libflame/package.py +++ b/var/spack/repos/builtin/packages/libflame/package.py @@ -70,7 +70,7 @@ def configure_args(self): # Libflame has a secondary dependency on BLAS, # but doesn't know which library name to expect: # https://github.com/flame/libflame/issues/24 - config_args = ["LIBS=" + self.spec["blas"].libs.link_flags] + config_args = ["LIBS=" + self.spec["blas"].libs.ld_flags] if "+lapack2flame" in self.spec: config_args.append("--enable-lapack2flame") From ab82cc525790db1c7f0c60812e996403fff0b1d3 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Tue, 6 Sep 2022 15:44:51 -0500 Subject: [PATCH 005/241] py-tensorflow: add v2.7.4, v2.8.3, v2.9.2 (#32500) * py-tensorflow: add v2.7.4 * py-tensorflow: add v2.8.3 * py-tensorflow: add v2.9.2 --- var/spack/repos/builtin/packages/py-tensorflow/package.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-tensorflow/package.py b/var/spack/repos/builtin/packages/py-tensorflow/package.py index 1c8eb63a1e7..fdfefccc2f0 100644 --- a/var/spack/repos/builtin/packages/py-tensorflow/package.py +++ b/var/spack/repos/builtin/packages/py-tensorflow/package.py @@ -30,8 +30,10 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage): maintainers = ["adamjstewart", "aweits"] import_modules = ["tensorflow"] + version("2.9.2", sha256="8cd7ed82b096dc349764c3369331751e870d39c86e73bbb5374e1664a59dcdf7") version("2.9.1", sha256="6eaf86ead73e23988fe192da1db68f4d3828bcdd0f3a9dc195935e339c95dbdc") version("2.9.0", sha256="8087cb0c529f04a4bfe480e49925cd64a904ad16d8ec66b98e2aacdfd53c80ff") + version("2.8.3", sha256="4b7ecbe50b36887e1615bc2a582cb86df1250004d8bb540e18336d539803b5a7") version("2.8.2", sha256="b3f860c02c22a30e9787e2548ca252ab289a76b7778af6e9fa763d4aafd904c7") version("2.8.1", sha256="4b487a63d6f0c1ca46a2ac37ba4687eabdc3a260c222616fa414f6df73228cec") version("2.8.0", sha256="66b953ae7fba61fd78969a2e24e350b26ec116cf2e6a7eb93d02c63939c6f9f7") @@ -40,6 +42,7 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage): sha256="45b79c125edfdc008274f1b150d8b5a53b3ff4713fd1ad1ff4738f515aad8191", url="https://github.com/ROCmSoftwarePlatform/tensorflow-upstream/archive/refs/tags/v2.7.4-rocm-enhanced.tar.gz", ) + version("2.7.4", sha256="75b2e40a9623df32da16d8e97528f5e02e4a958e23b1f2ee9637be8eec5d021b") version("2.7.3", sha256="b576c2e124cd6d4d04cbfe985430a0d955614e882172b2258217f0ec9b61f39b") version("2.7.2", sha256="b3c8577f3b7cc82368ff7f9315821d506abd2f716ea6692977d255b7d8bc54c0") version("2.7.1", sha256="abebe2cf5ca379e18071693ca5f45b88ade941b16258a21cc1f12d77d5387a21") From 92e0dbde031909526017a583cc828e6e4845a550 Mon Sep 17 00:00:00 2001 From: Laura Bellentani Date: Tue, 6 Sep 2022 22:45:57 +0200 Subject: [PATCH 006/241] quantum-espresso: add cuda support (#31869) --- .../packages/quantum-espresso/package.py | 55 +++++++++++++++---- 1 file changed, 43 insertions(+), 12 deletions(-) diff --git a/var/spack/repos/builtin/packages/quantum-espresso/package.py b/var/spack/repos/builtin/packages/quantum-espresso/package.py index 127d6e980f4..acc07692cf0 100644 --- a/var/spack/repos/builtin/packages/quantum-espresso/package.py +++ b/var/spack/repos/builtin/packages/quantum-espresso/package.py @@ -3,7 +3,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack.package import * @@ -18,7 +17,7 @@ class QuantumEspresso(CMakePackage): url = "https://gitlab.com/QEF/q-e/-/archive/qe-6.6/q-e-qe-6.6.tar.gz" git = "https://gitlab.com/QEF/q-e.git" - maintainers = ["ye-luo", "danielecesarini"] + maintainers = ["ye-luo", "danielecesarini", "bellenlau"] version("develop", branch="develop") version("7.1", sha256="d56dea096635808843bd5a9be2dee3d1f60407c01dbeeda03f8256a3bcfc4eb6") @@ -61,23 +60,46 @@ class QuantumEspresso(CMakePackage): with when("+cmake"): depends_on("cmake@3.14.0:", type="build") conflicts("@:6.7", msg="+cmake works since QE v6.8") - # TODO - # variant( - # 'gpu', default='none', description='Builds with GPU support', - # values=('nvidia', 'none'), multi=False - # ) variant("libxc", default=False, description="Uses libxc") depends_on("libxc@5.1.2:", when="+libxc") - variant("openmp", default=False, description="Enables openMP support") + variant("openmp", default=True, description="Enables OpenMP support") # Need OpenMP threaded FFTW and BLAS libraries when configured # with OpenMP support with when("+openmp"): - conflicts("^fftw~openmp") - conflicts("^amdfftw~openmp") - conflicts("^openblas threads=none") - conflicts("^openblas threads=pthreads") + depends_on("fftw+openmp", when="^fftw") + depends_on("amdfftw+openmp", when="^amdfftw") + depends_on("openblas threads=openmp", when="^openblas") + depends_on("amdblis threads=openmp", when="^amdblis") + + # Add Cuda Fortran support + # depends on NVHPC compiler, not directly on CUDA toolkit + with when("%nvhpc"): + variant( + "cuda", + default=False, + description="Build with CUDA Fortran", + ) + with when("+cuda"): + # GPUs are enabled since v6.6 + conflicts("@:6.5") + # cuda version >= 10.1 + # conflicts("cuda@:10.0.130") + # bugs with following nvhpcsdk versions and +openmp + with when("+openmp"): + conflicts( + "%nvhpc@21.11:22.3", + msg="bugs with NVHPCSDK from v21.11 to v22.3, OpenMP and GPU", + ) + # only cmake is supported + conflicts("~cmake", msg="Only CMake supported for GPU-enabled version") + + # NVTX variant for profiling + # requires linking to CUDA runtime APIs , handled by CMake + variant("nvtx", default=False, description="Enables NVTX markers for profiling") + with when("+nvtx~cuda"): + depends_on("cuda") # Apply upstream patches by default. Variant useful for 3rd party # patches which are incompatible with upstream patches @@ -89,6 +111,9 @@ class QuantumEspresso(CMakePackage): with when("+mpi"): depends_on("mpi") variant("scalapack", default=True, description="Enables scalapack support") + with when("%nvhpc+cuda"): + # add mpi_gpu_aware variant, False by default + variant("mpigpu", default=False, description="Enables GPU-aware MPI operations") with when("+scalapack"): depends_on("scalapack") @@ -354,8 +379,14 @@ def cmake_args(self): self.define_from_variant("QE_ENABLE_SCALAPACK", "scalapack"), self.define_from_variant("QE_ENABLE_ELPA", "elpa"), self.define_from_variant("QE_ENABLE_LIBXC", "libxc"), + self.define_from_variant("QE_ENABLE_CUDA", "cuda"), + self.define_from_variant("QE_ENABLE_PROFILE_NVTX", "nvtx"), + self.define_from_variant("QE_ENABLE_MPI_GPU_AWARE", "mpigpu"), ] + if "+cuda" in self.spec: + cmake_args.append(self.define("QE_ENABLE_OPENACC", True)) + # QE prefers taking MPI compiler wrappers as CMake compilers. if "+mpi" in spec: cmake_args.append(self.define("CMAKE_C_COMPILER", spec["mpi"].mpicc)) From 5bb175aedea572bb920b76070897e203619896a4 Mon Sep 17 00:00:00 2001 From: Robert Blake Date: Tue, 6 Sep 2022 20:57:57 -0700 Subject: [PATCH 007/241] Upgrade py-kosh to 2022-08-10 version. (#32541) --- var/spack/repos/builtin/packages/py-kosh/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-kosh/package.py b/var/spack/repos/builtin/packages/py-kosh/package.py index 6e05f430ea9..d92d69d8865 100644 --- a/var/spack/repos/builtin/packages/py-kosh/package.py +++ b/var/spack/repos/builtin/packages/py-kosh/package.py @@ -20,6 +20,7 @@ class PyKosh(PythonPackage): # notify when the package is updated. maintainers = ["doutriaux1"] + version("2.2", sha256="3c79c3b7e7b64018ec5987dd7148886a6c619a28cda6f84e61a57439c9f3d7a3") version("2.1", sha256="597ed5beb4c3c3675b4af15ee7bfb60a463d5bda2222cd927061737ed073d562") version("2.0", sha256="059e431e3d3219b53956cb464d9e10933ca141dc89662f55d9c633e35c8b3a1e") From 8e5ccddc139b32a4a23f63c9dd631dabf3263cad Mon Sep 17 00:00:00 2001 From: Satish Balay Date: Wed, 7 Sep 2022 12:42:01 -0500 Subject: [PATCH 008/241] llvm: add 15.0.0 (#32536) --- var/spack/repos/builtin/packages/llvm/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py index cdc33333d7c..ff23d4ff753 100644 --- a/var/spack/repos/builtin/packages/llvm/package.py +++ b/var/spack/repos/builtin/packages/llvm/package.py @@ -36,8 +36,8 @@ class Llvm(CMakePackage, CudaPackage): # fmt: off version('main', branch='main') - version('15.0.0-rc3', sha256='e096e5a8728e3bda68f92332bc057f4f26bc6b063c8c87b283ffbbb87736b753') - version('14.0.6', sha256='98f15f842700bdb7220a166c8d2739a03a72e775b67031205078f39dd756a055', preferred=True) + version('15.0.0', sha256='36d83cd84e1caf2bcfda1669c029e2b949adb9860cff01e7d3246ac2348b11ae') + version('14.0.6', sha256='98f15f842700bdb7220a166c8d2739a03a72e775b67031205078f39dd756a055') version('14.0.5', sha256='a4a57f029cb81f04618e05853f05fc2d21b64353c760977d8e7799bf7218a23a') version('14.0.4', sha256='1333236f9bee38658762076be4236cb5ebf15ae9b7f2bfce6946b96ae962dc73') version('14.0.3', sha256='0e1d049b050127ecf6286107e9a4400b0550f841d5d2288b9d31fd32ed0683d5') From 762ba27036e717aeceeb1b43f3090f0e9a049869 Mon Sep 17 00:00:00 2001 From: Tom Scogland Date: Wed, 7 Sep 2022 11:12:57 -0700 Subject: [PATCH 009/241] Make GHA tests parallel by using xdist (#32361) * Add two no-op jobs named "all-prechecks" and "all" These are a suggestion from @tgamblin, they are stable named markers we can use from gitlab and possibly for required checks to make CI more resilient to refactors changing the names of specific checks. * Enable parallel testing using xdist for unit testing in CI * Normalize tmp paths to deal with macos * add -u flag compatibility to spack python As of now, it is accepted and ignored. The usage with xdist, where it is invoked specifically by `python -u spack python` which is then passed `-u` by xdist is the entire reason for doing this. It should never be used without explicitly passing -u to the executing python interpreter. * use spack python in xdist to support python 2 When running on python2, spack has many import cycles unless started through main. To allow that, this uses `spack python` as the interpreter, leveraging the `-u` support so xdist doesn't error out when it unconditionally requests unbuffered binary IO. * Use shutil.move to account for tmpdir being in a separate filesystem sometimes --- .flake8 | 1 + .github/workflows/audit.yaml | 44 ++++++++++++++++++++++ .github/workflows/bootstrap.yml | 2 +- .github/workflows/build-containers.yml | 2 +- .github/workflows/ci.yaml | 25 +++++++++++-- .github/workflows/unit_tests.yaml | 33 ++++++++++++---- .github/workflows/valid-style.yml | 34 +++-------------- .github/workflows/windows_python.yml | 2 +- bin/spack-tmpconfig | 1 - lib/spack/llnl/util/tty/pty.py | 4 +- lib/spack/spack/cmd/python.py | 6 +++ lib/spack/spack/main.py | 50 ++++++++++++++++--------- lib/spack/spack/test/ci.py | 1 + lib/spack/spack/test/cmd/checksum.py | 4 +- lib/spack/spack/test/cmd/ci.py | 4 +- lib/spack/spack/test/cmd/commands.py | 12 +++--- lib/spack/spack/test/cmd/env.py | 2 +- lib/spack/spack/test/cmd/help.py | 6 +-- lib/spack/spack/test/cmd/is_git_repo.py | 33 ++++++++-------- lib/spack/spack/test/cmd/module.py | 4 +- lib/spack/spack/test/cmd/style.py | 50 +++++++++++++------------ lib/spack/spack/test/cmd_extensions.py | 11 ++++-- lib/spack/spack/util/debug.py | 6 ++- share/spack/qa/run-unit-tests | 5 +++ share/spack/spack-completion.bash | 2 +- 25 files changed, 221 insertions(+), 123 deletions(-) create mode 100644 .github/workflows/audit.yaml diff --git a/.flake8 b/.flake8 index 226e694894d..ddd6b6c2fde 100644 --- a/.flake8 +++ b/.flake8 @@ -29,6 +29,7 @@ max-line-length = 99 # per-file-ignores = var/spack/repos/*/package.py:F403,F405,F821 + *-ci-package.py:F403,F405,F821 # exclude things we usually do not want linting for. # These still get linted when passed explicitly, as when spack flake8 passes diff --git a/.github/workflows/audit.yaml b/.github/workflows/audit.yaml new file mode 100644 index 00000000000..2b8c9895184 --- /dev/null +++ b/.github/workflows/audit.yaml @@ -0,0 +1,44 @@ +name: audit + +on: + workflow_call: + inputs: + with_coverage: + required: true + type: string + python_version: + required: true + type: string + +concurrency: + group: audit-${{inputs.python_version}}-${{github.ref}}-${{github.event.pull_request.number || github.run_number}} + cancel-in-progress: true + +jobs: + # Run audits on all the packages in the built-in repository + package-audits: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # @v2 + - uses: actions/setup-python@b55428b1882923874294fa556849718a1d7f2ca5 # @v2 + with: + python-version: ${{inputs.python_version}} + - name: Install Python packages + run: | + pip install --upgrade pip six setuptools pytest codecov 'coverage[toml]<=6.2' + - name: Package audits (with coverage) + if: ${{ inputs.with_coverage == 'true' }} + run: | + . share/spack/setup-env.sh + coverage run $(which spack) audit packages + coverage combine + coverage xml + - name: Package audits (without coverage) + if: ${{ inputs.with_coverage == 'false' }} + run: | + . share/spack/setup-env.sh + $(which spack) audit packages + - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 + if: ${{ inputs.with_coverage == 'true' }} + with: + flags: unittests,linux,audits diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml index 138a9c7382c..e649de2fb45 100644 --- a/.github/workflows/bootstrap.yml +++ b/.github/workflows/bootstrap.yml @@ -9,7 +9,7 @@ on: - cron: '16 2 * * *' concurrency: - group: bootstrap-${{ github.workflow }}-${{ github.event.pull_request.number || github.run_number }} + group: bootstrap-${{github.ref}}-${{github.event.pull_request.number || github.run_number}} cancel-in-progress: true jobs: diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index f849747995e..30765cfc861 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -20,7 +20,7 @@ on: types: [published] concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_number }} + group: build_containers-${{github.ref}}-${{github.event.pull_request.number || github.run_number}} cancel-in-progress: true jobs: diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 62f2be080f4..f4943789d6a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -11,7 +11,7 @@ on: - releases/** concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_number }} + group: ci-${{github.ref}}-${{github.event.pull_request.number || github.run_number}} cancel-in-progress: true jobs: @@ -20,6 +20,18 @@ jobs: uses: ./.github/workflows/valid-style.yml with: with_coverage: ${{ needs.changes.outputs.with_coverage }} + audit-ancient-python: + uses: ./.github/workflows/audit.yaml + needs: [ changes ] + with: + with_coverage: ${{ needs.changes.outputs.with_coverage }} + python_version: 2.7 + all-prechecks: + needs: [ prechecks ] + runs-on: ubuntu-latest + steps: + - name: Success + run: "true" # Check which files have been updated by the PR changes: runs-on: ubuntu-latest @@ -53,6 +65,7 @@ jobs: - 'share/spack/**' - '.github/workflows/bootstrap.yml' core: + - '!lib/spack/docs/**' - './!(var/**)/**' packages: - 'var/**' @@ -79,7 +92,7 @@ jobs: needs: [ prechecks, changes ] uses: ./.github/workflows/bootstrap.yml unit-tests: - if: ${{ github.repository == 'spack/spack' }} + if: ${{ github.repository == 'spack/spack' && needs.changes.outputs.core == 'true' }} needs: [ prechecks, changes ] uses: ./.github/workflows/unit_tests.yaml with: @@ -87,7 +100,13 @@ jobs: packages: ${{ needs.changes.outputs.packages }} with_coverage: ${{ needs.changes.outputs.with_coverage }} windows: - if: ${{ github.repository == 'spack/spack' }} + if: ${{ github.repository == 'spack/spack' && needs.changes.outputs.core == 'true' }} needs: [ prechecks ] uses: ./.github/workflows/windows_python.yml + all: + needs: [ windows, unit-tests, bootstrap, audit-ancient-python ] + runs-on: ubuntu-latest + steps: + - name: Success + run: "true" diff --git a/.github/workflows/unit_tests.yaml b/.github/workflows/unit_tests.yaml index 3856f1039f9..6b1411c61bd 100644 --- a/.github/workflows/unit_tests.yaml +++ b/.github/workflows/unit_tests.yaml @@ -1,6 +1,7 @@ name: unit tests on: + workflow_dispatch: workflow_call: inputs: core: @@ -14,7 +15,7 @@ on: type: string concurrency: - group: unit_tests-${{ github.workflow }}-${{ github.event.pull_request.number || github.run_number }} + group: unit_tests-${{github.ref}}-${{github.event.pull_request.number || github.run_number}} cancel-in-progress: true jobs: @@ -25,11 +26,26 @@ jobs: matrix: python-version: ['2.7', '3.6', '3.7', '3.8', '3.9', '3.10'] concretizer: ['clingo'] + on_develop: + - ${{ github.ref == 'refs/heads/develop' }} include: - python-version: 2.7 concretizer: original - - python-version: 3.9 + on_develop: false + - python-version: '3.10' concretizer: original + on_develop: false + exclude: + - python-version: '3.7' + concretizer: 'clingo' + on_develop: false + - python-version: '3.8' + concretizer: 'clingo' + on_develop: false + - python-version: '3.9' + concretizer: 'clingo' + on_develop: false + steps: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # @v2 with: @@ -46,7 +62,7 @@ jobs: patchelf cmake bison libbison-dev kcov - name: Install Python packages run: | - pip install --upgrade pip six setuptools pytest codecov "coverage[toml]<=6.2" + pip install --upgrade pip six setuptools pytest codecov "coverage[toml]<=6.2" pytest-xdist # ensure style checks are not skipped in unit tests for python >= 3.6 # note that true/false (i.e., 1/0) are opposite in conditions in python and bash if python -c 'import sys; sys.exit(not sys.version_info >= (3, 6))'; then @@ -108,7 +124,7 @@ jobs: sudo apt-get install -y coreutils kcov csh zsh tcsh fish dash bash - name: Install Python packages run: | - pip install --upgrade pip six setuptools pytest codecov coverage[toml]==6.2 + pip install --upgrade pip six setuptools pytest codecov coverage[toml]==6.2 pytest-xdist - name: Setup git configuration run: | # Need this for the git tests to succeed. @@ -174,7 +190,7 @@ jobs: patchelf kcov - name: Install Python packages run: | - pip install --upgrade pip six setuptools pytest codecov coverage[toml]==6.2 clingo + pip install --upgrade pip six setuptools pytest codecov coverage[toml]==6.2 clingo pytest-xdist - name: Setup git configuration run: | # Need this for the git tests to succeed. @@ -216,7 +232,7 @@ jobs: - name: Install Python packages run: | pip install --upgrade pip six setuptools - pip install --upgrade pytest codecov coverage[toml]==6.2 + pip install --upgrade pytest codecov coverage[toml]==6.2 pytest-xdist - name: Setup Homebrew packages run: | brew install dash fish gcc gnupg2 kcov @@ -229,9 +245,10 @@ jobs: . share/spack/setup-env.sh $(which spack) bootstrap untrust spack-install $(which spack) solve zlib + common_args=(--dist loadfile --tx '4*popen//python=./bin/spack-tmpconfig python -u ./bin/spack python' -x) if [ "${{ inputs.with_coverage }}" == "true" ] then - coverage run $(which spack) unit-test -x + coverage run $(which spack) unit-test "${common_args[@]}" coverage combine coverage xml # Delete the symlink going from ./lib/spack/docs/_spack_root back to @@ -239,7 +256,7 @@ jobs: rm lib/spack/docs/_spack_root else echo "ONLY PACKAGE RECIPES CHANGED [skipping coverage]" - $(which spack) unit-test -x -m "not maybeslow" -k "test_all_virtual_packages_have_default_providers" + $(which spack) unit-test "${common_args[@]}" -m "not maybeslow" -k "test_all_virtual_packages_have_default_providers" fi - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 if: ${{ inputs.with_coverage == 'true' }} diff --git a/.github/workflows/valid-style.yml b/.github/workflows/valid-style.yml index 73c8dc76f15..2519fd77a0b 100644 --- a/.github/workflows/valid-style.yml +++ b/.github/workflows/valid-style.yml @@ -8,7 +8,7 @@ on: type: string concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_number }} + group: style-${{github.ref}}-${{github.event.pull_request.number || github.run_number}} cancel-in-progress: true @@ -53,30 +53,8 @@ jobs: - name: Run style tests run: | share/spack/qa/run-style-tests - # Run audits on all the packages in the built-in repository - package-audits: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # @v2 - - uses: actions/setup-python@b55428b1882923874294fa556849718a1d7f2ca5 # @v2 - with: - python-version: '3.10' - - name: Install Python packages - run: | - pip install --upgrade pip six setuptools pytest codecov coverage[toml]==6.2 - - name: Package audits (with coverage) - if: ${{ inputs.with_coverage == 'true' }} - run: | - . share/spack/setup-env.sh - coverage run $(which spack) audit packages - coverage combine - coverage xml - - name: Package audits (without coverage) - if: ${{ inputs.with_coverage == 'false' }} - run: | - . share/spack/setup-env.sh - $(which spack) audit packages - - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 - if: ${{ inputs.with_coverage == 'true' }} - with: - flags: unittests,linux,audits + audit: + uses: ./.github/workflows/audit.yaml + with: + with_coverage: ${{ inputs.with_coverage }} + python_version: '3.10' diff --git a/.github/workflows/windows_python.yml b/.github/workflows/windows_python.yml index 5bd009df445..82e48370aca 100644 --- a/.github/workflows/windows_python.yml +++ b/.github/workflows/windows_python.yml @@ -4,7 +4,7 @@ on: workflow_call: concurrency: - group: windows-${{ github.workflow }}-${{ github.event.pull_request.number || github.run_number }} + group: windows-${{github.ref}}-${{github.event.pull_request.number || github.run_number}} cancel-in-progress: true defaults: diff --git a/bin/spack-tmpconfig b/bin/spack-tmpconfig index b9cca15cc0f..a3d053d3406 100755 --- a/bin/spack-tmpconfig +++ b/bin/spack-tmpconfig @@ -7,7 +7,6 @@ export TMPDIR="${XDG_RUNTIME_DIR}" export TMP_DIR="$(mktemp -d -t spack-test-XXXXX)" clean_up() { [[ -n "$TMPCONFIG_DEBUG" ]] && printf "cleaning up: $TMP_DIR\n" - [[ -n "$TMPCONFIG_DEBUG" ]] && tree "$TMP_DIR" rm -rf "$TMP_DIR" } trap clean_up EXIT diff --git a/lib/spack/llnl/util/tty/pty.py b/lib/spack/llnl/util/tty/pty.py index 8d7213a5335..df743a60551 100644 --- a/lib/spack/llnl/util/tty/pty.py +++ b/lib/spack/llnl/util/tty/pty.py @@ -228,8 +228,8 @@ def __init__(self, controller_function, minion_function): self.minion_function = minion_function # these can be optionally set to change defaults - self.controller_timeout = 1 - self.sleep_time = 0 + self.controller_timeout = 3 + self.sleep_time = 0.1 def start(self, **kwargs): """Start the controller and minion processes. diff --git a/lib/spack/spack/cmd/python.py b/lib/spack/spack/cmd/python.py index 028184b8177..5df8b30ddea 100644 --- a/lib/spack/spack/cmd/python.py +++ b/lib/spack/spack/cmd/python.py @@ -30,6 +30,12 @@ def setup_parser(subparser): help="print the Python version number and exit", ) subparser.add_argument("-c", dest="python_command", help="command to execute") + subparser.add_argument( + "-u", + dest="unbuffered", + action="store_true", + help="for compatibility with xdist, do not use without adding -u to the interpreter", + ) subparser.add_argument( "-i", dest="python_interpreter", diff --git a/lib/spack/spack/main.py b/lib/spack/spack/main.py index f69b1e0088c..78a0d475190 100644 --- a/lib/spack/spack/main.py +++ b/lib/spack/spack/main.py @@ -18,6 +18,7 @@ import pstats import re import signal +import subprocess as sp import sys import traceback import warnings @@ -623,15 +624,19 @@ class SpackCommand(object): their output. """ - def __init__(self, command_name): + def __init__(self, command_name, subprocess=False): """Create a new SpackCommand that invokes ``command_name`` when called. Args: command_name (str): name of the command to invoke + subprocess (bool): whether to fork a subprocess or not. Currently not supported on + Windows, where it is always False. """ self.parser = make_argument_parser() self.command = self.parser.add_command(command_name) self.command_name = command_name + # TODO: figure out how to support this on windows + self.subprocess = subprocess if sys.platform != "win32" else False def __call__(self, *argv, **kwargs): """Invoke this SpackCommand. @@ -656,25 +661,36 @@ def __call__(self, *argv, **kwargs): self.error = None prepend = kwargs["global_args"] if "global_args" in kwargs else [] - - args, unknown = self.parser.parse_known_args(prepend + [self.command_name] + list(argv)) - fail_on_error = kwargs.get("fail_on_error", True) - out = StringIO() - try: - with log_output(out): - self.returncode = _invoke_command(self.command, self.parser, args, unknown) + if self.subprocess: + p = sp.Popen( + [spack.paths.spack_script, self.command_name] + prepend + list(argv), + stdout=sp.PIPE, + stderr=sp.STDOUT, + ) + out, self.returncode = p.communicate() + out = out.decode() + else: + args, unknown = self.parser.parse_known_args( + prepend + [self.command_name] + list(argv) + ) - except SystemExit as e: - self.returncode = e.code + out = StringIO() + try: + with log_output(out): + self.returncode = _invoke_command(self.command, self.parser, args, unknown) - except BaseException as e: - tty.debug(e) - self.error = e - if fail_on_error: - self._log_command_output(out) - raise + except SystemExit as e: + self.returncode = e.code + + except BaseException as e: + tty.debug(e) + self.error = e + if fail_on_error: + self._log_command_output(out) + raise + out = out.getvalue() if fail_on_error and self.returncode not in (None, 0): self._log_command_output(out) @@ -683,7 +699,7 @@ def __call__(self, *argv, **kwargs): % (self.returncode, self.command_name, ", ".join("'%s'" % a for a in argv)) ) - return out.getvalue() + return out def _log_command_output(self, out): if tty.is_verbose(): diff --git a/lib/spack/spack/test/ci.py b/lib/spack/spack/test/ci.py index f42518f7fbd..2d8e65e8a5c 100644 --- a/lib/spack/spack/test/ci.py +++ b/lib/spack/spack/test/ci.py @@ -484,6 +484,7 @@ def test_get_spec_filter_list(mutable_mock_env_path, config, mutable_mock_repo): assert affected_pkg_names == expected_affected_pkg_names +@pytest.mark.maybeslow @pytest.mark.regression("29947") def test_affected_specs_on_first_concretization(mutable_mock_env_path, config): e = ev.create("first_concretization") diff --git a/lib/spack/spack/test/cmd/checksum.py b/lib/spack/spack/test/cmd/checksum.py index b0fffbea083..a84b0eb8b75 100644 --- a/lib/spack/spack/test/cmd/checksum.py +++ b/lib/spack/spack/test/cmd/checksum.py @@ -50,12 +50,14 @@ def test_checksum(arguments, expected, mock_packages, mock_stage): @pytest.mark.skipif(sys.platform == "win32", reason="Not supported on Windows (yet)") def test_checksum_interactive(mock_packages, mock_fetch, mock_stage, monkeypatch): + # TODO: mock_fetch doesn't actually work with stage, working around with ignoring + # fail_on_error for now def _get_number(*args, **kwargs): return 1 monkeypatch.setattr(tty, "get_number", _get_number) - output = spack_checksum("preferred-test") + output = spack_checksum("preferred-test", fail_on_error=False) assert "version of preferred-test" in output assert "version(" in output diff --git a/lib/spack/spack/test/cmd/ci.py b/lib/spack/spack/test/cmd/ci.py index 0ac352c1dfb..e7e7569fe94 100644 --- a/lib/spack/spack/test/cmd/ci.py +++ b/lib/spack/spack/test/cmd/ci.py @@ -2192,10 +2192,8 @@ def fake_download_and_extract_artifacts(url, work_dir): ) def test_ci_help(subcmd, capsys): """Make sure `spack ci` --help describes the (sub)command help.""" - with pytest.raises(SystemExit): - ci_cmd(subcmd, "--help") + out = spack.main.SpackCommand("ci", subprocess=True)(subcmd, "--help") - out = str(capsys.readouterr()) usage = "usage: spack ci {0}{1}[".format(subcmd, " " if subcmd else "") assert usage in out diff --git a/lib/spack/spack/test/cmd/commands.py b/lib/spack/spack/test/cmd/commands.py index 23794a6bb03..d972f86d7f2 100644 --- a/lib/spack/spack/test/cmd/commands.py +++ b/lib/spack/spack/test/cmd/commands.py @@ -16,7 +16,7 @@ import spack.paths from spack.cmd.commands import _positional_to_subroutine -commands = spack.main.SpackCommand("commands") +commands = spack.main.SpackCommand("commands", subprocess=True) parser = spack.main.make_argument_parser() spack.main.add_all_commands(parser) @@ -104,17 +104,18 @@ def test_rst_with_input_files(tmpdir): def test_rst_with_header(tmpdir): + local_commands = spack.main.SpackCommand("commands") fake_header = "this is a header!\n\n" filename = tmpdir.join("header.txt") with filename.open("w") as f: f.write(fake_header) - out = commands("--format=rst", "--header", str(filename)) + out = local_commands("--format=rst", "--header", str(filename)) assert out.startswith(fake_header) with pytest.raises(spack.main.SpackCommandError): - commands("--format=rst", "--header", "asdfjhkf") + local_commands("--format=rst", "--header", "asdfjhkf") def test_rst_update(tmpdir): @@ -207,13 +208,14 @@ def test_update_completion_arg(tmpdir, monkeypatch): monkeypatch.setattr(spack.cmd.commands, "update_completion_args", mock_args) + local_commands = spack.main.SpackCommand("commands") # ensure things fail if --update-completion isn't specified alone with pytest.raises(spack.main.SpackCommandError): - commands("--update-completion", "-a") + local_commands("--update-completion", "-a") # ensure arg is restored assert "--update-completion" not in mock_bashfile.read() - commands("--update-completion") + local_commands("--update-completion") assert "--update-completion" in mock_bashfile.read() diff --git a/lib/spack/spack/test/cmd/env.py b/lib/spack/spack/test/cmd/env.py index ceefd3323bf..f564ca3c806 100644 --- a/lib/spack/spack/test/cmd/env.py +++ b/lib/spack/spack/test/cmd/env.py @@ -869,7 +869,7 @@ def test_env_with_included_config_var_path(packages_file): config_real_path = substitute_path_variables(config_var_path) fs.mkdirp(os.path.dirname(config_real_path)) - fs.rename(packages_file.strpath, config_real_path) + shutil.move(packages_file.strpath, config_real_path) assert os.path.exists(config_real_path) with e: diff --git a/lib/spack/spack/test/cmd/help.py b/lib/spack/spack/test/cmd/help.py index ed7f872275c..99f1ac7ed33 100644 --- a/lib/spack/spack/test/cmd/help.py +++ b/lib/spack/spack/test/cmd/help.py @@ -11,7 +11,7 @@ @pytest.mark.xfail def test_reuse_after_help(): """Test `spack help` can be called twice with the same SpackCommand.""" - help_cmd = SpackCommand("help") + help_cmd = SpackCommand("help", subprocess=True) help_cmd() # This second invocation will somehow fail because the parser no @@ -30,14 +30,14 @@ def test_reuse_after_help(): def test_help(): """Sanity check the help command to make sure it works.""" - help_cmd = SpackCommand("help") + help_cmd = SpackCommand("help", subprocess=True) out = help_cmd() assert "These are common spack commands:" in out def test_help_all(): """Test the spack help --all flag""" - help_cmd = SpackCommand("help") + help_cmd = SpackCommand("help", subprocess=True) out = help_cmd("--all") assert "Complete list of spack commands:" in out diff --git a/lib/spack/spack/test/cmd/is_git_repo.py b/lib/spack/spack/test/cmd/is_git_repo.py index e094476a2e3..27fb15cd5a1 100644 --- a/lib/spack/spack/test/cmd/is_git_repo.py +++ b/lib/spack/spack/test/cmd/is_git_repo.py @@ -10,7 +10,7 @@ import pytest -from llnl.util.filesystem import mkdirp +from llnl.util.filesystem import mkdirp, working_dir import spack from spack.util.executable import which @@ -40,28 +40,29 @@ def check_git_version(): @pytest.fixture(scope="function") -def git_tmp_worktree(tmpdir): +def git_tmp_worktree(tmpdir, mock_git_version_info): """Create new worktree in a temporary folder and monkeypatch spack.paths.prefix to point to it. """ - # TODO: This is fragile and should be high priority for - # follow up fixes. 27021 - # Path length is occasionally too long on Windows - # the following reduces the path length to acceptable levels - if sys.platform == "win32": - long_pth = str(tmpdir).split(os.path.sep) - tmp_worktree = os.path.sep.join(long_pth[:-1]) - else: - tmp_worktree = str(tmpdir) - worktree_root = os.path.sep.join([tmp_worktree, "wrktree"]) + with working_dir(mock_git_version_info[0]): + # TODO: This is fragile and should be high priority for + # follow up fixes. 27021 + # Path length is occasionally too long on Windows + # the following reduces the path length to acceptable levels + if sys.platform == "win32": + long_pth = str(tmpdir).split(os.path.sep) + tmp_worktree = os.path.sep.join(long_pth[:-1]) + else: + tmp_worktree = str(tmpdir) + worktree_root = os.path.sep.join([tmp_worktree, "wrktree"]) - mkdirp(worktree_root) + mkdirp(worktree_root) - git("worktree", "add", "--detach", worktree_root, "HEAD") + git("worktree", "add", "--detach", worktree_root, "HEAD") - yield worktree_root + yield worktree_root - git("worktree", "remove", "--force", worktree_root) + git("worktree", "remove", "--force", worktree_root) def test_is_git_repo_in_worktree(git_tmp_worktree): diff --git a/lib/spack/spack/test/cmd/module.py b/lib/spack/spack/test/cmd/module.py index 1af511b85c4..5ec99b0c642 100644 --- a/lib/spack/spack/test/cmd/module.py +++ b/lib/spack/spack/test/cmd/module.py @@ -210,7 +210,7 @@ def test_setdefault_command(mutable_database, mutable_config): for k in preferred, other_spec: assert os.path.exists(writers[k].layout.filename) assert os.path.exists(link_name) and os.path.islink(link_name) - assert os.path.realpath(link_name) == writers[other_spec].layout.filename + assert os.path.realpath(link_name) == os.path.realpath(writers[other_spec].layout.filename) # Reset the default to be the preferred spec module("lmod", "setdefault", preferred) @@ -219,4 +219,4 @@ def test_setdefault_command(mutable_database, mutable_config): for k in preferred, other_spec: assert os.path.exists(writers[k].layout.filename) assert os.path.exists(link_name) and os.path.islink(link_name) - assert os.path.realpath(link_name) == writers[preferred].layout.filename + assert os.path.realpath(link_name) == os.path.realpath(writers[preferred].layout.filename) diff --git a/lib/spack/spack/test/cmd/style.py b/lib/spack/spack/test/cmd/style.py index dec795ca996..179973af522 100644 --- a/lib/spack/spack/test/cmd/style.py +++ b/lib/spack/spack/test/cmd/style.py @@ -46,22 +46,22 @@ def has_develop_branch(): @pytest.fixture(scope="function") -def flake8_package(): +def flake8_package(tmpdir): """Style only checks files that have been modified. This fixture makes a small change to the ``flake8`` mock package, yields the filename, then undoes the change on cleanup. """ repo = spack.repo.Repo(spack.paths.mock_packages_path) filename = repo.filename_for_package_name("flake8") - tmp = filename + ".tmp" + rel_path = os.path.dirname(os.path.relpath(filename, spack.paths.prefix)) + tmp = tmpdir / rel_path / "flake8-ci-package.py" + tmp.ensure() + tmp = str(tmp) - try: - shutil.copy(filename, tmp) - package = FileFilter(filename) - package.filter("state = 'unmodified'", "state = 'modified'", string=True) - yield filename - finally: - shutil.move(tmp, filename) + shutil.copy(filename, tmp) + package = FileFilter(tmp) + package.filter("state = 'unmodified'", "state = 'modified'", string=True) + yield tmp @pytest.fixture @@ -71,20 +71,17 @@ def flake8_package_with_errors(scope="function"): filename = repo.filename_for_package_name("flake8") tmp = filename + ".tmp" - try: - shutil.copy(filename, tmp) - package = FileFilter(filename) + shutil.copy(filename, tmp) + package = FileFilter(tmp) - # this is a black error (quote style and spacing before/after operator) - package.filter('state = "unmodified"', "state = 'modified'", string=True) + # this is a black error (quote style and spacing before/after operator) + package.filter('state = "unmodified"', "state = 'modified'", string=True) - # this is an isort error (orderign) and a flake8 error (unused import) - package.filter( - "from spack.package import *", "from spack.package import *\nimport os", string=True - ) - yield filename - finally: - shutil.move(tmp, filename) + # this is an isort error (orderign) and a flake8 error (unused import) + package.filter( + "from spack.package import *", "from spack.package import *\nimport os", string=True + ) + yield tmp def test_changed_files_from_git_rev_base(tmpdir, capfd): @@ -125,7 +122,7 @@ def test_changed_no_base(tmpdir, capfd): assert "This repository does not have a 'foobar'" in err -def test_changed_files_all_files(flake8_package): +def test_changed_files_all_files(): # it's hard to guarantee "all files", so do some sanity checks. files = set( [ @@ -139,13 +136,18 @@ def test_changed_files_all_files(flake8_package): # a builtin package zlib = spack.repo.path.get_pkg_class("zlib") - assert zlib.module.__file__ in files + zlib_file = zlib.module.__file__ + if zlib_file.endswith("pyc"): + zlib_file = zlib_file[:-1] + assert zlib_file in files # a core spack file assert os.path.join(spack.paths.module_path, "spec.py") in files # a mock package - assert flake8_package in files + repo = spack.repo.Repo(spack.paths.mock_packages_path) + filename = repo.filename_for_package_name("flake8") + assert filename in files # this test assert __file__ in files diff --git a/lib/spack/spack/test/cmd_extensions.py b/lib/spack/spack/test/cmd_extensions.py index e68ac434fc1..6947725afa9 100644 --- a/lib/spack/spack/test/cmd_extensions.py +++ b/lib/spack/spack/test/cmd_extensions.py @@ -228,14 +228,17 @@ def test_missing_command(): ], ids=["no_stem", "vacuous", "leading_hyphen", "basic_good", "trailing_slash", "hyphenated"], ) -def test_extension_naming(extension_path, expected_exception, config): +def test_extension_naming(tmpdir, extension_path, expected_exception, config): """Ensure that we are correctly validating configured extension paths for conformity with the rules: the basename should match ``spack-``; may have embedded hyphens but not begin with one. """ - with spack.config.override("config:extensions", [extension_path]): - with pytest.raises(expected_exception): - spack.cmd.get_module("no-such-command") + # NOTE: if the directory is a valid extension directory name the "vacuous" test will + # fail because it resolves to current working directory + with tmpdir.as_cwd(): + with spack.config.override("config:extensions", [extension_path]): + with pytest.raises(expected_exception): + spack.cmd.get_module("no-such-command") def test_missing_command_function(extension_creator, capsys): diff --git a/lib/spack/spack/util/debug.py b/lib/spack/spack/util/debug.py index eb3b59a4fc3..bdeee2df6cd 100644 --- a/lib/spack/spack/util/debug.py +++ b/lib/spack/spack/util/debug.py @@ -10,6 +10,7 @@ """ import code +import io import os import pdb import signal @@ -53,7 +54,10 @@ class and use as a drop in for Pdb, although the syntax here is slightly differe the run of Spack.install, or any where else Spack spawns a child process. """ - _original_stdin_fd = sys.stdin.fileno() + try: + _original_stdin_fd = sys.stdin.fileno() + except io.UnsupportedOperation: + _original_stdin_fd = None _original_stdin = None def __init__(self, stdout_fd=None, stderr_fd=None): diff --git a/share/spack/qa/run-unit-tests b/share/spack/qa/run-unit-tests index 6222cbccd9d..62cca273bf0 100755 --- a/share/spack/qa/run-unit-tests +++ b/share/spack/qa/run-unit-tests @@ -54,6 +54,11 @@ elif [[ "$SPACK_TEST_SOLVER" == "original" ]]; then export PYTEST_ADDOPTS='-m "not maybeslow"' fi +# Check if xdist is available +if python -m pytest --trace-config 2>&1 | grep xdist; then + export PYTEST_ADDOPTS="$PYTEST_ADDOPTS --dist loadfile --tx '${SPACK_TEST_PARALLEL:=3}*popen//python=./bin/spack-tmpconfig python -u ./bin/spack python'" +fi + $coverage_run $(which spack) unit-test -x --verbose bash "$QA_DIR/test-env-cfg.sh" diff --git a/share/spack/spack-completion.bash b/share/spack/spack-completion.bash index bde48d8e97d..c91b888f092 100755 --- a/share/spack/spack-completion.bash +++ b/share/spack/spack-completion.bash @@ -1568,7 +1568,7 @@ _spack_pydoc() { _spack_python() { if $list_options then - SPACK_COMPREPLY="-h --help -V --version -c -i -m --path" + SPACK_COMPREPLY="-h --help -V --version -c -u -i -m --path" else SPACK_COMPREPLY="" fi From 021ff1c7daecfd27240700a23f7bdc0d46706551 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 7 Sep 2022 23:11:20 -0700 Subject: [PATCH 010/241] Skip test which fails randomly on Python 2.7 (#32569) --- lib/spack/spack/test/concretize.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/spack/spack/test/concretize.py b/lib/spack/spack/test/concretize.py index 97f01660ef9..d1b2021c391 100644 --- a/lib/spack/spack/test/concretize.py +++ b/lib/spack/spack/test/concretize.py @@ -1528,6 +1528,9 @@ def test_delete_version_and_reuse(self, mutable_database, repo_with_changing_rec assert root.dag_hash() == new_root.dag_hash() @pytest.mark.regression("29201") + @pytest.mark.skipif( + sys.version_info[:2] == (2, 7), reason="Fixture fails intermittently with Python 2.7" + ) def test_installed_version_is_selected_only_for_reuse( self, mutable_database, repo_with_changing_recipe ): From a7fe1379419e2a62bb59d7879d47bc727027d1ee Mon Sep 17 00:00:00 2001 From: Howard Pritchard Date: Thu, 8 Sep 2022 00:24:21 -0600 Subject: [PATCH 011/241] ucx: add 1.13.1 release (#32556) Signed-off-by: Howard Pritchard Signed-off-by: Howard Pritchard --- var/spack/repos/builtin/packages/ucx/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/ucx/package.py b/var/spack/repos/builtin/packages/ucx/package.py index a3a3fce8667..a9512ec7c31 100644 --- a/var/spack/repos/builtin/packages/ucx/package.py +++ b/var/spack/repos/builtin/packages/ucx/package.py @@ -18,6 +18,7 @@ class Ucx(AutotoolsPackage, CudaPackage): maintainers = ["hppritcha"] # Current + version("1.13.1", sha256="efc37829b68e131d2acc82a3fd4334bfd611156a756837ffeb650ab9a9dd3828") version("1.13.0", sha256="8a3881f21fe2788113789f5bae1c8174e931f7542de0a934322a96ef354e5e3d") version("1.12.1", sha256="40b447c8e7da94a253f2828001b2d76021eb4ad39647107d433d62d61e18ae8e") version("1.12.0", sha256="93e994de2d1a4df32381ea92ba4c98a249010d1720eb0f6110dc72c9a7d25db6") From 63d079cce9c532e81b85877f3f0cb3a05dd0a85b Mon Sep 17 00:00:00 2001 From: Jen Herting Date: Thu, 8 Sep 2022 11:24:42 -0400 Subject: [PATCH 012/241] New package: py-pytesseract (#30765) * Versions added for each dep, but I think I'll need to remove them * py-tesseract now builds and will import in python * Fixed flake style error as raised by pipeline * changed to proper python dependency * added pil as a dependency * Fixed flake style errors * [py-pytesseract] py-pillow and py-wheel are redundant * [py-pytesseract] - fixed spelling - removed unneeded dependency * [py-pytesseract] update import Co-authored-by: Viv Eric Hafener --- .../packages/py-pytesseract/package.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-pytesseract/package.py diff --git a/var/spack/repos/builtin/packages/py-pytesseract/package.py b/var/spack/repos/builtin/packages/py-pytesseract/package.py new file mode 100644 index 00000000000..dca84a1ece3 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pytesseract/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyPytesseract(PythonPackage): + """Python-tesseract is an Optical Character Recognition (OCR) Tool for python.""" + + homepage = "https://github.com/madmaze/pytesseract" + pypi = "pytesseract/pytesseract-0.3.8.tar.gz" + + version("0.3.8", sha256="6148a01e4375760862e8f56ea718e22b5d13b281454df46ea8dac9807793fc5a") + + depends_on("python@3.6:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("pil", type=("build", "run")) From 2cfac3389a9764fb37886fc3ae0ab97a5c0a51c7 Mon Sep 17 00:00:00 2001 From: Michael Kuhn Date: Thu, 8 Sep 2022 18:33:49 +0200 Subject: [PATCH 013/241] meson: add v0.63.2 (#32575) --- var/spack/repos/builtin/packages/meson/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/meson/package.py b/var/spack/repos/builtin/packages/meson/package.py index efb38ef47e5..32b7bf17c8c 100644 --- a/var/spack/repos/builtin/packages/meson/package.py +++ b/var/spack/repos/builtin/packages/meson/package.py @@ -18,6 +18,7 @@ class Meson(PythonPackage): maintainers = ["eli-schwartz", "michaelkuhn"] + version("0.63.2", sha256="023a3f7c74e68991154c3205a6975705861eedbf8130e013d15faa1df1af216e") version("0.63.1", sha256="f355829f0e8c714423f03a06604c04c216d4cbe3586f3154cb2181076b19207a") version("0.62.2", sha256="97108f4d9bb16bc758c44749bd25ec7d42c6a762961efbed8b7589a2a3551ea6") version("0.62.1", sha256="9fb52e66dbc613479a5f70e46cc2e8faf5aa65e09313f2c71fa63b8afd018107") From dc1734f0a6e66752cadb214ae6fc1ce7c258e5fa Mon Sep 17 00:00:00 2001 From: Michael Kuhn Date: Thu, 8 Sep 2022 19:41:24 +0200 Subject: [PATCH 014/241] py-cython: add 0.29.32 (#32574) --- var/spack/repos/builtin/packages/py-cython/package.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-cython/package.py b/var/spack/repos/builtin/packages/py-cython/package.py index 1f103d3d0b8..0d170a2fec1 100644 --- a/var/spack/repos/builtin/packages/py-cython/package.py +++ b/var/spack/repos/builtin/packages/py-cython/package.py @@ -14,10 +14,11 @@ class PyCython(PythonPackage): version("3.0.0a9", sha256="23931c45877432097cef9de2db2dc66322cbc4fc3ebbb42c476bb2c768cecff0") version( - "0.29.30", - sha256="2235b62da8fe6fa8b99422c8e583f2fb95e143867d337b5c75e4b9a1a865f9e3", + "0.29.32", + sha256="8733cf4758b79304f2a4e39ebfac5e92341bce47bcceb26c1254398b2f8c1af7", preferred=True, ) + version("0.29.30", sha256="2235b62da8fe6fa8b99422c8e583f2fb95e143867d337b5c75e4b9a1a865f9e3") version("0.29.24", sha256="cdf04d07c3600860e8c2ebaad4e8f52ac3feb212453c1764a49ac08c827e8443") version("0.29.23", sha256="6a0d31452f0245daacb14c979c77e093eb1a546c760816b5eed0047686baad8e") version("0.29.22", sha256="df6b83c7a6d1d967ea89a2903e4a931377634a297459652e4551734c48195406") From 67534516c73d8ac63ec7e2b2c3459c6150171f41 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Thu, 8 Sep 2022 19:58:53 +0200 Subject: [PATCH 015/241] ci: avoid running coverage on package only PRs (#32573) * ci: remove !docs from "core" filters Written like it is now it causes package only PRs to run with coverage. * Try to skip job under condition, see if the workflow proceed * Try to cancel a running CI job * Simplify linux unit-tests, skip windows unit-tests on package PRs * Reduce the inputs to unit-tests workflow * Move control logic to main workflow, remove inputs * Revert "Move control logic to main workflow, remove inputs" This reverts commit 0c46fece4c49eb7a37585ec3ba651a31d7f958af. * Do not compute "with_coverage" since it's always == to "core" * Remove workflow dispatch from unit tests * Revert "Revert "Move control logic to main workflow, remove inputs"" This reverts commit dd4e4a4e61a825901e736348fd044d37e88c90b5. * Try to skip all from the main workflow * Add back bootstrap to needed checks for "all" * Restore the correct logic for conditionals --- .github/workflows/ci.yaml | 23 +----------- .github/workflows/unit_tests.yaml | 62 +++++-------------------------- share/spack/qa/run-unit-tests | 5 +-- 3 files changed, 12 insertions(+), 78 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f4943789d6a..3e741296561 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -19,12 +19,12 @@ jobs: needs: [ changes ] uses: ./.github/workflows/valid-style.yml with: - with_coverage: ${{ needs.changes.outputs.with_coverage }} + with_coverage: ${{ needs.changes.outputs.core }} audit-ancient-python: uses: ./.github/workflows/audit.yaml needs: [ changes ] with: - with_coverage: ${{ needs.changes.outputs.with_coverage }} + with_coverage: ${{ needs.changes.outputs.core }} python_version: 2.7 all-prechecks: needs: [ prechecks ] @@ -40,7 +40,6 @@ jobs: bootstrap: ${{ steps.filter.outputs.bootstrap }} core: ${{ steps.filter.outputs.core }} packages: ${{ steps.filter.outputs.packages }} - with_coverage: ${{ steps.coverage.outputs.with_coverage }} steps: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # @v2 if: ${{ github.event_name == 'push' }} @@ -65,7 +64,6 @@ jobs: - 'share/spack/**' - '.github/workflows/bootstrap.yml' core: - - '!lib/spack/docs/**' - './!(var/**)/**' packages: - 'var/**' @@ -75,18 +73,6 @@ jobs: # job outputs: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idoutputs # setting environment variables from earlier steps: https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable # - - id: coverage - # Run the subsequent jobs with coverage if core has been modified, - # regardless of whether this is a pull request or a push to a branch - run: | - echo Core changes: ${{ steps.filter.outputs.core }} - echo Event name: ${{ github.event_name }} - if [ "${{ steps.filter.outputs.core }}" == "true" ] - then - echo "::set-output name=with_coverage::true" - else - echo "::set-output name=with_coverage::false" - fi bootstrap: if: ${{ github.repository == 'spack/spack' && needs.changes.outputs.bootstrap == 'true' }} needs: [ prechecks, changes ] @@ -95,10 +81,6 @@ jobs: if: ${{ github.repository == 'spack/spack' && needs.changes.outputs.core == 'true' }} needs: [ prechecks, changes ] uses: ./.github/workflows/unit_tests.yaml - with: - core: ${{ needs.changes.outputs.core }} - packages: ${{ needs.changes.outputs.packages }} - with_coverage: ${{ needs.changes.outputs.with_coverage }} windows: if: ${{ github.repository == 'spack/spack' && needs.changes.outputs.core == 'true' }} needs: [ prechecks ] @@ -109,4 +91,3 @@ jobs: steps: - name: Success run: "true" - diff --git a/.github/workflows/unit_tests.yaml b/.github/workflows/unit_tests.yaml index 6b1411c61bd..5de7d86c56f 100644 --- a/.github/workflows/unit_tests.yaml +++ b/.github/workflows/unit_tests.yaml @@ -3,16 +3,6 @@ name: unit tests on: workflow_dispatch: workflow_call: - inputs: - core: - required: true - type: string - packages: - required: true - type: string - with_coverage: - required: true - type: string concurrency: group: unit_tests-${{github.ref}}-${{github.event.pull_request.number || github.run_number}} @@ -31,10 +21,10 @@ jobs: include: - python-version: 2.7 concretizer: original - on_develop: false + on_develop: ${{ github.ref == 'refs/heads/develop' }} - python-version: '3.10' concretizer: original - on_develop: false + on_develop: ${{ github.ref == 'refs/heads/develop' }} exclude: - python-version: '3.7' concretizer: 'clingo' @@ -86,7 +76,6 @@ jobs: spack bootstrap untrust spack-install spack -v solve zlib - name: Run unit tests (full suite with coverage) - if: ${{ inputs.with_coverage == 'true' }} env: SPACK_PYTHON: python COVERAGE: true @@ -95,16 +84,7 @@ jobs: share/spack/qa/run-unit-tests coverage combine coverage xml - - name: Run unit tests (reduced suite without coverage) - if: ${{ inputs.with_coverage == 'false' }} - env: - SPACK_PYTHON: python - ONLY_PACKAGES: true - SPACK_TEST_SOLVER: ${{ matrix.concretizer }} - run: | - share/spack/qa/run-unit-tests - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 - if: ${{ inputs.with_coverage == 'true' }} with: flags: unittests,linux,${{ matrix.concretizer }} # Test shell integration @@ -130,18 +110,12 @@ jobs: # Need this for the git tests to succeed. git --version . .github/workflows/setup_git.sh - - name: Run shell tests (without coverage) - if: ${{ inputs.with_coverage == 'false' }} - run: | - share/spack/qa/run-shell-tests - - name: Run shell tests (with coverage) - if: ${{ inputs.with_coverage == 'true' }} + - name: Run shell tests env: COVERAGE: true run: | share/spack/qa/run-shell-tests - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 - if: ${{ inputs.with_coverage == 'true' }} with: flags: shelltests,linux @@ -149,7 +123,6 @@ jobs: # only on PRs modifying core Spack rhel8-platform-python: runs-on: ubuntu-latest - if: ${{ inputs.with_coverage == 'true' }} container: registry.access.redhat.com/ubi8/ubi steps: - name: Install dependencies @@ -197,7 +170,6 @@ jobs: git --version . .github/workflows/setup_git.sh - name: Run unit tests (full suite with coverage) - if: ${{ inputs.with_coverage == 'true' }} env: COVERAGE: true SPACK_TEST_SOLVER: clingo @@ -205,15 +177,7 @@ jobs: share/spack/qa/run-unit-tests coverage combine coverage xml - - name: Run unit tests (reduced suite without coverage) - if: ${{ inputs.with_coverage == 'false' }} - env: - ONLY_PACKAGES: true - SPACK_TEST_SOLVER: clingo - run: | - share/spack/qa/run-unit-tests - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 - if: ${{ inputs.with_coverage == 'true' }} with: flags: unittests,linux,clingo # Run unit tests on MacOS @@ -246,21 +210,13 @@ jobs: $(which spack) bootstrap untrust spack-install $(which spack) solve zlib common_args=(--dist loadfile --tx '4*popen//python=./bin/spack-tmpconfig python -u ./bin/spack python' -x) - if [ "${{ inputs.with_coverage }}" == "true" ] - then - coverage run $(which spack) unit-test "${common_args[@]}" - coverage combine - coverage xml - # Delete the symlink going from ./lib/spack/docs/_spack_root back to - # the initial directory, since it causes ELOOP errors with codecov/actions@2 - rm lib/spack/docs/_spack_root - else - echo "ONLY PACKAGE RECIPES CHANGED [skipping coverage]" - $(which spack) unit-test "${common_args[@]}" -m "not maybeslow" -k "test_all_virtual_packages_have_default_providers" - fi + coverage run $(which spack) unit-test "${common_args[@]}" + coverage combine + coverage xml + # Delete the symlink going from ./lib/spack/docs/_spack_root back to + # the initial directory, since it causes ELOOP errors with codecov/actions@2 + rm lib/spack/docs/_spack_root - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 - if: ${{ inputs.with_coverage == 'true' }} with: files: ./coverage.xml flags: unittests,macos - diff --git a/share/spack/qa/run-unit-tests b/share/spack/qa/run-unit-tests index 62cca273bf0..da8334f76b2 100755 --- a/share/spack/qa/run-unit-tests +++ b/share/spack/qa/run-unit-tests @@ -46,10 +46,7 @@ $coverage_run $(which spack) python -c "import spack.pkg.builtin.mpileaks; repr( #----------------------------------------------------------- # Run unit tests with code coverage #----------------------------------------------------------- -if [[ "$ONLY_PACKAGES" == "true" ]]; then - echo "ONLY PACKAGE RECIPES CHANGED [running only package sanity]" - export PYTEST_ADDOPTS='-k "test_all_virtual_packages_have_default_providers" -m "not maybeslow"' -elif [[ "$SPACK_TEST_SOLVER" == "original" ]]; then +if [[ "$SPACK_TEST_SOLVER" == "original" ]]; then echo "ORIGINAL CONCRETIZER [skipping slow unit tests]" export PYTEST_ADDOPTS='-m "not maybeslow"' fi From e3f87035b64ab37a9f878bc6018edb25d8e5b1e6 Mon Sep 17 00:00:00 2001 From: "Mark W. Krentel" Date: Thu, 8 Sep 2022 14:45:57 -0500 Subject: [PATCH 016/241] libmonitor: add version 2022.09.02 (#32525) --- var/spack/repos/builtin/packages/libmonitor/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/libmonitor/package.py b/var/spack/repos/builtin/packages/libmonitor/package.py index a4aa307119d..42f657e9be8 100644 --- a/var/spack/repos/builtin/packages/libmonitor/package.py +++ b/var/spack/repos/builtin/packages/libmonitor/package.py @@ -16,6 +16,7 @@ class Libmonitor(AutotoolsPackage): maintainers = ["mwkrentel"] version("master", branch="master") + version("2022.09.02", commit="4ae16dab0ba5fbda0ffe28df523613ea22cb85ae") version("2021.11.08", commit="22aa52c621534f12d401fa37f6963bfca7441e20") version("2021.04.27", commit="a2d1b6be23410ef1ad2c9d0006672453803243c2") version("2020.10.15", commit="36e5cb7ebeadfff01476b79ff04f6ec772ba831d") From 02151ac649bcccf0661ef40a1516c9cf46543855 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Thu, 8 Sep 2022 16:23:04 -0700 Subject: [PATCH 017/241] CMakePackage: allow custom CMAKE_PREFIX_PATH entries (#32547) * define `cmake_prefix_paths` property for packages add to CMake arguments via CMakePackage Co-authored-by: Robert Underwood --- lib/spack/spack/build_environment.py | 7 +++++-- lib/spack/spack/package_base.py | 4 ++++ lib/spack/spack/test/packages.py | 8 ++++++++ .../define-cmake-prefix-paths/package.py | 20 +++++++++++++++++++ .../package.py | 17 ++++++++++++++++ .../repos/builtin/packages/cuda/package.py | 8 ++++++++ 6 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 var/spack/repos/builtin.mock/packages/define-cmake-prefix-paths/package.py create mode 100644 var/spack/repos/builtin.mock/packages/depends-on-define-cmake-prefix-paths/package.py diff --git a/lib/spack/spack/build_environment.py b/lib/spack/spack/build_environment.py index c292fb89bbd..c1aee2c749f 100644 --- a/lib/spack/spack/build_environment.py +++ b/lib/spack/spack/build_environment.py @@ -1030,8 +1030,11 @@ def get_cmake_prefix_path(pkg): spack_built.insert(0, dspec) ordered_build_link_deps = spack_built + externals - build_link_prefixes = filter_system_paths(x.prefix for x in ordered_build_link_deps) - return build_link_prefixes + cmake_prefix_path_entries = [] + for spec in ordered_build_link_deps: + cmake_prefix_path_entries.extend(spec.package.cmake_prefix_paths) + + return filter_system_paths(cmake_prefix_path_entries) def _setup_pkg_and_run( diff --git a/lib/spack/spack/package_base.py b/lib/spack/spack/package_base.py index 401303e949f..e8f7ccd92af 100644 --- a/lib/spack/spack/package_base.py +++ b/lib/spack/spack/package_base.py @@ -1740,6 +1740,10 @@ def content_hash(self, content=None): return b32_hash + @property + def cmake_prefix_paths(self): + return [self.prefix] + def _has_make_target(self, target): """Checks to see if 'target' is a valid target in a Makefile. diff --git a/lib/spack/spack/test/packages.py b/lib/spack/spack/test/packages.py index c91d749b0a5..07161ad83fc 100644 --- a/lib/spack/spack/test/packages.py +++ b/lib/spack/spack/test/packages.py @@ -133,6 +133,14 @@ def test_url_for_version_with_no_urls(mock_packages, config): pkg_cls(spec).url_for_version("1.1") +def test_custom_cmake_prefix_path(mock_packages, config): + spec = Spec("depends-on-define-cmake-prefix-paths").concretized() + + assert spack.build_environment.get_cmake_prefix_path(spec.package) == [ + spec["define-cmake-prefix-paths"].prefix.test + ] + + def test_url_for_version_with_only_overrides(mock_packages, config): s = Spec("url-only-override").concretized() diff --git a/var/spack/repos/builtin.mock/packages/define-cmake-prefix-paths/package.py b/var/spack/repos/builtin.mock/packages/define-cmake-prefix-paths/package.py new file mode 100644 index 00000000000..07466a21a3f --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/define-cmake-prefix-paths/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class DefineCmakePrefixPaths(Package): + """Package that defines cmake_prefix_paths""" + + homepage = "http://www.example.com" + url = "http://www.example.com/definecmakeprefixpaths-1.0.tar.gz" + + version("1.0", "0123456789abcdef0123456789abcdef") + + @property + def cmake_prefix_paths(self): + paths = [self.prefix.test] + return paths diff --git a/var/spack/repos/builtin.mock/packages/depends-on-define-cmake-prefix-paths/package.py b/var/spack/repos/builtin.mock/packages/depends-on-define-cmake-prefix-paths/package.py new file mode 100644 index 00000000000..724e61f6174 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/depends-on-define-cmake-prefix-paths/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class DependsOnDefineCmakePrefixPaths(Package): + """Package that defines cmake_prefix_paths""" + + homepage = "http://www.example.com" + url = "http://www.example.com/dependsonefinecmakeprefixpaths-1.0.tar.gz" + + version("1.0", "0123456789abcdef0123456789abcdef") + + depends_on("define-cmake-prefix-paths") diff --git a/var/spack/repos/builtin/packages/cuda/package.py b/var/spack/repos/builtin/packages/cuda/package.py index fd76aabebd7..4f39731cee6 100644 --- a/var/spack/repos/builtin/packages/cuda/package.py +++ b/var/spack/repos/builtin/packages/cuda/package.py @@ -465,6 +465,14 @@ def setup_build_environment(self, env): def setup_dependent_build_environment(self, env, dependent_spec): env.set("CUDAHOSTCXX", dependent_spec.package.compiler.cxx) + @property + def cmake_prefix_paths(self): + cmake_prefix_paths = [self.prefix] + if self.spec.satisfies("target=x86_64:"): + cub_path = self.prefix.targets + "/x86_64-linux/lib/cmake" + cmake_prefix_paths.append(cub_path) + return cmake_prefix_paths + def setup_run_environment(self, env): env.set("CUDA_HOME", self.prefix) From f0c1c6f8cc87cecfee44d611437393a7d093f94d Mon Sep 17 00:00:00 2001 From: Brian Van Essen Date: Thu, 8 Sep 2022 23:05:52 -0400 Subject: [PATCH 018/241] Match protobuf to py-protobuf version (#32491) * Fixed the py-protobuf recipe so that when cpp support is require so that it uses the same major and minor version range for the protobuf package. * Fixed the range bound for the 3.x py-protobuf packages. Added mappings for 4.x py-protobuf packages to 3.x protobuf packages. Removed a hash for v21.1 protobuf and replaced with v3.21.1 to keep a standard versioning convention. Note that while Google has started releasing both 3.x.y and a tag that dropped the leading 3. so it is just x.y. This provides the appearance of a new major version, but really is just a new minor version. These packages still report versions as 3.x.y, so switching to versions and hashes with that convention. * Simplified constraints based on reviewer comments. * Fixed flake8 errors * Update var/spack/repos/builtin/packages/py-protobuf/package.py * Fixed constraints on v2. versions and addressed Flake8 comments. * Fixed flake8 * Fixed range dependencies for version 2.x * Update var/spack/repos/builtin/packages/py-protobuf/package.py Co-authored-by: Adam J. Stewart * Fixed version ranges to skip unknown versions. * Fixed the dependencies on protobuf to solve weird build issues. Co-authored-by: Adam J. Stewart --- .../builtin/packages/protobuf/package.py | 6 ++++- .../builtin/packages/py-protobuf/package.py | 22 +++++++++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/var/spack/repos/builtin/packages/protobuf/package.py b/var/spack/repos/builtin/packages/protobuf/package.py index 0b0f4d83366..c0fbeeaa8c3 100644 --- a/var/spack/repos/builtin/packages/protobuf/package.py +++ b/var/spack/repos/builtin/packages/protobuf/package.py @@ -15,7 +15,11 @@ class Protobuf(Package): homepage = "https://developers.google.com/protocol-buffers" url = "https://github.com/protocolbuffers/protobuf/archive/v3.18.0.tar.gz" - version("21.1", sha256="f1a83673cbcaff6346a8fba87a9c02c0f943a4a696b6c7d1b71586d97609db12") + version("3.21.5", sha256="d7d204a59fd0d2d2387bd362c2155289d5060f32122c4d1d922041b61191d522") + version("3.21.4", sha256="85d42d4485f36f8cec3e475a3b9e841d7d78523cd775de3a86dba77081f4ca25") + version("3.21.3", sha256="c29d8b4b79389463c546f98b15aa4391d4ed7ec459340c47bffe15db63eb9126") + version("3.21.2", sha256="66e1156ac78290db81335c79d1fc5a54123ebb62a43eb2e5b42a44ca23087517") + version("3.21.1", sha256="a295dd3b9551d3e2749a9969583dea110c6cdcc39d02088f7c7bb1100077e081") version("3.20.1", sha256="8b28fdd45bab62d15db232ec404248901842e5340299a57765e48abe8a80d930") version("3.20.0", sha256="b07772d38ab07e55eca4d50f4b53da2d998bb221575c60a4f81100242d4b4889") version("3.19.4", sha256="3bd7828aa5af4b13b99c191e8b1e884ebfa9ad371b0ce264605d347f135d2568") diff --git a/var/spack/repos/builtin/packages/py-protobuf/package.py b/var/spack/repos/builtin/packages/py-protobuf/package.py index dd953af7d03..28b99194be2 100644 --- a/var/spack/repos/builtin/packages/py-protobuf/package.py +++ b/var/spack/repos/builtin/packages/py-protobuf/package.py @@ -19,7 +19,12 @@ class PyProtobuf(PythonPackage): variant("cpp", default=False, description="Enable the cpp implementation") - version("3.20.1", sha256="adc31566d027f45efe3f44eeb5b1f329da43891634d61c75a5944e9be6dd42c9") + version("4.21.5", sha256="eb1106e87e095628e96884a877a51cdb90087106ee693925ec0a300468a9be3a") + version( + "3.20.1", + sha256="adc31566d027f45efe3f44eeb5b1f329da43891634d61c75a5944e9be6dd42c9", + preferred=True, + ) version("3.20.0", sha256="71b2c3d1cd26ed1ec7c8196834143258b2ad7f444efff26fdc366c6f5e752702") version("3.19.4", sha256="9df0c10adf3e83015ced42a9a7bd64e13d06c4cf45c340d2c63020ea04499d0a") version("3.19.3", sha256="d975a6314fbf5c524d4981e24294739216b5fb81ef3c14b86fb4b045d6690907") @@ -71,7 +76,20 @@ class PyProtobuf(PythonPackage): depends_on("py-six@1.9:", when="@3:", type=("build", "run")) depends_on("py-ordereddict", when="@3: ^python@:2", type=("build", "run")) depends_on("py-unittest2", when="@3: ^python@:2", type=("build", "run")) - depends_on("protobuf", when="+cpp") + + # Setup dependencies for protobuf to use the same minor version as py-protobuf + # Handle mapping the 4.x release to the protobuf 3.x releases + for ver in list(range(21, 22)): + depends_on("protobuf@3." + str(ver), when="+cpp @4." + str(ver)) + # Handle the 3.x series releases + for ver in list(range(1, 8)) + list(range(9, 21)): + depends_on("protobuf@3." + str(ver), when="+cpp @3." + str(ver)) + # Handle the 2.x series releases + for ver in list(range(3, 7)): + if ver == 5: + depends_on("protobuf@2." + str(ver), when="+cpp @2." + str(ver)) + else: + conflicts("+cpp", when="@2." + str(ver)) @property def build_directory(self): From 0d18c32bca8398e2daa736a940154caa235cbacc Mon Sep 17 00:00:00 2001 From: eugeneswalker <38933153+eugeneswalker@users.noreply.github.com> Date: Thu, 8 Sep 2022 21:00:58 -0700 Subject: [PATCH 019/241] e4s ci: restore power builds (#32296) --- .../gitlab/cloud_pipelines/.gitlab-ci.yml | 70 +-- .../stacks/e4s-on-power/spack.yaml | 259 ----------- .../stacks/e4s-power/spack.yaml | 424 ++++++++++++++++++ 3 files changed, 463 insertions(+), 290 deletions(-) delete mode 100644 share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml create mode 100644 share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml diff --git a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml index a6174c20b38..218c416d200 100644 --- a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml +++ b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml @@ -59,18 +59,28 @@ default: extends: [ ".generate" ] tags: ["spack", "aws", "public", "medium", "aarch64"] +.generate-ppc64le: + extends: [ ".generate" ] + tags: ["spack", "uo", "public", "medium", "ppc64le"] + .pr-generate: extends: [ ".pr", ".generate" ] .pr-generate-aarch64: extends: [ ".pr", ".generate-aarch64" ] +.pr-generate-ppc64le: + extends: [ ".pr", ".generate-ppc64le" ] + .protected-generate: extends: [ ".protected", ".generate" ] .protected-generate-aarch64: extends: [ ".protected", ".generate-aarch64" ] +.protected-generate-ppc64le: + extends: [ ".protected", ".generate-ppc64le" ] + .build: stage: build @@ -335,41 +345,39 @@ e4s-oneapi-protected-build: ######################################## # E4S on Power ######################################## -# .power-e4s-generate-tags-and-image: -# image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu20.04-runner-ppc64le:2021-07-01", "entrypoint": [""] } -# tags: ["spack", "public", "medium", "ppc64le"] +.e4s-power: + variables: + SPACK_CI_STACK_NAME: e4s-power -# .e4s-on-power: -# variables: -# SPACK_CI_STACK_NAME: e4s-on-power +e4s-power-pr-generate: + extends: [ ".e4s-power", ".pr-generate-ppc64le"] + image: ecpe4s/ubuntu20.04-runner-ppc64le:2022-08-01 -# e4s-on-power-pr-generate: -# extends: [ ".e4s-on-power", ".pr-generate", ".power-e4s-generate-tags-and-image"] +e4s-power-protected-generate: + extends: [ ".e4s-power", ".protected-generate-ppc64le"] + image: ecpe4s/ubuntu20.04-runner-ppc64le:2022-08-01 -# e4s-on-power-protected-generate: -# extends: [ ".e4s-on-power", ".protected-generate", ".power-e4s-generate-tags-and-image"] +e4s-power-pr-build: + extends: [ ".e4s-power", ".pr-build" ] + trigger: + include: + - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml + job: e4s-power-pr-generate + strategy: depend + needs: + - artifacts: True + job: e4s-power-pr-generate -# e4s-on-power-pr-build: -# extends: [ ".e4s-on-power", ".pr-build" ] -# trigger: -# include: -# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml -# job: e4s-on-power-pr-generate -# strategy: depend -# needs: -# - artifacts: True -# job: e4s-on-power-pr-generate - -# e4s-on-power-protected-build: -# extends: [ ".e4s-on-power", ".protected-build" ] -# trigger: -# include: -# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml -# job: e4s-on-power-protected-generate -# strategy: depend -# needs: -# - artifacts: True -# job: e4s-on-power-protected-generate +e4s-power-protected-build: + extends: [ ".e4s-power", ".protected-build" ] + trigger: + include: + - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml + job: e4s-power-protected-generate + strategy: depend + needs: + - artifacts: True + job: e4s-power-protected-generate ######################################### # Build tests for different build-systems diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml deleted file mode 100644 index 24a4879277c..00000000000 --- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml +++ /dev/null @@ -1,259 +0,0 @@ -spack: - view: false - - concretizer: - reuse: false - unify: false - - config: - concretizer: clingo - install_tree: - root: /home/software/spack - padded_length: 512 - projections: - all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}' - - packages: - all: - compiler: - - gcc@9.3.0 - providers: - blas: - - openblas - mpi: - - mpich - target: - - ppc64le - variants: +mpi - binutils: - variants: +ld +gold +headers +libiberty ~nls +plugins - version: - - 2.36.1 - doxygen: - version: - - 1.8.20 - elfutils: - variants: +bzip2 ~nls +xz - hdf5: - variants: +fortran +hl +shared api=v18 - version: - - 1.12.0 - libfabric: - variants: fabrics=sockets,tcp,udp,rxm - libunwind: - variants: +pic +xz - mesa: - variants: ~llvm - mesa18: - variants: ~llvm - mpich: - variants: ~wrapperrpath - ncurses: - variants: +termlib - openblas: - variants: threads=openmp - trilinos: - variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long - xz: - variants: +pic - - definitions: - - - cuda_specs: - - amrex +cuda cuda_arch=70 - - caliper +cuda cuda_arch=70 - - chai ~benchmarks ~tests +cuda cuda_arch=70 ^umpire ~shared - - ginkgo +cuda cuda_arch=70 - - heffte +cuda cuda_arch=70 - - hpx +cuda cuda_arch=70 - - hypre +cuda cuda_arch=70 - - kokkos +wrapper +cuda cuda_arch=70 - - kokkos-kernels +cuda cuda_arch=70 ^kokkos +wrapper +cuda cuda_arch=70 - - magma +cuda cuda_arch=70 - - mfem +cuda cuda_arch=70 - - parsec +cuda cuda_arch=70 - - petsc +cuda cuda_arch=70 - - raja +cuda cuda_arch=70 - - slate +cuda cuda_arch=70 - - slepc +cuda cuda_arch=70 - - strumpack ~slate +cuda cuda_arch=70 - - sundials +cuda cuda_arch=70 - - superlu-dist +cuda cuda_arch=70 - - tasmanian +cuda cuda_arch=70 - - trilinos@13.2.0 +cuda cuda_arch=70 - - umpire ~shared +cuda cuda_arch=70 - - vtk-m +cuda cuda_arch=70 - - zfp +cuda cuda_arch=70 - #- ascent ~shared +cuda cuda_arch=70 - #- axom +cuda cuda_arch=70 ^umpire ~shared - #- dealii +cuda cuda_arch=70 # gmsh - #- flecsi +cuda cuda_arch=70 - #- paraview +cuda cuda_arch=70 - - - default_specs: - - adios - - adios2 - - aml - - amrex - - arborx - - archer - - argobots - - ascent - - axom ^umpire@4.1.2 - - bolt - - cabana - - caliper - - chai ~benchmarks ~tests ^umpire@4.1.2 - - charliecloud - - conduit - - darshan-runtime - - darshan-util - - datatransferkit - - dyninst - - faodel ~tcmalloc - - flecsi - - flit - - flux-core - - fortrilinos - - gasnet - - ginkgo - - globalarrays - - gmp - - gotcha - - gptune - - hdf5 - - heffte +fftw - - hpctoolkit - - hpx - - hypre - - kokkos +openmp - - kokkos-kernels +openmp - - legion - - libnrm - - libquo - - libunwind - - llvm targets=amdgpu,nvptx +clang +compiler-rt +libcxx +lld +lldb +llvm_dylib +flang ~cuda - - loki - - mercury - - metall - - mfem - - mpark-variant - - mpifileutils ~xattr - - netlib-scalapack - - ninja - - nrm - - nvhpc - - omega-h - - openmpi - - openpmd-api ^hdf5@1.12.0 +fortran +shared +hl api=default - - papi - - papyrus@1.0.1 - - parallel-netcdf - - paraview - - parsec ~cuda - - pdt - - petsc - - plasma - - precice - - pumi - - py-jupyterhub - - py-libensemble - - py-petsc4py - - py-warpx ^warpx dims=2 ^hdf5@1.12.0 +fortran +shared +hl api=default - - py-warpx ^warpx dims=3 ^hdf5@1.12.0 +fortran +shared +hl api=default - - py-warpx ^warpx dims=rz ^hdf5@1.12.0 +fortran +shared +hl api=default - - qthreads scheduler=distrib - - raja - - rempi - - scr - - slate ~cuda - - slepc - - stc - - strumpack ~slate - - sundials - - superlu - - superlu-dist - - swig - - swig@4.0.2-fortran - - sz - - tasmanian - - tau +mpi +python - - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long - - turbine - - umap - - unifyfs@0.9.1 - - upcxx - - variorum - - veloc - - vtk-m - - zfp - #- dealii - #- geopm - #- phist - #- qt - #- qwt - #- stat - #- umpire - - - arch: - - '%gcc target=ppc64le' - - - specs: - - - matrix: - - - $default_specs - - - $arch - - - matrix: - - - $cuda_specs - - - $arch - - mirrors: { "mirror": "s3://spack-binaries/e4s" } - - gitlab-ci: - - script: - - . "./share/spack/setup-env.sh" - - spack --version - - cd ${SPACK_CONCRETE_ENV_DIR} - - spack env activate --without-view . - - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'" - - spack -d ci rebuild - - mappings: - - match: - - cuda - - dyninst - - hpx - - llvm - - llvm-amdgpu - - precice - - rocblas - - rocsolver - - strumpack - - sundials - - trilinos - - vtk-h - - vtk-m - - warpx - runner-attributes: - image: { "name": "ghcr.io/spack/e4s-ubuntu-20.04:v2021-10-18", "entrypoint": [""] } - tags: ["spack", "public", "xlarge", "ppc64le"] - - match: ['os=ubuntu20.04'] - runner-attributes: - image: { "name": "ghcr.io/spack/e4s-ubuntu-20.04:v2021-10-18", "entrypoint": [""] } - tags: ["spack", "public", "large", "ppc64le"] - broken-specs-url: "s3://spack-binaries-develop/broken-specs" - service-job-attributes: - before_script: - - . "./share/spack/setup-env.sh" - - spack --version - image: { "name": "ghcr.io/spack/e4s-ubuntu-20.04:v2021-10-18", "entrypoint": [""] } - tags: ["spack", "public", "medium", "ppc64le"] - - cdash: - build-group: New PR testing workflow - url: https://cdash.spack.io - project: Spack Testing - site: Cloud Gitlab Infrastructure diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml new file mode 100644 index 00000000000..ec0889f5c04 --- /dev/null +++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml @@ -0,0 +1,424 @@ +spack: + view: false + + concretizer: + reuse: false + unify: false + + config: + concretizer: clingo + install_tree: + root: /home/software/spack + padded_length: 512 + projections: + all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}' + + packages: + all: + compiler: [gcc@9.4.0] + providers: + blas: [openblas] + mpi: [mpich] + target: [ppc64le] + variants: +mpi + binutils: + variants: +ld +gold +headers +libiberty ~nls + elfutils: + variants: +bzip2 ~nls +xz + hdf5: + variants: +fortran +hl +shared + libfabric: + variants: fabrics=sockets,tcp,udp,rxm + libunwind: + variants: +pic +xz + mpich: + variants: ~wrapperrpath + ncurses: + variants: +termlib + openblas: + variants: threads=openmp + python: + version: [3.8.13] + trilinos: + variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext + +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu + +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos + +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long + xz: + variants: +pic + mesa: + version: [21.3.8] + + specs: + # CPU + - adios + - adios2 + - alquimia + - aml + - amrex + - arborx + - archer + - argobots + - ascent + - axom + - bolt + - butterflypack + - cabana + - caliper + - chai ~benchmarks ~tests + - charliecloud + - conduit + - darshan-runtime + - darshan-util + - datatransferkit + - dyninst + - exaworks + - faodel ~tcmalloc + - flecsi + - flit + - flux-core + - fortrilinos + - gasnet + - ginkgo + - globalarrays + - gmp + - gotcha + - gptune + - h5bench + - hdf5 +fortran +hl +shared + - hdf5-vol-async + - heffte +fftw + - hpctoolkit + - hpx networking=mpi + - hypre + - kokkos +openmp + - kokkos-kernels +openmp + - lammps + - legion + - libnrm + - libquo + - libunwind + - mercury + - metall + - mfem + - mpark-variant + - mpifileutils ~xattr + - nccmp + - nco + - netlib-scalapack + - nrm + - nvhpc + - omega-h + - openmpi + - openpmd-api + - papi + - papyrus + - parallel-netcdf + - parsec ~cuda + - pdt + - petsc + - phist + - plasma + - plumed + - precice + - pruners-ninja + - pumi + - py-cinemasci + - py-jupyterhub + - py-libensemble + - py-petsc4py + - py-warpx ^warpx dims=2 + - py-warpx ^warpx dims=3 + - py-warpx ^warpx dims=rz + - qthreads scheduler=distrib + - raja + - rempi + - scr + - slate ~cuda + - slepc + - stc + - strumpack ~slate + - sundials + - superlu + - superlu-dist + - swig + - swig@4.0.2-fortran + - sz + - tasmanian + - tau +mpi +python + - turbine + - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack + +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro + +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko + +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long + - umap + - umpire + - unifyfs + - upcxx + - veloc + - vtk-m + - wannier90 + - zfp + + # CUDA + - adios2 +cuda cuda_arch=70 + - amrex +cuda cuda_arch=70 + - arborx +cuda cuda_arch=70 ^kokkos +wrapper + - ascent +cuda cuda_arch=70 + - cabana +cuda ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=70 + - caliper +cuda cuda_arch=70 + - chai ~benchmarks ~tests +cuda cuda_arch=70 ^umpire@6.0.0 ~shared + - flecsi +cuda cuda_arch=70 + - flux-core +cuda + - ginkgo +cuda cuda_arch=70 + - heffte +cuda cuda_arch=70 + - hpctoolkit +cuda + - hpx +cuda cuda_arch=70 + - hypre +cuda cuda_arch=70 + - kokkos +wrapper +cuda cuda_arch=70 + - kokkos-kernels +cuda cuda_arch=70 ^kokkos +wrapper +cuda cuda_arch=70 + - magma +cuda cuda_arch=70 + - mfem +cuda cuda_arch=70 + - papi +cuda + - parsec +cuda cuda_arch=70 + - petsc +cuda cuda_arch=70 + - raja +cuda cuda_arch=70 + - slate +cuda cuda_arch=70 + - slepc +cuda cuda_arch=70 + - strumpack ~slate +cuda cuda_arch=70 + - sundials +cuda cuda_arch=70 + - superlu-dist +cuda cuda_arch=70 + - tasmanian +cuda cuda_arch=70 + - tau +mpi +cuda + - trilinos@13.4.0 +cuda cuda_arch=70 + - umpire ~shared +cuda cuda_arch=70 + - vtk-m +cuda cuda_arch=70 + - zfp +cuda cuda_arch=70 + + # CPU failures + # - bricks # bricks: VSBrick-mpi9pt.py-Scalar-4x4x4x4-1:2306:17: error: 'buf0' was not declared in this scope + # - geopm # /usr/include/ppc64le-linux-gnu/bits/string_fortified.h:95:10: error:'__builtin_strncpy' specified bound 512 equals destination size [-Werror=stringop-truncation] + # - loki # ../include/loki/Singleton.h:158:14: warning: 'template class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations] + # - paraview +qt # llvm@14 + # - variorum # /usr/bin/ld: Intel/CMakeFiles/variorum_intel.dir/Broadwell_4F.c.o:(.bss+0x0): multiple definition of `g_platform'; + # ---- + + # CUDA failures + # - dealii +cuda cuda_arch=70 # fltk + # - bricks +cuda # bricks + # ---- + # fltk: gl_draw.cxx:120:13: warning: 'void get_list(int)' defined but not used [-Wunused-function] + + + mirrors: { "mirror": "s3://spack-binaries/develop/e4s-power" } + + gitlab-ci: + + script: + - . "./share/spack/setup-env.sh" + - spack --version + - cd ${SPACK_CONCRETE_ENV_DIR} + - spack env activate --without-view . + - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'" + - mkdir -p ${SPACK_ARTIFACTS_ROOT}/user_data + - if [[ -r /mnt/key/intermediate_ci_signing_key.gpg ]]; then spack gpg trust /mnt/key/intermediate_ci_signing_key.gpg; fi + - if [[ -r /mnt/key/spack_public_key.gpg ]]; then spack gpg trust /mnt/key/spack_public_key.gpg; fi + - spack -d ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) + + image: ecpe4s/ubuntu20.04-runner-ppc64le:2022-08-01 + + mappings: + - match: + - hipblas + - llvm + - llvm-amdgpu + - rocblas + runner-attributes: + tags: [ "spack", "huge", "ppc64le" ] + variables: + CI_JOB_SIZE: huge + KUBERNETES_CPU_REQUEST: 11000m + KUBERNETES_MEMORY_REQUEST: 42G + + - match: + - cuda + - dyninst + - ginkgo + - hpx + - kokkos-kernels + - kokkos-nvcc-wrapper + - magma + - mfem + - mpich + - openturns + - precice + - raja + - rust + - slate + - trilinos + - vtk-m + - warpx + runner-attributes: + tags: [ "spack", "large", "ppc64le" ] + variables: + CI_JOB_SIZE: large + KUBERNETES_CPU_REQUEST: 8000m + KUBERNETES_MEMORY_REQUEST: 12G + + - match: + - adios2 + - amrex + - archer + - ascent + - axom + - binutils + - blaspp + - boost + - butterflypack + - cabana + - caliper + - camp + - chai + - conduit + - datatransferkit + - faodel + - ffmpeg + - fftw + - fortrilinos + - gperftools + - gptune + - hdf5 + - heffte + - hpctoolkit + - hwloc + - hypre + - kokkos + - lammps + - lapackpp + - legion + - libzmq + - llvm-openmp-ompt + - mbedtls + - netlib-scalapack + - omega-h + - openmpi + - openpmd-api + - pagmo2 + - papyrus + - parsec + - pdt + - petsc + - pumi + - py-ipython-genutils + - py-petsc4py + - py-scipy + - py-statsmodels + - py-warlock + - py-warpx + - pygmo + - slepc + - slurm + - strumpack + - sundials + - superlu-dist + - tasmanian + - tau + - upcxx + - vtk-h + - zfp + runner-attributes: + tags: [ "spack", "medium", "ppc64le" ] + variables: + CI_JOB_SIZE: "medium" + KUBERNETES_CPU_REQUEST: "2000m" + KUBERNETES_MEMORY_REQUEST: "4G" + + - match: + - alsa-lib + - ant + - antlr + - argobots + - automake + - berkeley-db + - bison + - blt + - cmake + - curl + - darshan-util + - diffutils + - exmcutils + - expat + - flit + - freetype + - gdbm + - gotcha + - hpcviewer + - jansson + - json-c + - libbsd + - libevent + - libjpeg-turbo + - libnrm + - libpng + - libunistring + - lua-luaposix + - m4 + - mpfr + - ncurses + - openblas + - openjdk + - papi + - parallel-netcdf + - pcre2 + - perl-data-dumper + - pkgconf + - py-alembic + - py-idna + - py-testpath + - qhull + - snappy + - swig + - tar + - tcl + - texinfo + - unzip + - util-linux-uuid + - util-macros + - yaml-cpp + - zlib + - zstd + runner-attributes: + tags: [ "spack", "small", "ppc64le" ] + variables: + CI_JOB_SIZE: "small" + KUBERNETES_CPU_REQUEST: "500m" + KUBERNETES_MEMORY_REQUEST: "500M" + + - match: ['os=ubuntu20.04'] + runner-attributes: + tags: ["spack", "ppc64le"] + variables: + CI_JOB_SIZE: "default" + + broken-specs-url: "s3://spack-binaries/broken-specs" + + service-job-attributes: + before_script: + - . "./share/spack/setup-env.sh" + - spack --version + image: ecpe4s/ubuntu20.04-runner-ppc64le:2022-08-01 + tags: ["spack", "public", "ppc64le"] + + signing-job-attributes: + image: { "name": "ghcr.io/spack/notary:latest", "entrypoint": [""] } + tags: ["spack", "aws"] + script: + - aws s3 sync --exclude "*" --include "*spec.json*" ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache /tmp + - /sign.sh + - aws s3 sync --exclude "*" --include "*spec.json.sig*" /tmp ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache + + cdash: + build-group: New PR testing workflow + url: https://cdash.spack.io + project: Spack Testing + site: Cloud Gitlab Infrastructure From 59602f790ea1e9e0bdbf58ade59f61ea0a409c13 Mon Sep 17 00:00:00 2001 From: Jen Herting Date: Fri, 9 Sep 2022 05:05:49 -0400 Subject: [PATCH 020/241] py-umap-learn: add new package (#32562) Co-authored-by: James A Zilberman Co-authored-by: qwertos --- .../builtin/packages/py-umap-learn/package.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-umap-learn/package.py diff --git a/var/spack/repos/builtin/packages/py-umap-learn/package.py b/var/spack/repos/builtin/packages/py-umap-learn/package.py new file mode 100644 index 00000000000..b2026c2fbe2 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-umap-learn/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyUmapLearn(PythonPackage): + """Uniform Manifold Approximation and Projection (UMAP) is a dimension + reduction technique that can be used for visualisation similarly to t-SNE, + but also for general non-linear dimension reduction.""" + + homepage = "https://github.com/lmcinnes/umap" + pypi = "umap-learn/umap-learn-0.5.3.tar.gz" + + version("0.5.3", sha256="dbd57cb181c2b66d238acb5635697526bf24c798082daed0cf9b87f6a3a6c0c7") + + depends_on("py-setuptools", type="build") + depends_on("py-numpy@1.17:", type=("build", "run")) + depends_on("py-scikit-learn@0.22:", type=("build", "run")) + depends_on("py-scipy@1.0:", type=("build", "run")) + depends_on("py-numba@0.49:", type=("build", "run")) + depends_on("py-pynndescent@0.5:", type=("build", "run")) + depends_on("py-tqdm", type=("build", "run")) From 0fd749aa2c3423dd3278ad77960938c68386e72f Mon Sep 17 00:00:00 2001 From: Jen Herting Date: Fri, 9 Sep 2022 05:09:57 -0400 Subject: [PATCH 021/241] New package: py-python-bioformats (#32561) * [py-python-bioformats] New package * [py-python-bioformats] Added version 4.0.0 * [py-python-bioformats] Added types * [py-python-bioformats] setuptools is build only * [py-python-bioformats] fixup import * [@spackbot] updating style on behalf of qwertos Co-authored-by: James A Zilberman Co-authored-by: qwertos --- .../packages/py-python-bioformats/package.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-python-bioformats/package.py diff --git a/var/spack/repos/builtin/packages/py-python-bioformats/package.py b/var/spack/repos/builtin/packages/py-python-bioformats/package.py new file mode 100644 index 00000000000..8a2653e7e85 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-python-bioformats/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyPythonBioformats(PythonPackage): + """Python-bioformats is a Python wrapper for Bio-Formats, a standalone + Java library for reading and writing life sciences image file formats. + Bio-Formats is capable of parsing both pixels and metadata for + a large number of formats, as well as writing to several formats.""" + + homepage = "https://github.com/CellProfiler/python-bioformats/" + pypi = "python-bioformats/python-bioformats-4.0.5.tar.gz" + + version("4.0.5", sha256="f9fa3a2b3c0f1eac6070dff6c513444e9fde9a1f794ec4c21fca85833dbb5192") + version("4.0.0", sha256="9a952de4d326d961af0a497753a4b71b2f7844605023d170c931d3624e036506") + + depends_on("py-setuptools", type="build") + depends_on("py-boto3@1.14.23:", type=("build", "run")) + depends_on("py-future@0.18.2:", type=("build", "run")) + depends_on("py-python-javabridge@4.0.3", type=("build", "run")) From a13cf43b650e25bf24493be2c9966c37011545a8 Mon Sep 17 00:00:00 2001 From: Jen Herting Date: Fri, 9 Sep 2022 07:09:45 -0400 Subject: [PATCH 022/241] py-anndata: add new package (#32563) Co-authored-by: James A Zilberman Co-authored-by: qwertos --- .../builtin/packages/py-anndata/package.py | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-anndata/package.py diff --git a/var/spack/repos/builtin/packages/py-anndata/package.py b/var/spack/repos/builtin/packages/py-anndata/package.py new file mode 100644 index 00000000000..105cca9e4a5 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-anndata/package.py @@ -0,0 +1,28 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyAnndata(PythonPackage): + """anndata is a Python package for handling annotated data matrices + in memory and on disk, positioned between pandas and xarray.""" + + homepage = "https://github.com/theislab/anndata" + pypi = "anndata/anndata-0.8.0.tar.gz" + + version("0.8.0", sha256="94d2cc6f76c0317c0ac28564e3092b313b7ad19c737d66701961f3e620b9066e") + + depends_on("python@3.7:", type=("build", "run")) + depends_on("py-setuptools-scm", type="build") + depends_on("py-flit-core@3.4:3", type="build") + depends_on("py-importlib-metadata@0.7:", type=("build", "run"), when="^python@:3.7") + depends_on("py-pandas@1.1.1:", type=("build", "run")) + depends_on("py-numpy@1.16.5:", type=("build", "run")) + depends_on("py-scipy@1.4.1:", type=("build", "run")) + depends_on("py-h5py@3:", type=("build", "run")) + depends_on("py-natsort", type=("build", "run")) + depends_on("py-packaging@20:", type=("build", "run")) + depends_on("py-typing-extensions", when="^python@:3.7", type=("build", "run")) From c51af2262e27c5ad3aa39bdd2d0cab3c27625b53 Mon Sep 17 00:00:00 2001 From: Jen Herting Date: Fri, 9 Sep 2022 07:13:59 -0400 Subject: [PATCH 023/241] py-session-info: add new package (#32564) Co-authored-by: qwertos --- .../packages/py-session-info/package.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-session-info/package.py diff --git a/var/spack/repos/builtin/packages/py-session-info/package.py b/var/spack/repos/builtin/packages/py-session-info/package.py new file mode 100644 index 00000000000..474c7ad8922 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-session-info/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PySessionInfo(PythonPackage): + """session_info outputs version information for modules + loaded in the current session, Python, and the OS.""" + + homepage = "https://gitlab.com/joelostblom/session_info" + pypi = "session_info/session_info-1.0.0.tar.gz" + + version("1.0.0", sha256="3cda5e03cca703f32ae2eadbd6bd80b6c21442cfb60e412c21cb8ad6d5cbb6b7") + + depends_on("python@3.6:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-stdlib-list", type=("build", "run")) From b4a2b8d46c952eb03299dd9c300670c74f802d71 Mon Sep 17 00:00:00 2001 From: psakievich Date: Fri, 9 Sep 2022 12:02:40 -0600 Subject: [PATCH 024/241] GitRef Versions: Bug Fixes (#32437) * Fix a version cmp bug in asp.py * Fix submodule bug for git refs * Add branch in logic for submodules * Fix git version comparisons main does not satisfy git.foo=main git.foo=main does satisfy main --- lib/spack/spack/fetch_strategy.py | 12 ++++++++++++ lib/spack/spack/solver/asp.py | 4 +++- lib/spack/spack/test/spec_syntax.py | 12 ++++++++++++ lib/spack/spack/version.py | 22 ++++++++++++++++++++-- 4 files changed, 47 insertions(+), 3 deletions(-) diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py index 319aed95cab..ae23bacf142 100644 --- a/lib/spack/spack/fetch_strategy.py +++ b/lib/spack/spack/fetch_strategy.py @@ -1543,7 +1543,19 @@ def for_package_version(pkg, version): ref_type: version.ref, "no_cache": True, } + kwargs["submodules"] = getattr(pkg, "submodules", False) + + # if we have a ref_version already, and it is a version from the package + # we can use that version's submodule specifications + if pkg.version.ref_version: + ref_version = spack.version.Version(pkg.version.ref_version[0]) + ref_version_attributes = pkg.versions.get(ref_version) + if ref_version_attributes: + kwargs["submodules"] = ref_version_attributes.get( + "submodules", kwargs["submodules"] + ) + fetcher = GitFetchStrategy(**kwargs) return fetcher diff --git a/lib/spack/spack/solver/asp.py b/lib/spack/spack/solver/asp.py index aeef4044d50..8e2e8bfd951 100644 --- a/lib/spack/spack/solver/asp.py +++ b/lib/spack/spack/solver/asp.py @@ -1516,8 +1516,10 @@ def key_fn(item): # specs will be computed later version_preferences = packages_yaml.get(pkg_name, {}).get("version", []) for idx, v in enumerate(version_preferences): + # v can be a string so force it into an actual version for comparisons + ver = spack.version.Version(v) self.declared_versions[pkg_name].append( - DeclaredVersion(version=v, idx=idx, origin=version_provenance.packages_yaml) + DeclaredVersion(version=ver, idx=idx, origin=version_provenance.packages_yaml) ) for spec in specs: diff --git a/lib/spack/spack/test/spec_syntax.py b/lib/spack/spack/test/spec_syntax.py index e58cf4214d8..ec92cc877ea 100644 --- a/lib/spack/spack/test/spec_syntax.py +++ b/lib/spack/spack/test/spec_syntax.py @@ -837,3 +837,15 @@ def test_compare_abstract_specs(self): for a, b in itertools.product(specs, repeat=2): # Check that we can compare without raising an error assert a <= b or b < a + + def test_git_ref_spec_equivalences(self, mock_packages, mock_stage): + s1 = sp.Spec("develop-branch-version@git.{hash}=develop".format(hash="a" * 40)) + s2 = sp.Spec("develop-branch-version@git.{hash}=develop".format(hash="b" * 40)) + s3 = sp.Spec("develop-branch-version@git.0.2.15=develop") + s_no_git = sp.Spec("develop-branch-version@develop") + + assert s1.satisfies(s_no_git) + assert s2.satisfies(s_no_git) + assert not s_no_git.satisfies(s1) + assert not s2.satisfies(s1) + assert not s3.satisfies(s1) diff --git a/lib/spack/spack/version.py b/lib/spack/spack/version.py index e67ab260ba4..624d9faeae3 100644 --- a/lib/spack/spack/version.py +++ b/lib/spack/spack/version.py @@ -599,15 +599,33 @@ def satisfies(self, other): """A Version 'satisfies' another if it is at least as specific and has a common prefix. e.g., we want gcc@4.7.3 to satisfy a request for gcc@4.7 so that when a user asks to build with gcc@4.7, we can find - a suitable compiler. + a suitable compiler. In the case of two GitVersions we require the ref_versions + to satisify one another and the versions to be an exact match. """ + self_cmp = self._cmp(other.ref_lookup) other_cmp = other._cmp(self.ref_lookup) + if other.is_ref: + # if other is a ref then satisfaction requires an exact version match + # i.e. the GitRef must match this.version for satisfaction + # this creates an asymmetric comparison: + # - 'foo@main'.satisfies('foo@git.hash=main') == False + # - 'foo@git.hash=main'.satisfies('foo@main') == True + version_match = self.version == other.version + elif self.is_ref: + # other is not a ref then it is a version base and we need to compare + # this.ref + version_match = self.ref_version == other.version + else: + # neither is a git ref. We shouldn't ever be here, but if we are this variable + # is not meaningful and defaults to true + version_match = True + # Do the final comparison nself = len(self_cmp) nother = len(other_cmp) - return nother <= nself and self_cmp[:nother] == other_cmp + return nother <= nself and self_cmp[:nother] == other_cmp and version_match def __repr__(self): return "GitVersion(" + repr(self.string) + ")" From 1427ddaa59df661e9fe3f4b8939eb92fd1b83a88 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Sat, 10 Sep 2022 15:25:44 +0200 Subject: [PATCH 025/241] ci: restore coverage computation (#32585) * ci: restore coverage computation * Mark "test_foreground_background" as xfail * Mark "test_foreground_background_output" as xfail * Make number of processes explicit, remove verbosity on linux * Run coverage on just 3 Python jobs for linux * Run coverage on just 3 Python jobs for linux * Run coverage on just 2 Python jobs for linux * Add back verbose, since before we didn't encounter the xdist internal error * Reduce the workers to 2 * Try to use command line --- .github/workflows/unit_tests.yaml | 28 ++++++++++++----------- lib/spack/spack/test/cmd/debug.py | 4 +++- lib/spack/spack/test/llnl/util/tty/log.py | 2 ++ pyproject.toml | 1 + share/spack/qa/run-unit-tests | 22 ++++++++++++++---- 5 files changed, 38 insertions(+), 19 deletions(-) diff --git a/.github/workflows/unit_tests.yaml b/.github/workflows/unit_tests.yaml index 5de7d86c56f..c3c2b3242eb 100644 --- a/.github/workflows/unit_tests.yaml +++ b/.github/workflows/unit_tests.yaml @@ -52,7 +52,7 @@ jobs: patchelf cmake bison libbison-dev kcov - name: Install Python packages run: | - pip install --upgrade pip six setuptools pytest codecov "coverage[toml]<=6.2" pytest-xdist + pip install --upgrade pip six setuptools pytest codecov[toml] pytest-cov pytest-xdist # ensure style checks are not skipped in unit tests for python >= 3.6 # note that true/false (i.e., 1/0) are opposite in conditions in python and bash if python -c 'import sys; sys.exit(not sys.version_info >= (3, 6))'; then @@ -75,16 +75,18 @@ jobs: . share/spack/setup-env.sh spack bootstrap untrust spack-install spack -v solve zlib - - name: Run unit tests (full suite with coverage) + - name: Run unit tests env: SPACK_PYTHON: python - COVERAGE: true SPACK_TEST_SOLVER: ${{ matrix.concretizer }} + SPACK_TEST_PARALLEL: 2 + COVERAGE: true + UNIT_TEST_COVERAGE: ${{ (matrix.concretizer == 'original' && matrix.python-version == '2.7') || (matrix.python-version == '3.10') }} run: | share/spack/qa/run-unit-tests - coverage combine + coverage combine -a coverage xml - - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 + - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 with: flags: unittests,linux,${{ matrix.concretizer }} # Test shell integration @@ -115,7 +117,7 @@ jobs: COVERAGE: true run: | share/spack/qa/run-shell-tests - - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 + - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 with: flags: shelltests,linux @@ -163,7 +165,7 @@ jobs: patchelf kcov - name: Install Python packages run: | - pip install --upgrade pip six setuptools pytest codecov coverage[toml]==6.2 clingo pytest-xdist + pip install --upgrade pip six setuptools pytest codecov coverage[toml] pytest-cov clingo pytest-xdist - name: Setup git configuration run: | # Need this for the git tests to succeed. @@ -175,7 +177,7 @@ jobs: SPACK_TEST_SOLVER: clingo run: | share/spack/qa/run-unit-tests - coverage combine + coverage combine -a coverage xml - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 with: @@ -196,13 +198,14 @@ jobs: - name: Install Python packages run: | pip install --upgrade pip six setuptools - pip install --upgrade pytest codecov coverage[toml]==6.2 pytest-xdist + pip install --upgrade pytest codecov coverage[toml] pytest-xdist pytest-cov - name: Setup Homebrew packages run: | brew install dash fish gcc gnupg2 kcov - name: Run unit tests env: SPACK_TEST_SOLVER: clingo + SPACK_TEST_PARALLEL: 4 run: | git --version . .github/workflows/setup_git.sh @@ -210,13 +213,12 @@ jobs: $(which spack) bootstrap untrust spack-install $(which spack) solve zlib common_args=(--dist loadfile --tx '4*popen//python=./bin/spack-tmpconfig python -u ./bin/spack python' -x) - coverage run $(which spack) unit-test "${common_args[@]}" - coverage combine + $(which spack) unit-test --cov --cov-config=pyproject.toml "${common_args[@]}" + coverage combine -a coverage xml # Delete the symlink going from ./lib/spack/docs/_spack_root back to # the initial directory, since it causes ELOOP errors with codecov/actions@2 rm lib/spack/docs/_spack_root - - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 + - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 with: - files: ./coverage.xml flags: unittests,macos diff --git a/lib/spack/spack/test/cmd/debug.py b/lib/spack/spack/test/cmd/debug.py index ec522345174..681987f873e 100644 --- a/lib/spack/spack/test/cmd/debug.py +++ b/lib/spack/spack/test/cmd/debug.py @@ -27,7 +27,9 @@ def test_create_db_tarball(tmpdir, database): # get the first non-dotfile to avoid coverage files in the directory files = os.listdir(os.getcwd()) - tarball_name = next(f for f in files if not f.startswith(".")) + tarball_name = next( + f for f in files if not f.startswith(".") and not f.startswith("tests") + ) # debug command made an archive assert os.path.exists(tarball_name) diff --git a/lib/spack/spack/test/llnl/util/tty/log.py b/lib/spack/spack/test/llnl/util/tty/log.py index b100f209e8c..333088b6af8 100644 --- a/lib/spack/spack/test/llnl/util/tty/log.py +++ b/lib/spack/spack/test/llnl/util/tty/log.py @@ -341,6 +341,7 @@ def no_termios(): (mock_shell_tstp_tstp_cont_cont, no_termios), ], ) +@pytest.mark.xfail(reason="Fails almost consistently when run with coverage and xdist") def test_foreground_background(test_fn, termios_on_or_off, tmpdir): """Functional tests for foregrounding and backgrounding a logged process. @@ -460,6 +461,7 @@ def mock_shell_v_v_no_termios(proc, ctl, **kwargs): (mock_shell_v_v_no_termios, no_termios), ], ) +@pytest.mark.xfail(reason="Fails almost consistently when run with coverage and xdist") def test_foreground_background_output(test_fn, capfd, termios_on_or_off, tmpdir): """Tests hitting 'v' toggles output, and that force_echo works.""" if sys.version_info >= (3, 8) and sys.platform == "darwin" and termios_on_or_off == no_termios: diff --git a/pyproject.toml b/pyproject.toml index 446c7891f23..f5fed2df4b1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -90,6 +90,7 @@ parallel = true concurrency = ["multiprocessing"] branch = true source = ["bin", "lib"] +data_file = "./tests-coverage/.coverage" omit = [ 'lib/spack/spack/test/*', 'lib/spack/docs/*', diff --git a/share/spack/qa/run-unit-tests b/share/spack/qa/run-unit-tests index da8334f76b2..2de6b6101d3 100755 --- a/share/spack/qa/run-unit-tests +++ b/share/spack/qa/run-unit-tests @@ -56,13 +56,25 @@ if python -m pytest --trace-config 2>&1 | grep xdist; then export PYTEST_ADDOPTS="$PYTEST_ADDOPTS --dist loadfile --tx '${SPACK_TEST_PARALLEL:=3}*popen//python=./bin/spack-tmpconfig python -u ./bin/spack python'" fi -$coverage_run $(which spack) unit-test -x --verbose +# We are running pytest-cov after the addition of pytest-xdist, since it integrates +# other pugins for pytest automatically. We still need to use "coverage" explicitly +# for the commands above. +# +# There is a need to pass the configuration file explicitly due to a bug: +# https://github.com/pytest-dev/pytest-cov/issues/243 +# https://github.com/pytest-dev/pytest-cov/issues/237 +# where it seems that otherwise the configuration file might not be located by subprocesses +# in some, not better specified, cases. +if [[ "$UNIT_TEST_COVERAGE" == "true" ]]; then + $(which spack) unit-test -x --verbose --cov --cov-config=pyproject.toml +else + $(which spack) unit-test -x --verbose +fi + + bash "$QA_DIR/test-env-cfg.sh" # Delete the symlink going from ./lib/spack/docs/_spack_root back to # the initial directory, since it causes ELOOP errors with codecov/actions@2 -if [[ "$COVERAGE" == "true" ]]; then - rm lib/spack/docs/_spack_root -fi - +rm lib/spack/docs/_spack_root From 01153b3271ea17b90aae47ceb2af53bde1cededf Mon Sep 17 00:00:00 2001 From: Glenn Johnson Date: Sat, 10 Sep 2022 18:02:15 -0500 Subject: [PATCH 026/241] new packages: py-arm-pyart and dependencies (#32579) * new packages: py-arm-pyart and dependencies - py-arm-pyart - py-cylp - rsl * Update var/spack/repos/builtin/packages/py-cylp/package.py Co-authored-by: Adam J. Stewart * Fix dependencies - xarray is not optional - pandas is needed - pylab is needed - new package, py-pylab-sdk - setuptools is needed at run time * Patch for import of StringIO * Update var/spack/repos/builtin/packages/py-arm-pyart/package.py Co-authored-by: Adam J. Stewart * Fix call to `StringIO` in patch Co-authored-by: Adam J. Stewart --- .../packages/py-arm-pyart/StringIO.patch | 48 +++++++++++++ .../builtin/packages/py-arm-pyart/package.py | 71 +++++++++++++++++++ .../repos/builtin/packages/py-cylp/package.py | 27 +++++++ .../builtin/packages/py-pylab-sdk/package.py | 21 ++++++ .../repos/builtin/packages/rsl/package.py | 20 ++++++ 5 files changed, 187 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-arm-pyart/StringIO.patch create mode 100644 var/spack/repos/builtin/packages/py-arm-pyart/package.py create mode 100644 var/spack/repos/builtin/packages/py-cylp/package.py create mode 100644 var/spack/repos/builtin/packages/py-pylab-sdk/package.py create mode 100644 var/spack/repos/builtin/packages/rsl/package.py diff --git a/var/spack/repos/builtin/packages/py-arm-pyart/StringIO.patch b/var/spack/repos/builtin/packages/py-arm-pyart/StringIO.patch new file mode 100644 index 00000000000..bd8bc2868fe --- /dev/null +++ b/var/spack/repos/builtin/packages/py-arm-pyart/StringIO.patch @@ -0,0 +1,48 @@ +diff -ru a/pyart/testing/data/make_small_mdv_ppi.py b/pyart/testing/data/make_small_mdv_ppi.py +--- a/pyart/testing/data/make_small_mdv_ppi.py 2022-07-19 13:06:08.000000000 -0500 ++++ b/pyart/testing/data/make_small_mdv_ppi.py 2022-09-10 16:06:38.712279369 -0500 +@@ -6,7 +6,10 @@ + """ + + import struct +-import StringIO ++try: ++ from StringIO import StringIO ++except ImportError: ++ from io import StringIO + import gzip + + import pyart +@@ -40,7 +43,7 @@ + + fdata_str = fdata.astype('uint16').byteswap().tostring() + uncompressed_data_size = len(fdata_str) +-fileobj = StringIO.StringIO() ++fileobj = StringIO() + gzipfile = gzip.GzipFile(fileobj=fileobj, mode='w') + gzipfile.write(fdata_str) + gzipfile.close() +diff -ru a/pyart/testing/data/make_small_mdv_rhi.py b/pyart/testing/data/make_small_mdv_rhi.py +--- a/pyart/testing/data/make_small_mdv_rhi.py 2022-07-19 13:06:08.000000000 -0500 ++++ b/pyart/testing/data/make_small_mdv_rhi.py 2022-09-10 16:07:12.775303046 -0500 +@@ -6,7 +6,10 @@ + """ + + import struct +-import StringIO ++try: ++ from StringIO import StringIO ++except ImportError: ++ from io import StringIO + import gzip + + import pyart +@@ -39,7 +42,7 @@ + + fdata_str = fdata.astype('uint16').byteswap().tostring() + uncompressed_data_size = len(fdata_str) +-fileobj = StringIO.StringIO() ++fileobj = StringIO() + gzipfile = gzip.GzipFile(fileobj=fileobj, mode='w') + gzipfile.write(fdata_str) + gzipfile.close() diff --git a/var/spack/repos/builtin/packages/py-arm-pyart/package.py b/var/spack/repos/builtin/packages/py-arm-pyart/package.py new file mode 100644 index 00000000000..9b07f1f60ca --- /dev/null +++ b/var/spack/repos/builtin/packages/py-arm-pyart/package.py @@ -0,0 +1,71 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyArmPyart(PythonPackage): + """Python ARM Radar Toolkit. + + A growing collection of weather radar algorithms and utilities build on top + of the Scientific Python stack and distributed under the 3-Clause BSD + license. Py-ART is used by the Atmospheric Radiation Measurement (ARM) + Climate Research Facility for working with data from a number of + precipitation and cloud radars, but has been designed so that it can be + used by others in the radar and atmospheric communities to examine, + processes, and analyse data from many types of weather radars.""" + + homepage = "https://github.com/ARM-DOE/pyart" + pypi = "arm_pyart/arm_pyart-1.12.7.tar.gz" + + version("1.12.7", sha256="b7b23ecef270c60b017d94603941f0c117de072a10125c5f58c0685d801f9161") + + variant("cartopy", description="Plot grids on maps", default=False) + variant("cylp", description="Linear programming solver", default=False) + variant("gdal", description="Output GeoTIFFs from grid objects", default=False) + variant("hdf5", description="Support for HDF5 files", default=False) + variant("rsl", description="Use RSL library", default=False) + variant("wradlib", description="Calculate texture of differential phase field", default=False) + + conflicts("~hdf5", when="+wradlib") + conflicts("~gdal", when="+wradlib") + + depends_on("python@3.6:3.10", type=("build", "run")) + + depends_on("py-setuptools", type=("build", "run")) + depends_on("py-setuptools-scm@6.2:", type="build") + + depends_on("py-cython", type="build") + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + depends_on("py-netcdf4", type=("build", "run")) + depends_on("py-matplotlib", type=("build", "run")) + depends_on("py-pooch", type=("build", "run")) + depends_on("py-cftime", type=("build", "run")) + depends_on("py-fsspec", type=("build", "run")) + depends_on("py-s3fs", type=("build", "run")) + depends_on("py-xarray@0.21.1:", type=("build", "run")) + + # These are not listed but needed due to being imported in a python file + depends_on("py-pandas", type="run") + depends_on("py-pylab-sdk", type="run") + + # Dependencies for variants + depends_on("py-cartopy", type="run", when="+cartopy") + depends_on("py-cylp", type="run", when="+cylp") + depends_on("gdal+python", type="run", when="+gdal") + depends_on("py-h5py", type="run", when="+hdf5") + depends_on("rsl", type=("build", "run"), when="+rsl") + depends_on("py-wradlib", type="run", when="+wradlib") + + patch("StringIO.patch") + + def setup_build_environment(self, env): + if "+rsl" in self.spec: + env.set("RSL_PATH", self.spec["rsl"].prefix) + else: + # set RSL_PATH to empty to make sure RSL is not picked up from a + # non-spack install in /usr/local + env.set("RSL_PATH", "") diff --git a/var/spack/repos/builtin/packages/py-cylp/package.py b/var/spack/repos/builtin/packages/py-cylp/package.py new file mode 100644 index 00000000000..b3d96d686a3 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-cylp/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyCylp(PythonPackage): + """A Python interface for CLP, CBC, and CGL. + + CyLP is a Python interface to COIN-OR’s Linear and mixed-integer program + solvers (CLP, CBC, and CGL). CyLP’s unique feature is that you can use it + to alter the solution process of the solvers from within Python.""" + + homepage = "https://github.com/coin-or/cylp" + pypi = "cylp/cylp-0.91.5.tar.gz" + + version("0.91.5", sha256="d68ab1dde125be60abf45c8fd9edd24ab880c8144ad881718ddfa01ff6674c77") + + depends_on("py-setuptools", type="build") + depends_on("py-cython@:2", type="build") + + depends_on("py-numpy@1.5:", type=("build", "run")) + depends_on("py-scipy@0.10.0:", type=("build", "run")) + + depends_on("cbc") diff --git a/var/spack/repos/builtin/packages/py-pylab-sdk/package.py b/var/spack/repos/builtin/packages/py-pylab-sdk/package.py new file mode 100644 index 00000000000..5984d55cd17 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pylab-sdk/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyPylabSdk(PythonPackage): + """A development kit that collects simple utilities.""" + + homepage = "https://github.com/PyLabCo/pylab-sdk" + pypi = "pylab-sdk/pylab-sdk-1.3.2.tar.gz" + + version("1.3.2", sha256="ea53e97fec45ea15f65bd53da6b25dc16a9accf3a7f5decbaa970592d760148d") + + depends_on("python@3:", type=("build", "run")) + + depends_on("py-setuptools", type="build") + + depends_on("py-requests", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/rsl/package.py b/var/spack/repos/builtin/packages/rsl/package.py new file mode 100644 index 00000000000..b6719d71f07 --- /dev/null +++ b/var/spack/repos/builtin/packages/rsl/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Rsl(AutotoolsPackage): + """This library is an object oriented programming environment for writing + software applicable to all RADAR data related to the TRMM GV effort.""" + + homepage = "https://trmm-fc.gsfc.nasa.gov/trmm_gv/software/rsl/" + url = "https://trmm-fc.gsfc.nasa.gov/trmm_gv/software/rsl/software/rsl-v1.50.tar.gz" + + version("1.50", sha256="9e4e3fe45eb1e4aebea63255d4956b00eb69527044a83f182cde1b43510bd342") + + depends_on("bzip2") + depends_on("jpeg") + depends_on("zlib") From 11a4b5ed69e46743636c3786147c1c1d83c09793 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sat, 10 Sep 2022 19:24:30 -0500 Subject: [PATCH 027/241] py-cartopy: add v0.21.0 (#32600) --- .../builtin/packages/py-cartopy/package.py | 62 ++++++++++--------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-cartopy/package.py b/var/spack/repos/builtin/packages/py-cartopy/package.py index 950acc91393..2e9321647a8 100644 --- a/var/spack/repos/builtin/packages/py-cartopy/package.py +++ b/var/spack/repos/builtin/packages/py-cartopy/package.py @@ -14,6 +14,7 @@ class PyCartopy(PythonPackage): maintainers = ["adamjstewart"] + version("0.21.0", sha256="ce1d3a28a132e94c89ac33769a50f81f65634ab2bd40556317e15bd6cad1ce42") version("0.20.3", sha256="0d60fa2e2fbd77c4d1f6b1f9d3b588966147f07c1b179d2d34570ac1e1b49006") version("0.20.2", sha256="4d08c198ecaa50a6a6b109d0f14c070e813defc046a83ac5d7ab494f85599e35") version("0.20.1", sha256="91f87b130e2574547a20cd634498df97d797abd12dcfd0235bc0cdbcec8b05e3") @@ -33,39 +34,40 @@ class PyCartopy(PythonPackage): ) variant("plotting", default=False, description="Add plotting functionality") - # setup.py - depends_on("python@2.7:2.8,3.5:", type=("build", "run")) - depends_on("python@3.5:", when="@0.19:", type=("build", "run")) - depends_on("python@3.7:", when="@0.20:", type=("build", "run")) - depends_on("geos@3.3.3:") - depends_on("geos@3.7.2:", when="@0.20:") - depends_on("proj@4.9:5", when="@:0.16") - depends_on("proj@4.9:7", when="@0.17:0.19") - depends_on("proj@8:", when="@0.20:") - # pyproject.toml - depends_on("py-setuptools@0.7.2:", type="build") depends_on("py-setuptools@40.6:", when="@0.19:", type="build") - depends_on("py-cython", type="build") - depends_on("py-cython@0.15.1:", when="@0.17:", type="build") - depends_on("py-cython@0.28:", when="@0.18:", type="build") - depends_on("py-cython@0.29.2:", when="@0.19:", type="build") + depends_on("py-setuptools@0.7.2:", type="build") depends_on("py-cython@0.29.13:", when="@0.20:", type="build") - depends_on("py-setuptools-scm", when="@0.19:", type="build") + depends_on("py-cython@0.29.2:", when="@0.19:", type="build") + depends_on("py-cython@0.28:", when="@0.18:", type="build") + depends_on("py-cython@0.15.1:", when="@0.17:", type="build") + depends_on("py-cython", type="build") depends_on("py-setuptools-scm@7:", when="@0.20.3:", type="build") + depends_on("py-setuptools-scm", when="@0.19:", type="build") depends_on("py-setuptools-scm-git-archive", when="@0.19:0.20.2", type="build") + # setup.py + depends_on("python@3.8:", when="@0.21:", type=("build", "run")) + depends_on("python@3.7:", when="@0.20:", type=("build", "run")) + depends_on("python@3.5:", when="@0.19:", type=("build", "run")) + depends_on("python@2.7:2.8,3.5:", type=("build", "run")) + depends_on("geos@3.7.2:", when="@0.20:") + depends_on("geos@3.3.3:") + depends_on("proj@8:", when="@0.20") + depends_on("proj@4.9:7", when="@0.17:0.19") + depends_on("proj@4.9:5", when="@:0.16") + # requirements/default.txt - depends_on("py-numpy@1.6:", type=("build", "run")) - depends_on("py-numpy@1.10:", when="@0.17:", type=("build", "run")) - depends_on("py-numpy@1.13.3:", when="@0.19:", type=("build", "run")) depends_on("py-numpy@1.18:", when="@0.20:", type=("build", "run")) + depends_on("py-numpy@1.13.3:", when="@0.19:", type=("build", "run")) + depends_on("py-numpy@1.10:", when="@0.17:", type=("build", "run")) + depends_on("py-numpy@1.6:", type=("build", "run")) depends_on("py-matplotlib@3.1:", when="@0.20:", type=("build", "run")) - depends_on("py-shapely@1.5.6:", type=("build", "run")) - depends_on("py-shapely@1.6.4:", when="@0.20:", type=("build", "run")) - depends_on("py-pyshp@1.1.4:", type=("build", "run")) - depends_on("py-pyshp@2:", when="@0.19:", type=("build", "run")) + depends_on("py-shapely@1.6.4:1", when="@0.20:", type=("build", "run")) + depends_on("py-shapely@1.5.6:1", type=("build", "run")) depends_on("py-pyshp@2.1:", when="@0.20:", type=("build", "run")) + depends_on("py-pyshp@2:", when="@0.19:", type=("build", "run")) + depends_on("py-pyshp@1.1.4:", type=("build", "run")) depends_on("py-pyproj@3:", when="@0.20:", type=("build", "run")) depends_on("py-six@1.3:", when="@:0.18", type=("build", "run")) depends_on("py-futures", when="@0.18 ^python@2.7", type=("build", "run")) @@ -77,21 +79,21 @@ class PyCartopy(PythonPackage): # requirements/ows.txt with when("+ows"): - depends_on("py-owslib@0.8.11:", type="run") depends_on("py-owslib@0.18:", when="@0.20:", type="run") - depends_on("pil@1.7.8:", type="run") + depends_on("py-owslib@0.8.11:", type="run") depends_on("pil@6.1:", when="@0.20:", type="run") + depends_on("pil@1.7.8:", type="run") # requirements/plotting.txt with when("+plotting"): - depends_on("py-matplotlib@1.3:", when="@0.16", type="run") - depends_on("py-matplotlib@1.5.1:", when="@0.17:0.19", type="run") - depends_on("gdal@1.10:+python", type="run") depends_on("gdal@2.3.2:+python", when="@0.20:", type="run") - depends_on("pil@1.7.8:", type="run") + depends_on("gdal@1.10:+python", type="run") depends_on("pil@6.1:", when="@0.20:", type="run") - depends_on("py-scipy@0.10:", type="run") + depends_on("pil@1.7.8:", type="run") depends_on("py-scipy@1.3.1:", when="@0.20:", type="run") + depends_on("py-scipy@0.10:", type="run") + depends_on("py-matplotlib@1.5.1:", when="@0.17:0.19", type="run") + depends_on("py-matplotlib@1.3:", when="@0.16", type="run") patch("proj6.patch", when="@0.17.0") From 2ad91643792348dc14553a546011fd0651d71abe Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sat, 10 Sep 2022 19:25:01 -0500 Subject: [PATCH 028/241] py-pyproj: add v3.4.0 (#32599) * py-pyproj: add v3.4.0 * Remove older basemap versions --- .../builtin/packages/py-basemap/package.py | 3 -- .../builtin/packages/py-pyproj/package.py | 46 ++++++++----------- 2 files changed, 19 insertions(+), 30 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-basemap/package.py b/var/spack/repos/builtin/packages/py-basemap/package.py index c2c79148b29..d7aa03c473d 100644 --- a/var/spack/repos/builtin/packages/py-basemap/package.py +++ b/var/spack/repos/builtin/packages/py-basemap/package.py @@ -14,8 +14,6 @@ class PyBasemap(PythonPackage): homepage = "https://matplotlib.org/basemap/" version("1.2.1", sha256="3fb30424f18cd4ffd505e30fd9c810ae81b999bb92f950c76553e1abc081faa7") - version("1.2.0", sha256="bd5bf305918a2eb675939873b735238f9e3dfe6b5c290e37c41e5b082ff3639a") - version("1.0.7", sha256="e07ec2e0d63b24c9aed25a09fe8aff2598f82a85da8db74190bac81cbf104531") # Per Github issue #3813, setuptools is required at runtime in order # to make mpl_toolkits a namespace package that can span multiple @@ -23,7 +21,6 @@ class PyBasemap(PythonPackage): depends_on("py-setuptools", type=("build", "run")) depends_on("py-numpy@1.2.1:", type=("build", "run")) depends_on("py-matplotlib@1.0.0:3.0.0,3.0.2:", type=("build", "run")) - depends_on("py-pyproj@1.9.3:1", type=("build", "run"), when="@:1.2.0") # 1.2.1 is PROJ6 compatible # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=939022 depends_on("py-pyproj@1.9.3:", type=("build", "run"), when="@1.2.1:") diff --git a/var/spack/repos/builtin/packages/py-pyproj/package.py b/var/spack/repos/builtin/packages/py-pyproj/package.py index 6d431fb03f8..86e1cedf676 100644 --- a/var/spack/repos/builtin/packages/py-pyproj/package.py +++ b/var/spack/repos/builtin/packages/py-pyproj/package.py @@ -16,6 +16,7 @@ class PyPyproj(PythonPackage): maintainers = ["citibeth", "adamjstewart"] + version("3.4.0", sha256="a708445927ace9857f52c3ba67d2915da7b41a8fdcd9b8f99a4c9ed60a75eb33") version("3.1.0", sha256="67b94f4e694ae33fc90dfb7da0e6b5ed5f671dd0acc2f6cf46e9c39d56e16e1a") version("3.0.1", sha256="bfbac35490dd17f706700673506eeb8170f8a2a63fb5878171d4e6eef242d141") version("3.0.0", sha256="539e320d06e5441edadad2e2ab276e1877445eca384fc1c056b5501453d433c2") @@ -23,41 +24,32 @@ class PyPyproj(PythonPackage): version("2.6.0", sha256="977542d2f8cf2981cf3ad72cedfebcd6ac56977c7aa830d9b49fa7888b56e83d") version("2.2.0", sha256="0a4f793cc93539c2292638c498e24422a2ec4b25cb47545addea07724b2a56e5") version("2.1.3", sha256="99c52788b01a7bb9a88024bf4d40965c0a66a93d654600b5deacf644775f424d") - version( - "1.9.6", - sha256="e0c02b1554b20c710d16d673817b2a89ff94738b0b537aead8ecb2edc4c4487b", - deprecated=True, - ) - version( - "1.9.5.1", - sha256="53fa54c8fa8a1dfcd6af4bf09ce1aae5d4d949da63b90570ac5ec849efaf3ea8", - deprecated=True, - ) - # In setup.cfg and setup.py + # In pyproject.toml + depends_on("py-setuptools@61:", when="@3.4:", type="build") + depends_on("py-setuptools", type="build") + depends_on("py-cython@0.28.4:", when="@2:", type="build") + + # In setup.cfg + depends_on("python@3.8:", when="@3.3:", type=("build", "link", "run")) depends_on("python@3.7:", when="@3.1:", type=("build", "link", "run")) depends_on("python@3.6:", when="@3.0:", type=("build", "link", "run")) depends_on("python@3.5:", when="@2.3:", type=("build", "link", "run")) depends_on("python@2.7:2.8,3.5:", when="@2.2:", type=("build", "link", "run")) depends_on("python@2.6:2.8,3.3:", type=("build", "link", "run")) - - # In setup.py - # https://pyproj4.github.io/pyproj/stable/installation.html#installing-from-source - depends_on("proj") - depends_on("proj@7.2:", when="@3.0.1:") - depends_on("proj@7.2.0:7.2", when="@3.0.0") - depends_on("proj@6.2:7.0", when="@2.4:2.6") - depends_on("proj@6.1:7.0", when="@2.2:2.3") - depends_on("proj@6.0:6", when="@2.0:2.1") - depends_on("proj@:5.2", when="@:1.9") - - # In setup.py - depends_on("py-setuptools", type="build") depends_on("py-certifi", when="@3.0:", type=("build", "run")) - depends_on("py-aenum", when="@2.2.0:2.2 ^python@:3.5", type=("build", "run")) + depends_on("py-aenum", when="@2.2 ^python@:3.5", type=("build", "run")) - # In pyproject.toml - depends_on("py-cython@0.28.4:", when="@2.0:") + # https://pyproj4.github.io/pyproj/stable/installation.html#installing-from-source + depends_on("proj@8.2:", when="@3.4:") + depends_on("proj@8.0:9.1", when="@3.3") + depends_on("proj@7.2:9.1", when="@3.0.1:3.2") + depends_on("proj@7.2", when="@3.0.0") + depends_on("proj@6.2:7", when="@2.4:2.6") + depends_on("proj@6.1:7", when="@2.2:2.3") + depends_on("proj@6.0:7", when="@2.0:2.1") + depends_on("proj@:5.2", when="@:1.9") + depends_on("proj") def setup_build_environment(self, env): # https://pyproj4.github.io/pyproj/stable/installation.html#pyproj-build-environment-variables From 76b4e5cc51f7b88cea65873a71d8cd31c12bd9bf Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sat, 10 Sep 2022 19:43:45 -0500 Subject: [PATCH 029/241] py-torchgeo: add v0.3.1 (#32582) --- .../builtin/packages/py-torchgeo/package.py | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-torchgeo/package.py b/var/spack/repos/builtin/packages/py-torchgeo/package.py index d91b53d5e89..5fc2d4b7ea7 100644 --- a/var/spack/repos/builtin/packages/py-torchgeo/package.py +++ b/var/spack/repos/builtin/packages/py-torchgeo/package.py @@ -7,10 +7,10 @@ class PyTorchgeo(PythonPackage): - """TorchGeo: datasets, transforms, and models for geospatial data. + """TorchGeo: datasets, samplers, transforms, and pre-trained models for geospatial data. - TorchGeo is a PyTorch domain library, similar to torchvision, that provides - datasets, transforms, samplers, and pre-trained models specific to geospatial data. + TorchGeo is a PyTorch domain library, similar to torchvision, providing datasets, samplers, + transforms, and pre-trained models specific to geospatial data. """ homepage = "https://github.com/microsoft/torchgeo" @@ -20,6 +20,7 @@ class PyTorchgeo(PythonPackage): maintainers = ["adamjstewart", "calebrob6"] version("main", branch="main") + version("0.3.1", sha256="ba7a716843575d173abab383c6cc2d5fc8faf5834472f16a4abe1b932040ece5") version("0.3.0", sha256="3d98fd58e6678555592a596bd079ed5a8b4959996ff7718d7caa48d47815b6b0") version("0.2.1", sha256="218bd5aed7680244688dbf0f1398f5251ad243267eb19a6a7332668ac779a1cc") version("0.2.0", sha256="968c4bf68c7e487bf495f2f306d8bb0f5824eb67e24b26772a510e753e04ba4c") @@ -34,7 +35,8 @@ class PyTorchgeo(PythonPackage): # Required dependencies depends_on("python@3.7:3+bz2", when="@0.3:", type=("build", "run")) depends_on("python@3.6:3+bz2", when="@:0.2", type=("build", "run")) - depends_on("py-setuptools@42:63", type="build") + depends_on("py-setuptools@42:65", when="@0.3.1:", type="build") + depends_on("py-setuptools@42:63", when="@:0.3.0", type="build") depends_on("py-dataclasses", when="@0.2 ^python@3.6", type=("build", "run")) depends_on("py-einops@0.3:0.4", type=("build", "run")) depends_on("py-fiona@1.8:1", when="@0.3:", type=("build", "run")) @@ -58,7 +60,8 @@ class PyTorchgeo(PythonPackage): depends_on("py-rtree@0.5:1", when="@:0.2.0", type=("build", "run")) depends_on("py-scikit-learn@0.21:1", when="@0.3:", type=("build", "run")) depends_on("py-scikit-learn@0.18:1", when="@:0.2", type=("build", "run")) - depends_on("py-segmentation-models-pytorch@0.2", type=("build", "run")) + depends_on("py-segmentation-models-pytorch@0.2:0.3", when="@0.3.1:", type=("build", "run")) + depends_on("py-segmentation-models-pytorch@0.2", when="@:0.3.0", type=("build", "run")) depends_on("py-shapely@1.3:1", type=("build", "run")) depends_on("py-timm@0.4.12:0.4", type=("build", "run")) depends_on("py-torch@1.9:1", when="@0.2:", type=("build", "run")) @@ -74,6 +77,7 @@ class PyTorchgeo(PythonPackage): with when("+datasets"): depends_on("py-h5py@2.6:3", type="run") depends_on("py-laspy@2", when="@0.2:", type="run") + depends_on("gdal+openjpeg", when="@0.3.1:", type="run") depends_on("libtiff+jpeg+zlib", type="run") depends_on("open3d@0.11.2:0.14+python", when="@0.2:", type="run") depends_on("opencv@3.4.2.17:4+python3+imgcodecs+tiff+jpeg+png", type="run") @@ -87,7 +91,8 @@ class PyTorchgeo(PythonPackage): depends_on("py-zipfile-deflate64@0.2", when="@0.2.1:", type="run") with when("+docs"): - depends_on("py-ipywidgets@7", type="run") + depends_on("py-ipywidgets@7:8", when="@0.3.1:", type="run") + depends_on("py-ipywidgets@7", when="@:0.3.0", type="run") depends_on("py-nbsphinx@0.8.5:0.8", type="run") depends_on("py-pytorch-sphinx-theme", type="run") depends_on("py-sphinx@4:5", type="run") @@ -95,12 +100,16 @@ class PyTorchgeo(PythonPackage): with when("+style"): depends_on("py-black@21.8:22+jupyter", when="@0.3:", type="run") depends_on("py-black@21:22", when="@:0.2", type="run") - depends_on("py-flake8@3.8:4", type="run") + depends_on("py-flake8@3.8:5", when="@0.3.1:", type="run") + depends_on("py-flake8@3.8:4", when="@:0.3.0", type="run") depends_on("py-isort@5.8:5+colors", type="run") depends_on("py-pydocstyle@6.1:6+toml", type="run") + depends_on("py-pyupgrade@1.24:2", when="@0.3:", type="run") with when("+tests"): - depends_on("py-mypy@0.900:0.961", type="run") - depends_on("py-nbmake@0.1:1.1", type="run") + depends_on("py-mypy@0.900:0.971", when="@0.3.1:", type="run") + depends_on("py-mypy@0.900:0.961", when="@:0.3.0", type="run") + depends_on("py-nbmake@0.1:1", when="@0.3.1:", type="run") + depends_on("py-nbmake@0.1:1.1", when="@:0.3.0", type="run") depends_on("py-pytest@6.1.2:7", type="run") depends_on("py-pytest-cov@2.4:3", type="run") From 2caf449b8b334eee62f0ff6f4cae3764deb72bc5 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sat, 10 Sep 2022 19:58:11 -0500 Subject: [PATCH 030/241] py-numpy: add v1.23.3 (#32590) --- var/spack/repos/builtin/packages/py-numpy/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py index 72d18c04df3..840e05a9d67 100644 --- a/var/spack/repos/builtin/packages/py-numpy/package.py +++ b/var/spack/repos/builtin/packages/py-numpy/package.py @@ -23,6 +23,7 @@ class PyNumpy(PythonPackage): maintainers = ["adamjstewart", "rgommers"] version("main", branch="main") + version("1.23.3", sha256="51bf49c0cd1d52be0a240aa66f3458afc4b95d8993d2d04f0d91fa60c10af6cd") version("1.23.2", sha256="b78d00e48261fbbd04aa0d7427cf78d18401ee0abd89c7559bbf422e5b1c7d01") version("1.23.1", sha256="d748ef349bfef2e1194b59da37ed5a29c19ea8d7e6342019921ba2ba4fd8b624") version("1.23.0", sha256="bd3fa4fe2e38533d5336e1272fc4e765cabbbde144309ccee8675509d5cd7b05") From d4ec0da49acab19621bd113a1acb7054eae04869 Mon Sep 17 00:00:00 2001 From: "Mark W. Krentel" Date: Mon, 12 Sep 2022 01:35:37 -0500 Subject: [PATCH 031/241] hpctoolkit: add yaml-cpp as dependency for develop (#32538) --- var/spack/repos/builtin/packages/hpctoolkit/package.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py index 659e24d1b56..00abd1d09e3 100644 --- a/var/spack/repos/builtin/packages/hpctoolkit/package.py +++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py @@ -49,7 +49,7 @@ class Hpctoolkit(AutotoolsPackage): variant( "cray", default=False, - description="Build for Cray compute nodes, including " "hpcprof-mpi.", + description="Build for Cray compute nodes, including hpcprof-mpi.", ) variant("mpi", default=False, description="Build hpcprof-mpi, the MPI version of hpcprof.") @@ -67,7 +67,7 @@ class Hpctoolkit(AutotoolsPackage): variant( "all-static", default=False, - description="Needed when MPICXX builds static binaries " "for the compute nodes.", + description="Needed when MPICXX builds static binaries for the compute nodes.", ) variant( @@ -120,6 +120,7 @@ class Hpctoolkit(AutotoolsPackage): depends_on("mbedtls+pic", when="@:2022.03") depends_on("xerces-c transcoder=iconv") depends_on("xz+pic", type="link") + depends_on("yaml-cpp@0.7.0:", when="@develop") depends_on("zlib+shared") depends_on("cuda", when="+cuda") @@ -215,6 +216,9 @@ def configure_args(self): else: args.append("--with-perfmon=%s" % spec["libpfm4"].prefix) + if spec.satisfies("@develop"): + args.append("--with-yaml-cpp=%s" % spec["yaml-cpp"].prefix) + if "+cuda" in spec: args.append("--with-cuda=%s" % spec["cuda"].prefix) From 7382a3ca8976c3aaebeb0dd0aca25eb6e254c658 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Marcos?= Date: Mon, 12 Sep 2022 03:44:05 -0300 Subject: [PATCH 032/241] distbench: add new package (#32605) --- .../builtin/packages/distbench/package.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 var/spack/repos/builtin/packages/distbench/package.py diff --git a/var/spack/repos/builtin/packages/distbench/package.py b/var/spack/repos/builtin/packages/distbench/package.py new file mode 100644 index 00000000000..6c4f499d4b0 --- /dev/null +++ b/var/spack/repos/builtin/packages/distbench/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Distbench(MakefilePackage): + """Distbench is a tool for synthesizing a variety of network traffic patterns used in + distributed systems, and evaluating their performance across multiple networking stacks.""" + + homepage = "https://github.com/google/distbench" + url = "https://github.com/google/distbench/archive/refs/tags/v1.0rc4.tar.gz" + + version("1.0rc4", sha256="adc8da85890219800207d0d4cd7ffd63193d2c4007dba7c44cf545cc13675ff7") + + depends_on("bazel", type="build") From 50c031e6aa83574f27a7c7a497416d0535dd93da Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 12 Sep 2022 02:45:35 -0500 Subject: [PATCH 033/241] nettle: add v3.8.1 (#32523) --- var/spack/repos/builtin/packages/nettle/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/nettle/package.py b/var/spack/repos/builtin/packages/nettle/package.py index 5adb24f023c..3e4d587a3df 100644 --- a/var/spack/repos/builtin/packages/nettle/package.py +++ b/var/spack/repos/builtin/packages/nettle/package.py @@ -13,6 +13,7 @@ class Nettle(AutotoolsPackage, GNUMirrorPackage): homepage = "https://www.lysator.liu.se/~nisse/nettle/" gnu_mirror_path = "nettle/nettle-3.3.tar.gz" + version("3.8.1", sha256="364f3e2b77cd7dcde83fd7c45219c834e54b0c75e428b6f894a23d12dd41cbfe") version("3.4.1", sha256="f941cf1535cd5d1819be5ccae5babef01f6db611f9b5a777bae9c7604b8a92ad") version("3.4", sha256="ae7a42df026550b85daca8389b6a60ba6313b0567f374392e54918588a411e94") version("3.3", sha256="46942627d5d0ca11720fec18d81fc38f7ef837ea4197c1f630e71ce0d470b11e") From cb2cdb7875fd2b0941e75b0acaa0aa4997833dc5 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 12 Sep 2022 03:27:16 -0500 Subject: [PATCH 034/241] py-tensorflow-metadata: add v1.10.0 (#32545) --- .../packages/py-tensorflow-metadata/package.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-tensorflow-metadata/package.py b/var/spack/repos/builtin/packages/py-tensorflow-metadata/package.py index f8a97552d2c..363579b7a5d 100644 --- a/var/spack/repos/builtin/packages/py-tensorflow-metadata/package.py +++ b/var/spack/repos/builtin/packages/py-tensorflow-metadata/package.py @@ -19,16 +19,15 @@ class PyTensorflowMetadata(PythonPackage): # Only available as a wheel on PyPI url = "https://github.com/tensorflow/metadata/archive/refs/tags/v1.5.0.tar.gz" - version( - "1.5.0", - sha256="f0ec8aaf62fd772ef908efe4ee5ea3bc0d67dcbf10ae118415b7b206a1d61745", - ) + version("1.10.0", sha256="e7aa81aa01433e2a75c11425affd55125b64f384baf96b71eeb3a88dca8cf2ae") + version("1.5.0", sha256="f0ec8aaf62fd772ef908efe4ee5ea3bc0d67dcbf10ae118415b7b206a1d61745") depends_on("bazel@0.24.1:", type="build") depends_on("python@3.7:3", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-absl-py@0.9:0.12", type=("build", "run")) - depends_on("py-googleapis-common-protos@1.52.0:1", type=("build", "run")) + depends_on("py-absl-py@0.9:1", when="@1.6:", type=("build", "run")) + depends_on("py-absl-py@0.9:0.12", when="@:1.5", type=("build", "run")) + depends_on("py-googleapis-common-protos@1.52:1", type=("build", "run")) depends_on("py-protobuf@3.13:3", type=("build", "run")) def setup_build_environment(self, env): From 34a7df9ea05a39b1a53d16baad2a1f35c430b011 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Mon, 12 Sep 2022 10:34:54 +0200 Subject: [PATCH 035/241] Fix encoding issues with py-cylp (#32608) fixes #32607 The package contains character that have encoding issues with Python 2.7. --- var/spack/repos/builtin/packages/py-cylp/package.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-cylp/package.py b/var/spack/repos/builtin/packages/py-cylp/package.py index b3d96d686a3..9218a44e906 100644 --- a/var/spack/repos/builtin/packages/py-cylp/package.py +++ b/var/spack/repos/builtin/packages/py-cylp/package.py @@ -9,9 +9,10 @@ class PyCylp(PythonPackage): """A Python interface for CLP, CBC, and CGL. - CyLP is a Python interface to COIN-OR’s Linear and mixed-integer program - solvers (CLP, CBC, and CGL). CyLP’s unique feature is that you can use it - to alter the solution process of the solvers from within Python.""" + CyLP is a Python interface to COIN-OR's Linear and mixed-integer program + solvers (CLP, CBC, and CGL). CyLP's unique feature is that you can use it + to alter the solution process of the solvers from within Python. + """ homepage = "https://github.com/coin-or/cylp" pypi = "cylp/cylp-0.91.5.tar.gz" From 40ee78f6e84075a8a93d783f23afe5ca190d2c45 Mon Sep 17 00:00:00 2001 From: Stephen Sachs Date: Mon, 12 Sep 2022 10:40:19 +0200 Subject: [PATCH 036/241] GPCNeT: add new package (#32593) Co-authored-by: Stephen Sachs --- .../repos/builtin/packages/gpcnet/package.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 var/spack/repos/builtin/packages/gpcnet/package.py diff --git a/var/spack/repos/builtin/packages/gpcnet/package.py b/var/spack/repos/builtin/packages/gpcnet/package.py new file mode 100644 index 00000000000..b97f9a89797 --- /dev/null +++ b/var/spack/repos/builtin/packages/gpcnet/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack.package import * + + +class Gpcnet(MakefilePackage): + """Global Performance and Congestion Network Test - GPCNeT.""" + + homepage = "https://github.com/netbench/GPCNET" + git = "https://github.com/netbench/GPCNET.git" + version("master") + + depends_on("mpi", type=("build", "run")) + + @property + def build_targets(self): + spec = self.spec + return ["all", "CC={}".format(spec["mpi"].mpicc)] + + def install(self, spec, prefix): + mkdir(prefix.bin) + install("network_load_test", prefix.bin) + install("network_test", prefix.bin) From 17b98f6b1f27b7b7b642c7fafb3094091d355275 Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Mon, 12 Sep 2022 10:41:29 +0200 Subject: [PATCH 037/241] pika: add v0.8.0 (#32577) --- var/spack/repos/builtin/packages/pika/package.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/pika/package.py b/var/spack/repos/builtin/packages/pika/package.py index 7c77e94b529..5a713417fcd 100644 --- a/var/spack/repos/builtin/packages/pika/package.py +++ b/var/spack/repos/builtin/packages/pika/package.py @@ -17,6 +17,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/pika-org/pika.git" maintainers = ["msimberg", "albestro", "teonnik", "aurianer"] + version("0.8.0", sha256="058e82d7c8f95badabe52bbb4682d55aadf340d67ced1226c0673b4529adc182") version("0.7.0", sha256="e1bf978c88515f7af28ee47f98b795ffee521c15b39877ea4cfb405f31d507ed") version("0.6.0", sha256="cb4ebd7b92da39ec4df7b0d05923b94299d6ee2f2f49752923ffa2266ca76568") version("0.5.0", sha256="c43de7e92d04bea0ce59716756ef5f3a5a54f9e4affed872c1468632ad855f7c") @@ -63,6 +64,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage): depends_on("git", type="build") depends_on("ninja", type="build") depends_on("cmake@3.18:", type="build") + depends_on("cmake@3.22:", when="@0.8:", type="build") conflicts("%gcc@:6") conflicts("%clang@:6") @@ -83,6 +85,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage): depends_on("cuda@11:", when="+cuda") depends_on("apex", when="+apex") depends_on("tracy-client", when="+tracy") + depends_on("hip@5.2:", when="@0.8: +rocm") depends_on("rocblas", when="+rocm") depends_on("hipblas", when="+rocm") depends_on("rocsolver", when="@0.5: +rocm") @@ -129,8 +132,8 @@ def cmake_args(self): self.define("HWLOC_ROOT", spec["hwloc"].prefix), ] - # HIP support requires compiling with hipcc - if "+rocm" in self.spec: + # HIP support requires compiling with hipcc for < 0.8.0 + if "@:0.7 +rocm" in self.spec: args += [self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc)] if self.spec.satisfies("^cmake@3.21.0:3.21.2"): args += [self.define("__skip_rocmclang", True)] From dea1e12c888da87fc613110e8e86545772a42d04 Mon Sep 17 00:00:00 2001 From: Philipp Edelmann Date: Mon, 12 Sep 2022 02:58:43 -0600 Subject: [PATCH 038/241] pgplot: fix build failure when using +X (#32542) The spec was using the wrong key to find the X11 library flags. --- var/spack/repos/builtin/packages/pgplot/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/pgplot/package.py b/var/spack/repos/builtin/packages/pgplot/package.py index bd514edd563..f62ffd74a74 100644 --- a/var/spack/repos/builtin/packages/pgplot/package.py +++ b/var/spack/repos/builtin/packages/pgplot/package.py @@ -52,7 +52,7 @@ def edit(self, spec, prefix): libs = "" if "+X" in spec: - libs += " " + self.spec["X11"].libs.ld_flags + libs += " " + self.spec["libx11"].libs.ld_flags if "+png" in spec: libs += " " + self.spec["libpng"].libs.ld_flags @@ -120,7 +120,7 @@ def edit(self, spec, prefix): def setup_build_environment(self, env): if "+X" in self.spec: - env.append_flags("LIBS", self.spec["X11"].libs.ld_flags) + env.append_flags("LIBS", self.spec["libx11"].libs.ld_flags) if "+png" in self.spec: env.append_flags("LIBS", self.spec["libpng"].libs.ld_flags) From a2396c30b282bb79ab2c6d17310021260a3983d6 Mon Sep 17 00:00:00 2001 From: Auriane R <48684432+aurianer@users.noreply.github.com> Date: Mon, 12 Sep 2022 11:04:04 +0200 Subject: [PATCH 039/241] p2300: add wg21 p2300 std_execution as a package (#32531) --- .../repos/builtin/packages/p2300/package.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 var/spack/repos/builtin/packages/p2300/package.py diff --git a/var/spack/repos/builtin/packages/p2300/package.py b/var/spack/repos/builtin/packages/p2300/package.py new file mode 100644 index 00000000000..48a4d82b1fc --- /dev/null +++ b/var/spack/repos/builtin/packages/p2300/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class P2300(CMakePackage): + """The proposed C++ framework for asynchronous and parallel programming.""" + + homepage = "https://github.com/brycelelbach/wg21_p2300_std_execution" + git = "https://github.com/brycelelbach/wg21_p2300_std_execution.git" + maintainers = ["msimberg", "aurianer"] + + version("main", branch="main") + + depends_on("cmake@3.22.1:", type="build") + + conflicts("%gcc@:10") + conflicts("%clang@:13") From cd1d6a91782e6e53b626c2fa94587d568b46a7d7 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Mon, 12 Sep 2022 05:09:52 -0400 Subject: [PATCH 040/241] mpitrampoline: add v5.0.2 (#32598) --- var/spack/repos/builtin/packages/mpitrampoline/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/mpitrampoline/package.py b/var/spack/repos/builtin/packages/mpitrampoline/package.py index 4201d62f756..47149a4afef 100644 --- a/var/spack/repos/builtin/packages/mpitrampoline/package.py +++ b/var/spack/repos/builtin/packages/mpitrampoline/package.py @@ -17,6 +17,7 @@ class Mpitrampoline(CMakePackage): maintainers = ["eschnett"] version("develop", branch="main") + version("5.0.2", sha256="14e457f05d8dfbc330c9590220687d277dec154e6cb9e35859bad1d7d9993356") version("5.0.1", sha256="84c275600010339eb8561aa7c27c20cefc8db78779dfb4572397bb0ffe87e75e") version("5.0.0", sha256="3dad6350efc9adb0c53181f2593b03cc94a00dab32f9efc44366e30c50c27e93") version("4.2.0", sha256="92eaa864fb364752a89752d6962f2d20e248bdf69e433d76417a25cac9b8244b") From 9c1e916c1cdae7b82fb53985b4c47e8d11401472 Mon Sep 17 00:00:00 2001 From: Stephen Sachs Date: Mon, 12 Sep 2022 11:17:17 +0200 Subject: [PATCH 041/241] wrf: define NETCDFFPATH in case it differs from NETCDFPATH (#32548) Co-authored-by: Stephen Sachs --- .../wrf/patches/4.4/arch.postamble.patch | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/var/spack/repos/builtin/packages/wrf/patches/4.4/arch.postamble.patch b/var/spack/repos/builtin/packages/wrf/patches/4.4/arch.postamble.patch index 7a9a3de0611..bf10d119d3b 100644 --- a/var/spack/repos/builtin/packages/wrf/patches/4.4/arch.postamble.patch +++ b/var/spack/repos/builtin/packages/wrf/patches/4.4/arch.postamble.patch @@ -1,6 +1,8 @@ ---- a/arch/postamble 2022-04-26 19:33:44.000000000 +0000 -+++ b/arch/postamble 2022-08-10 20:09:45.000000000 +0000 -@@ -54,6 +54,7 @@ +diff --git a/arch/postamble b/arch/postamble +index 33bd572b..dc4f9b6c 100644 +--- a/arch/postamble ++++ b/arch/postamble +@@ -54,6 +54,7 @@ INCLUDE_MODULES = $(MODULE_SRCH_FLAG) \ -I$(WRF_SRC_ROOT_DIR)/wrftladj \ -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc \ -I$(NETCDFPATH)/include \ @@ -8,7 +10,15 @@ CONFIGURE_RTTOV_INC CONFIGURE_CTSM_INC REGISTRY = Registry CC_TOOLS_CFLAGS = CONFIGURE_NMM_CORE -@@ -94,18 +95,18 @@ +@@ -63,6 +64,7 @@ LDFLAGS = $(OMP) $(FCFLAGS) $(LDFLAGS_LOCAL) CONFIGURE_LDFLAGS + ENVCOMPDEFS = CONFIGURE_COMPILEFLAGS + CPPFLAGS = $(ARCHFLAGS) $(ENVCOMPDEFS) -I$(LIBINCLUDE) $(TRADFLAG) CONFIGURE_COMMS_INCLUDE + NETCDFPATH = CONFIGURE_NETCDF_PATH ++NETCDFFPATH = CONFIGURE_NETCDFF_PATH + HDF5PATH = CONFIGURE_HDF5_PATH + WRFPLUSPATH = CONFIGURE_WRFPLUS_PATH + RTTOVPATH = CONFIGURE_RTTOV_PATH +@@ -94,18 +96,18 @@ module_dm_rsllite : wrfio_nf : ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \ From 3d904d8e6582d1607890c1c736e4fdadbcf232f6 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 12 Sep 2022 04:17:47 -0500 Subject: [PATCH 042/241] py-tensorflow: add v2.10.0 (#32544) --- .../builtin/packages/py-keras/package.py | 15 ++++++++--- .../packages/py-tensorboard/package.py | 5 ++++ .../builtin/packages/py-tensorflow/package.py | 26 +++++++++---------- 3 files changed, 30 insertions(+), 16 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-keras/package.py b/var/spack/repos/builtin/packages/py-keras/package.py index a53f44125ff..95b1388a751 100644 --- a/var/spack/repos/builtin/packages/py-keras/package.py +++ b/var/spack/repos/builtin/packages/py-keras/package.py @@ -21,6 +21,7 @@ class PyKeras(PythonPackage): git = "https://github.com/keras-team/keras.git" url = "https://github.com/keras-team/keras/archive/refs/tags/v2.7.0.tar.gz" + version("2.10.0", sha256="b1d8d9358700f4a585455854a142d88cc987419c1638ef935b440842d593ad04") version("2.9.0", sha256="90226eaa0337573304f3e5ab44d4d9e3a65fe002776c5cbd0f65b738152c1084") version("2.8.0", sha256="5e777b0101d8385d3a90fc9056f1b2f6313f2c830d2e8181828b300c9229ec0c") version("2.7.0", sha256="7502746467ab15184e2e267f13fbb2c3f33ba24f8e02a097d229ba376dabaa04") @@ -89,9 +90,17 @@ class PyKeras(PythonPackage): depends_on("py-scipy@0.14:", type=("build", "run"), when="@2.0.8:") depends_on("py-scipy", type=("build", "run")) depends_on("py-six", type=("build", "run")) - for ver in ["2.9", "2.8", "2.7", "2.6", "2.5"]: - depends_on("py-tensorflow@" + ver, type=("build", "run"), when="@" + ver) - depends_on("py-tensorboard@" + ver, type=("build", "run"), when="@" + ver) + for minor_ver in range(5, 11): + depends_on( + "py-tensorflow@2.{}".format(minor_ver), + type=("build", "run"), + when="@2.{}".format(minor_ver), + ) + depends_on( + "py-tensorboard@2.{}".format(minor_ver), + type=("build", "run"), + when="@2.{}".format(minor_ver), + ) depends_on("py-theano", type=("build", "run"), when="@:2.0.7") # Required dependencies not listed anywhere? diff --git a/var/spack/repos/builtin/packages/py-tensorboard/package.py b/var/spack/repos/builtin/packages/py-tensorboard/package.py index fa57a55bfd9..3d4c88ac4e1 100644 --- a/var/spack/repos/builtin/packages/py-tensorboard/package.py +++ b/var/spack/repos/builtin/packages/py-tensorboard/package.py @@ -17,6 +17,11 @@ class PyTensorboard(PythonPackage): maintainers = ["aweits"] + version( + "2.10.0", + sha256="76c91a5e8959cd2208cc32cb17a0cb002badabb66a06ac2af02a7810f49a59e3", + expand=False, + ) version( "2.9.1", sha256="baa727f791776f9e5841d347127720ceed4bbd59c36b40604b95fb2ae6029276", diff --git a/var/spack/repos/builtin/packages/py-tensorflow/package.py b/var/spack/repos/builtin/packages/py-tensorflow/package.py index fdfefccc2f0..d6380bee014 100644 --- a/var/spack/repos/builtin/packages/py-tensorflow/package.py +++ b/var/spack/repos/builtin/packages/py-tensorflow/package.py @@ -30,6 +30,7 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage): maintainers = ["adamjstewart", "aweits"] import_modules = ["tensorflow"] + version("2.10.0", sha256="b5a1bb04c84b6fe1538377e5a1f649bb5d5f0b2e3625a3c526ff3a8af88633e8") version("2.9.2", sha256="8cd7ed82b096dc349764c3369331751e870d39c86e73bbb5374e1664a59dcdf7") version("2.9.1", sha256="6eaf86ead73e23988fe192da1db68f4d3828bcdd0f3a9dc195935e339c95dbdc") version("2.9.0", sha256="8087cb0c529f04a4bfe480e49925cd64a904ad16d8ec66b98e2aacdfd53c80ff") @@ -155,13 +156,10 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage): # https://github.com/tensorflow/tensorflow/issues/33374 depends_on("python@:3.7", type=("build", "run"), when="@:2.1") - # TODO: Older versions of TensorFlow don't list the viable version range, - # just the minimum version of bazel that will work. The latest version of - # bazel doesn't seem to work, so for now we force them to use min version. - # Need to investigate further. - + # See .bazelversion + depends_on("bazel@5.1.1", type="build", when="@2.10:") # See _TF_MIN_BAZEL_VERSION and _TF_MAX_BAZEL_VERSION in configure.py - depends_on("bazel@4.2.2:5.99.0", type="build", when="@2.9:") + depends_on("bazel@4.2.2:5.99.0", type="build", when="@2.9") depends_on("bazel@4.2.1:4.99.0", type="build", when="@2.8") depends_on("bazel@3.7.2:4.99.0", type="build", when="@2.7") depends_on("bazel@3.7.2:3.99.0", type="build", when="@2.5:2.6") @@ -201,7 +199,8 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage): depends_on("py-astunparse@1.6:", type=("build", "run"), when="@2.7:") depends_on("py-astunparse@1.6.3:1.6", type=("build", "run"), when="@2.4:2.6") depends_on("py-astunparse@1.6.3", type=("build", "run"), when="@2.2:2.3") - depends_on("py-flatbuffers@1.12:1", type=("build", "run"), when="@2.9:") + depends_on("py-flatbuffers@2:", type=("build", "run"), when="@2.10:") + depends_on("py-flatbuffers@1.12:1", type=("build", "run"), when="@2.9") depends_on("py-flatbuffers@1.12:", type=("build", "run"), when="@2.8") depends_on("py-flatbuffers@1.12:2", type=("build", "run"), when="@2.7") depends_on("py-flatbuffers@1.12", type=("build", "run"), when="@2.4:2.6") @@ -249,8 +248,8 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage): depends_on("py-numpy@1.11.0:1.14.5", type=("build", "run"), when="@0.11:1.3") depends_on("py-numpy@1.10.1:1.14.5", type=("build", "run"), when="@0.7.1:0.10 platform=darwin") depends_on("py-numpy@1.8.2:1.14.5", type=("build", "run"), when="@0.5:0.10") - depends_on("py-opt-einsum@3.3", type=("build", "run"), when="@2.4:2.6") depends_on("py-opt-einsum@2.3.2:", type=("build", "run"), when="@1.15:2.3,2.7:") + depends_on("py-opt-einsum@3.3", type=("build", "run"), when="@2.4:2.6") depends_on("py-packaging", type=("build", "run"), when="@2.9:") depends_on("py-protobuf@3.9.2:", type=("build", "run"), when="@2.3:") depends_on("py-protobuf@3.8.0:", type=("build", "run"), when="@2.1:2.2") @@ -310,11 +309,12 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage): depends_on("py-grpcio@1.32", type=("build", "run"), when="@2.4") depends_on("py-grpcio@1.8.6:", type=("build", "run"), when="@1.6:2.3") - depends_on("py-tensorboard@2.9", type=("build", "run"), when="@2.9") - depends_on("py-tensorboard@2.8", type=("build", "run"), when="@2.8") - depends_on("py-tensorboard@2.7", type=("build", "run"), when="@2.7") - depends_on("py-tensorboard@2.6", type=("build", "run"), when="@2.6") - depends_on("py-tensorboard@2.5", type=("build", "run"), when="@2.5") + for minor_ver in range(5, 11): + depends_on( + "py-tensorboard@2.{}".format(minor_ver), + type=("build", "run"), + when="@2.{}".format(minor_ver), + ) # TODO: is this still true? We now install tensorboard from wheel for all versions # depends_on('py-tensorboard', when='@:2.4') # circular dep # depends_on('py-tensorflow-estimator') # circular dep From 0bc9dbe6f81003d4793460636d3147b6dfb33c82 Mon Sep 17 00:00:00 2001 From: Larry Knox Date: Mon, 12 Sep 2022 04:18:05 -0500 Subject: [PATCH 043/241] Add spack package hdf5-vol-cache. (#32449) * Add spack package hdf5-vol-cache. * Style updates. * Update var/spack/repos/builtin/packages/hdf5-vol-cache/package.py * Remove outdated hdf5-cmake package options. --- .../packages/hdf5-vol-cache/package.py | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 var/spack/repos/builtin/packages/hdf5-vol-cache/package.py diff --git a/var/spack/repos/builtin/packages/hdf5-vol-cache/package.py b/var/spack/repos/builtin/packages/hdf5-vol-cache/package.py new file mode 100644 index 00000000000..77cff2c3cc4 --- /dev/null +++ b/var/spack/repos/builtin/packages/hdf5-vol-cache/package.py @@ -0,0 +1,32 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack.package import * + + +class Hdf5VolCache(CMakePackage): + """Package for HDF5 cache VOL.""" + + homepage = "https://vol-cache.readthedocs.io" + git = "https://github.com/hpc-io/vol-cache.git" + + maintainers = ["hyoklee", "lrknox"] + + version("default", branch="develop") + version("v1.0", tag="v1.0") + + depends_on("hdf5-vol-async") + + def cmake_args(self): + """Populate cmake arguments for HDF5 VOL.""" + args = [ + self.define("BUILD_SHARED_LIBS", True), + self.define("BUILD_TESTING", self.run_tests), + ] + return args + + def check(self): + if self.run_tests: + with working_dir(self.build_directory): + make("test") From f7fbfc54b341b8bda3e30cb196c1b71e2ec3f68a Mon Sep 17 00:00:00 2001 From: Andrew W Elble Date: Mon, 12 Sep 2022 05:20:16 -0400 Subject: [PATCH 044/241] routinator: add new package (#32532) --- .../builtin/packages/routinator/package.py | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 var/spack/repos/builtin/packages/routinator/package.py diff --git a/var/spack/repos/builtin/packages/routinator/package.py b/var/spack/repos/builtin/packages/routinator/package.py new file mode 100644 index 00000000000..c3dec353fd6 --- /dev/null +++ b/var/spack/repos/builtin/packages/routinator/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Routinator(Package): + """An RPKI Validator and RTR server written in Rust""" + + homepage = "https://nlnetlabs.nl/projects/rpki/about/" + url = "https://github.com/NLnetLabs/routinator/archive/refs/tags/v0.11.2.tar.gz" + + maintainers = ["aweits"] + + version( + "0.11.2", + sha256="00f825c53168592da0285e8dbd228018e77248d458214a2c0f86cd0ca45438f5", + ) + + depends_on("rust@1.56:") + + def install(self, spec, prefix): + cargo = which("cargo") + cargo("install", "--root", prefix, "--path", ".") From 7a93eddf1c69e59a3f0f33729f9c57eb50d81df1 Mon Sep 17 00:00:00 2001 From: Sergey Kosukhin Date: Mon, 12 Sep 2022 11:27:35 +0200 Subject: [PATCH 045/241] gcc: add support for the D language (GDC) (#32330) --- .../repos/builtin/packages/gcc/package.py | 160 +++++++++++++++++- 1 file changed, 157 insertions(+), 3 deletions(-) diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py index 44e5c8f531b..c7d0b0b0bf7 100644 --- a/var/spack/repos/builtin/packages/gcc/package.py +++ b/var/spack/repos/builtin/packages/gcc/package.py @@ -87,13 +87,17 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): version("4.5.4", sha256="eef3f0456db8c3d992cbb51d5d32558190bc14f3bc19383dd93acc27acc6befc") # We specifically do not add 'all' variant here because: - # (i) Ada, Go, Jit, and Objective-C++ are not default languages. + # (i) Ada, D, Go, Jit, and Objective-C++ are not default languages. # In that respect, the name 'all' is rather misleading. # (ii) Languages other than c,c++,fortran are prone to configure bug in GCC # For example, 'java' appears to ignore custom location of zlib # (iii) meaning of 'all' changes with GCC version, i.e. 'java' is not part # of gcc7. Correctly specifying conflicts() and depends_on() in such a # case is a PITA. + # + # Also note that some languages get enabled by the configure scripts even if not listed in the + # arguments. For example, c++ is enabled when the bootstrapping is enabled and lto is enabled + # when the link time optimization support is enabled. variant( "languages", default="c,c++,fortran", @@ -102,6 +106,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): "brig", "c", "c++", + "d", "fortran", "go", "java", @@ -234,6 +239,45 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): # See https://gcc.gnu.org/gcc-5/changes.html conflicts("languages=jit", when="@:4") + with when("languages=d"): + # The very first version of GDC that became part of GCC already supported version 2.076 of + # the language and runtime. + # See https://wiki.dlang.org/GDC#Status + provides("D@2") + + # Support for the D programming language has been added to GCC 9. + # See https://gcc.gnu.org/gcc-9/changes.html#d + conflicts("@:8", msg="support for D has been added in GCC 9.1") + + # Versions of GDC prior to 12 can be built with an ISO C++11 compiler. Starting version 12, + # the D frontend requires a working GDC. Moreover, it is strongly recommended to use an + # older version of GDC to build GDC. + # See https://gcc.gnu.org/install/prerequisites.html#GDC-prerequisite + with when("@12:"): + # All versions starting 12 have to be built GCC: + for c in spack.compilers.supported_compilers(): + if c != "gcc": + conflicts("%{0}".format(c)) + + # And it has to be GCC older than the version we build: + vv = ["11", "12.1.0", "12.2.0"] + for prev_v, curr_v in zip(vv, vv[1:]): + conflicts( + "%gcc@{0}:".format(curr_v), + when="@{0}".format(curr_v), + msg="'gcc@{0} languages=d' requires '%gcc@:{1}' " + "with the D language support".format(curr_v, prev_v), + ) + + # In principle, it is possible to have GDC even with GCC 5. + # See https://github.com/D-Programming-GDC/gdc + # We, however, require at least the oldest version that officially supports GDC. It is + # also a good opportunity to tell the users that they need a working GDC: + conflicts( + "%gcc@:8", + msg="'gcc@12: languages=d' requires '%gcc@9:' with the D language support", + ) + with when("+nvptx"): depends_on("cuda") resource( @@ -260,6 +304,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): conflicts("languages=jit") conflicts("languages=objc") conflicts("languages=obj-c++") + conflicts("languages=d") # NVPTX build disables bootstrap conflicts("+bootstrap") @@ -383,7 +428,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): @classproperty def executables(cls): - names = [r"gcc", r"[^\w]?g\+\+", r"gfortran"] + names = [r"gcc", r"[^\w]?g\+\+", r"gfortran", r"gdc"] suffixes = [r"", r"-mp-\d+\.\d", r"-\d+\.\d", r"-\d+", r"\d\d"] return [r"".join(x) for x in itertools.product(names, suffixes)] @@ -443,7 +488,14 @@ def determine_version(cls, exe): @classmethod def determine_variants(cls, exes, version_str): languages, compilers = set(), {} - for exe in exes: + # There are often at least two copies (not symlinks) of each compiler executable in the + # same directory: one with a canonical name, e.g. "gfortran", and another one with the + # target prefix, e.g. "x86_64-pc-linux-gnu-gfortran". There also might be a copy of "gcc" + # with the version suffix, e.g. "x86_64-pc-linux-gnu-gcc-6.3.0". To ensure the consistency + # of values in the "compilers" dictionary (i.e. we prefer all of them to reference copies + # with canonical names if possible), we iterate over the executables in the reversed sorted + # order: + for exe in sorted(exes, reverse=True): basename = os.path.basename(exe) if "g++" in basename: languages.add("c++") @@ -454,6 +506,9 @@ def determine_variants(cls, exes, version_str): elif "gcc" in basename: languages.add("c") compilers["c"] = exe + elif "gdc" in basename: + languages.add("d") + compilers["d"] = exe variant_str = "languages={0}".format(",".join(languages)) return variant_str, {"compilers": compilers} @@ -469,6 +524,7 @@ def validate_detected_spec(cls, spec, extra_attributes): for constraint, key in { "languages=c": "c", "languages=c++": "cxx", + "languages=d": "d", "languages=fortran": "fortran", }.items(): if spec.satisfies(constraint, strict=True): @@ -720,6 +776,18 @@ def configure_args(self): options.append("--with-boot-ldflags=" + boot_ldflags) options.append("--with-build-config=spack") + if "languages=d" in spec: + # Phobos is the standard library for the D Programming Language. The documentation says + # that on some targets, 'libphobos' is not enabled by default, but compiles and works + # if '--enable-libphobos' is used. Specifics are documented for affected targets. + # See https://gcc.gnu.org/install/prerequisites.html#GDC-prerequisite + # Unfortunately, it is unclear where exactly the aforementioned specifics are + # documented but GDC seems to be unusable without the library, therefore we enable it + # explicitly: + options.append("--enable-libphobos") + if spec.satisfies("@12:"): + options.append("GDC={0}".format(self.detect_gdc())) + return options # run configure/make/make(install) for the nvptx-none target @@ -893,3 +961,89 @@ def setup_run_environment(self, env): env.set(lang.upper(), abspath) # Stop searching filename/regex combos for this language break + + def detect_gdc(self): + """Detect and return the path to GDC that belongs to the same instance of GCC that is used + by self.compiler. + + If the path cannot be detected, raise InstallError with recommendations for the users on + how to circumvent the problem. + + Should be use only if self.spec.satisfies("@12: languages=d") + """ + # Detect GCC package in the directory of the GCC compiler + # or in the $PATH if self.compiler.cc is not an absolute path: + from spack.detection import by_executable + + compiler_dir = os.path.dirname(self.compiler.cc) + detected_packages = by_executable( + [self.__class__], path_hints=([compiler_dir] if os.path.isdir(compiler_dir) else None) + ) + + # We consider only packages that satisfy the following constraint: + required_spec = Spec("languages=c,c++,d") + candidate_specs = [ + p.spec + for p in filter( + lambda p: p.spec.satisfies(required_spec), detected_packages.get(self.name, ()) + ) + ] + + if candidate_specs: + # We now need to filter specs that match the compiler version: + compiler_spec = Spec(repr(self.compiler.spec)) + + # First, try to filter specs that satisfy the compiler spec: + new_candidate_specs = list( + filter(lambda s: s.satisfies(compiler_spec), candidate_specs) + ) + + # The compiler version might be more specific than what we can detect. For example, the + # user might have "gcc@10.2.1-sys" as the compiler spec in compilers.yaml. In that + # case, we end up with an empty list of candidates. To circumvent the problem, we try + # to filter specs that are satisfied by the compiler spec: + if not new_candidate_specs: + new_candidate_specs = list( + filter(lambda s: compiler_spec.satisfies(s), candidate_specs) + ) + + candidate_specs = new_candidate_specs + + error_nl = "\n " # see SpackError.__str__() + + if not candidate_specs: + raise InstallError( + "Cannot detect GDC", + long_msg="Starting version 12, the D frontend requires a working GDC." + "{0}You can install it with Spack by running:" + "{0}{0}spack install gcc@9:11 languages=c,c++,d" + "{0}{0}Once that has finished, you will need to add it to your compilers.yaml file" + "{0}and use it to install this spec (i.e. {1} ...).".format( + error_nl, self.spec.format("{name}{@version} {variants.languages}") + ), + ) + elif len(candidate_specs) == 0: + return candidate_specs[0].extra_attributes["compilers"]["d"] + else: + # It is rather unlikely to end up here but let us try to resolve the ambiguity: + candidate_gdc = candidate_specs[0].extra_attributes["compilers"]["d"] + if all( + candidate_gdc == s.extra_attributes["compilers"]["d"] for s in candidate_specs[1:] + ): + # It does not matter which one we take if they are all the same: + return candidate_gdc + else: + raise InstallError( + "Cannot resolve ambiguity when detecting GDC that belongs to " + "%{0}".format(self.compiler.spec), + long_msg="The candidates are:{0}{0}{1}{0}".format( + error_nl, + error_nl.join( + "{0} (cc: {1})".format( + s.extra_attributes["compilers"]["d"], + s.extra_attributes["compilers"]["c"], + ) + for s in candidate_specs + ), + ), + ) From 1ca184c1ee19b3f170d58fb4e7df9e75c5dd2466 Mon Sep 17 00:00:00 2001 From: Jhon-Cleto <52751492+Jhon-Cleto@users.noreply.github.com> Date: Mon, 12 Sep 2022 06:30:00 -0300 Subject: [PATCH 046/241] cuda: add v11.7.1 (#32606) --- var/spack/repos/builtin/packages/cuda/package.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/var/spack/repos/builtin/packages/cuda/package.py b/var/spack/repos/builtin/packages/cuda/package.py index 4f39731cee6..01ff2863247 100644 --- a/var/spack/repos/builtin/packages/cuda/package.py +++ b/var/spack/repos/builtin/packages/cuda/package.py @@ -24,6 +24,20 @@ # format returned by platform.system() and 'arch' by platform.machine() _versions = { + "11.7.1": { + "Linux-aarch64": ( + "1607b98c30cb8efa52b9c8f564ec92d26ee1922cb677740aafacce313e544ecd", + "https://developer.download.nvidia.com/compute/cuda/11.7.1/local_installers/cuda_11.7.1_515.65.01_linux_sbsa.run", + ), + "Linux-x86_64": ( + "52286a29706549b7d0feeb0e7e3eca1b15287c436a69fa880ad385b1be3e04db", + "https://developer.download.nvidia.com/compute/cuda/11.7.1/local_installers/cuda_11.7.1_515.65.01_linux.run", + ), + "Linux-ppc64le": ( + "f59fc381cbd903da55bfea9f81534bd4d20e3db716c332be3d2c4804efc2ec6b", + "https://developer.download.nvidia.com/compute/cuda/11.7.1/local_installers/cuda_11.7.1_515.65.01_linux_ppc64le.run", + ), + }, "11.7.0": { "Linux-aarch64": ( "e777839a618ca9a3d5ad42ded43a1b6392af2321a7327635a4afcc986876a21b", From f5c0bc194f25f425d034ff4eed65a69a21fcd215 Mon Sep 17 00:00:00 2001 From: "Elsa Gonsiorowski, PhD" Date: Mon, 12 Sep 2022 05:38:05 -0400 Subject: [PATCH 047/241] SCR: add v3.0.1 (#32555) --- .../repos/builtin/packages/axl/package.py | 3 +- .../repos/builtin/packages/scr/package.py | 44 ++++++++++++------- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/var/spack/repos/builtin/packages/axl/package.py b/var/spack/repos/builtin/packages/axl/package.py index 915ed6bc629..19b76a83f8e 100644 --- a/var/spack/repos/builtin/packages/axl/package.py +++ b/var/spack/repos/builtin/packages/axl/package.py @@ -25,6 +25,7 @@ class Axl(CMakePackage): maintainers = ["CamStan", "gonsie"] version("main", branch="main") + version("0.7.1", sha256="526a055c072c85cc989beca656717e06b128f148fda8eb19d1d9b43a3325b399") version("0.7.0", sha256="840ef61eadc9aa277d128df08db4cdf6cfa46b8fcf47b0eee0972582a61fbc50") version("0.6.0", sha256="86edb35f99b63c0ffb9dd644a019a63b062923b4efc95c377e92a1b13e79f537") version("0.5.0", sha256="9f3bbb4de563896551bdb68e889ba93ea1984586961ad8c627ed766bff020acf") @@ -45,7 +46,7 @@ class Axl(CMakePackage): depends_on("zlib", type="link") depends_on("kvtree@main", when="@main") - depends_on("kvtree@1.3.0", when="@0.6.0") + depends_on("kvtree@1.3.0", when="@0.6.0:") variant( "async_api", diff --git a/var/spack/repos/builtin/packages/scr/package.py b/var/spack/repos/builtin/packages/scr/package.py index 5a4dfda834c..9f6bdc20156 100644 --- a/var/spack/repos/builtin/packages/scr/package.py +++ b/var/spack/repos/builtin/packages/scr/package.py @@ -33,10 +33,11 @@ class Scr(CMakePackage): version("legacy", branch="legacy") version( - "3.0", - sha256="e204d3e99a49efac50b4bedc7ac05f55a05f1a65429500d919900c82490532cc", + "3.0.1", + sha256="ba8f9e676aec8176ecc46c31a4f470ac95047101654de8cc88e01a1f9d95665a", preferred=True, ) + version("3.0", sha256="e204d3e99a49efac50b4bedc7ac05f55a05f1a65429500d919900c82490532cc") version( "3.0rc2", sha256="4b2a718af56b3683e428d25a2269c038e9452db734221d370e3023a491477fad", @@ -74,21 +75,14 @@ class Scr(CMakePackage): # SCR legacy is anything 2.x.x or earlier # SCR components is anything 3.x.x or later - depends_on("axl@0.4.0", when="@3.0rc1") - depends_on("er@0.0.4", when="@3.0rc1") - depends_on("kvtree@1.1.1", when="@3.0rc1") - depends_on("rankstr@0.0.3", when="@3.0rc1") - depends_on("redset@0.0.5", when="@3.0rc1") - depends_on("shuffile@0.0.4", when="@3.0rc1") - depends_on("spath@0.0.2", when="@3.0rc1") - - depends_on("axl@0.5.0:", when="@3.0rc2") - depends_on("er@0.1.0:", when="@3.0rc2") - depends_on("kvtree@1.2.0:", when="@3.0rc2") - depends_on("rankstr@0.1.0:", when="@3.0rc2") - depends_on("redset@0.1.0:", when="@3.0rc2") - depends_on("shuffile@0.1.0:", when="@3.0rc2") - depends_on("spath@0.1.0:", when="@3.0rc2") + depends_on("axl@0.7.1", when="@3.0.1:") + depends_on("er@0.2.0", when="@3.0.1:") + depends_on("kvtree@1.3.0", when="@3.0.1:") + depends_on("rankstr@0.1.0", when="@3.0.1:") + depends_on("redset@0.2.0", when="@3.0.1:") + depends_on("shuffile@0.2.0", when="@3.0.1:") + depends_on("spath@0.2.0", when="@3.0.1:") + depends_on("dtcmp@1.1.4", when="@3.0.1:") depends_on("axl@0.6.0", when="@3.0.0:") depends_on("er@0.2.0", when="@3.0.0:") @@ -99,6 +93,22 @@ class Scr(CMakePackage): depends_on("spath@0.2.0", when="@3.0.0:") depends_on("dtcmp@1.1.4", when="@3.0.0:") + depends_on("axl@0.5.0:", when="@3.0rc2") + depends_on("er@0.1.0:", when="@3.0rc2") + depends_on("kvtree@1.2.0:", when="@3.0rc2") + depends_on("rankstr@0.1.0:", when="@3.0rc2") + depends_on("redset@0.1.0:", when="@3.0rc2") + depends_on("shuffile@0.1.0:", when="@3.0rc2") + depends_on("spath@0.1.0:", when="@3.0rc2") + + depends_on("axl@0.4.0", when="@3.0rc1") + depends_on("er@0.0.4", when="@3.0rc1") + depends_on("kvtree@1.1.1", when="@3.0rc1") + depends_on("rankstr@0.0.3", when="@3.0rc1") + depends_on("redset@0.0.5", when="@3.0rc1") + depends_on("shuffile@0.0.4", when="@3.0rc1") + depends_on("spath@0.0.2", when="@3.0rc1") + # DTCMP is an optional dependency up until 3.x, required thereafter variant( "dtcmp", From 8071cc60cb62eda4d6b9862157ec5489eb6144ff Mon Sep 17 00:00:00 2001 From: Ken Raffenetti Date: Mon, 12 Sep 2022 04:38:55 -0500 Subject: [PATCH 048/241] mpich: Set minimum libfabric version to build (#32557) Starting with MPICH 3.4, we need at least libfabric 1.5 in order to build. Fixes #24394 --- var/spack/repos/builtin/packages/mpich/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py index f0dc8b0a911..a09b779e0ba 100644 --- a/var/spack/repos/builtin/packages/mpich/package.py +++ b/var/spack/repos/builtin/packages/mpich/package.py @@ -198,6 +198,7 @@ class Mpich(AutotoolsPackage, CudaPackage, ROCmPackage): # The ch3 ofi netmod results in crashes with libfabric 1.7 # See https://github.com/pmodels/mpich/issues/3665 depends_on("libfabric@:1.6", when="device=ch3 netmod=ofi") + depends_on("libfabric@1.5:", when="@3.4: device=ch4 netmod=ofi") depends_on("ucx", when="netmod=ucx") depends_on("mxm", when="netmod=mxm") From bf84cdfcbe4ebb66c9126460c0fb6a525469f38d Mon Sep 17 00:00:00 2001 From: eugeneswalker <38933153+eugeneswalker@users.noreply.github.com> Date: Mon, 12 Sep 2022 02:40:49 -0700 Subject: [PATCH 049/241] e4s: add py-torch +cuda (#32601) --- share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml index 7b06fd2dda9..a99abf010c8 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml @@ -178,6 +178,7 @@ spack: - mfem +cuda cuda_arch=80 - papi +cuda - petsc +cuda cuda_arch=80 + - py-torch +cuda cuda_arch=80 - raja +cuda cuda_arch=80 - slate +cuda cuda_arch=80 - slepc +cuda cuda_arch=80 From 9d9f1ac816e7d8e4cb9b703be0ecd69a4a6d8057 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 12 Sep 2022 04:41:33 -0500 Subject: [PATCH 050/241] py-pytorch-lightning: add v1.7.5 (#32552) --- var/spack/repos/builtin/packages/py-pytorch-lightning/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py b/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py index 85d90a26074..fdc06b59c6b 100644 --- a/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py +++ b/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py @@ -14,6 +14,7 @@ class PyPytorchLightning(PythonPackage): maintainers = ["adamjstewart"] + version("1.7.5", sha256="a5838ae990f0eef9a894fa863be3bc1f5594d2abba7848fb21317ba3e885d7cd") version("1.7.4", sha256="d80df235228a8f6d6b77df4bfa34b3d667d734bd40e960bb4ca553a2746523eb") version("1.7.3", sha256="605ab313e54992261db74df4a6a6d4d556f319ea8a08eff2f30d80e8b898eb14") version("1.7.2", sha256="76e4d1af70721fc9a294641668c905e2db76e866f7bf07a5e37f72fa3cb87141") From 7904e1d50427746e4ab6cf3ea91b4fc3ed9ecd5c Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 12 Sep 2022 04:41:55 -0500 Subject: [PATCH 051/241] GDAL: fix typo (#32524) --- var/spack/repos/builtin/packages/gdal/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py index f52e9d4501d..9ac2c8e1a9b 100644 --- a/var/spack/repos/builtin/packages/gdal/package.py +++ b/var/spack/repos/builtin/packages/gdal/package.py @@ -113,7 +113,7 @@ class Gdal(CMakePackage): variant("iconv", default=False, description="Required for text encoding conversion") variant("idb", default=False, description="Required for IDB driver") variant("ingres", default=False, when="@:3.4", description="Required for Ingres driver") - variant("jasper", default=False, when="@:3.4", description="Optional JPEG-200 library") + variant("jasper", default=False, when="@:3.4", description="Optional JPEG-2000 library") variant("jpeg", default=True, description="Required for JPEG driver") variant("jxl", default=False, when="@3.4:", description="Required for JPEGXL driver") variant("kdu", default=False, description="Required for JP2KAK and JPIPKAK drivers") From 3c822cee58d56aec6205e7e5079798cd26e614a3 Mon Sep 17 00:00:00 2001 From: Jen Herting Date: Mon, 12 Sep 2022 06:01:55 -0400 Subject: [PATCH 052/241] [py-bitarray] added version 2.6.0 (#32560) --- var/spack/repos/builtin/packages/py-bitarray/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-bitarray/package.py b/var/spack/repos/builtin/packages/py-bitarray/package.py index d027c87f944..76349969eb5 100644 --- a/var/spack/repos/builtin/packages/py-bitarray/package.py +++ b/var/spack/repos/builtin/packages/py-bitarray/package.py @@ -11,6 +11,7 @@ class PyBitarray(PythonPackage): pypi = "bitarray/bitarray-0.8.1.tar.gz" + version("2.6.0", sha256="56d3f16dd807b1c56732a244ce071c135ee973d3edc9929418c1b24c5439a0fd") version("0.8.1", sha256="7da501356e48a83c61f479393681c1bc4b94e5a34ace7e08cb29e7dd9290ab18") depends_on("python") From 51ce3704128e5af6e8b9fdcfb2a0ba4c12ef70d0 Mon Sep 17 00:00:00 2001 From: SXS Bot <31972027+sxs-bot@users.noreply.github.com> Date: Mon, 12 Sep 2022 14:05:40 +0200 Subject: [PATCH 053/241] spectre: add v2022.09.02 (#32501) Co-authored-by: sxs-bot --- var/spack/repos/builtin/packages/spectre/package.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/var/spack/repos/builtin/packages/spectre/package.py b/var/spack/repos/builtin/packages/spectre/package.py index 61a0dea51c7..6f9c658e371 100644 --- a/var/spack/repos/builtin/packages/spectre/package.py +++ b/var/spack/repos/builtin/packages/spectre/package.py @@ -29,6 +29,9 @@ class Spectre(CMakePackage): generator = "Ninja" version("develop", branch="develop") + version( + "2022.09.02", sha256="8a218237c76f85debf8a1c65de67a6c7fe41c5df51efd7b5c160868ba5d40927" + ) version( "2022.08.01", sha256="453ad831f3d8c2d4dbed0b2e4f08f7a3b64e6634a2025b5ac1a0b242c1d87d93" ) From 29093f13ecda10d81cea7b4790ba8d73411356c5 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 12 Sep 2022 07:44:16 -0500 Subject: [PATCH 054/241] podio: new variant cxxstd=(17,20) (#30437) --- var/spack/repos/builtin/packages/podio/package.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/podio/package.py b/var/spack/repos/builtin/packages/podio/package.py index b4fcc9c7691..df543c0588b 100644 --- a/var/spack/repos/builtin/packages/podio/package.py +++ b/var/spack/repos/builtin/packages/podio/package.py @@ -78,6 +78,13 @@ class Podio(CMakePackage): deprecated=True, ) + variant( + "cxxstd", + default="17", + values=("17", conditional("20", when="@0.15:")), + multi=False, + description="Use the specified C++ standard when building.", + ) variant("sio", default=False, description="Build the SIO I/O backend") # cpack config throws an error on some systems @@ -85,7 +92,8 @@ class Podio(CMakePackage): patch("dictloading.patch", when="@0.10.0") patch("python-tests.patch", when="@:0.14.0") - depends_on("root@6.08.06: cxxstd=17") + depends_on("root@6.08.06: cxxstd=17", when="cxxstd=17") + depends_on("root@6.25.02: cxxstd=20", when="cxxstd=20") depends_on("cmake@3.8:", type="build") depends_on("python", type=("build", "run")) @@ -99,6 +107,7 @@ class Podio(CMakePackage): def cmake_args(self): args = [ self.define_from_variant("ENABLE_SIO", "sio"), + self.define("CMAKE_CXX_STANDARD", self.spec.variants["cxxstd"].value), self.define("BUILD_TESTING", self.run_tests), ] return args From 5be1da449125f053a82fb35903d4fdcbedc6e65e Mon Sep 17 00:00:00 2001 From: Christoph Conrads Date: Mon, 12 Sep 2022 12:51:37 +0000 Subject: [PATCH 055/241] fenics-basix: make xtensor-blas dependency explicit (#28951) --- .../builtin/packages/fenics-basix/package.py | 1 + .../repos/builtin/packages/xsimd/package.py | 6 ++++ .../builtin/packages/xtensor-blas/package.py | 35 +++++++++++++++++++ .../repos/builtin/packages/xtensor/package.py | 2 ++ 4 files changed, 44 insertions(+) create mode 100644 var/spack/repos/builtin/packages/xtensor-blas/package.py diff --git a/var/spack/repos/builtin/packages/fenics-basix/package.py b/var/spack/repos/builtin/packages/fenics-basix/package.py index cdfcc189c0b..a322fb47a68 100644 --- a/var/spack/repos/builtin/packages/fenics-basix/package.py +++ b/var/spack/repos/builtin/packages/fenics-basix/package.py @@ -23,6 +23,7 @@ class FenicsBasix(CMakePackage): depends_on("cmake@3.18:", type="build") depends_on("xtl@0.7.2:") depends_on("xtensor@0.23.10:") + depends_on("xtensor-blas@0.19.1:") depends_on("blas") depends_on("lapack") diff --git a/var/spack/repos/builtin/packages/xsimd/package.py b/var/spack/repos/builtin/packages/xsimd/package.py index b1e8cbd3257..065e49884ad 100644 --- a/var/spack/repos/builtin/packages/xsimd/package.py +++ b/var/spack/repos/builtin/packages/xsimd/package.py @@ -17,6 +17,12 @@ class Xsimd(CMakePackage): version("develop", branch="master") version("8.0.5", sha256="0e1b5d973b63009f06a3885931a37452580dbc8d7ca8ad40d4b8c80d2a0f84d7") + version("8.0.4", sha256="5197529e7ca715ddfcae7c5c4097879c86dae6ef85f3f67c402e2e6c5e803c41") + version("8.0.3", sha256="d1d41253c4f82eaf2f369d7fcb4142e35076cf8675b9d94caa06ecf883024344") + version("8.0.2", sha256="91ef266f28ab4e62cb43f28630b6519ac9fbce3aeab5e538de8bd02401a616f3") + version("8.0.1", sha256="21b4700e9ef70f6c9a86952047efd8272317df4e6fee35963de9394fd9c5677f") + version("8.0.0", sha256="6b0e74f419cde47b61a314db167ebefe38c4d066db5ae7ac4341f717485f7228") + version("7.6.0", sha256="eaf47f1a316ef6c3287b266161eeafc5aa61226ce5ac6c13502546435b790252") version("7.5.0", sha256="45337317c7f238fe0d64bb5d5418d264a427efc53400ddf8e6a964b6bcb31ce9") version("7.4.10", sha256="df00f476dea0c52ffebad60924e3f0db2a016b80d508f8d5a2399a74c0d134cd") version("7.4.9", sha256="f6601ffb002864ec0dc6013efd9f7a72d756418857c2d893be0644a2f041874e") diff --git a/var/spack/repos/builtin/packages/xtensor-blas/package.py b/var/spack/repos/builtin/packages/xtensor-blas/package.py new file mode 100644 index 00000000000..f2bbeeab72e --- /dev/null +++ b/var/spack/repos/builtin/packages/xtensor-blas/package.py @@ -0,0 +1,35 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class XtensorBlas(CMakePackage): + """BLAS extension to xtensor""" + + homepage = "https://xtensor-stack.github.io" + url = "https://github.com/xtensor-stack/xtensor-blas/archive/refs/tags/0.20.0.tar.gz" + git = "git://github.com/xtensor-stack/xtensor-blas.git" + + version("develop", branch="master") + version("0.20.0", sha256="272f5d99bb7511a616bfe41b13a000e63de46420f0b32a25fa4fb935b462c7ff") + version("0.19.2", sha256="ef678c0e3f581cc8d61ea002c904c76513c8b0f798f9c9acaf980a835f9d09aa") + version("0.19.1", sha256="c77cc4e2297ebd22d0d1c6e8d0a6cf0975176afa8cb99dbfd5fb2be625a0248f") + version("0.19.0", sha256="0fa8001afa2d9f7fb1d3c101ae04565f39ef2880a84acec216e699ed14950cb4") + version("0.18.0", sha256="fba992bc08323bc40fd04d6549e50e43b97942624a51e08129102d18c135eec0") + version("0.17.2", sha256="2798c7e230d0c4b2d357bba20a0ef23a2b774d892be31ebbf702cb9935ea9f64") + + depends_on("cmake@3.1:", type="build") + # the information below can be found in the xtensor-blas README + depends_on("xtensor@0.24.0:", when="@0.20:") + depends_on("xtensor@0.23.3:", when="@0.19.1:0.19.2") + depends_on("xtensor@0.23.0:", when="@0.19.0") + depends_on("xtensor@0.22.0:", when="@0.18.0") + depends_on("xtensor@0.21.4:", when="@0.17.2") + depends_on("xtensor@0.21.2:", when="@:0.17.1") + + # C++14 support + conflicts("%gcc@:4.8") + conflicts("%clang@:3.5") diff --git a/var/spack/repos/builtin/packages/xtensor/package.py b/var/spack/repos/builtin/packages/xtensor/package.py index 5f5725ed92a..9dad87bf771 100644 --- a/var/spack/repos/builtin/packages/xtensor/package.py +++ b/var/spack/repos/builtin/packages/xtensor/package.py @@ -17,6 +17,7 @@ class Xtensor(CMakePackage): version("develop", branch="master") version("0.24.1", sha256="dd1bf4c4eba5fbcf386abba2627fcb4a947d14a806c33fde82d0cc1194807ee4") + version("0.24.0", sha256="37738aa0865350b39f048e638735c05d78b5331073b6329693e8b8f0902df713") version("0.23.10", sha256="2e770a6d636962eedc868fef4930b919e26efe783cd5d8732c11e14cf72d871c") version("0.23.4", sha256="c8377f8ec995762c89dea2fdf4ac06b53ba491a6f0df3421c4719355e42425d2") version("0.23.2", sha256="fde26dcf93f5d95996b8cc7e556b84930af41ff699492b7b20b2e3335e12f862") @@ -35,6 +36,7 @@ class Xtensor(CMakePackage): depends_on("xsimd", when="@develop") depends_on("xsimd@8.0.5:", when="@0.24.1: +xsimd") + depends_on("xsimd@8.0.2:", when="@0.24.0 +xsimd") depends_on("xsimd@7.4.10:7", when="@0.23.4:0.23 +xsimd") depends_on("xsimd@7.4.9:7", when="@0.23.2 +xsimd") depends_on("xsimd@7.2.3:7", when="@0.20.7 +xsimd") From 46828eff1b4e79a01dc7deb00b962d9f75b7a141 Mon Sep 17 00:00:00 2001 From: Carson Woods Date: Mon, 12 Sep 2022 09:54:42 -0400 Subject: [PATCH 056/241] Add new and legacy intel-mpi-benchmarks versions (#32535) * Add new intel-mpi-benchmarks version * Add new versions of intel mpi benchmarks * Fix style bugs * Fix style bugs * Switch to using url_for_version formatting and improve patch ranges * p2p benchmark is not included on older versions * Set patch to proper version * Add url field, improve patch versioning, improve version detection * Add url field, improve patch versioning, improve version detection * Bug fix Syntax fix * Remove 2019 from valid version on reorder_benchmark_macros patch * OpenMPI isn't supported on older versions of the benchmark. Prevents OpenMPI from being selected on those versions * Add new requirement of gmake for older versions * Require intel-mpi for older versions of benchmark * Minor changes to build directory for older versions * Remove repeated conflict * Minor style changes * Minor change * Correct fix for intel-mpi-benchmarks * Bug fix * Bug fix * Attempted fix for install bug * Attempted fix for install bug * Remove duplicate build_directory setting --- .../packages/intel-mpi-benchmarks/package.py | 137 +++++++++++------- 1 file changed, 83 insertions(+), 54 deletions(-) diff --git a/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py b/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py index 101caa16107..fabf612ef1b 100644 --- a/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py +++ b/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py @@ -18,74 +18,103 @@ class IntelMpiBenchmarks(MakefilePackage): """ homepage = "https://software.intel.com/en-us/articles/intel-mpi-benchmarks" - url = "https://github.com/intel/mpi-benchmarks/archive/IMB-v2019.5.tar.gz" - + url = "https://github.com/intel/mpi-benchmarks/archive/IMB-v2021.3.tar.gz" maintainers = ["carsonwoods"] + version("2021.3", sha256="9b58a4a7eef7c0c877513152340948402fd87cb06270d2d81308dc2ef740f4c7") + version("2021.2", sha256="ade3bfe18b4313a31fc09f0bf038e0a6c169c4145089bfc6f1f827687b81be6a") + version("2021.1", sha256="9089bb81e3091af3481e03b898b339fb2d9fb6574d4ef059adb1f5410112b23a") version("2019.6", sha256="1cd0bab9e947228fced4666d907f77c51336291533919896a923cff5fcad62e9") version("2019.5", sha256="61f8e872a3c3076af53007a68e4da3a8d66be2ba7a051dc21e626a4e2d26e651") version("2019.4", sha256="aeb336be10275c1a2f579b491b6631122876b461ac7148b1d0764f13b7552690") version("2019.3", sha256="4f256d11bfed9ca6166548486d61a062e67be61f13dd9f30690232720e185f31") version("2019.2", sha256="0bc2224a913073aaa5958f6ae08341e5fcd39cedc6722a09bfd4a3d7591a340b") + version("2019.1", sha256="fe0d065b9936b6943ea83cb3d00aede43b17565285c6b1791fee8e340853ef79") + version("2019.0", sha256="1c7d44aa7fd86ca84ac7cae1a69a8426243048d6294582337f1de7b4ffe68d37") + version("2018.1", sha256="718a4eb155f18cf15a736f6496332407b5837cf1f19831723d4cfe5266c43507") + version("2018.0", sha256="2e60a9894a686a95791be2227bc569bf81ca3875421b5307df7d83f885b1de88") - depends_on("mpi") + depends_on("mpi", when="@2019:") + depends_on("intel-mpi", when="@2018") + depends_on("gmake", type="build", when="@2018") - # https://github.com/intel/mpi-benchmarks/pull/19 - patch("add_const.patch", when="@:2019.6") - # https://github.com/intel/mpi-benchmarks/pull/20 - patch("reorder_benchmark_macros.patch", when="@:2019.6") - - variant( - "benchmark", - default="all", - values=("mpi1", "ext", "io", "nbc", "p2p", "rma", "mt", "all"), - multi=False, - description="Specify which benchmark to build", + conflicts( + "^openmpi", + when="@:2019.0", + msg="intel-mpi-benchmarks <= v2019.0 cannot be built with OpenMPI, " + "please specify a different MPI implementation", ) - def build(self, spec, prefix): + # https://github.com/intel/mpi-benchmarks/pull/19 + patch("add_const.patch", when="@2019") + # https://github.com/intel/mpi-benchmarks/pull/20 + patch("reorder_benchmark_macros.patch", when="@2019.1:2019.6") + + variant("mpi1", default=True, description="Build MPI1 benchmark") + variant("ext", default=True, description="Build MPI1 benchmark") + variant("io", default=True, description="Build MPI1 benchmark") + variant("nbc", default=True, description="Build MPI1 benchmark") + variant("p2p", default=True, description="Build MPI1 benchmark", when="@2018") + variant("rma", default=True, description="Build MPI1 benchmark") + variant("mt", default=True, description="Build MPI1 benchmark") + + def url_for_version(self, version): + if version <= Version("2019.1"): + url = "https://github.com/intel/mpi-benchmarks/archive/refs/tags/v{0}.tar.gz" + else: + url = "https://github.com/intel/mpi-benchmarks/archive/refs/tags/IMB-v{0}.tar.gz" + return url.format(version) + + @property + def build_directory(self): + if self.spec.satisfies("@2018"): + return "src" + else: + return "." + + @property + def build_targets(self): + spec = self.spec + targets = [] + if "+mpi1" in spec: + targets.append("MPI1") + elif "+ext" in spec: + targets.append("EXT") + elif "+io" in spec: + targets.append("IO") + elif "+nbc" in spec: + targets.append("NBC") + elif "+p2p" in spec: + targets.append("P2P") + elif "+rma" in spec: + targets.append("RMA") + elif "+mt" in spec: + targets.append("MT") + + if self.spec.satisfies("@2019:"): + targets = ["TARGET=" + target for target in targets] + + return targets + + def edit(self, spec, prefix): env["CC"] = spec["mpi"].mpicc env["CXX"] = spec["mpi"].mpicxx - if "benchmark=mpi1" in spec: - make("IMB-MPI1") - elif "benchmark=ext" in spec: - make("IMB-EXT") - elif "benchmark=io" in spec: - make("IMB-IO") - elif "benchmark=nbc" in spec: - make("IMB-NBC") - elif "benchmark=p2p" in spec: - make("IMB-P2P") - elif "benchmark=rma" in spec: - make("IMB-RMA") - elif "benchmark=mt" in spec: - make("IMB-MT") - else: - make("all") - def install(self, spec, prefix): mkdir(prefix.bin) - if "benchmark=mpi1" in spec: - install("IMB-MPI1", prefix.bin) - elif "benchmark=ext" in spec: - install("IMB-EXT", prefix.bin) - elif "benchmark=io" in spec: - install("IMB-IO", prefix.bin) - elif "benchmark=nbc" in spec: - install("IMB-NBC", prefix.bin) - elif "benchmark=p2p" in spec: - install("IMB-P2P", prefix.bin) - elif "benchmark=rma" in spec: - install("IMB-RMA", prefix.bin) - elif "benchmark=mt" in spec: - install("IMB-MT", prefix.bin) - else: - install("IMB-EXT", prefix.bin) - install("IMB-IO", prefix.bin) - install("IMB-MPI1", prefix.bin) - install("IMB-MT", prefix.bin) - install("IMB-NBC", prefix.bin) - install("IMB-P2P", prefix.bin) - install("IMB-RMA", prefix.bin) + with working_dir(self.build_directory): + if "+mpi1" in spec: + install("IMB-MPI1", prefix.bin) + elif "+ext" in spec: + install("IMB-EXT", prefix.bin) + elif "+io" in spec: + install("IMB-IO", prefix.bin) + elif "+nbc" in spec: + install("IMB-NBC", prefix.bin) + elif "+p2p" in spec: + install("IMB-P2P", prefix.bin) + elif "+rma" in spec: + install("IMB-RMA", prefix.bin) + elif "+mt" in spec: + install("IMB-MT", prefix.bin) From bb6c39ea7c14bd55f8ec2e971ebc6d6ce9324282 Mon Sep 17 00:00:00 2001 From: natshineman Date: Mon, 12 Sep 2022 10:19:23 -0400 Subject: [PATCH 057/241] osu-micro-benchmarks: add v6.0 (#32587) --- .../repos/builtin/packages/osu-micro-benchmarks/package.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py b/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py index 39d647af32f..52ebbe7fcc6 100644 --- a/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py +++ b/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py @@ -16,8 +16,11 @@ class OsuMicroBenchmarks(AutotoolsPackage, CudaPackage): and can be used for both traditional and GPU-enhanced nodes.""" homepage = "https://mvapich.cse.ohio-state.edu/benchmarks/" - url = "https://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-5.6.3.tar.gz" + url = "https://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-6.0.tar.gz" + maintainers = ["natshineman", "harisubramoni", "MatthewLieber"] + + version("6.0", sha256="309fb7583ff54562343b0e0df1eebde3fc245191e183be362f031ac74f4ab542") version("5.9", sha256="d619740a1c2cc7c02a9763931546b320d0fa4093c415ff3873c2958e121c0609") version( "5.7.1", From d4065e11c6a6592d1ac8638cc4423695e37fbbde Mon Sep 17 00:00:00 2001 From: "Seth R. Johnson" Date: Mon, 12 Sep 2022 10:22:14 -0400 Subject: [PATCH 058/241] iwyu: support external find (#32458) --- var/spack/repos/builtin/packages/iwyu/package.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/var/spack/repos/builtin/packages/iwyu/package.py b/var/spack/repos/builtin/packages/iwyu/package.py index 5325563ee16..acd0ffea447 100644 --- a/var/spack/repos/builtin/packages/iwyu/package.py +++ b/var/spack/repos/builtin/packages/iwyu/package.py @@ -3,6 +3,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re + import archspec from spack.package import * @@ -18,6 +20,10 @@ class Iwyu(CMakePackage): maintainers = ["sethrj"] + tags = ["build-tools"] + + executables = ["^include-what-you-use$"] + version("0.18", sha256="9102fc8419294757df86a89ce6ec305f8d90a818d1f2598a139d15eb1894b8f3") version("0.17", sha256="eca7c04f8b416b6385ed00e33669a7fa4693cd26cb72b522cde558828eb0c665") version("0.16", sha256="8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c") @@ -43,6 +49,12 @@ class Iwyu(CMakePackage): for _arch in _arches - set(["x86", "x86_64"]): depends_on("llvm targets=x86", when="arch={0}:".format(_arch)) + @classmethod + def determine_version(cls, exe): + output = Executable(exe)("--version", output=str, error=str) + match = re.search(r"include-what-you-use\s+(\S+)", output) + return match.group(1) if match else None + @when("@0.14:") def cmake_args(self): return [self.define("CMAKE_CXX_STANDARD", 14), self.define("CMAKE_CXX_EXTENSIONS", False)] From f33b7c0a58670117e8d64f38948d0bb3c8404630 Mon Sep 17 00:00:00 2001 From: Simon Pintarelli <1237199+simonpintarelli@users.noreply.github.com> Date: Mon, 12 Sep 2022 16:22:39 +0200 Subject: [PATCH 059/241] spfft: inherit from ROCmPackage (#32550) Co-authored-by: Alberto Invernizzi <9337627+albestro@users.noreply.github.com> --- .../repos/builtin/packages/spfft/package.py | 20 +------------------ 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/var/spack/repos/builtin/packages/spfft/package.py b/var/spack/repos/builtin/packages/spfft/package.py index de74d69333e..2b516566a63 100644 --- a/var/spack/repos/builtin/packages/spfft/package.py +++ b/var/spack/repos/builtin/packages/spfft/package.py @@ -7,7 +7,7 @@ from spack.package import * -class Spfft(CMakePackage, CudaPackage): +class Spfft(CMakePackage, CudaPackage, ROCmPackage): """Sparse 3D FFT library with MPI, OpenMP, CUDA and ROCm support.""" homepage = "https://github.com/eth-cscs/SpFFT" @@ -49,9 +49,6 @@ class Spfft(CMakePackage, CudaPackage): depends_on("mpi", when="+mpi") depends_on("cmake@3.11:", type="build") - # ROCM variants + dependencies - variant("rocm", default=False, description="Use ROCm backend") - depends_on("cuda@:10", when="@:0.9.11 +cuda") with when("+rocm"): @@ -59,25 +56,10 @@ class Spfft(CMakePackage, CudaPackage): depends_on("hip@:4.0", when="@:1.0.1") # Workaround for compiler bug in ROCm 4.5 added in SpFFT 1.0.6 depends_on("hip@:4.3.1", when="@:1.0.5") - depends_on("hip") depends_on("rocfft") # rocFFT and hipFFT have split with latest versions depends_on("hipfft", when="^rocfft@4.1.0:") - amdgpu_targets = ( - "gfx701", - "gfx801", - "gfx802", - "gfx803", - "gfx900", - "gfx906", - "gfx908", - "gfx1010", - "gfx1011", - "gfx1012", - ) - variant("amdgpu_target", default="gfx803,gfx900,gfx906", multi=True, values=amdgpu_targets) - # Fix compilation error in some cases due to missing include statement # before version 1.0.3 patch("0001-fix-missing-limits-include.patch", when="@:1.0.2") From d8e6782f42e6f9c62bd5a03775f1ab559ef6af31 Mon Sep 17 00:00:00 2001 From: aeropl3b <77083938+aeropl3b@users.noreply.github.com> Date: Mon, 12 Sep 2022 09:46:19 -0500 Subject: [PATCH 060/241] HIPSycl: LLVM@10: provides working clang with cuda >= 11 (#32512) Co-authored-by: RJ --- var/spack/repos/builtin/packages/hipsycl/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/hipsycl/package.py b/var/spack/repos/builtin/packages/hipsycl/package.py index 1cc18e1c2da..eb4fe07a61e 100644 --- a/var/spack/repos/builtin/packages/hipsycl/package.py +++ b/var/spack/repos/builtin/packages/hipsycl/package.py @@ -45,7 +45,8 @@ class Hipsycl(CMakePackage): depends_on("llvm@8: +clang", when="~cuda") depends_on("llvm@9: +clang", when="+cuda") # LLVM PTX backend requires cuda7:10.1 (https://tinyurl.com/v82k5qq) - depends_on("cuda@9:10.1", when="@0.8.1: +cuda") + depends_on("cuda@9:10.1", when="@0.8.1: +cuda ^llvm@9") + depends_on("cuda@9:", when="@0.8.1: +cuda ^llvm@10:") # hipSYCL@:0.8.0 requires cuda@9:10.0 due to a known bug depends_on("cuda@9:10.0", when="@:0.8.0 +cuda") From 6c4acfbf83372f76fe69aa7b959f257b6a1e8410 Mon Sep 17 00:00:00 2001 From: Ioannis Magkanaris Date: Mon, 12 Sep 2022 17:46:42 +0300 Subject: [PATCH 061/241] fmt: add v9.1.0 and v9.0.0 (#32527) Co-authored-by: Ioannis Magkanaris --- var/spack/repos/builtin/packages/fmt/package.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/var/spack/repos/builtin/packages/fmt/package.py b/var/spack/repos/builtin/packages/fmt/package.py index 7575b2730e3..7a79ad0da66 100644 --- a/var/spack/repos/builtin/packages/fmt/package.py +++ b/var/spack/repos/builtin/packages/fmt/package.py @@ -14,6 +14,8 @@ class Fmt(CMakePackage): homepage = "https://fmt.dev/" url = "https://github.com/fmtlib/fmt/releases/download/7.1.3/fmt-7.1.3.zip" + version("9.1.0", sha256="cceb4cb9366e18a5742128cb3524ce5f50e88b476f1e54737a47ffdf4df4c996") + version("9.0.0", sha256="fc96dd2d2fdf2bded630787adba892c23cb9e35c6fd3273c136b0c57d4651ad6") version("8.1.1", sha256="23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d") version("8.1.0", sha256="d8e9f093b2241c3a9fc3895e23231ef9de00c762cfa0a9c65e4748755bc352ae") version("8.0.1", sha256="a627a56eab9554fc1e5dd9a623d0768583b3a383ff70a4312ba68f94c9d415bf") @@ -54,6 +56,10 @@ class Fmt(CMakePackage): conflicts("cxxstd=11", when="@5.0.0") # 4.1 fails with C++17 (https://github.com/fmtlib/fmt/issues/722) conflicts("cxxstd=17", when="@4.1.0") + # edg based compilers have issues with fmt 9.0.0 and C++17 standard + # (https://github.com/fmtlib/fmt/issues/3028) + conflicts("cxxstd=17", when="@9.0.0%intel") + conflicts("cxxstd=17", when="@9.0.0%nvhpc") # Use CMAKE_CXX_STANDARD to define C++ flag, as in later versions patch("fmt-use-cmake-cxx-standard_3.0.0.patch", when="@3.0.0") From 8611aeff52c9b68862cc34ba5ad919e803052b9e Mon Sep 17 00:00:00 2001 From: Jack Morrison <32687739+jack-morrison@users.noreply.github.com> Date: Mon, 12 Sep 2022 10:47:04 -0400 Subject: [PATCH 062/241] opa-psm2: add v11.2.230 (#32530) --- var/spack/repos/builtin/packages/opa-psm2/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/opa-psm2/package.py b/var/spack/repos/builtin/packages/opa-psm2/package.py index 7f4e1f4f4ea..f67a97500a0 100644 --- a/var/spack/repos/builtin/packages/opa-psm2/package.py +++ b/var/spack/repos/builtin/packages/opa-psm2/package.py @@ -14,6 +14,7 @@ class OpaPsm2(MakefilePackage): maintainers = ["jack-morrison"] + version("11.2.230", sha256="e56262ed9ced4a8b53540cc6370d7ec9733bd5c791a9c05251010c1bbb60c75c") version("11.2.228", sha256="e302afc8cd054409616d59b69e4d7f140278dc3815ae07f0fc14080fd860bd5c") version("11.2.206", sha256="08aa41f41bdb485ee037d3f7e32dd45e79858ce38e744d33b9db2af60e3c627a") version("11.2.185", sha256="8c0446e989feb4a3822791e4a3687060916f7c4612d1e8e493879be66f10db09") From acdb6321d1fa9ad771454a46e441fb079fb62970 Mon Sep 17 00:00:00 2001 From: Adrien Cotte Date: Mon, 12 Sep 2022 16:52:17 +0200 Subject: [PATCH 063/241] wi4mpi: mpi dep removed after v3.6.0 (#32352) --- var/spack/repos/builtin/packages/wi4mpi/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/wi4mpi/package.py b/var/spack/repos/builtin/packages/wi4mpi/package.py index e5178f1b723..b3d0be71884 100644 --- a/var/spack/repos/builtin/packages/wi4mpi/package.py +++ b/var/spack/repos/builtin/packages/wi4mpi/package.py @@ -14,7 +14,7 @@ class Wi4mpi(CMakePackage): url = "https://github.com/cea-hpc/wi4mpi/archive/v3.4.1.tar.gz" maintainers = ["adrien-cotte", "marcjoos-cea"] - version("3.6.0", sha256="9b790ffd5b73933fa8c32adeb0c429341e12efe146493904d1d4f04be7cf74c9") + version("3.6.0", sha256="06f48bf506643edba51dd04bfdfbaa824363d28549f8eabf002b760ba516227b") version("3.5.0", sha256="36dd3dfed4f0f37bc817204d4810f049e624900b1b32641122f09a183135522f") version("3.4.1", sha256="92bf6738216426069bc07bff19cd7c933e33e397a941ff9f89a639380fab3737") version("3.3.0", sha256="fb7fb3b591144e90b3d688cf844c2246eb185f54e1da6baef857e035ef730d96") @@ -28,7 +28,7 @@ class Wi4mpi(CMakePackage): values=("Debug", "Release", "RelWithDebInfo"), ) - depends_on("mpi") + depends_on("mpi", when="@:3.5") def cmake_args(self): if "%gcc" in self.spec: From 3ff63b06bfcc937b38190bd866e75a2955313dfc Mon Sep 17 00:00:00 2001 From: Kendra Long! Date: Mon, 12 Sep 2022 08:52:41 -0600 Subject: [PATCH 064/241] draco: add v7.14.1 (#32495) --- var/spack/repos/builtin/packages/draco/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/draco/package.py b/var/spack/repos/builtin/packages/draco/package.py index 79d7e8c82e2..09601ca23e4 100644 --- a/var/spack/repos/builtin/packages/draco/package.py +++ b/var/spack/repos/builtin/packages/draco/package.py @@ -18,6 +18,7 @@ class Draco(CMakePackage): maintainers = ["KineticTheory"] version("develop", branch="develop") + version("7.14.1", sha256="b05c75f1b8ea1d4fac4900d897fb1c948b470826b174ed8b97b32c6da9f030bf") version("7.14.0", sha256="c8abf293d81c1b8020907557c20d8d2f2edf9ac7ae60a534eab052a8c3b7f99d") version("7.13.0", sha256="07a443df71d8d3720ced98f86821f714d2bfaa9f17a177c7f0465a59a1e9e719") version("7.12.0", sha256="a127c1c0af44b72775902e2386ed58ff0ebb1907d229e1300176142274c9abc2") From daf691fd0772ea55d3c3e1f8e30d8f0c6e9cb483 Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Mon, 12 Sep 2022 16:54:17 +0200 Subject: [PATCH 065/241] whip: add new package (#32576) --- .../repos/builtin/packages/whip/package.py | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 var/spack/repos/builtin/packages/whip/package.py diff --git a/var/spack/repos/builtin/packages/whip/package.py b/var/spack/repos/builtin/packages/whip/package.py new file mode 100644 index 00000000000..f23b1af9a90 --- /dev/null +++ b/var/spack/repos/builtin/packages/whip/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack.package import * + + +class Whip(CMakePackage, CudaPackage, ROCmPackage): + """whip is a small C++ abstraction layer for CUDA and HIP.""" + + homepage = "https://github.com/eth-cscs/whip/" + url = "https://github.com/eth-cscs/whip/archive/0.0.0.tar.gz" + git = "https://github.com/eth-cscs/whip.git" + maintainers = ["msimberg", "rasolca"] + + version("main", branch="main") + + depends_on("cmake@3.22:", type="build") + + # Exactly one of +cuda and +rocm need to be set + conflicts("~cuda ~rocm") + conflicts("+cuda +rocm") + + def cmake_args(self): + if self.spec.satisfies("+cuda"): + return [self.define("WHIP_BACKEND", "CUDA")] + else: + return [self.define("WHIP_BACKEND", "HIP")] From e5dcc43b579d15cdcecc14a01c88d85f3eee7448 Mon Sep 17 00:00:00 2001 From: Vicente Bolea Date: Mon, 12 Sep 2022 10:55:18 -0400 Subject: [PATCH 066/241] ParaView: add v5.11.0-RC1 (#32436) --- var/spack/repos/builtin/packages/paraview/package.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py index cf2d1a92b84..ea522143e98 100644 --- a/var/spack/repos/builtin/packages/paraview/package.py +++ b/var/spack/repos/builtin/packages/paraview/package.py @@ -27,6 +27,9 @@ class Paraview(CMakePackage, CudaPackage): tags = ["e4s"] version("master", branch="master", submodules=True) + version( + "5.11.0-RC1", sha256="892c4617b3f23f6e5c9a08ecc9b3e9f16b9e2f54c044155c3c252f00b0fbafd9" + ) version( "5.10.1", sha256="520e3cdfba4f8592be477314c2f6c37ec73fb1d5b25ac30bdbd1c5214758b9c2", @@ -219,11 +222,11 @@ class Paraview(CMakePackage, CudaPackage): # ParaView depends on nlohmann-json due to changes in MR # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8550 - depends_on("nlohmann-json", when="@master") + depends_on("nlohmann-json", when="@5.11:") # ParaView depends on proj@8.1.0 due to changes in MR # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8474 - depends_on("proj@8.1.0", when="@master") + depends_on("proj@8.1.0", when="@5.11:") patch("stl-reader-pv440.patch", when="@4.4.0") @@ -275,7 +278,7 @@ def url_for_version(self, version): def paraview_subdir(self): """The paraview subdirectory name as paraview-major.minor""" if self.spec.version == Version("master"): - return "paraview-5.10" + return "paraview-5.11" else: return "paraview-{0}".format(self.spec.version.up_to(2)) From cb3b5fb71627f461fe760413bf9f375f196df288 Mon Sep 17 00:00:00 2001 From: Simon Pintarelli <1237199+simonpintarelli@users.noreply.github.com> Date: Mon, 12 Sep 2022 16:56:14 +0200 Subject: [PATCH 067/241] sirius: new version, libsci supports (#32443) --- .../repos/builtin/packages/sirius/package.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/var/spack/repos/builtin/packages/sirius/package.py b/var/spack/repos/builtin/packages/sirius/package.py index 449a7dd464f..e7bff12f577 100644 --- a/var/spack/repos/builtin/packages/sirius/package.py +++ b/var/spack/repos/builtin/packages/sirius/package.py @@ -21,6 +21,8 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage): version("develop", branch="develop") version("master", branch="master") + version("7.3.2", sha256="a256508de6b344345c295ad8642dbb260c4753cd87cc3dd192605c33542955d7") + version("7.3.1", sha256="8bf9848b8ebf0b43797fd359adf8c84f00822de4eb677e3049f22baa72735e98") version("7.3.0", sha256="69b5cf356adbe181be6c919032859c4e0160901ff42a885d7e7ea0f38cc772e2") version("7.2.7", sha256="929bf7f131a4847624858b9c4295532c24b0c06f6dcef5453c0dfc33fb78eb03") version("7.2.6", sha256="e751fd46cdc7c481ab23b0839d3f27fb00b75dc61dc22a650c92fe8e35336e3a") @@ -213,6 +215,7 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage): conflicts("+boost_filesystem", when="~apps") conflicts("^libxc@5.0.0") # known to produce incorrect results conflicts("+single_precision", when="@:7.2.4") + conflicts("+scalapack", when="^cray-libsci") # Propagate openmp to blas depends_on("openblas threads=openmp", when="+openmp ^openblas") @@ -223,12 +226,9 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage): depends_on("elpa+openmp", when="+elpa+openmp") depends_on("elpa~openmp", when="+elpa~openmp") - depends_on("eigen@3.4.0:", when="@7.4: +tests") + depends_on("eigen@3.4.0:", when="@7.3.2: +tests") - depends_on("costa+shared", when="@7.4:") - - # TODO: - # add support for CRAY_LIBSCI, testing + depends_on("costa+shared", when="@7.3.2:") patch("strip-spglib-include-subfolder.patch", when="@6.1.5") patch("link-libraries-fortran.patch", when="@6.1.5") @@ -290,7 +290,7 @@ def cmake_args(self): ] ) - if "+scalapack" in spec: + if "+scalapack" in spec and "^cray-libsci" not in spec: args.extend( [ self.define("SCALAPACK_FOUND", "true"), @@ -299,6 +299,9 @@ def cmake_args(self): ] ) + if "^cray-libsci" in spec: + args.append(self.define("USE_CRAY_LIBSCI", "ON")) + if spec["blas"].name in ["intel-mkl", "intel-parallel-studio"]: args.append(self.define("USE_MKL", "ON")) From f2b19c39a04a5b1c843759083f414452f8fdef13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Lacroix?= Date: Mon, 12 Sep 2022 16:57:15 +0200 Subject: [PATCH 068/241] r-gridextra: fix the CRAN package name. (#32474) It seems like it was renamed from "gridExtras" to "gridExtra". --- var/spack/repos/builtin/packages/r-gridextra/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/r-gridextra/package.py b/var/spack/repos/builtin/packages/r-gridextra/package.py index 2e5a669923e..a131c5bef5a 100644 --- a/var/spack/repos/builtin/packages/r-gridextra/package.py +++ b/var/spack/repos/builtin/packages/r-gridextra/package.py @@ -12,7 +12,7 @@ class RGridextra(RPackage): Provides a number of user-level functions to work with "grid" graphics, notably to arrange multiple grid-based plots on a page, and draw tables.""" - cran = "gridExtras" + cran = "gridExtra" version("2.3", sha256="81b60ce6f237ec308555471ae0119158b115463df696d2eca9b177ded8988e3b") version("2.2.1", sha256="44fe455a5bcdf48a4ece7a542f83e7749cf251dc1df6ae7634470240398c6818") From b4f381207783cbc747ea65bb265a72b7f57dfb37 Mon Sep 17 00:00:00 2001 From: kwryankrattiger <80296582+kwryankrattiger@users.noreply.github.com> Date: Mon, 12 Sep 2022 09:57:42 -0500 Subject: [PATCH 069/241] SDK: Remove conflicting variants from sensei propagation (#32490) --- .../repos/builtin/packages/ecp-data-vis-sdk/package.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py b/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py index f3877d55a15..8b64fc575de 100644 --- a/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py +++ b/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py @@ -115,11 +115,9 @@ class EcpDataVisSdk(BundlePackage, CudaPackage, ROCmPackage): dav_sdk_depends_on("veloc", when="+veloc") - propagate_to_sensei = [(v, v) for v in ["adios2", "ascent", "hdf5"]] - propagate_to_sensei.extend([("paraview", "catalyst"), ("visit", "libsim")]) - dav_sdk_depends_on( - "sensei@4: ~vtkio +python", when="+sensei", propagate=dict(propagate_to_sensei) - ) + # Skipping propagating ascent, catalyst(paraview), and libsim(visit) to sensei + # due to incomaptiblity between these variants in sensei. + dav_sdk_depends_on("sensei@4: ~vtkio +python", when="+sensei", propagate=["adios2", "hdf5"]) # Fortran support with ascent is problematic on some Cray platforms so the # SDK is explicitly disabling it until the issues are resolved. From 734ae9928524c095b7a7321c47b1cd13b334be3f Mon Sep 17 00:00:00 2001 From: Qian Jianhua Date: Mon, 12 Sep 2022 22:59:05 +0800 Subject: [PATCH 070/241] dtc: fix build error with clang or Fujitsu compiler (#32543) --- var/spack/repos/builtin/packages/dtc/package.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/var/spack/repos/builtin/packages/dtc/package.py b/var/spack/repos/builtin/packages/dtc/package.py index 26b4689ad2e..7764380f67f 100644 --- a/var/spack/repos/builtin/packages/dtc/package.py +++ b/var/spack/repos/builtin/packages/dtc/package.py @@ -27,3 +27,7 @@ class Dtc(MakefilePackage): def edit(self, spec, prefix): makefile = FileFilter("Makefile") makefile.filter("PREFIX =.*", "PREFIX = %s" % prefix) + if self.spec.satisfies("%clang") or self.spec.satisfies("%fj"): + makefile.filter( + r"WARNINGS = -Wall", "WARNINGS = -Wall -Wno-unused-command-line-argument" + ) From 8dad29752603c4daa25276fe03a48d3d5afacd84 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 12 Sep 2022 10:27:03 -0500 Subject: [PATCH 071/241] cuba: new package (#32510) --- .../repos/builtin/packages/cuba/package.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 var/spack/repos/builtin/packages/cuba/package.py diff --git a/var/spack/repos/builtin/packages/cuba/package.py b/var/spack/repos/builtin/packages/cuba/package.py new file mode 100644 index 00000000000..e54a2963f29 --- /dev/null +++ b/var/spack/repos/builtin/packages/cuba/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Cuba(AutotoolsPackage): + """The Cuba library offers a choice of four independent routines for + multidimensional numerical integration: Vegas, Suave, Divonne, and + Cuhre.""" + + homepage = "https://feynarts.de/cuba/" + url = "https://feynarts.de/cuba/Cuba-4.2.2.tar.gz" + + maintainers = ["wdconinc"] + + version("4.2.2", sha256="8d9f532fd2b9561da2272c156ef7be5f3960953e4519c638759f1b52fe03ed52") + + parallel = False From 5dc1a9f2140013b72c57c00bcf3523ed1accb02b Mon Sep 17 00:00:00 2001 From: Jim Edwards Date: Mon, 12 Sep 2022 09:48:21 -0600 Subject: [PATCH 072/241] parallelio: make shared lib the default (#32432) --- .../packages/parallelio/gfortran.patch | 23 +++++++++++++++++++ .../builtin/packages/parallelio/package.py | 11 +++++++++ 2 files changed, 34 insertions(+) create mode 100644 var/spack/repos/builtin/packages/parallelio/gfortran.patch diff --git a/var/spack/repos/builtin/packages/parallelio/gfortran.patch b/var/spack/repos/builtin/packages/parallelio/gfortran.patch new file mode 100644 index 00000000000..c8878df78ac --- /dev/null +++ b/var/spack/repos/builtin/packages/parallelio/gfortran.patch @@ -0,0 +1,23 @@ +--- old/CMakeLists.txt ++++ new/CMakeLists.txt +@@ -4,7 +4,7 @@ + + # Jim Edwards + +-cmake_minimum_required (VERSION 3.5.2) ++cmake_minimum_required (VERSION 3.7) + project (PIO C) + + # The project version number. +@@ -243,6 +243,11 @@ if (PIO_ENABLE_COVERAGE) + endif () + endif () + ++# Allow argument mismatch in gfortran versions > 10 for mpi library compatibility ++if ("${CMAKE_Fortran_COMPILER_VERSION}" VERSION_GREATER_EQUAL 10) ++ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch") ++endif() ++ + # Include this so we can check values in netcdf_meta.h. + INCLUDE(CheckCSourceCompiles) + INCLUDE(FindNetCDF) diff --git a/var/spack/repos/builtin/packages/parallelio/package.py b/var/spack/repos/builtin/packages/parallelio/package.py index 97f8f6fd6aa..c97e3f1e610 100644 --- a/var/spack/repos/builtin/packages/parallelio/package.py +++ b/var/spack/repos/builtin/packages/parallelio/package.py @@ -13,6 +13,7 @@ class Parallelio(CMakePackage): homepage = "https://ncar.github.io/ParallelIO/" url = "https://github.com/NCAR/ParallelIO/archive/pio2_5_8.tar.gz" + git = "https://github.com/NCAR/ParallelIO.git" maintainers = ["jedwards4b"] @@ -33,6 +34,9 @@ class Parallelio(CMakePackage): depends_on("netcdf-fortran", type="link", when="+fortran") depends_on("parallel-netcdf", type="link", when="+pnetcdf") + # Allow argument mismatch in gfortran versions > 10 for mpi library compatibility + patch("gfortran.patch", when="+fortran %gcc@10:") + resource(name="genf90", git="https://github.com/PARALLELIO/genf90.git", tag="genf90_200608") def cmake_args(self): @@ -46,6 +50,8 @@ def cmake_args(self): define("NetCDF_C_PATH", spec["netcdf-c"].prefix), define("USER_CMAKE_MODULE_PATH", join_path(src, "cmake")), define("GENF90_PATH", join_path(src, "genf90")), + define("BUILD_SHARED_LIBS", True), + define("PIO_ENABLE_EXAMPLES", False), ] if spec.satisfies("+pnetcdf"): args.extend( @@ -68,3 +74,8 @@ def cmake_args(self): ] ) return args + + def url_for_version(self, version): + return "https://github.com/NCAR/ParallelIO/archive/pio{0}.tar.gz".format( + version.underscored + ) From 13d872592eb5b50fa4a4b107c6f9bf20f689f34b Mon Sep 17 00:00:00 2001 From: Cory Bloor Date: Mon, 12 Sep 2022 10:19:59 -0600 Subject: [PATCH 073/241] rocalution: fix compilation for Navi 1x and 2x (#32586) --- .../rocalution/0004-fix-navi-1x.patch | 79 +++++++++++++++++++ .../builtin/packages/rocalution/package.py | 2 + 2 files changed, 81 insertions(+) create mode 100644 var/spack/repos/builtin/packages/rocalution/0004-fix-navi-1x.patch diff --git a/var/spack/repos/builtin/packages/rocalution/0004-fix-navi-1x.patch b/var/spack/repos/builtin/packages/rocalution/0004-fix-navi-1x.patch new file mode 100644 index 00000000000..6e96e647746 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocalution/0004-fix-navi-1x.patch @@ -0,0 +1,79 @@ +From 9bdff9b0897360a60d21a686f7b988f924aea825 Mon Sep 17 00:00:00 2001 +From: DorianRudolph +Date: Fri, 9 Sep 2022 07:09:25 +0200 +Subject: [PATCH] fix compilation for gfx1031 (#150) + +* fix compilation for gfx1031 + +* Improve guards for arch-specific instructions + +Default to using the fallback implementation and only use +__hip_move_dpp on platforms known that are known to support the +necessary intrinsics. + +rocALUTION can also be compiled with CXXFLAGS=-DROCALUTION_USE_MOVE_DPP=0 +to force the use of the fallback implementation (or with the value 1 to +force the use of the __hip_move_dpp implementation). + +This change fixes the compilation error: + + Illegal instruction detected: Invalid dpp_ctrl value: broadcasts are not supported on GFX10+ + +when building for unsupported Navi 1x and Navi 2x GPUs. + +Co-authored-by: Cordell Bloor +--- + src/base/hip/hip_utils.hpp | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) + +diff --git a/src/base/hip/hip_utils.hpp b/src/base/hip/hip_utils.hpp +index 830f9a5d..5ec4cd00 100644 +--- a/src/base/hip/hip_utils.hpp ++++ b/src/base/hip/hip_utils.hpp +@@ -37,6 +37,18 @@ + #include + #endif + ++#ifndef ROCALUTION_USE_MOVE_DPP ++#if defined(__gfx803__) || \ ++ defined(__gfx900__) || \ ++ defined(__gfx906__) || \ ++ defined(__gfx908__) || \ ++ defined(__gfx90a__) ++#define ROCALUTION_USE_MOVE_DPP 1 ++#else ++#define ROCALUTION_USE_MOVE_DPP 0 ++#endif ++#endif ++ + #define ROCBLAS_HANDLE(handle) *static_cast(handle) + #define ROCSPARSE_HANDLE(handle) *static_cast(handle) + +@@ -206,7 +218,7 @@ namespace rocalution + + __device__ int __llvm_amdgcn_readlane(int index, int offset) __asm("llvm.amdgcn.readlane"); + +-#ifndef __gfx1030__ ++#if ROCALUTION_USE_MOVE_DPP + template + static __device__ __forceinline__ void wf_reduce_sum(int* sum) + { +@@ -223,7 +235,7 @@ namespace rocalution + if(WFSIZE > 32) + *sum += __hip_move_dpp(*sum, 0x143, 0xc, 0xf, 0); + } +-#else ++#else /* ROCALUTION_USE_MOVE_DPP */ + template + static __device__ __forceinline__ void wf_reduce_sum(int* sum) + { +@@ -232,7 +244,7 @@ namespace rocalution + *sum += __shfl_xor(*sum, i); + } + } +-#endif ++#endif /* ROCALUTION_USE_MOVE_DPP */ + + template + static __device__ __forceinline__ void wf_reduce_sum(float* sum) + diff --git a/var/spack/repos/builtin/packages/rocalution/package.py b/var/spack/repos/builtin/packages/rocalution/package.py index 95cd3258226..6b6fb7ef99f 100644 --- a/var/spack/repos/builtin/packages/rocalution/package.py +++ b/var/spack/repos/builtin/packages/rocalution/package.py @@ -152,6 +152,8 @@ class Rocalution(CMakePackage): # This fix is added to address the compilation failure and it is # already taken in 5.2.3 rocm release. patch("0003-fix-compilation-for-rocalution-5.2.0.patch", when="@5.2.0:") + # Fix build for most Radeon 5000 and Radeon 6000 series GPUs. + patch("0004-fix-navi-1x.patch", when="@5.2.0:") def check(self): exe = join_path(self.build_directory, "clients", "staging", "rocalution-test") From 6a5d247d7c0493a46976097c486935c410e28ae0 Mon Sep 17 00:00:00 2001 From: kwryankrattiger <80296582+kwryankrattiger@users.noreply.github.com> Date: Mon, 12 Sep 2022 12:29:45 -0500 Subject: [PATCH 074/241] VTK-m: Update gcc 11 conflict after patch (#32546) --- var/spack/repos/builtin/packages/vtk-m/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/vtk-m/package.py b/var/spack/repos/builtin/packages/vtk-m/package.py index a8abfefdf22..62289d09ed5 100644 --- a/var/spack/repos/builtin/packages/vtk-m/package.py +++ b/var/spack/repos/builtin/packages/vtk-m/package.py @@ -85,7 +85,7 @@ class VtkM(CMakePackage, CudaPackage, ROCmPackage): depends_on("cmake@3.18:", when="+rocm", type="build") # CMake >= 3.18 conflicts("%gcc@:4.10", msg="vtk-m requires gcc >= 5. Please install a newer version") - conflicts("%gcc@11:", when="@:1.7", msg="vtk-m v1.8 provides updates for gcc >= 11") + conflicts("%gcc@11:", when="@:1.5.2", msg="DIY has a issue building with gcc 11") depends_on("cuda@10.1.0:", when="+cuda_native") depends_on("tbb", when="+tbb") From 6e5dc7374cefc2fbade06582fb56b45126c97b9b Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Mon, 12 Sep 2022 14:17:49 -0400 Subject: [PATCH 075/241] openblas: Allow building linktest.c with clang@15 (#32597) --- .../builtin/packages/openblas/linktest.patch | 21 +++++++++++++++++++ .../builtin/packages/openblas/package.py | 4 ++++ 2 files changed, 25 insertions(+) create mode 100644 var/spack/repos/builtin/packages/openblas/linktest.patch diff --git a/var/spack/repos/builtin/packages/openblas/linktest.patch b/var/spack/repos/builtin/packages/openblas/linktest.patch new file mode 100644 index 00000000000..6ec5f7fff86 --- /dev/null +++ b/var/spack/repos/builtin/packages/openblas/linktest.patch @@ -0,0 +1,21 @@ +--- a/exports/gensymbol ++++ b/exports/gensymbol +@@ -3914,6 +3914,18 @@ + @underscore_objs = (@underscore_objs, @misc_common_objs); + @no_underscore_objs = (@no_underscore_objs, @misc_common_objs); + ++ foreach $objs (@underscore_objs) { ++ print "void ", $symbolprefix, $objs, $bu, $symbolsuffix, "();\n" if $objs ne "xerbla"; ++ } ++ ++ foreach $objs (@need_2underscore_objs) { ++ print "void ", $symbolprefix, $objs, $bu, $bu, $symbolsuffix, "();\n"; ++ } ++ ++ foreach $objs (@no_underscore_objs) { ++ print "void ", $symbolprefix, $objs, $symbolsuffix, "();\n"; ++ } ++ + print "int main(void){\n"; + foreach $objs (@underscore_objs) { + print $symbolprefix, $objs, $bu, $symbolsuffix, "();\n" if $objs ne "xerbla"; diff --git a/var/spack/repos/builtin/packages/openblas/package.py b/var/spack/repos/builtin/packages/openblas/package.py index c1ac5ac24e4..b8a0d16d5ae 100644 --- a/var/spack/repos/builtin/packages/openblas/package.py +++ b/var/spack/repos/builtin/packages/openblas/package.py @@ -153,6 +153,10 @@ class Openblas(MakefilePackage): # Use /usr/bin/env perl in build scripts patch("0001-use-usr-bin-env-perl.patch", when="@:0.3.13") + # Declare external functions in linktest + # See + patch("linktest.patch", when="@0.3.20") + # See https://github.com/spack/spack/issues/19932#issuecomment-733452619 conflicts("%gcc@7.0.0:7.3,8.0.0:8.2", when="@0.3.11:") From 68115eb1d0b6c3e9ddd738ec579a557939cb77ce Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Tue, 13 Sep 2022 01:53:51 -0500 Subject: [PATCH 076/241] GDAL: add v3.5.2 (#32614) --- var/spack/repos/builtin/packages/gdal/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py index 9ac2c8e1a9b..c9b6f9bafd5 100644 --- a/var/spack/repos/builtin/packages/gdal/package.py +++ b/var/spack/repos/builtin/packages/gdal/package.py @@ -28,6 +28,7 @@ class Gdal(CMakePackage): maintainers = ["adamjstewart"] + version("3.5.2", sha256="0874dfdeb9ac42e53c37be4184b19350be76f0530e1f4fa8004361635b9030c2") version("3.5.1", sha256="d12c30a9eacdeaab493c0d1c9f88eb337c9cbb5bb40744c751bdd5a5af166ab6") version("3.5.0", sha256="d49121e5348a51659807be4fb866aa840f8dbec4d1acba6d17fdefa72125bfc9") version("3.4.3", sha256="02a27b35899e1c4c3bcb6007da900128ddd7e8ab7cd6ccfecf338a301eadad5a") From bc83c72ebe77ed36760de8f77079a45e076da5b8 Mon Sep 17 00:00:00 2001 From: Henrik Nortamo <40563680+Nortamo@users.noreply.github.com> Date: Tue, 13 Sep 2022 09:57:55 +0300 Subject: [PATCH 077/241] Hyperqueue package (#32475) * Adds hyperqueue package * Adds maintainers * Adds missing dockstring * Bump year for Copyright Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> * Fixes checksum, selects preferred version Don't use a release candidate as the default version * Switch maintainer to one of the developers for HQ * Update package.py Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> --- .../builtin/packages/hyperqueue/package.py | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 var/spack/repos/builtin/packages/hyperqueue/package.py diff --git a/var/spack/repos/builtin/packages/hyperqueue/package.py b/var/spack/repos/builtin/packages/hyperqueue/package.py new file mode 100644 index 00000000000..a563d22c99c --- /dev/null +++ b/var/spack/repos/builtin/packages/hyperqueue/package.py @@ -0,0 +1,35 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack.package import * + + +class Hyperqueue(Package): + """Scheduler for sub-node tasks for HPC systems with batch scheduling""" + + homepage = "https://it4innovations.github.io/hyperqueue" + url = "https://github.com/It4innovations/hyperqueue/archive/refs/tags/v0.11.0.tar.gz" + git = "https://github.com/It4innovations/hyperqueue" + + maintainers = ["Nortamo", "Kobzol"] + + version("main", branch="main") + version( + "0.12.0-rc1", sha256="0c7b5d567bb6cb8dd4e7bafdf784b0379cef74b3aecb958c7f20248f8fedfbc1" + ) + version( + "0.11.0", + preferred=True, + sha256="07fa7eda3a8a5278e058a526fee92e1e524370813b362aaa1a5dfc49d1f3fc28", + ) + version("0.10.0", sha256="dc022170bf45479cb03edfe55a2fde066e7bf69542f644a8e78db604e8c6d67f") + version("0.9.0", sha256="49be05b3a042382ee31dddea9a5de64d3e3ff747cb2c47fa170b407fa8fdd2e1") + + depends_on("rust@1.59:") + + def install(self, spec, prefix): + cargo = which("cargo") + cargo("install", "--root", prefix, "--path", "crates/hyperqueue") From 62e788fb894bfe4caa5a925165965a58defa1712 Mon Sep 17 00:00:00 2001 From: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Date: Tue, 13 Sep 2022 03:12:15 -0700 Subject: [PATCH 078/241] Added install phase test methods for CachedCMakePackage (inherited) and WafPackage (#32627) --- lib/spack/docs/packaging_guide.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/spack/docs/packaging_guide.rst b/lib/spack/docs/packaging_guide.rst index 8a75ffd0c63..5662c3c3f26 100644 --- a/lib/spack/docs/packaging_guide.rst +++ b/lib/spack/docs/packaging_guide.rst @@ -4561,6 +4561,9 @@ other checks. * - :ref:`AutotoolsPackage ` - ``check`` (``make test``, ``make check``) - ``installcheck`` (``make installcheck``) + * - :ref:`CachedCMakePackage ` + - ``check`` (``make check``, ``make test``) + - Not applicable * - :ref:`CMakePackage ` - ``check`` (``make check``, ``make test``) - Not applicable @@ -4585,6 +4588,9 @@ other checks. * - :ref:`SIPPackage ` - Not applicable - ``test`` (module imports) + * - :ref:`WafPackage ` + - ``build_test`` (must be overridden) + - ``install_test`` (must be overridden) For example, the ``Libelf`` package inherits from ``AutotoolsPackage`` and its ``Makefile`` has a standard ``check`` target. So Spack will From 2d895a9ec3a73c6b749741375c7cb67d13a181cd Mon Sep 17 00:00:00 2001 From: Brian Van Essen Date: Tue, 13 Sep 2022 10:14:04 -0400 Subject: [PATCH 079/241] Added 2.6.0 version to NVSHMEM package. Added new variant for GPU (#32622) initiated support experimental feature. --- var/spack/repos/builtin/packages/nvshmem/package.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/var/spack/repos/builtin/packages/nvshmem/package.py b/var/spack/repos/builtin/packages/nvshmem/package.py index c6214f9d587..d007c6c6115 100644 --- a/var/spack/repos/builtin/packages/nvshmem/package.py +++ b/var/spack/repos/builtin/packages/nvshmem/package.py @@ -18,6 +18,7 @@ class Nvshmem(MakefilePackage, CudaPackage): maintainers = ["bvanessen"] + version("2.6.0-1", sha256="fc0e8de61b034f3a079dc231b1d0955e665a9f57b5013ee98b6743647bd60417") version("2.5.0-19", sha256="dd800b40f1d296e1d3ed2a9885adcfe745c3e57582bc809860e87bd32abcdc60") version("2.4.1-3", sha256="8b6c0eab321b6352911e470f9e81a777a49e58148ec3728453b9522446dba178") version("2.2.1-0", sha256="c8efc6cd560e0ed66d5fe4c5837c650247bec7b0dc65b5089deb8ab49658e1c3") @@ -30,6 +31,12 @@ class Nvshmem(MakefilePackage, CudaPackage): variant("gdrcopy", default=True, description="Build with gdrcopy support") variant("mpi", default=True, description="Build with MPI support") variant("shmem", default=False, description="Build with shmem support") + variant( + "gpu_initiated_support", + default=False, + when="@2.6:", + description="Build with support for GPU initiated communication", + ) conflicts("~cuda") def url_for_version(self, version): @@ -71,3 +78,6 @@ def setup_build_environment(self, env): if "+shmem" in self.spec: env.set("NVSHMEM_SHMEM_SUPPORT", "1") env.set("SHMEM_HOME", self.spec["mpi"].prefix) + + if "+gpu_initiated_support" in self.spec: + env.set("NVSHMEM_GPUINITIATED_SUPPORT", "1") From e97915eef288f9494a6885f3e603d700dce67126 Mon Sep 17 00:00:00 2001 From: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Date: Tue, 13 Sep 2022 07:22:04 -0700 Subject: [PATCH 080/241] Add an issue template for reporting package stand-alone test failures (#32487) --- .github/ISSUE_TEMPLATE/test_error.yml | 62 +++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/test_error.yml diff --git a/.github/ISSUE_TEMPLATE/test_error.yml b/.github/ISSUE_TEMPLATE/test_error.yml new file mode 100644 index 00000000000..2cc11af1556 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/test_error.yml @@ -0,0 +1,62 @@ +name: "\U0001F4A5 Tests error" +description: Some package in Spack had stand-alone tests that didn't pass +title: "Testing issue: " +labels: [test-error] +body: + - type: textarea + id: reproduce + attributes: + label: Steps to reproduce the failure(s) or link(s) to test output(s) + description: | + Fill in the test output from the exact spec that is having stand-alone test failures. Links to test outputs (e.g., CDash) can also be provided. + value: | + ```console + $ spack spec -I + ... + ``` + - type: textarea + id: error + attributes: + label: Error message + description: | + Please post the error message from spack inside the `
` tag below: + value: | +
Error message
+        ...
+        
+ validations: + required: true + - type: textarea + id: information + attributes: + label: Information on your system or the test runner + description: Please include the output of `spack debug report` for your system. + validations: + required: true + - type: markdown + attributes: + value: | + If you have any relevant configuration detail (custom `packages.yaml` or `modules.yaml`, etc.) you can add that here as well. + - type: textarea + id: additional_information + attributes: + label: Additional information + description: | + Please upload test logs or any additional information about the problem. + - type: markdown + attributes: + value: | + Some packages have maintainers who have volunteered to debug build failures. Run `spack maintainers ` and **@mention** them here if they exist. + - type: checkboxes + id: checks + attributes: + label: General information + options: + - label: I have reported the version of Spack/Python/Platform/Runner + required: true + - label: I have run `spack maintainers ` and **@mentioned** any maintainers + required: true + - label: I have uploaded any available logs + required: true + - label: I have searched the issues of this repo and believe this is not a duplicate + required: true From 3e331c7397eb37de80cb493ed14d4b5556f9daf7 Mon Sep 17 00:00:00 2001 From: Jordan Ogas Date: Tue, 13 Sep 2022 09:25:55 -0600 Subject: [PATCH 081/241] charliecloud: deprecate old versions (#32462) * tidy, deprecate old versions * bump python * begrudgingly apply less readable style * adjust comment spacing * apply ghastly multiline function arguments --- .../builtin/packages/charliecloud/package.py | 86 ++++++++++++++----- 1 file changed, 64 insertions(+), 22 deletions(-) diff --git a/var/spack/repos/builtin/packages/charliecloud/package.py b/var/spack/repos/builtin/packages/charliecloud/package.py index 8fa5282e121..245486d5362 100644 --- a/var/spack/repos/builtin/packages/charliecloud/package.py +++ b/var/spack/repos/builtin/packages/charliecloud/package.py @@ -18,43 +18,85 @@ class Charliecloud(AutotoolsPackage): version("master", branch="master") version("0.29", sha256="c89562e9dce4c10027434ad52eaca2140e2ba8667aa1ec9eadf789b4d7c1a6db") - version("0.28", sha256="1ce43b012f475bddb514bb75993efeda9e58ffa93ddbdbd9b86d647f57254c3b") - version("0.27", sha256="1142938ce73ec8a5dfe3a19a241b1f1ffbb63b582ac63d459aebec842c3f4b72") - version("0.26", sha256="5e1e64e869c59905fac0cbbd6ceb82340ee54728415d28ef588fd5de5557038a") - version("0.25", sha256="62d6fd211e3a573f54578e1b01d5c298f9788b7eaf2db46ac94c2dcef604cc94") - version("0.24", sha256="63379bcbad7b90b33457251696d6720416e4acefcf2b49cd6cb495a567e511c2") - version("0.23", sha256="5e458b943ad0e27d1264bb089e48d4a676219179b0e96a7d761387a36c45b4d9") - version("0.22", sha256="f65e4111ce87e449c656032da69f3b1cfc70a5a416a5e410329c1b0b2e953907") - version("0.21", sha256="024884074d283c4a0387d899161610fa4ae739ac1efcc9e53d7d626ddc20359f") - version("0.19", sha256="99619fd86860cda18f7f7a7cf7391f702ec9ebd3193791320dea647769996447") - version("0.18", sha256="15ce63353afe1fc6bcc10979496a54fcd5628f997cb13c827c9fc7afb795bdc5") + version( + "0.28", + deprecated=True, + sha256="1ce43b012f475bddb514bb75993efeda9e58ffa93ddbdbd9b86d647f57254c3b", + ) + version( + "0.27", + deprecated=True, + sha256="1142938ce73ec8a5dfe3a19a241b1f1ffbb63b582ac63d459aebec842c3f4b72", + ) + version( + "0.26", + deprecated=True, + sha256="5e1e64e869c59905fac0cbbd6ceb82340ee54728415d28ef588fd5de5557038a", + ) + version( + "0.25", + deprecated=True, + sha256="62d6fd211e3a573f54578e1b01d5c298f9788b7eaf2db46ac94c2dcef604cc94", + ) + version( + "0.24", + deprecated=True, + sha256="63379bcbad7b90b33457251696d6720416e4acefcf2b49cd6cb495a567e511c2", + ) + version( + "0.23", + deprecated=True, + sha256="5e458b943ad0e27d1264bb089e48d4a676219179b0e96a7d761387a36c45b4d9", + ) + version( + "0.22", + deprecated=True, + sha256="f65e4111ce87e449c656032da69f3b1cfc70a5a416a5e410329c1b0b2e953907", + ) + version( + "0.21", + deprecated=True, + sha256="024884074d283c4a0387d899161610fa4ae739ac1efcc9e53d7d626ddc20359f", + ) + version( + "0.19", + deprecated=True, + sha256="99619fd86860cda18f7f7a7cf7391f702ec9ebd3193791320dea647769996447", + ) + version( + "0.18", + deprecated=True, + sha256="15ce63353afe1fc6bcc10979496a54fcd5628f997cb13c827c9fc7afb795bdc5", + ) + variant("docs", default=False, description="Build man pages and html docs") + # Autoconf. depends_on("m4", type="build") depends_on("autoconf", type="build") depends_on("automake", type="build") depends_on("libtool", type="build") - depends_on("python@3.5:", type="run") - # Version 0.25+ bundle the preferred lark version. - depends_on("py-lark", type="run", when="@:0.24") + # Image manipulation. + depends_on("python@3.6:", type="run") depends_on("py-requests", type="run") - # autogen.sh requires pip and wheel (only needed for git checkouts) - depends_on("py-pip@21.1.2:", type="build", when="@master") - depends_on("py-wheel", type="build", when="@master") - depends_on("git@2.28.1:", type="run", when="@0.29:") + depends_on("git@2.28.1:", type="run", when="@0.29:") # build cache + depends_on("py-lark", type="run", when="@:0.24") # 0.25+ bundles lark - # Man pages and html docs variant. - variant("docs", default=False, description="Build man pages and html docs") + # Man page and html docs. depends_on("rsync", type="build", when="+docs") depends_on("py-sphinx", type="build", when="+docs") depends_on("py-sphinx-rtd-theme", type="build", when="+docs") - # See https://github.com/spack/spack/pull/16049. - conflicts("platform=darwin", msg="This package does not build on macOS") - # Bash automated testing harness (bats). depends_on("bats@0.4.0", type="test") + # Require pip and wheel for git checkout builds (master). + depends_on("py-pip@21.1.2:", type="build", when="@master") + depends_on("py-wheel", type="build", when="@master") + + # See https://github.com/spack/spack/pull/16049. + conflicts("platform=darwin", msg="This package does not build on macOS") + def autoreconf(self, spec, prefix): which("bash")("autogen.sh") From 633a4cbd462a2599a88c4529008e4b7da12fa29b Mon Sep 17 00:00:00 2001 From: Cory Bloor Date: Tue, 13 Sep 2022 09:42:42 -0600 Subject: [PATCH 082/241] rocsparse: add spack build test (#31529) * rocsparse: add spack build test * Fix Navi 1x patch for ROCm 5.2 * Remove bench variant and other cleanup * Fix style --- .../rocsparse/0001-set-mtx-directory.patch | 32 ++++ .../rocsparse/0002-fix-gentest-shebang.patch | 8 + .../rocsparse/0003-fix-navi-1x-rocm-4.5.patch | 78 ++++++++ .../rocsparse/0003-fix-navi-1x-rocm-5.2.patch | 78 ++++++++ .../builtin/packages/rocsparse/package.py | 175 +++++++++++++++++- 5 files changed, 364 insertions(+), 7 deletions(-) create mode 100644 var/spack/repos/builtin/packages/rocsparse/0001-set-mtx-directory.patch create mode 100644 var/spack/repos/builtin/packages/rocsparse/0002-fix-gentest-shebang.patch create mode 100644 var/spack/repos/builtin/packages/rocsparse/0003-fix-navi-1x-rocm-4.5.patch create mode 100644 var/spack/repos/builtin/packages/rocsparse/0003-fix-navi-1x-rocm-5.2.patch diff --git a/var/spack/repos/builtin/packages/rocsparse/0001-set-mtx-directory.patch b/var/spack/repos/builtin/packages/rocsparse/0001-set-mtx-directory.patch new file mode 100644 index 00000000000..cd1fe0d21fb --- /dev/null +++ b/var/spack/repos/builtin/packages/rocsparse/0001-set-mtx-directory.patch @@ -0,0 +1,32 @@ +--- a/clients/tests/CMakeLists.txt ++++ b/clients/tests/CMakeLists.txt +@@ -33,6 +33,7 @@ if(NOT EXISTS "${CMAKE_MATRICES_DIR}") + # Download. + # + set(CMAKE_MATRICES_DIR ${PROJECT_BINARY_DIR}/matrices CACHE STRING "Matrices directory.") ++ file(MAKE_DIRECTORY ${CMAKE_MATRICES_DIR}) + + if(NOT TARGET rocsparse) + set(CONVERT_SOURCE ${CMAKE_SOURCE_DIR}/../deps/convert.cpp CACHE STRING "Convert tool mtx2csr.") +diff --git a/cmake/ClientMatrices.cmake b/cmake/ClientMatrices.cmake +index 871ebc4..b7fb7bc 100644 +--- a/cmake/ClientMatrices.cmake ++++ b/cmake/ClientMatrices.cmake +@@ -99,6 +99,7 @@ foreach(i RANGE 0 ${len1}) + + # Download test matrices if not already downloaded + if(NOT EXISTS "${CMAKE_MATRICES_DIR}/${mat}.csr") ++ if(NOT ROCSPARSE_MTX_DIR) + # First try user specified mirror, if available + if(DEFINED ENV{ROCSPARSE_TEST_MIRROR} AND NOT $ENV{ROCSPARSE_TEST_MIRROR} STREQUAL "") + message("-- Downloading and extracting test matrix ${m}.tar.gz from user specified test mirror: $ENV{ROCSPARSE_TEST_MIRROR}") +@@ -149,6 +150,9 @@ foreach(i RANGE 0 ${len1}) + WORKING_DIRECTORY ${CMAKE_MATRICES_DIR}) + + file(RENAME ${CMAKE_MATRICES_DIR}/${mat}/${mat}.mtx ${CMAKE_MATRICES_DIR}/${mat}.mtx) ++ else() ++ file(RENAME ${ROCSPARSE_MTX_DIR}/${mat}/${mat}.mtx ${CMAKE_MATRICES_DIR}/${mat}.mtx) ++ endif() + execute_process(COMMAND ${PROJECT_BINARY_DIR}/mtx2csr.exe ${mat}.mtx ${mat}.csr + WORKING_DIRECTORY ${CMAKE_MATRICES_DIR}) + # TODO: add 'COMMAND_ERROR_IS_FATAL ANY' once cmake supported version is 3.19 diff --git a/var/spack/repos/builtin/packages/rocsparse/0002-fix-gentest-shebang.patch b/var/spack/repos/builtin/packages/rocsparse/0002-fix-gentest-shebang.patch new file mode 100644 index 00000000000..c0cd38a8fe2 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocsparse/0002-fix-gentest-shebang.patch @@ -0,0 +1,8 @@ +--- a/clients/common/rocsparse_gentest.py ++++ b/clients/common/rocsparse_gentest.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python3 ++#!/usr/bin/env python3 + + # ######################################################################## + # Copyright (c) 2019-2021 Advanced Micro Devices, Inc. diff --git a/var/spack/repos/builtin/packages/rocsparse/0003-fix-navi-1x-rocm-4.5.patch b/var/spack/repos/builtin/packages/rocsparse/0003-fix-navi-1x-rocm-4.5.patch new file mode 100644 index 00000000000..ab84b91c617 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocsparse/0003-fix-navi-1x-rocm-4.5.patch @@ -0,0 +1,78 @@ +From f9446b8f4c3cb3a3c6d38734f9980712a82b9db9 Mon Sep 17 00:00:00 2001 +From: Cory Bloor +Date: Fri, 8 Jul 2022 20:53:32 -0600 +Subject: [PATCH] Improve guards for arch-specific instructions (#368) + +When choosing between a specialized implementation that uses +architecture-specific functionality and a generic fallback, it is +usually preferable to make the fallback the default. This will give the +software the best possible chance of functioning without modification +on future hardware. + +Of course, the library will still need code updates to function +optimally on hardware released after the software was written. + +rocSPARSE can also be compiled with CXXFLAGS=-DROCSPARSE_USE_MOVE_DPP=0 +to force the use of the fallback implementation. Or with the value 1 to +force the use of the specialized __hip_move_dpp implementation. + +This change fixes the compilation error: + + Illegal instruction detected: Invalid dpp_ctrl value: broadcasts are not supported on GFX10+ + +when building for unsupported Navi 1x and Navi 2x GPUs as was +reported in https://github.com/ROCmSoftwarePlatform/rocSPARSE/issues/250 +--- + library/src/include/common.h | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) + +diff --git a/library/src/include/common.h b/library/src/include/common.h +index 6a4654af..975c5f7d 100644 +--- a/library/src/include/common.h ++++ b/library/src/include/common.h +@@ -34,6 +34,18 @@ + + // clang-format off + ++#ifndef ROCSPARSE_USE_MOVE_DPP ++#if defined(__gfx803__) || \ ++ defined(__gfx900__) || \ ++ defined(__gfx906__) || \ ++ defined(__gfx908__) || \ ++ defined(__gfx90a__) ++#define ROCSPARSE_USE_MOVE_DPP 1 ++#else ++#define ROCSPARSE_USE_MOVE_DPP 0 ++#endif ++#endif ++ + // BSR indexing macros + #define BSR_IND(j, bi, bj, dir) ((dir == rocsparse_direction_row) ? BSR_IND_R(j, bi, bj) : BSR_IND_C(j, bi, bj)) + #define BSR_IND_R(j, bi, bj) (block_dim * block_dim * (j) + (bi) * block_dim + (bj)) +@@ -233,7 +245,7 @@ __device__ __forceinline__ void rocsparse_blockreduce_min(int i, T* data) + if(BLOCKSIZE > 1) { if(i < 1 && i + 1 < BLOCKSIZE) { data[i] = min(data[i], data[i + 1]); } __syncthreads(); } + } + +-#ifndef __gfx1030__ ++#if ROCSPARSE_USE_MOVE_DPP + // DPP-based wavefront reduction maximum + template + __device__ __forceinline__ void rocsparse_wfreduce_max(int* maximum) +@@ -499,7 +511,7 @@ __device__ __forceinline__ double rocsparse_wfreduce_sum(double sum) + sum = temp_sum.val; + return sum; + } +-#else ++#else /* ROCSPARSE_USE_MOVE_DPP */ + template + __device__ __forceinline__ void rocsparse_wfreduce_max(int* maximum) + { +@@ -566,7 +578,7 @@ __device__ __forceinline__ double rocsparse_wfreduce_sum(double sum) + + return sum; + } +-#endif ++#endif /* ROCSPARSE_USE_MOVE_DPP */ + + // DPP-based complex float wavefront reduction sum + template diff --git a/var/spack/repos/builtin/packages/rocsparse/0003-fix-navi-1x-rocm-5.2.patch b/var/spack/repos/builtin/packages/rocsparse/0003-fix-navi-1x-rocm-5.2.patch new file mode 100644 index 00000000000..52bbe8336fb --- /dev/null +++ b/var/spack/repos/builtin/packages/rocsparse/0003-fix-navi-1x-rocm-5.2.patch @@ -0,0 +1,78 @@ +From f9446b8f4c3cb3a3c6d38734f9980712a82b9db9 Mon Sep 17 00:00:00 2001 +From: Cory Bloor +Date: Fri, 8 Jul 2022 20:53:32 -0600 +Subject: [PATCH] Improve guards for arch-specific instructions (#368) + +When choosing between a specialized implementation that uses +architecture-specific functionality and a generic fallback, it is +usually preferable to make the fallback the default. This will give the +software the best possible chance of functioning without modification +on future hardware. + +Of course, the library will still need code updates to function +optimally on hardware released after the software was written. + +rocSPARSE can also be compiled with CXXFLAGS=-DROCSPARSE_USE_MOVE_DPP=0 +to force the use of the fallback implementation. Or with the value 1 to +force the use of the specialized __hip_move_dpp implementation. + +This change fixes the compilation error: + + Illegal instruction detected: Invalid dpp_ctrl value: broadcasts are not supported on GFX10+ + +when building for unsupported Navi 1x and Navi 2x GPUs as was +reported in https://github.com/ROCmSoftwarePlatform/rocSPARSE/issues/250 +--- + library/src/include/common.h | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) + +diff --git a/library/src/include/common.h b/library/src/include/common.h +index 6a4654af..975c5f7d 100644 +--- a/library/src/include/common.h ++++ b/library/src/include/common.h +@@ -34,6 +34,18 @@ + + // clang-format off + ++#ifndef ROCSPARSE_USE_MOVE_DPP ++#if defined(__gfx803__) || \ ++ defined(__gfx900__) || \ ++ defined(__gfx906__) || \ ++ defined(__gfx908__) || \ ++ defined(__gfx90a__) ++#define ROCSPARSE_USE_MOVE_DPP 1 ++#else ++#define ROCSPARSE_USE_MOVE_DPP 0 ++#endif ++#endif ++ + // BSR indexing macros + #define BSR_IND(j, bi, bj, dir) ((dir == rocsparse_direction_row) ? BSR_IND_R(j, bi, bj) : BSR_IND_C(j, bi, bj)) + #define BSR_IND_R(j, bi, bj) (block_dim * block_dim * (j) + (bi) * block_dim + (bj)) +@@ -233,7 +245,7 @@ __device__ __forceinline__ void rocsparse_blockreduce_min(int i, T* data) + if(BLOCKSIZE > 1) { if(i < 1 && i + 1 < BLOCKSIZE) { data[i] = min(data[i], data[i + 1]); } __syncthreads(); } + } + +-#if (!defined(__gfx1030__)) && (!defined(__gfx1011__)) ++#if ROCSPARSE_USE_MOVE_DPP + // DPP-based wavefront reduction maximum + template + __device__ __forceinline__ void rocsparse_wfreduce_max(int* maximum) +@@ -499,7 +511,7 @@ __device__ __forceinline__ double rocsparse_wfreduce_sum(double sum) + sum = temp_sum.val; + return sum; + } +-#else ++#else /* ROCSPARSE_USE_MOVE_DPP */ + template + __device__ __forceinline__ void rocsparse_wfreduce_max(int* maximum) + { +@@ -566,7 +578,7 @@ __device__ __forceinline__ double rocsparse_wfreduce_sum(double sum) + + return sum; + } +-#endif ++#endif /* ROCSPARSE_USE_MOVE_DPP */ + + // DPP-based complex float wavefront reduction sum + template diff --git a/var/spack/repos/builtin/packages/rocsparse/package.py b/var/spack/repos/builtin/packages/rocsparse/package.py index 66e29836760..765dc23bff9 100644 --- a/var/spack/repos/builtin/packages/rocsparse/package.py +++ b/var/spack/repos/builtin/packages/rocsparse/package.py @@ -3,7 +3,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import itertools import re from spack.package import * @@ -33,6 +32,7 @@ class Rocsparse(CMakePackage): values=("Release", "Debug", "RelWithDebInfo"), description="CMake build type", ) + variant("test", default=False, description="Build rocsparse-test client") version("5.2.0", sha256="7ed929af16d2502135024a6463997d9a95f03899b8a33aa95db7029575c89572") version("5.1.3", sha256="ef9641045b36c9aacc87e4fe7717b41b1e29d97e21432678dce7aca633a8edc2") @@ -114,13 +114,173 @@ class Rocsparse(CMakePackage): "5.2.0", ]: depends_on("hip@" + ver, when="@" + ver) - for tgt in itertools.chain(["auto"], amdgpu_targets): - depends_on( - "rocprim@{0} amdgpu_target={1}".format(ver, tgt), - when="@{0} amdgpu_target={1}".format(ver, tgt), - ) + depends_on("rocprim@" + ver, when="@" + ver) depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) + # Add option so Spack can manage downloaded test matricies as resources. + patch("0001-set-mtx-directory.patch", when="@4.5.0: +test") + # Enable use of Spack-provided Python. + patch("0002-fix-gentest-shebang.patch", when="@4.5.0: +test") + # Fix build for most Radeon 5000 and Radeon 6000 series GPUs. + patch("0003-fix-navi-1x-rocm-4.5.patch", when="@4.5.0:5.1") + patch("0003-fix-navi-1x-rocm-5.2.patch", when="@5.2.0:") + + depends_on("googletest@1.11.0:", when="@5.1.0: +test") + depends_on("googletest@1.10.0:", when="+test") + depends_on("python@3:", type="build", when="+test") + depends_on("py-pyyaml", type="build", when="+test") + + with when("+test"): + resource( + name="amazon0312", + url="https://sparse.tamu.edu/MM/SNAP/amazon0312.tar.gz", + sha256="75ffd36b33675856f370f508d53e6197caa972ac52929991db7dc4198bd64910", + destination="mtx", + ) + resource( + name="Chebyshev4", + url="https://sparse.tamu.edu/MM/Muite/Chebyshev4.tar.gz", + sha256="82553d73281587ea70e5faa427910e979524412c89e59ada7fa47a97142ae8a6", + destination="mtx", + ) + resource( + name="sme3Dc", + url="https://sparse.tamu.edu/MM/FEMLAB/sme3Dc.tar.gz", + sha256="82f03904849cceea0af1b9975942717527ecc5e87a98cfddea78ffbe7e7c076d", + destination="mtx", + ) + resource( + name="webbase-1M", + url="https://sparse.tamu.edu/MM/Williams/webbase-1M.tar.gz", + sha256="17a0391cdd966350b2b41f32aaf8e6684f3c55f25eb68c4be088f44f728a3ed4", + destination="mtx", + ) + resource( + name="rma10", + url="https://sparse.tamu.edu/MM/Bova/rma10.tar.gz", + sha256="50db8d278d371531b3dd0638444d47a77f3a3e189663993a857861dbc34c5e3f", + destination="mtx", + ) + resource( + name="bibd_22_8", + url="https://sparse.tamu.edu/MM/JGD_BIBD/bibd_22_8.tar.gz", + sha256="534b5210662d1b5b14a3938671501189685d12abf9f2a206778508345181014c", + destination="mtx", + ) + resource( + name="mac_econ_fwd500", + url="https://sparse.tamu.edu/MM/Williams/mac_econ_fwd500.tar.gz", + sha256="0dec2952b2908e3d59e4179289245db7f2c84f9e5e6543e818491deed5978f82", + destination="mtx", + ) + resource( + name="mc2depi", + url="https://sparse.tamu.edu/MM/Williams/mc2depi.tar.gz", + sha256="c02fef86efdd4f4322487e7472697a3d30b084ede1021e6d6889b347d3f6b268", + destination="mtx", + ) + resource( + name="scircuit", + url="https://sparse.tamu.edu/MM/Hamm/scircuit.tar.gz", + sha256="227d4c98e51c8af49c07f89929c62f2523e115e81b672e7f306185ea92c2996f", + destination="mtx", + ) + resource( + name="ASIC_320k", + url="https://sparse.tamu.edu/MM/Sandia/ASIC_320k.tar.gz", + sha256="d0d4ac477f641c8372d7347bc262ffcbde017f50fb17bb1a1539c98dd3440145", + destination="mtx", + ) + resource( + name="bmwcra_1", + url="https://sparse.tamu.edu/MM/GHS_psdef/bmwcra_1.tar.gz", + sha256="31467b319f3d4e8a8fc3a320344650bee14b285755b13ee29264b7a488b3d222", + destination="mtx", + ) + resource( + name="nos1", + url="https://sparse.tamu.edu/MM/HB/nos1.tar.gz", + sha256="7e64dc2408890e85a60dbd2ad048963c74625cc3037dbdff9647d30844a52674", + destination="mtx", + ) + resource( + name="nos2", + url="https://sparse.tamu.edu/MM/HB/nos2.tar.gz", + sha256="7439318b969e8cad0e96f154937a35256374bb8f0e16ed7ecc3a5219f8dc903b", + destination="mtx", + ) + resource( + name="nos3", + url="https://sparse.tamu.edu/MM/HB/nos3.tar.gz", + sha256="7dd62179bbcaeb693c774712a8d70b97316364983f1cbf06cecb3900da8954a5", + destination="mtx", + ) + resource( + name="nos4", + url="https://sparse.tamu.edu/MM/HB/nos4.tar.gz", + sha256="ec2323a5195db153fd6ae32ff537b22eb47f08e73949754b71f8d4104358f10f", + destination="mtx", + ) + resource( + name="nos5", + url="https://sparse.tamu.edu/MM/HB/nos5.tar.gz", + sha256="dd67e906b0392cfbbe5a01a1f1a569c50875cbf88249a31721fb87519666a342", + destination="mtx", + ) + resource( + name="nos6", + url="https://sparse.tamu.edu/MM/HB/nos6.tar.gz", + sha256="a0301c38ed91b849571303db581205cfae113565a7938eaa1a7466320f0d03c4", + destination="mtx", + ) + resource( + name="nos7", + url="https://sparse.tamu.edu/MM/HB/nos7.tar.gz", + sha256="c5d8d99bf4b54ee45e2f45d78530e3787f2e9670c000a68ad986a3b923e9e5ae", + destination="mtx", + ) + resource( + name="shipsec1", + url="https://sparse.tamu.edu/MM/DNVS/shipsec1.tar.gz", + sha256="d021889affed5429f85b606900f76870d0b1b1aefd92529cc6f43bf9d7ef0eb1", + destination="mtx", + ) + resource( + name="mplate", + url="https://sparse.tamu.edu/MM/Cote/mplate.tar.gz", + sha256="647b848343e423a24e05d3a3d462fa6b77958e362aadf70e9bb51bd420730df2", + destination="mtx", + ) + resource( + name="qc2534", + url="https://sparse.tamu.edu/MM/Bai/qc2534.tar.gz", + sha256="591c54ceee70222909353d2a400dd9819e3432143b2c25b6c4ffa262b8e397c8", + destination="mtx", + ) + resource( + name="Chevron2", + url="https://sparse.tamu.edu/MM/Chevron/Chevron2.tar.gz", + sha256="9334b61c25958f5221fd114e9698c11ac0ec57a0432150731d3fe80033da3026", + destination="mtx", + ) + resource( + name="Chevron3", + url="https://sparse.tamu.edu/MM/Chevron/Chevron3.tar.gz", + sha256="5679292ba86defedb0a6afc25274948521ace7ca90fc765265be11ca6eaaaee4", + destination="mtx", + ) + resource( + name="Chevron4", + url="https://sparse.tamu.edu/MM/Chevron/Chevron4.tar.gz", + sha256="2ac9dc0d8d38cbf4a62089c74e53aea87edbb3f0b553b77b27c70df70e1d17d5", + destination="mtx", + ) + + def check(self): + if self.spec.satisfies("+test"): + exe = join_path(self.build_directory, "clients", "staging", "rocsparse-test") + self.run_test(exe, options=["--gtest_filter=*quick*:*pre_checkin*-*known_bug*"]) + def setup_build_environment(self, env): env.set("CXX", self.spec["hip"].hipcc) @@ -138,8 +298,9 @@ def determine_version(cls, lib): def cmake_args(self): args = [ self.define("BUILD_CLIENTS_SAMPLES", "OFF"), - self.define("BUILD_CLIENTS_TESTS", "OFF"), + self.define_from_variant("BUILD_CLIENTS_TESTS", "test"), self.define("BUILD_CLIENTS_BENCHMARKS", "OFF"), + self.define("ROCSPARSE_MTX_DIR", join_path(self.stage.source_path, "mtx")), ] if "auto" not in self.spec.variants["amdgpu_target"]: From 251d86e5ab1dd07c99a9ae8dcb449005fce4cfd9 Mon Sep 17 00:00:00 2001 From: Cameron Stanavige Date: Tue, 13 Sep 2022 09:53:11 -0700 Subject: [PATCH 083/241] unifyfs & gotcha: new releases (#32625) UnifyFS: - Add 1.0 release - Deprecate older, unsupported versions - Set fortran variant to true by default - Update gotcha and mochi-margo dependency versions for unifyfs@1.0 and unifyfs@develop - Add conflict of unifyfs with libfabric 1.13.* versions - Update configure_args to use helper functions GOTCHA: Hasn't been under active development for a couple years but the develop branch has some fixes UnifyFS uses. To avoid having UnifyFS v1.0 depend on a develop branch of a dependency, this creates a new release in the Gotcha Spack package based on the most recent commit of the develop branch. --- .../repos/builtin/packages/gotcha/package.py | 1 + .../repos/builtin/packages/unifyfs/package.py | 45 ++++++++++--------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/var/spack/repos/builtin/packages/gotcha/package.py b/var/spack/repos/builtin/packages/gotcha/package.py index c1ecde06fba..50062ac1ce4 100644 --- a/var/spack/repos/builtin/packages/gotcha/package.py +++ b/var/spack/repos/builtin/packages/gotcha/package.py @@ -17,6 +17,7 @@ class Gotcha(CMakePackage): version("develop", branch="develop") version("master", branch="master") + version("1.0.4", commit="08a5279cef051ed39bc92c5f77f55ca5b41a405e") version("1.0.3", tag="1.0.3") version("1.0.2", tag="1.0.2") version("0.0.2", tag="0.0.2") diff --git a/var/spack/repos/builtin/packages/unifyfs/package.py b/var/spack/repos/builtin/packages/unifyfs/package.py index 07908481ca5..1de7aa6dd89 100644 --- a/var/spack/repos/builtin/packages/unifyfs/package.py +++ b/var/spack/repos/builtin/packages/unifyfs/package.py @@ -22,15 +22,24 @@ class Unifyfs(AutotoolsPackage): tags = ["e4s"] version("develop", branch="dev") - version("0.9.2", sha256="7046625dc0677535f5d960187cb2e2d58a6f8cfb4dc6a3604f825257eb0891aa") - version("0.9.1", sha256="2498a859cfa4961356fdf5c4c17e3afc3de7e034ad013b8c7145a622ef6199a0") + version("1.0", sha256="c9ad0d15d382773841a3dab89c661fbdcfd686ec37fa263eb22713f6404258f5") + version( + "0.9.2", + sha256="7046625dc0677535f5d960187cb2e2d58a6f8cfb4dc6a3604f825257eb0891aa", + deprecated=True, + ) + version( + "0.9.1", + sha256="2498a859cfa4961356fdf5c4c17e3afc3de7e034ad013b8c7145a622ef6199a0", + deprecated=True, + ) variant( "auto-mount", default="True", description="Enable automatic mount/unmount in MPI_Init/Finalize", ) - variant("fortran", default="False", description="Build with gfortran support") + variant("fortran", default="True", description="Build with gfortran support") variant("pmi", default="False", description="Enable PMI2 build options") variant("pmix", default="False", description="Enable PMIx build options") variant("spath", default="True", description="Use spath library to normalize relative paths") @@ -43,17 +52,19 @@ class Unifyfs(AutotoolsPackage): depends_on("pkgconfig", type="build") # Required dependencies - depends_on("gotcha@1.0.3:") + depends_on("gotcha@1.0.4:") depends_on("mercury@1.0.1+bmi", when="@:0.9.1") depends_on("mochi-margo@0.4.3", when="@:0.9.1") - depends_on("mochi-margo", when="@0.9.2:") + depends_on("mochi-margo@0.9.6", when="@0.9.2:1.0") + depends_on("mochi-margo@0.9.6:0.9.9", when="@develop") depends_on("mpi") depends_on("openssl@:1") + depends_on("libfabric fabrics=rxm,sockets,tcp", when="^mercury@2:+ofi") # Optional dependencies - depends_on("libfabric fabrics=rxm,sockets,tcp", when="^mercury@2:+ofi") depends_on("spath~mpi", when="+spath") + conflicts("^libfabric@1.13") conflicts("^mercury~bmi~ofi") conflicts("^mercury~sm") # Known compatibility issues with ifort and xlf. Fixes coming. @@ -89,19 +100,13 @@ def setup_build_environment(self, env): def configure_args(self): spec = self.spec - args = [] + args = ["--with-gotcha=%s" % spec["gotcha"].prefix] - if "+auto-mount" in spec: - args.append("--enable-mpi-mount") - - if "+fortran" in spec: - args.append("--enable-fortran") - - if "+pmi" in spec: - args.append("--enable-pmi") - - if "+pmix" in spec: - args.append("--enable-pmix") + args.extend(self.with_or_without("spath", activation_value="prefix")) + args.extend(self.enable_or_disable("mpi-mount", variant="auto-mount")) + args.extend(self.enable_or_disable("fortran")) + args.extend(self.enable_or_disable("pmi")) + args.extend(self.enable_or_disable("pmix")) if self.debug_build: args.append("--disable-silent-rules") @@ -112,8 +117,8 @@ def configure_args(self): @when("@develop") def autoreconf(self, spec, prefix): - bash = which("bash") - bash("./autogen.sh") + sh = which("sh") + sh("./autogen.sh") @when("%cce@11.0.3:") def patch(self): From 53a7b49619671a318274cdec43952a1d59f77ff0 Mon Sep 17 00:00:00 2001 From: "John W. Parent" <45471568+johnwparent@users.noreply.github.com> Date: Tue, 13 Sep 2022 13:28:29 -0400 Subject: [PATCH 084/241] Windows rpath support (#31930) Add a post-install step which runs (only) on Windows to modify an install prefix, adding symlinks to all dependency libraries. Windows does not have the same concept of RPATHs as Linux, but when resolving symbols will check the local directory for dependency libraries; by placing a symlink to each dependency library in the directory with the library that needs it, the package can then use all Spack-built dependencies. Note: * This collects dependency libraries based on Package.rpath, which includes only direct link dependencies * There is no examination of libraries to check what dependencies they require, so all libraries of dependencies are symlinked into any directory of the package which contains libraries --- lib/spack/llnl/util/filesystem.py | 181 +++++++++++++++++- lib/spack/spack/installer.py | 14 +- lib/spack/spack/package_base.py | 35 +++- lib/spack/spack/test/conftest.py | 6 +- .../test/data/directory_search/a/libc.dll | 0 .../test/data/directory_search/a/libc.lib | 0 .../test/data/directory_search/b/liba.dll | 0 .../test/data/directory_search/b/liba.lib | 0 .../test/data/directory_search/b/libd.dll | 0 .../test/data/directory_search/b/libd.lib | 0 .../test/data/directory_search/c/libb.dll | 0 .../test/data/directory_search/c/libb.lib | 0 lib/spack/spack/test/install.py | 10 +- lib/spack/spack/test/llnl/util/file_list.py | 65 +++++-- .../packages/attributes-foo/package.py | 12 +- 15 files changed, 277 insertions(+), 46 deletions(-) create mode 100644 lib/spack/spack/test/data/directory_search/a/libc.dll create mode 100644 lib/spack/spack/test/data/directory_search/a/libc.lib create mode 100644 lib/spack/spack/test/data/directory_search/b/liba.dll create mode 100644 lib/spack/spack/test/data/directory_search/b/liba.lib create mode 100644 lib/spack/spack/test/data/directory_search/b/libd.dll create mode 100644 lib/spack/spack/test/data/directory_search/b/libd.lib create mode 100644 lib/spack/spack/test/data/directory_search/c/libb.dll create mode 100644 lib/spack/spack/test/data/directory_search/c/libb.lib diff --git a/lib/spack/llnl/util/filesystem.py b/lib/spack/llnl/util/filesystem.py index 8a420756efe..a161a64d2a0 100644 --- a/lib/spack/llnl/util/filesystem.py +++ b/lib/spack/llnl/util/filesystem.py @@ -22,7 +22,7 @@ from llnl.util import tty from llnl.util.compat import Sequence from llnl.util.lang import dedupe, memoized -from llnl.util.symlink import symlink +from llnl.util.symlink import islink, symlink from spack.util.executable import Executable from spack.util.path import path_to_os_path, system_path_filter @@ -637,7 +637,11 @@ def copy_tree(src, dest, symlinks=True, ignore=None, _permissions=False): if symlinks: target = os.readlink(s) if os.path.isabs(target): - new_target = re.sub(abs_src, abs_dest, target) + + def escaped_path(path): + return path.replace("\\", r"\\") + + new_target = re.sub(escaped_path(abs_src), escaped_path(abs_dest), target) if new_target != target: tty.debug("Redirecting link {0} to {1}".format(target, new_target)) target = new_target @@ -1903,7 +1907,11 @@ def names(self): name = x[3:] # Valid extensions include: ['.dylib', '.so', '.a'] - for ext in [".dylib", ".so", ".a"]: + # on non Windows platform + # Windows valid library extensions are: + # ['.dll', '.lib'] + valid_exts = [".dll", ".lib"] if is_windows else [".dylib", ".so", ".a"] + for ext in valid_exts: i = name.rfind(ext) if i != -1: names.append(name[:i]) @@ -2046,15 +2054,23 @@ def find_libraries(libraries, root, shared=True, recursive=False): message = message.format(find_libraries.__name__, type(libraries)) raise TypeError(message) + if is_windows: + static = "lib" + shared = "dll" + else: + # Used on both Linux and macOS + static = "a" + shared = "so" + # Construct the right suffix for the library if shared: # Used on both Linux and macOS - suffixes = ["so"] + suffixes = [shared] if sys.platform == "darwin": # Only used on macOS suffixes.append("dylib") else: - suffixes = ["a"] + suffixes = [static] # List of libraries we are searching with suffixes libraries = ["{0}.{1}".format(lib, suffix) for lib in libraries for suffix in suffixes] @@ -2067,7 +2083,11 @@ def find_libraries(libraries, root, shared=True, recursive=False): # perform first non-recursive search in root/lib then in root/lib64 and # finally search all of root recursively. The search stops when the first # match is found. - for subdir in ("lib", "lib64"): + common_lib_dirs = ["lib", "lib64"] + if is_windows: + common_lib_dirs.extend(["bin", "Lib"]) + + for subdir in common_lib_dirs: dirname = join_path(root, subdir) if not os.path.isdir(dirname): continue @@ -2080,6 +2100,155 @@ def find_libraries(libraries, root, shared=True, recursive=False): return LibraryList(found_libs) +def find_all_shared_libraries(root, recursive=False): + """Convenience function that returns the list of all shared libraries found + in the directory passed as argument. + + See documentation for `llnl.util.filesystem.find_libraries` for more information + """ + return find_libraries("*", root=root, shared=True, recursive=recursive) + + +def find_all_static_libraries(root, recursive=False): + """Convenience function that returns the list of all static libraries found + in the directory passed as argument. + + See documentation for `llnl.util.filesystem.find_libraries` for more information + """ + return find_libraries("*", root=root, shared=False, recursive=recursive) + + +def find_all_libraries(root, recursive=False): + """Convenience function that returns the list of all libraries found + in the directory passed as argument. + + See documentation for `llnl.util.filesystem.find_libraries` for more information + """ + + return find_all_shared_libraries(root, recursive=recursive) + find_all_static_libraries( + root, recursive=recursive + ) + + +class WindowsSimulatedRPath(object): + """Class representing Windows filesystem rpath analog + + One instance of this class is associated with a package (only on Windows) + For each lib/binary directory in an associated package, this class introduces + a symlink to any/all dependent libraries/binaries. This includes the packages + own bin/lib directories, meaning the libraries are linked to the bianry directory + and vis versa. + """ + + def __init__(self, package, link_install_prefix=True): + """ + Args: + package (spack.package_base.PackageBase): Package requiring links + link_install_prefix (bool): Link against package's own install or stage root. + Packages that run their own executables during build and require rpaths to + the build directory during build time require this option. Default: install + root + """ + self.pkg = package + self._addl_rpaths = set() + self.link_install_prefix = link_install_prefix + self._internal_links = set() + + @property + def link_dest(self): + """ + Set of directories where package binaries/libraries are located. + """ + if hasattr(self.pkg, "libs") and self.pkg.libs: + pkg_libs = set(self.pkg.libs.directories) + else: + pkg_libs = set((self.pkg.prefix.lib, self.pkg.prefix.lib64)) + + return pkg_libs | set([self.pkg.prefix.bin]) | self.internal_links + + @property + def internal_links(self): + """ + linking that would need to be established within the package itself. Useful for links + against extension modules/build time executables/internal linkage + """ + return self._internal_links + + def add_internal_links(self, *dest): + """ + Incorporate additional paths into the rpath (sym)linking scheme. + + Paths provided to this method are linked against by a package's libraries + and libraries found at these paths are linked against a package's binaries. + (i.e. /site-packages -> /bin and /bin -> /site-packages) + + Specified paths should be outside of a package's lib, lib64, and bin + directories. + """ + self._internal_links = self._internal_links | set(*dest) + + @property + def link_targets(self): + """ + Set of libraries this package needs to link against during runtime + These packages will each be symlinked into the packages lib and binary dir + """ + + dependent_libs = [] + for path in self.pkg.rpath: + dependent_libs.extend(list(find_all_shared_libraries(path, recursive=True))) + for extra_path in self._addl_rpaths: + dependent_libs.extend(list(find_all_shared_libraries(extra_path, recursive=True))) + return set(dependent_libs) + + def include_additional_link_paths(self, *paths): + """ + Add libraries found at the root of provided paths to runtime linking + + These are libraries found outside of the typical scope of rpath linking + that require manual inclusion in a runtime linking scheme + + Args: + *paths (str): arbitrary number of paths to be added to runtime linking + """ + self._addl_rpaths = self._addl_rpaths | set(paths) + + def establish_link(self): + """ + (sym)link packages to runtime dependencies based on RPath configuration for + Windows heuristics + """ + # from build_environment.py:463 + # The top-level package is always RPATHed. It hasn't been installed yet + # so the RPATHs are added unconditionally + + # for each binary install dir in self.pkg (i.e. pkg.prefix.bin, pkg.prefix.lib) + # install a symlink to each dependent library + for library, lib_dir in itertools.product(self.link_targets, self.link_dest): + if not path_contains_subdirectory(library, lib_dir): + file_name = os.path.basename(library) + dest_file = os.path.join(lib_dir, file_name) + if os.path.exists(lib_dir): + try: + symlink(library, dest_file) + # For py2 compatibility, we have to catch the specific Windows error code + # associate with trying to create a file that already exists (winerror 183) + except OSError as e: + if e.winerror == 183: + # We have either already symlinked or we are encoutering a naming clash + # either way, we don't want to overwrite existing libraries + already_linked = islink(dest_file) + tty.debug( + "Linking library %s to %s failed, " % (library, dest_file) + + "already linked." + if already_linked + else "library with name %s already exists." % file_name + ) + pass + else: + raise e + + @system_path_filter @memoized def can_access_dir(path): diff --git a/lib/spack/spack/installer.py b/lib/spack/spack/installer.py index d97db355354..2f0415b0c1e 100644 --- a/lib/spack/spack/installer.py +++ b/lib/spack/spack/installer.py @@ -84,6 +84,9 @@ #: queue invariants). STATUS_REMOVED = "removed" +is_windows = sys.platform == "win32" +is_osx = sys.platform == "darwin" + class InstallAction(object): #: Don't perform an install @@ -165,7 +168,9 @@ def _do_fake_install(pkg): if not pkg.name.startswith("lib"): library = "lib" + library - dso_suffix = ".dylib" if sys.platform == "darwin" else ".so" + plat_shared = ".dll" if is_windows else ".so" + plat_static = ".lib" if is_windows else ".a" + dso_suffix = ".dylib" if is_osx else plat_shared # Install fake command fs.mkdirp(pkg.prefix.bin) @@ -180,7 +185,7 @@ def _do_fake_install(pkg): # Install fake shared and static libraries fs.mkdirp(pkg.prefix.lib) - for suffix in [dso_suffix, ".a"]: + for suffix in [dso_suffix, plat_static]: fs.touch(os.path.join(pkg.prefix.lib, library + suffix)) # Install fake man page @@ -1214,7 +1219,10 @@ def _install_task(self, task): spack.package_base.PackageBase._verbose = spack.build_environment.start_build_process( pkg, build_process, install_args ) - + # Currently this is how RPATH-like behavior is achieved on Windows, after install + # establish runtime linkage via Windows Runtime link object + # Note: this is a no-op on non Windows platforms + pkg.windows_establish_runtime_linkage() # Note: PARENT of the build process adds the new package to # the database, so that we don't need to re-read from file. spack.store.db.add(pkg.spec, spack.store.layout, explicit=explicit) diff --git a/lib/spack/spack/package_base.py b/lib/spack/spack/package_base.py index e8f7ccd92af..f4573e6f195 100644 --- a/lib/spack/spack/package_base.py +++ b/lib/spack/spack/package_base.py @@ -97,6 +97,9 @@ _spack_configure_argsfile = "spack-configure-args.txt" +is_windows = sys.platform == "win32" + + def preferred_version(pkg): """ Returns a sorted list of the preferred versions of the package. @@ -182,6 +185,30 @@ def copy(self): return other +class WindowsRPathMeta(object): + """Collection of functionality surrounding Windows RPATH specific features + + This is essentially meaningless for all other platforms + due to their use of RPATH. All methods within this class are no-ops on + non Windows. Packages can customize and manipulate this class as + they would a genuine RPATH, i.e. adding directories that contain + runtime library dependencies""" + + def add_search_paths(self, *path): + """Add additional rpaths that are not implicitly included in the search + scheme + """ + self.win_rpath.include_additional_link_paths(*path) + + def windows_establish_runtime_linkage(self): + """Establish RPATH on Windows + + Performs symlinking to incorporate rpath dependencies to Windows runtime search paths + """ + if is_windows: + self.win_rpath.establish_link() + + #: Registers which are the detectable packages, by repo and package name #: Need a pass of package repositories to be filled. detectable_packages = collections.defaultdict(list) @@ -221,7 +248,7 @@ def to_windows_exe(exe): plat_exe = [] if hasattr(cls, "executables"): for exe in cls.executables: - if sys.platform == "win32": + if is_windows: exe = to_windows_exe(exe) plat_exe.append(exe) return plat_exe @@ -513,7 +540,7 @@ def test_log_pathname(test_stage, spec): return os.path.join(test_stage, "test-{0}-out.txt".format(TestSuite.test_pkg_id(spec))) -class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)): +class PackageBase(six.with_metaclass(PackageMeta, WindowsRPathMeta, PackageViewMixin, object)): """This is the superclass for all spack packages. ***The Package class*** @@ -753,6 +780,8 @@ def __init__(self, spec): # Set up timing variables self._fetch_time = 0.0 + self.win_rpath = fsys.WindowsSimulatedRPath(self) + if self.is_extension: pkg_cls = spack.repo.path.get_pkg_class(self.extendee_spec.name) pkg_cls(self.extendee_spec)._check_extendable() @@ -2754,6 +2783,8 @@ def rpath(self): deps = self.spec.dependencies(deptype="link") rpaths.extend(d.prefix.lib for d in deps if os.path.isdir(d.prefix.lib)) rpaths.extend(d.prefix.lib64 for d in deps if os.path.isdir(d.prefix.lib64)) + if is_windows: + rpaths.extend(d.prefix.bin for d in deps if os.path.isdir(d.prefix.bin)) return rpaths @property diff --git a/lib/spack/spack/test/conftest.py b/lib/spack/spack/test/conftest.py index ed8dc0f9bd4..97a6b9de7b7 100644 --- a/lib/spack/spack/test/conftest.py +++ b/lib/spack/spack/test/conftest.py @@ -27,7 +27,7 @@ import llnl.util.lang import llnl.util.tty as tty -from llnl.util.filesystem import mkdirp, remove_linked_tree, working_dir +from llnl.util.filesystem import copy_tree, mkdirp, remove_linked_tree, working_dir import spack.binary_distribution import spack.caches @@ -803,7 +803,7 @@ def mock_store(tmpdir_factory, mock_repo_path, mock_configuration_scopes, _store with spack.store.use_store(str(store_path)) as store: with spack.repo.use_repositories(mock_repo_path): _populate(store.db) - store_path.copy(store_cache, mode=True, stat=True) + copy_tree(str(store_path), str(store_cache)) # Make the DB filesystem read-only to ensure we can't modify entries store_path.join(".spack-db").chmod(mode=0o555, rec=1) @@ -844,7 +844,7 @@ def mutable_database(database_mutable_config, _store_dir_and_cache): # Restore the initial state by copying the content of the cache back into # the store and making the database read-only store_path.remove(rec=1) - store_cache.copy(store_path, mode=True, stat=True) + copy_tree(str(store_cache), str(store_path)) store_path.join(".spack-db").chmod(mode=0o555, rec=1) diff --git a/lib/spack/spack/test/data/directory_search/a/libc.dll b/lib/spack/spack/test/data/directory_search/a/libc.dll new file mode 100644 index 00000000000..e69de29bb2d diff --git a/lib/spack/spack/test/data/directory_search/a/libc.lib b/lib/spack/spack/test/data/directory_search/a/libc.lib new file mode 100644 index 00000000000..e69de29bb2d diff --git a/lib/spack/spack/test/data/directory_search/b/liba.dll b/lib/spack/spack/test/data/directory_search/b/liba.dll new file mode 100644 index 00000000000..e69de29bb2d diff --git a/lib/spack/spack/test/data/directory_search/b/liba.lib b/lib/spack/spack/test/data/directory_search/b/liba.lib new file mode 100644 index 00000000000..e69de29bb2d diff --git a/lib/spack/spack/test/data/directory_search/b/libd.dll b/lib/spack/spack/test/data/directory_search/b/libd.dll new file mode 100644 index 00000000000..e69de29bb2d diff --git a/lib/spack/spack/test/data/directory_search/b/libd.lib b/lib/spack/spack/test/data/directory_search/b/libd.lib new file mode 100644 index 00000000000..e69de29bb2d diff --git a/lib/spack/spack/test/data/directory_search/c/libb.dll b/lib/spack/spack/test/data/directory_search/c/libb.dll new file mode 100644 index 00000000000..e69de29bb2d diff --git a/lib/spack/spack/test/data/directory_search/c/libb.lib b/lib/spack/spack/test/data/directory_search/c/libb.lib new file mode 100644 index 00000000000..e69de29bb2d diff --git a/lib/spack/spack/test/install.py b/lib/spack/spack/test/install.py index 079ff8851cc..9093593bede 100644 --- a/lib/spack/spack/test/install.py +++ b/lib/spack/spack/test/install.py @@ -5,6 +5,7 @@ import os import shutil +import sys import pytest @@ -85,12 +86,11 @@ def test_pkg_attributes(install_mockery, mock_fetch, monkeypatch): # assert baz_headers.basenames == ['baz.h'] assert baz_headers.directories == [spec["baz"].home.include] - if "platform=windows" in spec: - lib_suffix = ".lib" - elif "platform=darwin" in spec: + lib_suffix = ".so" + if sys.platform == "win32": + lib_suffix = ".dll" + elif sys.platform == "darwin": lib_suffix = ".dylib" - else: - lib_suffix = ".so" foo_libs = spec[foo].libs assert foo_libs.basenames == ["libFoo" + lib_suffix] diff --git a/lib/spack/spack/test/llnl/util/file_list.py b/lib/spack/spack/test/llnl/util/file_list.py index 9ae33a90b56..0fe75724069 100644 --- a/lib/spack/spack/test/llnl/util/file_list.py +++ b/lib/spack/spack/test/llnl/util/file_list.py @@ -5,6 +5,7 @@ import fnmatch import os.path +import sys import pytest import six @@ -19,18 +20,30 @@ import spack.paths +is_windows = sys.platform == "win32" + @pytest.fixture() def library_list(): """Returns an instance of LibraryList.""" # Test all valid extensions: ['.a', '.dylib', '.so'] - libs = [ - "/dir1/liblapack.a", - "/dir2/libpython3.6.dylib", # name may contain periods - "/dir1/libblas.a", - "/dir3/libz.so", - "libmpi.so.20.10.1", # shared object libraries may be versioned - ] + libs = ( + [ + "/dir1/liblapack.a", + "/dir2/libpython3.6.dylib", # name may contain periods + "/dir1/libblas.a", + "/dir3/libz.so", + "libmpi.so.20.10.1", # shared object libraries may be versioned + ] + if not is_windows + else [ + "/dir1/liblapack.lib", + "/dir2/libpython3.6.dll", + "/dir1/libblas.lib", + "/dir3/libz.dll", + "libmpi.dll.20.10.1", + ] + ) return LibraryList(libs) @@ -52,6 +65,16 @@ def header_list(): return h +# TODO: Remove below when llnl.util.filesystem.find_libraries becomes spec aware +plat_static_ext = "lib" if is_windows else "a" + + +plat_shared_ext = "dll" if is_windows else "so" + + +plat_apple_shared_ext = "dll" if is_windows else "dylib" + + class TestLibraryList(object): def test_repr(self, library_list): x = eval(repr(library_list)) @@ -62,11 +85,11 @@ def test_joined_and_str(self, library_list): s1 = library_list.joined() expected = " ".join( [ - "/dir1/liblapack.a", - "/dir2/libpython3.6.dylib", - "/dir1/libblas.a", - "/dir3/libz.so", - "libmpi.so.20.10.1", + "/dir1/liblapack.%s" % plat_static_ext, + "/dir2/libpython3.6.%s" % plat_apple_shared_ext, + "/dir1/libblas.%s" % plat_static_ext, + "/dir3/libz.%s" % plat_shared_ext, + "libmpi.%s.20.10.1" % plat_shared_ext, ] ) assert s1 == expected @@ -77,11 +100,11 @@ def test_joined_and_str(self, library_list): s3 = library_list.joined(";") expected = ";".join( [ - "/dir1/liblapack.a", - "/dir2/libpython3.6.dylib", - "/dir1/libblas.a", - "/dir3/libz.so", - "libmpi.so.20.10.1", + "/dir1/liblapack.%s" % plat_static_ext, + "/dir2/libpython3.6.%s" % plat_apple_shared_ext, + "/dir1/libblas.%s" % plat_static_ext, + "/dir3/libz.%s" % plat_shared_ext, + "libmpi.%s.20.10.1" % plat_shared_ext, ] ) assert s3 == expected @@ -117,7 +140,7 @@ def test_paths_manipulation(self, library_list): def test_get_item(self, library_list): a = library_list[0] - assert a == "/dir1/liblapack.a" + assert a == "/dir1/liblapack.%s" % plat_static_ext b = library_list[:] assert type(b) == type(library_list) @@ -126,9 +149,9 @@ def test_get_item(self, library_list): def test_add(self, library_list): pylist = [ - "/dir1/liblapack.a", # removed from the final list - "/dir2/libmpi.so", - "/dir4/libnew.a", + "/dir1/liblapack.%s" % plat_static_ext, # removed from the final list + "/dir2/libmpi.%s" % plat_shared_ext, + "/dir4/libnew.%s" % plat_static_ext, ] another = LibraryList(pylist) both = library_list + another diff --git a/var/spack/repos/builtin.mock/packages/attributes-foo/package.py b/var/spack/repos/builtin.mock/packages/attributes-foo/package.py index f4bb9059a4f..9010c52958e 100644 --- a/var/spack/repos/builtin.mock/packages/attributes-foo/package.py +++ b/var/spack/repos/builtin.mock/packages/attributes-foo/package.py @@ -2,6 +2,7 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import sys from spack.package import * @@ -14,13 +15,12 @@ class AttributesFoo(BundlePackage): provides("baz") def install(self, spec, prefix): - if "platform=windows" in spec: - lib_suffix = ".lib" - elif "platform=darwin" in spec: - lib_suffix = ".dylib" - else: - lib_suffix = ".so" + lib_suffix = ".so" + if sys.platform == "win32": + lib_suffix = ".dll" + elif sys.platform == "darwin": + lib_suffix = ".dylib" mkdirp(prefix.include) touch(prefix.include.join("foo.h")) mkdirp(prefix.include.bar) From 937b576b5b8157c6bd639af4895f702a06e64499 Mon Sep 17 00:00:00 2001 From: Chris White Date: Tue, 13 Sep 2022 10:29:21 -0700 Subject: [PATCH 085/241] fix depends on versioning (#32626) --- var/spack/repos/builtin/packages/scr/package.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/var/spack/repos/builtin/packages/scr/package.py b/var/spack/repos/builtin/packages/scr/package.py index 9f6bdc20156..b10b74ca970 100644 --- a/var/spack/repos/builtin/packages/scr/package.py +++ b/var/spack/repos/builtin/packages/scr/package.py @@ -84,14 +84,14 @@ class Scr(CMakePackage): depends_on("spath@0.2.0", when="@3.0.1:") depends_on("dtcmp@1.1.4", when="@3.0.1:") - depends_on("axl@0.6.0", when="@3.0.0:") - depends_on("er@0.2.0", when="@3.0.0:") - depends_on("kvtree@1.3.0", when="@3.0.0:") - depends_on("rankstr@0.1.0", when="@3.0.0:") - depends_on("redset@0.2.0", when="@3.0.0:") - depends_on("shuffile@0.2.0", when="@3.0.0:") - depends_on("spath@0.2.0", when="@3.0.0:") - depends_on("dtcmp@1.1.4", when="@3.0.0:") + depends_on("axl@0.6.0", when="@3.0.0") + depends_on("er@0.2.0", when="@3.0.0") + depends_on("kvtree@1.3.0", when="@3.0.0") + depends_on("rankstr@0.1.0", when="@3.0.0") + depends_on("redset@0.2.0", when="@3.0.0") + depends_on("shuffile@0.2.0", when="@3.0.0") + depends_on("spath@0.2.0", when="@3.0.0") + depends_on("dtcmp@1.1.4", when="@3.0.0") depends_on("axl@0.5.0:", when="@3.0rc2") depends_on("er@0.1.0:", when="@3.0rc2") From 3b46a0bffe749c746f1f7e54033d1751c4e59afe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Bederi=C3=A1n?= Date: Tue, 13 Sep 2022 15:41:57 -0300 Subject: [PATCH 086/241] gromacs: add 2022.3 (#32624) --- var/spack/repos/builtin/packages/gromacs/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py index ed2f58d6602..9974eec291f 100644 --- a/var/spack/repos/builtin/packages/gromacs/package.py +++ b/var/spack/repos/builtin/packages/gromacs/package.py @@ -29,6 +29,7 @@ class Gromacs(CMakePackage): version("main", branch="main") version("master", branch="main", deprecated=True) + version("2022.3", sha256="14cfb130ddaf8f759a3af643c04f5a0d0d32b09bc3448b16afa5b617f5e35dae") version("2022.2", sha256="656404f884d2fa2244c97d2a5b92af148d0dbea94ad13004724b3fcbf45e01bf") version("2022.1", sha256="85ddab5197d79524a702c4959c2c43be875e0fc471df3a35224939dce8512450") version("2022", sha256="fad60d606c02e6164018692c6c9f2c159a9130c2bf32e8c5f4f1b6ba2dda2b68") From 83d6aff03a4dd20679b46612ade26251374fe1a2 Mon Sep 17 00:00:00 2001 From: Aurelien Bouteiller Date: Tue, 13 Sep 2022 15:33:56 -0400 Subject: [PATCH 087/241] Parsec: v3.0.2209 (#32617) Signed-off-by: Aurelien Bouteiller Signed-off-by: Aurelien Bouteiller --- var/spack/repos/builtin/packages/parsec/package.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/var/spack/repos/builtin/packages/parsec/package.py b/var/spack/repos/builtin/packages/parsec/package.py index 8c65730c0ea..e5db8badffc 100644 --- a/var/spack/repos/builtin/packages/parsec/package.py +++ b/var/spack/repos/builtin/packages/parsec/package.py @@ -25,6 +25,11 @@ class Parsec(CMakePackage, CudaPackage): test_requires_compiler = True version("master", branch="master") + version( + "3.0.2209", + sha256="67d383d076991484cb2a265f56420abdea7cc1f329c63ac65a3e96fbfb6cc295", + url="https://bitbucket.org/icldistcomp/parsec/get/parsec-3.0.2209.tar.bz2", + ) version( "3.0.2012", sha256="f565bcfffe106be8237b6aea3e83a5770607b7236606414b6f270244fa6ec3bc", From 463c5eacca984a19badc6f54538cac9fb48e0496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C4=8Cert=C3=ADk?= Date: Tue, 13 Sep 2022 14:13:57 -0600 Subject: [PATCH 088/241] Add libraqm package; enable in py-pillow (#32619) * Add libraqm package * py-pillow: Add optional raqm dependency/variant * Use sha256 * Use " instead of ' * Use more explicit import * Only add raqm from @8.4.0: * Make the docstring shorter to satisfy flake * Add conflict, silence warning, adjust version Co-authored-by: Adam J. Stewart --- .../repos/builtin/packages/libraqm/package.py | 19 +++++++++++++++++++ .../builtin/packages/py-pillow/package.py | 7 ++++++- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 var/spack/repos/builtin/packages/libraqm/package.py diff --git a/var/spack/repos/builtin/packages/libraqm/package.py b/var/spack/repos/builtin/packages/libraqm/package.py new file mode 100644 index 00000000000..e15f98a0bc0 --- /dev/null +++ b/var/spack/repos/builtin/packages/libraqm/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Libraqm(MesonPackage): + """Raqm provides a convenient API for the logic of complex text layout.""" + + homepage = "https://github.com/HOST-Oman/libraqm" + url = "https://github.com/HOST-Oman/libraqm/releases/download/v0.9.0/raqm-0.9.0.tar.xz" + git = "https://github.com/HOST-Oman/libraqm.git" + + version("0.9.0", sha256="9ed6fdf41da6391fc9bf7038662cbe412c330aa6eb22b19704af2258e448107c") + + depends_on("freetype") + depends_on("harfbuzz") diff --git a/var/spack/repos/builtin/packages/py-pillow/package.py b/var/spack/repos/builtin/packages/py-pillow/package.py index f5e1f26f193..8f3488fce3e 100644 --- a/var/spack/repos/builtin/packages/py-pillow/package.py +++ b/var/spack/repos/builtin/packages/py-pillow/package.py @@ -25,6 +25,7 @@ class PyPillowBase(PythonPackage): variant("jpeg2000", default=False, description="JPEG 2000 functionality") variant("imagequant", when="@3.3:", default=False, description="Improved color quantization") variant("xcb", when="@7.1:", default=False, description="X11 screengrab support") + variant("raqm", when="@8.2:", default=False, description="RAQM support") # Required dependencies # https://pillow.readthedocs.io/en/latest/installation.html#notes @@ -52,6 +53,10 @@ class PyPillowBase(PythonPackage): depends_on("openjpeg", when="+jpeg2000") depends_on("libimagequant", when="+imagequant") depends_on("libxcb", when="+xcb") + depends_on("libraqm", when="+raqm") + + # Conflicting options + conflicts("+raqm", when="~freetype") def patch(self): """Patch setup.py to provide library and include directories @@ -70,7 +75,7 @@ def patch(self): def variant_to_cfg(variant): able = "enable" if "+" + variant in self.spec else "disable" - return "{0}-{1}=1\n".format(able, variant) + return "{0}_{1}=1\n".format(able, variant) with open("setup.cfg", "a") as setup: setup.write("[build_ext]\n") From 4654d66905581df3bf9ed5bb2042a6bbaa2e4935 Mon Sep 17 00:00:00 2001 From: Jonas Thies <16190001+jthies@users.noreply.github.com> Date: Wed, 14 Sep 2022 00:21:46 +0200 Subject: [PATCH 089/241] packages/phist: new version 1.10 (#32581) * packages/phist: new version 1.10 * fix (and narrow) conflicts, thanks @glennpj --- var/spack/repos/builtin/packages/phist/package.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/var/spack/repos/builtin/packages/phist/package.py b/var/spack/repos/builtin/packages/phist/package.py index 84e676aecbf..3eeb2bedade 100644 --- a/var/spack/repos/builtin/packages/phist/package.py +++ b/var/spack/repos/builtin/packages/phist/package.py @@ -34,6 +34,10 @@ class Phist(CMakePackage): version("develop", branch="devel") version("master", branch="master") + # updated the Trilinos interface to work with trilinos@13: + # without using deprecated interfaces in tpetra + version("1.10.0", sha256="3ec660c85d37818ee219edc80e977140dfb062bdca1f38623c94a45d13634bd1") + # phist-1.9.6 updated from the older "use mpi" to the newer "use mpi_f08" (MPI3.1): # The motivation was fixing it on Cray: https://github.com/spack/spack/issues/26002 # Documentation: https://www.mpi-forum.org/docs/mpi-3.1/mpi31-report/node408.htm @@ -181,6 +185,11 @@ class Phist(CMakePackage): # The test_install compiles the examples and needs pkgconfig for it depends_on("pkgconfig", type="test") + # in 1.10 we removed some use of deprecated Trilinos interfaces + # (some functions in tpetra were renamed) + conflicts("^trilinos@13.4:", when="@:1.9 kernel_lib=tpetra") + conflicts("^trilinos@:13.2", when="@1.10: kernel_lib=tpetra") + # Fortran 2003 bindings were included in version 1.7, previously they # required a separate package conflicts("+fortran", when="@:1.6") From d6a3ffc301f89027920780550dffa23c8ab19ad0 Mon Sep 17 00:00:00 2001 From: Sam Broderick <2178946+waveman68@users.noreply.github.com> Date: Wed, 14 Sep 2022 03:41:50 +0200 Subject: [PATCH 090/241] Update module_file_support.rst (#32629) Missing lead in "This may to inconsistent modulfiles if..." --- lib/spack/docs/module_file_support.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/spack/docs/module_file_support.rst b/lib/spack/docs/module_file_support.rst index 3f369a845ce..2396b91f46a 100644 --- a/lib/spack/docs/module_file_support.rst +++ b/lib/spack/docs/module_file_support.rst @@ -77,7 +77,7 @@ installation of a package. Spack only generates modulefiles when a package is installed. If you attempt to install a package and it is already installed, Spack - will not regenerate modulefiles for the package. This may to + will not regenerate modulefiles for the package. This may lead to inconsistent modulefiles if the Spack module configuration has changed since the package was installed, either by editing a file or changing scopes or environments. From 9e5f3f96dd0444f068d6ec8c8499eac10d23ad93 Mon Sep 17 00:00:00 2001 From: Robert Underwood Date: Tue, 13 Sep 2022 21:45:56 -0400 Subject: [PATCH 091/241] add ability to disable werror for rocksdb (#32618) * add ability to disable werror for rocksdb * Update var/spack/repos/builtin/packages/rocksdb/package.py Co-authored-by: Robert Underwood Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> --- var/spack/repos/builtin/packages/rocksdb/package.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/var/spack/repos/builtin/packages/rocksdb/package.py b/var/spack/repos/builtin/packages/rocksdb/package.py index aeae01478a7..824a38da61b 100644 --- a/var/spack/repos/builtin/packages/rocksdb/package.py +++ b/var/spack/repos/builtin/packages/rocksdb/package.py @@ -33,6 +33,7 @@ class Rocksdb(MakefilePackage): variant("zlib", default=True, description="Enable zlib compression support") variant("zstd", default=False, description="Enable zstandard compression support") variant("tbb", default=False, description="Enable Intel TBB support") + variant("werror", default=False, description="Build with -Werror") depends_on("bzip2", when="+bz2") depends_on("gflags") @@ -93,6 +94,9 @@ def install(self, spec, prefix): env["CFLAGS"] = " ".join(cflags) env["PLATFORM_FLAGS"] = " ".join(ldflags) + if "~werror" in self.spec: + env["DISABLE_WARNING_AS_ERROR"] = "1" + if self.spec.satisfies("@6.13.2:"): env["PREFIX"] = self.spec.prefix else: From 9f72962dd1ccdff37a80c5d76a3fed6a63213de1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Ser=C3=B3dio?= <48109057+SerodioJ@users.noreply.github.com> Date: Wed, 14 Sep 2022 00:16:38 -0300 Subject: [PATCH 092/241] New package: py-qiskit-nature (#32628) --- .../packages/py-qiskit-nature/package.py | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-qiskit-nature/package.py diff --git a/var/spack/repos/builtin/packages/py-qiskit-nature/package.py b/var/spack/repos/builtin/packages/py-qiskit-nature/package.py new file mode 100644 index 00000000000..7f1831280c6 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-qiskit-nature/package.py @@ -0,0 +1,29 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack.package import * + + +class PyQiskitNature(PythonPackage): + """Qiskit Nature is an open-source framework which supports + solving quantum mechanical natural science problems using + quantum computing algorithms""" + + homepage = "https://github.com/Qiskit/qiskit-nature" + pypi = "qiskit-nature/qiskit-nature-0.2.2.tar.gz" + + version("0.2.2", sha256="ce3558d4acf2511111cc398361146af36391d67e5a9fe9c4bd0f727cb56022bf") + + depends_on("python@3.6:", type=("build", "run")) + depends_on("py-setuptools@40.1.0:", type="build") + + depends_on("py-qiskit-terra@0.18.0:", type=("build", "run")) + depends_on("py-numpy@1.17:", type=("build", "run")) + depends_on("py-scipy@1.4:", type=("build", "run")) + depends_on("py-psutil@5:", type=("build", "run")) + depends_on("py-h5py@:3.2", type=("build", "run")) + depends_on("py-scikit-learn@0.20.0:", type=("build", "run")) + depends_on("py-dataclasses", when="python@:3.6", type=("build", "run")) From cb323b1f55894d31f376feb34ddad8c96194d2aa Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Tue, 13 Sep 2022 22:16:59 -0500 Subject: [PATCH 093/241] graphite2: fix build on macOS (#32636) --- var/spack/repos/builtin/packages/graphite2/package.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/var/spack/repos/builtin/packages/graphite2/package.py b/var/spack/repos/builtin/packages/graphite2/package.py index ef5e14a8d4f..f4f38365897 100644 --- a/var/spack/repos/builtin/packages/graphite2/package.py +++ b/var/spack/repos/builtin/packages/graphite2/package.py @@ -17,8 +17,15 @@ class Graphite2(CMakePackage): ) url = "https://github.com/silnrsi/graphite/releases/download/1.3.13/graphite2-1.3.13.tgz" + version("1.3.14", sha256="f99d1c13aa5fa296898a181dff9b82fb25f6cc0933dbaa7a475d8109bd54209d") version("1.3.13", sha256="dd63e169b0d3cf954b397c122551ab9343e0696fb2045e1b326db0202d875f06") depends_on("python@3.6:", type="test") patch("regparm.patch") + + @run_after("install") + def darwin_fix(self): + # The shared library is not installed correctly on Darwin; fix this + if self.spec.satisfies("platform=darwin"): + fix_darwin_install_name(self.prefix.lib) From 93c39464e3f72b384ad0592380a2b8acfa176f67 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Tue, 13 Sep 2022 22:18:55 -0500 Subject: [PATCH 094/241] json-glib: add pkgconfig dependency (#32638) --- var/spack/repos/builtin/packages/json-glib/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/json-glib/package.py b/var/spack/repos/builtin/packages/json-glib/package.py index 8a768d18d5c..7f971b3becb 100644 --- a/var/spack/repos/builtin/packages/json-glib/package.py +++ b/var/spack/repos/builtin/packages/json-glib/package.py @@ -39,6 +39,7 @@ class JsonGlib(MesonPackage): depends_on("glib") depends_on("gobject-introspection") + depends_on("pkgconfig", type="build") @when("@:1.5") def meson(self, spec, prefix): From 4ebdc5643eaff583e44111e4963c8e8fa62cc71a Mon Sep 17 00:00:00 2001 From: Zack Galbreath Date: Tue, 13 Sep 2022 23:26:26 -0400 Subject: [PATCH 095/241] Revert "e4s ci: restore power builds (#32296)" (#32633) This reverts commit 0d18c32bca8398e2daa736a940154caa235cbacc. --- .../gitlab/cloud_pipelines/.gitlab-ci.yml | 70 ++- .../stacks/e4s-on-power/spack.yaml | 259 +++++++++++ .../stacks/e4s-power/spack.yaml | 424 ------------------ 3 files changed, 290 insertions(+), 463 deletions(-) create mode 100644 share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml delete mode 100644 share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml diff --git a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml index 218c416d200..a6174c20b38 100644 --- a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml +++ b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml @@ -59,28 +59,18 @@ default: extends: [ ".generate" ] tags: ["spack", "aws", "public", "medium", "aarch64"] -.generate-ppc64le: - extends: [ ".generate" ] - tags: ["spack", "uo", "public", "medium", "ppc64le"] - .pr-generate: extends: [ ".pr", ".generate" ] .pr-generate-aarch64: extends: [ ".pr", ".generate-aarch64" ] -.pr-generate-ppc64le: - extends: [ ".pr", ".generate-ppc64le" ] - .protected-generate: extends: [ ".protected", ".generate" ] .protected-generate-aarch64: extends: [ ".protected", ".generate-aarch64" ] -.protected-generate-ppc64le: - extends: [ ".protected", ".generate-ppc64le" ] - .build: stage: build @@ -345,39 +335,41 @@ e4s-oneapi-protected-build: ######################################## # E4S on Power ######################################## -.e4s-power: - variables: - SPACK_CI_STACK_NAME: e4s-power +# .power-e4s-generate-tags-and-image: +# image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu20.04-runner-ppc64le:2021-07-01", "entrypoint": [""] } +# tags: ["spack", "public", "medium", "ppc64le"] -e4s-power-pr-generate: - extends: [ ".e4s-power", ".pr-generate-ppc64le"] - image: ecpe4s/ubuntu20.04-runner-ppc64le:2022-08-01 +# .e4s-on-power: +# variables: +# SPACK_CI_STACK_NAME: e4s-on-power -e4s-power-protected-generate: - extends: [ ".e4s-power", ".protected-generate-ppc64le"] - image: ecpe4s/ubuntu20.04-runner-ppc64le:2022-08-01 +# e4s-on-power-pr-generate: +# extends: [ ".e4s-on-power", ".pr-generate", ".power-e4s-generate-tags-and-image"] -e4s-power-pr-build: - extends: [ ".e4s-power", ".pr-build" ] - trigger: - include: - - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml - job: e4s-power-pr-generate - strategy: depend - needs: - - artifacts: True - job: e4s-power-pr-generate +# e4s-on-power-protected-generate: +# extends: [ ".e4s-on-power", ".protected-generate", ".power-e4s-generate-tags-and-image"] -e4s-power-protected-build: - extends: [ ".e4s-power", ".protected-build" ] - trigger: - include: - - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml - job: e4s-power-protected-generate - strategy: depend - needs: - - artifacts: True - job: e4s-power-protected-generate +# e4s-on-power-pr-build: +# extends: [ ".e4s-on-power", ".pr-build" ] +# trigger: +# include: +# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml +# job: e4s-on-power-pr-generate +# strategy: depend +# needs: +# - artifacts: True +# job: e4s-on-power-pr-generate + +# e4s-on-power-protected-build: +# extends: [ ".e4s-on-power", ".protected-build" ] +# trigger: +# include: +# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml +# job: e4s-on-power-protected-generate +# strategy: depend +# needs: +# - artifacts: True +# job: e4s-on-power-protected-generate ######################################### # Build tests for different build-systems diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml new file mode 100644 index 00000000000..24a4879277c --- /dev/null +++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml @@ -0,0 +1,259 @@ +spack: + view: false + + concretizer: + reuse: false + unify: false + + config: + concretizer: clingo + install_tree: + root: /home/software/spack + padded_length: 512 + projections: + all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}' + + packages: + all: + compiler: + - gcc@9.3.0 + providers: + blas: + - openblas + mpi: + - mpich + target: + - ppc64le + variants: +mpi + binutils: + variants: +ld +gold +headers +libiberty ~nls +plugins + version: + - 2.36.1 + doxygen: + version: + - 1.8.20 + elfutils: + variants: +bzip2 ~nls +xz + hdf5: + variants: +fortran +hl +shared api=v18 + version: + - 1.12.0 + libfabric: + variants: fabrics=sockets,tcp,udp,rxm + libunwind: + variants: +pic +xz + mesa: + variants: ~llvm + mesa18: + variants: ~llvm + mpich: + variants: ~wrapperrpath + ncurses: + variants: +termlib + openblas: + variants: threads=openmp + trilinos: + variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long + xz: + variants: +pic + + definitions: + + - cuda_specs: + - amrex +cuda cuda_arch=70 + - caliper +cuda cuda_arch=70 + - chai ~benchmarks ~tests +cuda cuda_arch=70 ^umpire ~shared + - ginkgo +cuda cuda_arch=70 + - heffte +cuda cuda_arch=70 + - hpx +cuda cuda_arch=70 + - hypre +cuda cuda_arch=70 + - kokkos +wrapper +cuda cuda_arch=70 + - kokkos-kernels +cuda cuda_arch=70 ^kokkos +wrapper +cuda cuda_arch=70 + - magma +cuda cuda_arch=70 + - mfem +cuda cuda_arch=70 + - parsec +cuda cuda_arch=70 + - petsc +cuda cuda_arch=70 + - raja +cuda cuda_arch=70 + - slate +cuda cuda_arch=70 + - slepc +cuda cuda_arch=70 + - strumpack ~slate +cuda cuda_arch=70 + - sundials +cuda cuda_arch=70 + - superlu-dist +cuda cuda_arch=70 + - tasmanian +cuda cuda_arch=70 + - trilinos@13.2.0 +cuda cuda_arch=70 + - umpire ~shared +cuda cuda_arch=70 + - vtk-m +cuda cuda_arch=70 + - zfp +cuda cuda_arch=70 + #- ascent ~shared +cuda cuda_arch=70 + #- axom +cuda cuda_arch=70 ^umpire ~shared + #- dealii +cuda cuda_arch=70 # gmsh + #- flecsi +cuda cuda_arch=70 + #- paraview +cuda cuda_arch=70 + + - default_specs: + - adios + - adios2 + - aml + - amrex + - arborx + - archer + - argobots + - ascent + - axom ^umpire@4.1.2 + - bolt + - cabana + - caliper + - chai ~benchmarks ~tests ^umpire@4.1.2 + - charliecloud + - conduit + - darshan-runtime + - darshan-util + - datatransferkit + - dyninst + - faodel ~tcmalloc + - flecsi + - flit + - flux-core + - fortrilinos + - gasnet + - ginkgo + - globalarrays + - gmp + - gotcha + - gptune + - hdf5 + - heffte +fftw + - hpctoolkit + - hpx + - hypre + - kokkos +openmp + - kokkos-kernels +openmp + - legion + - libnrm + - libquo + - libunwind + - llvm targets=amdgpu,nvptx +clang +compiler-rt +libcxx +lld +lldb +llvm_dylib +flang ~cuda + - loki + - mercury + - metall + - mfem + - mpark-variant + - mpifileutils ~xattr + - netlib-scalapack + - ninja + - nrm + - nvhpc + - omega-h + - openmpi + - openpmd-api ^hdf5@1.12.0 +fortran +shared +hl api=default + - papi + - papyrus@1.0.1 + - parallel-netcdf + - paraview + - parsec ~cuda + - pdt + - petsc + - plasma + - precice + - pumi + - py-jupyterhub + - py-libensemble + - py-petsc4py + - py-warpx ^warpx dims=2 ^hdf5@1.12.0 +fortran +shared +hl api=default + - py-warpx ^warpx dims=3 ^hdf5@1.12.0 +fortran +shared +hl api=default + - py-warpx ^warpx dims=rz ^hdf5@1.12.0 +fortran +shared +hl api=default + - qthreads scheduler=distrib + - raja + - rempi + - scr + - slate ~cuda + - slepc + - stc + - strumpack ~slate + - sundials + - superlu + - superlu-dist + - swig + - swig@4.0.2-fortran + - sz + - tasmanian + - tau +mpi +python + - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long + - turbine + - umap + - unifyfs@0.9.1 + - upcxx + - variorum + - veloc + - vtk-m + - zfp + #- dealii + #- geopm + #- phist + #- qt + #- qwt + #- stat + #- umpire + + - arch: + - '%gcc target=ppc64le' + + + specs: + + - matrix: + - - $default_specs + - - $arch + + - matrix: + - - $cuda_specs + - - $arch + + mirrors: { "mirror": "s3://spack-binaries/e4s" } + + gitlab-ci: + + script: + - . "./share/spack/setup-env.sh" + - spack --version + - cd ${SPACK_CONCRETE_ENV_DIR} + - spack env activate --without-view . + - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'" + - spack -d ci rebuild + + mappings: + - match: + - cuda + - dyninst + - hpx + - llvm + - llvm-amdgpu + - precice + - rocblas + - rocsolver + - strumpack + - sundials + - trilinos + - vtk-h + - vtk-m + - warpx + runner-attributes: + image: { "name": "ghcr.io/spack/e4s-ubuntu-20.04:v2021-10-18", "entrypoint": [""] } + tags: ["spack", "public", "xlarge", "ppc64le"] + - match: ['os=ubuntu20.04'] + runner-attributes: + image: { "name": "ghcr.io/spack/e4s-ubuntu-20.04:v2021-10-18", "entrypoint": [""] } + tags: ["spack", "public", "large", "ppc64le"] + broken-specs-url: "s3://spack-binaries-develop/broken-specs" + service-job-attributes: + before_script: + - . "./share/spack/setup-env.sh" + - spack --version + image: { "name": "ghcr.io/spack/e4s-ubuntu-20.04:v2021-10-18", "entrypoint": [""] } + tags: ["spack", "public", "medium", "ppc64le"] + + cdash: + build-group: New PR testing workflow + url: https://cdash.spack.io + project: Spack Testing + site: Cloud Gitlab Infrastructure diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml deleted file mode 100644 index ec0889f5c04..00000000000 --- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml +++ /dev/null @@ -1,424 +0,0 @@ -spack: - view: false - - concretizer: - reuse: false - unify: false - - config: - concretizer: clingo - install_tree: - root: /home/software/spack - padded_length: 512 - projections: - all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}' - - packages: - all: - compiler: [gcc@9.4.0] - providers: - blas: [openblas] - mpi: [mpich] - target: [ppc64le] - variants: +mpi - binutils: - variants: +ld +gold +headers +libiberty ~nls - elfutils: - variants: +bzip2 ~nls +xz - hdf5: - variants: +fortran +hl +shared - libfabric: - variants: fabrics=sockets,tcp,udp,rxm - libunwind: - variants: +pic +xz - mpich: - variants: ~wrapperrpath - ncurses: - variants: +termlib - openblas: - variants: threads=openmp - python: - version: [3.8.13] - trilinos: - variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext - +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu - +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos - +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long - xz: - variants: +pic - mesa: - version: [21.3.8] - - specs: - # CPU - - adios - - adios2 - - alquimia - - aml - - amrex - - arborx - - archer - - argobots - - ascent - - axom - - bolt - - butterflypack - - cabana - - caliper - - chai ~benchmarks ~tests - - charliecloud - - conduit - - darshan-runtime - - darshan-util - - datatransferkit - - dyninst - - exaworks - - faodel ~tcmalloc - - flecsi - - flit - - flux-core - - fortrilinos - - gasnet - - ginkgo - - globalarrays - - gmp - - gotcha - - gptune - - h5bench - - hdf5 +fortran +hl +shared - - hdf5-vol-async - - heffte +fftw - - hpctoolkit - - hpx networking=mpi - - hypre - - kokkos +openmp - - kokkos-kernels +openmp - - lammps - - legion - - libnrm - - libquo - - libunwind - - mercury - - metall - - mfem - - mpark-variant - - mpifileutils ~xattr - - nccmp - - nco - - netlib-scalapack - - nrm - - nvhpc - - omega-h - - openmpi - - openpmd-api - - papi - - papyrus - - parallel-netcdf - - parsec ~cuda - - pdt - - petsc - - phist - - plasma - - plumed - - precice - - pruners-ninja - - pumi - - py-cinemasci - - py-jupyterhub - - py-libensemble - - py-petsc4py - - py-warpx ^warpx dims=2 - - py-warpx ^warpx dims=3 - - py-warpx ^warpx dims=rz - - qthreads scheduler=distrib - - raja - - rempi - - scr - - slate ~cuda - - slepc - - stc - - strumpack ~slate - - sundials - - superlu - - superlu-dist - - swig - - swig@4.0.2-fortran - - sz - - tasmanian - - tau +mpi +python - - turbine - - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack - +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro - +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko - +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long - - umap - - umpire - - unifyfs - - upcxx - - veloc - - vtk-m - - wannier90 - - zfp - - # CUDA - - adios2 +cuda cuda_arch=70 - - amrex +cuda cuda_arch=70 - - arborx +cuda cuda_arch=70 ^kokkos +wrapper - - ascent +cuda cuda_arch=70 - - cabana +cuda ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=70 - - caliper +cuda cuda_arch=70 - - chai ~benchmarks ~tests +cuda cuda_arch=70 ^umpire@6.0.0 ~shared - - flecsi +cuda cuda_arch=70 - - flux-core +cuda - - ginkgo +cuda cuda_arch=70 - - heffte +cuda cuda_arch=70 - - hpctoolkit +cuda - - hpx +cuda cuda_arch=70 - - hypre +cuda cuda_arch=70 - - kokkos +wrapper +cuda cuda_arch=70 - - kokkos-kernels +cuda cuda_arch=70 ^kokkos +wrapper +cuda cuda_arch=70 - - magma +cuda cuda_arch=70 - - mfem +cuda cuda_arch=70 - - papi +cuda - - parsec +cuda cuda_arch=70 - - petsc +cuda cuda_arch=70 - - raja +cuda cuda_arch=70 - - slate +cuda cuda_arch=70 - - slepc +cuda cuda_arch=70 - - strumpack ~slate +cuda cuda_arch=70 - - sundials +cuda cuda_arch=70 - - superlu-dist +cuda cuda_arch=70 - - tasmanian +cuda cuda_arch=70 - - tau +mpi +cuda - - trilinos@13.4.0 +cuda cuda_arch=70 - - umpire ~shared +cuda cuda_arch=70 - - vtk-m +cuda cuda_arch=70 - - zfp +cuda cuda_arch=70 - - # CPU failures - # - bricks # bricks: VSBrick-mpi9pt.py-Scalar-4x4x4x4-1:2306:17: error: 'buf0' was not declared in this scope - # - geopm # /usr/include/ppc64le-linux-gnu/bits/string_fortified.h:95:10: error:'__builtin_strncpy' specified bound 512 equals destination size [-Werror=stringop-truncation] - # - loki # ../include/loki/Singleton.h:158:14: warning: 'template class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations] - # - paraview +qt # llvm@14 - # - variorum # /usr/bin/ld: Intel/CMakeFiles/variorum_intel.dir/Broadwell_4F.c.o:(.bss+0x0): multiple definition of `g_platform'; - # ---- - - # CUDA failures - # - dealii +cuda cuda_arch=70 # fltk - # - bricks +cuda # bricks - # ---- - # fltk: gl_draw.cxx:120:13: warning: 'void get_list(int)' defined but not used [-Wunused-function] - - - mirrors: { "mirror": "s3://spack-binaries/develop/e4s-power" } - - gitlab-ci: - - script: - - . "./share/spack/setup-env.sh" - - spack --version - - cd ${SPACK_CONCRETE_ENV_DIR} - - spack env activate --without-view . - - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'" - - mkdir -p ${SPACK_ARTIFACTS_ROOT}/user_data - - if [[ -r /mnt/key/intermediate_ci_signing_key.gpg ]]; then spack gpg trust /mnt/key/intermediate_ci_signing_key.gpg; fi - - if [[ -r /mnt/key/spack_public_key.gpg ]]; then spack gpg trust /mnt/key/spack_public_key.gpg; fi - - spack -d ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) - - image: ecpe4s/ubuntu20.04-runner-ppc64le:2022-08-01 - - mappings: - - match: - - hipblas - - llvm - - llvm-amdgpu - - rocblas - runner-attributes: - tags: [ "spack", "huge", "ppc64le" ] - variables: - CI_JOB_SIZE: huge - KUBERNETES_CPU_REQUEST: 11000m - KUBERNETES_MEMORY_REQUEST: 42G - - - match: - - cuda - - dyninst - - ginkgo - - hpx - - kokkos-kernels - - kokkos-nvcc-wrapper - - magma - - mfem - - mpich - - openturns - - precice - - raja - - rust - - slate - - trilinos - - vtk-m - - warpx - runner-attributes: - tags: [ "spack", "large", "ppc64le" ] - variables: - CI_JOB_SIZE: large - KUBERNETES_CPU_REQUEST: 8000m - KUBERNETES_MEMORY_REQUEST: 12G - - - match: - - adios2 - - amrex - - archer - - ascent - - axom - - binutils - - blaspp - - boost - - butterflypack - - cabana - - caliper - - camp - - chai - - conduit - - datatransferkit - - faodel - - ffmpeg - - fftw - - fortrilinos - - gperftools - - gptune - - hdf5 - - heffte - - hpctoolkit - - hwloc - - hypre - - kokkos - - lammps - - lapackpp - - legion - - libzmq - - llvm-openmp-ompt - - mbedtls - - netlib-scalapack - - omega-h - - openmpi - - openpmd-api - - pagmo2 - - papyrus - - parsec - - pdt - - petsc - - pumi - - py-ipython-genutils - - py-petsc4py - - py-scipy - - py-statsmodels - - py-warlock - - py-warpx - - pygmo - - slepc - - slurm - - strumpack - - sundials - - superlu-dist - - tasmanian - - tau - - upcxx - - vtk-h - - zfp - runner-attributes: - tags: [ "spack", "medium", "ppc64le" ] - variables: - CI_JOB_SIZE: "medium" - KUBERNETES_CPU_REQUEST: "2000m" - KUBERNETES_MEMORY_REQUEST: "4G" - - - match: - - alsa-lib - - ant - - antlr - - argobots - - automake - - berkeley-db - - bison - - blt - - cmake - - curl - - darshan-util - - diffutils - - exmcutils - - expat - - flit - - freetype - - gdbm - - gotcha - - hpcviewer - - jansson - - json-c - - libbsd - - libevent - - libjpeg-turbo - - libnrm - - libpng - - libunistring - - lua-luaposix - - m4 - - mpfr - - ncurses - - openblas - - openjdk - - papi - - parallel-netcdf - - pcre2 - - perl-data-dumper - - pkgconf - - py-alembic - - py-idna - - py-testpath - - qhull - - snappy - - swig - - tar - - tcl - - texinfo - - unzip - - util-linux-uuid - - util-macros - - yaml-cpp - - zlib - - zstd - runner-attributes: - tags: [ "spack", "small", "ppc64le" ] - variables: - CI_JOB_SIZE: "small" - KUBERNETES_CPU_REQUEST: "500m" - KUBERNETES_MEMORY_REQUEST: "500M" - - - match: ['os=ubuntu20.04'] - runner-attributes: - tags: ["spack", "ppc64le"] - variables: - CI_JOB_SIZE: "default" - - broken-specs-url: "s3://spack-binaries/broken-specs" - - service-job-attributes: - before_script: - - . "./share/spack/setup-env.sh" - - spack --version - image: ecpe4s/ubuntu20.04-runner-ppc64le:2022-08-01 - tags: ["spack", "public", "ppc64le"] - - signing-job-attributes: - image: { "name": "ghcr.io/spack/notary:latest", "entrypoint": [""] } - tags: ["spack", "aws"] - script: - - aws s3 sync --exclude "*" --include "*spec.json*" ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache /tmp - - /sign.sh - - aws s3 sync --exclude "*" --include "*spec.json.sig*" /tmp ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache - - cdash: - build-group: New PR testing workflow - url: https://cdash.spack.io - project: Spack Testing - site: Cloud Gitlab Infrastructure From 9543716d81bc51c17e2849bb8e071f5bba641ea4 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Wed, 14 Sep 2022 00:13:50 -0400 Subject: [PATCH 096/241] berkeley-db: Correct TLS auto-detection (#32592) --- .../builtin/packages/berkeley-db/package.py | 5 ++++ .../builtin/packages/berkeley-db/tls.patch | 24 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 var/spack/repos/builtin/packages/berkeley-db/tls.patch diff --git a/var/spack/repos/builtin/packages/berkeley-db/package.py b/var/spack/repos/builtin/packages/berkeley-db/package.py index 9d0f89c4c2e..5a35b7fa649 100644 --- a/var/spack/repos/builtin/packages/berkeley-db/package.py +++ b/var/spack/repos/builtin/packages/berkeley-db/package.py @@ -39,6 +39,11 @@ class BerkeleyDb(AutotoolsPackage): build_directory = "build_unix" patch("drop-docs.patch", when="~docs") + # Correct autoconf macro to detect TLS support. + # Patch developed by @eschnett. There is no upstream issue because + # Oracle's web site does not have instructions for submitting such + # an issue or pull request. + patch("tls.patch") conflicts("%clang@7:", when="@5.3.28") conflicts("%gcc@8:", when="@5.3.28") diff --git a/var/spack/repos/builtin/packages/berkeley-db/tls.patch b/var/spack/repos/builtin/packages/berkeley-db/tls.patch new file mode 100644 index 00000000000..7e308a72fcb --- /dev/null +++ b/var/spack/repos/builtin/packages/berkeley-db/tls.patch @@ -0,0 +1,24 @@ +--- a/dist/aclocal/tls.m4 ++++ b/dist/aclocal/tls.m4 +@@ -15,7 +15,8 @@ + for ax_tls_defn_keyword in $ax_tls_keywords ""; do + test -z "$ax_tls_decl_keyword" && + test -z "$ax_tls_defn_keyword" && continue +- AC_TRY_COMPILE([template class TLSClass { ++ AC_TRY_COMPILE([#include ++ template class TLSClass { + public: static ] $ax_tls_decl_keyword [ T *tlsvar; + }; + class TLSClass2 { +--- a/dist/configure ++++ b/dist/configure +@@ -19044,7 +19044,8 @@ + test -z "$ax_tls_defn_keyword" && continue + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-template class TLSClass { ++#include ++ template class TLSClass { + public: static $ax_tls_decl_keyword T *tlsvar; + }; + class TLSClass2 { From 8d2cd4a620a12437cf03b7e3886d01f8665470c6 Mon Sep 17 00:00:00 2001 From: Jonas Thies <16190001+jthies@users.noreply.github.com> Date: Wed, 14 Sep 2022 09:46:09 +0200 Subject: [PATCH 097/241] phist: add v1.9.5 (#32621) --- .../repos/builtin/packages/ghost/package.py | 4 ++++ .../repos/builtin/packages/phist/package.py | 22 +++++-------------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/var/spack/repos/builtin/packages/ghost/package.py b/var/spack/repos/builtin/packages/ghost/package.py index 64b633eefa2..293965430d2 100644 --- a/var/spack/repos/builtin/packages/ghost/package.py +++ b/var/spack/repos/builtin/packages/ghost/package.py @@ -18,6 +18,8 @@ class Ghost(CMakePackage, CudaPackage): homepage = "https://www.bitbucket.org/essex/ghost/" git = "https://bitbucket.org/essex/ghost/ghost.git" + maintainers = ["jthies"] + version("develop", branch="devel") variant("shared", default=True, description="Enables the build of shared libraries") @@ -35,6 +37,8 @@ class Ghost(CMakePackage, CudaPackage): depends_on("scotch", when="+scotch") depends_on("zoltan", when="+zoltan") + conflicts("^hwloc@2:") + def cmake_args(self): spec = self.spec # note: we require the cblas_include_dir property from the blas diff --git a/var/spack/repos/builtin/packages/phist/package.py b/var/spack/repos/builtin/packages/phist/package.py index 3eeb2bedade..6460e756ee6 100644 --- a/var/spack/repos/builtin/packages/phist/package.py +++ b/var/spack/repos/builtin/packages/phist/package.py @@ -45,23 +45,7 @@ class Phist(CMakePackage): # https://stackoverflow.com/questions/65750862 version("1.9.6", sha256="98ed5ccb22bb98d5b6bf9de0c9960105473e5244978853070b9a3c44138db662") - # As spack GitLab CI pipelines use ^mpich %gcc@7.5.0, @1.9.6 with it can't be used: - # A conflict would be possible, but when %gcc@10: or another compiler is available, - # clingo can select the other compiler despite a request for %gcc@7.5.0 in place, - # at least when the version is requested: spack solve phist@1.9.6 ^mpich %gcc@7.5.0 - # With conflicts('mpich', when='@1.9.6:%gcc@:9'), this is the result: - # spack solve phist@1.9.6 ^mpich %gcc@7.5.0|grep -e phist -e mpich|sed 's/+.*//' - # phist@1.9.6%gcc@11.2.0 - # ^mpich@3.4.2%gcc@7.5.0~argobots - # A mismatch of gfortan between gcc@7.5.0(for mpich) and @10:(phist) would not work, - # and also does not solve the build problem. - # Instead, a check with a helpful error message is added to the build (see below). - # and we use preferred=True to select 1.9.5 by default: - version( - "1.9.5", - sha256="24faa3373003f185c82a658c510e36cba9acc4110eb60cbfded9de370ae9ea32", - preferred=True, - ) + version("1.9.5", sha256="24faa3373003f185c82a658c510e36cba9acc4110eb60cbfded9de370ae9ea32") version("1.9.4", sha256="9dde3ca0480358fa0877ec8424aaee4011c5defc929219a5930388a7cdb4c8a6") version("1.9.3", sha256="3ab7157e9f535a4c8537846cb11b516271ef13f82d0f8ebb7f96626fb9ab86cf") version("1.9.2", sha256="289678fa7172708f5d32d6bd924c8fdfe72b413bba5bbb8ce6373c85c5ec5ae5") @@ -141,6 +125,10 @@ class Phist(CMakePackage): description="generate Fortran 2003 bindings (requires Python3 and " "a Fortran compiler)", ) + # The builtin kernels switched from the 'mpi' to the 'mpi_f08' module in + # phist 1.9.6, which causes compile-time errors with mpich and older + # GCC versions. + conflicts("kernel_lib=builtin", when="@1.9.6: ^mpich %gcc@:10") # in older versions, it is not possible to completely turn off OpenMP conflicts("~openmp", when="@:1.7.3") # in older versions, it is not possible to turn off the use of host- From ce56cb23febbb5432882ff563099adf2385ddaa0 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Wed, 14 Sep 2022 03:04:03 -0500 Subject: [PATCH 098/241] py-tokenize-rt: add missing setuptools dependency (#32639) --- var/spack/repos/builtin/packages/py-tokenize-rt/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-tokenize-rt/package.py b/var/spack/repos/builtin/packages/py-tokenize-rt/package.py index 0a0b2b1eaf4..1603cb10b3b 100644 --- a/var/spack/repos/builtin/packages/py-tokenize-rt/package.py +++ b/var/spack/repos/builtin/packages/py-tokenize-rt/package.py @@ -15,3 +15,4 @@ class PyTokenizeRt(PythonPackage): version("4.2.1", sha256="0d4f69026fed520f8a1e0103aa36c406ef4661417f20ca643f913e33531b3b94") depends_on("python@3.6.1:", type=("build", "run")) + depends_on("py-setuptools", type="build") From ddd18351a172f0aa4da1da202295eb7243f9c721 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Wed, 14 Sep 2022 03:09:58 -0500 Subject: [PATCH 099/241] py-pytorch-lightning: add v1.7.6 (#32644) --- var/spack/repos/builtin/packages/py-pytorch-lightning/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py b/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py index fdc06b59c6b..d48d4bfe97f 100644 --- a/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py +++ b/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py @@ -14,6 +14,7 @@ class PyPytorchLightning(PythonPackage): maintainers = ["adamjstewart"] + version("1.7.6", sha256="93266c83f8340c100e41b3777bbab26dd2c20b4df3deccce3b8a15652326b9c8") version("1.7.5", sha256="a5838ae990f0eef9a894fa863be3bc1f5594d2abba7848fb21317ba3e885d7cd") version("1.7.4", sha256="d80df235228a8f6d6b77df4bfa34b3d667d734bd40e960bb4ca553a2746523eb") version("1.7.3", sha256="605ab313e54992261db74df4a6a6d4d556f319ea8a08eff2f30d80e8b898eb14") From c1b3f0e02f1c23129fb79081af019d157506f737 Mon Sep 17 00:00:00 2001 From: Houjun Tang Date: Wed, 14 Sep 2022 03:21:48 -0700 Subject: [PATCH 100/241] Add hdf5-vol-async v1.3 (#32634) --- var/spack/repos/builtin/packages/hdf5-vol-async/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/hdf5-vol-async/package.py b/var/spack/repos/builtin/packages/hdf5-vol-async/package.py index 04596d3d1be..9ed03c225c2 100644 --- a/var/spack/repos/builtin/packages/hdf5-vol-async/package.py +++ b/var/spack/repos/builtin/packages/hdf5-vol-async/package.py @@ -17,6 +17,7 @@ class Hdf5VolAsync(CMakePackage): tags = ["e4s"] version("develop", branch="develop") + version("1.3", tag="v1.3") version("1.2", tag="v1.2") version("1.1", tag="v1.1") version("1.0", tag="v1.0") From f37e9addcddc8a1a7bb6a548361e75bf2a3b8f0a Mon Sep 17 00:00:00 2001 From: Paul Kuberry Date: Wed, 14 Sep 2022 06:49:52 -0600 Subject: [PATCH 101/241] compadre: add v1.5.0, v1.4.1 (#32609) --- .../builtin/packages/compadre/package.py | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/var/spack/repos/builtin/packages/compadre/package.py b/var/spack/repos/builtin/packages/compadre/package.py index 0980627eea2..df49ad93d85 100644 --- a/var/spack/repos/builtin/packages/compadre/package.py +++ b/var/spack/repos/builtin/packages/compadre/package.py @@ -15,16 +15,17 @@ class Compadre(CMakePackage): constitute the rows of some globally sparse matrix. """ - homepage = "https://github.com/SNLComputation/compadre" - git = "https://github.com/SNLComputation/compadre.git" - url = "https://github.com/SNLComputation/compadre/archive/v1.3.0.tar.gz" + homepage = "https://github.com/sandialabs/compadre" + git = "https://github.com/sandialabs/compadre.git" + url = "https://github.com/sandialabs/compadre/archive/v1.3.0.tar.gz" maintainers = ["kuberry"] - version("master", branch="master", preferred=True) + version("master", branch="master") + version("1.5.0", "b7dd6020cc5a7969de817d5c7f6c5acceaad0f08dcfd3d7cacfa9f42e4c8b335") + version("1.4.1", "2e1e7d8e30953f76b6dc3a4c86ec8103d4b29447194cb5d5abb74b8e4099bdd9") version("1.3.0", "f711a840fd921e84660451ded408023ec3bcfc98fd0a7dc4a299bfae6ab489c2") - depends_on("kokkos@3.3.01:main") - depends_on("kokkos-kernels@3.3.01:main") + depends_on("kokkos-kernels@3.3.01:3.6") depends_on("cmake@3.13:", type="build") variant( @@ -37,6 +38,13 @@ class Compadre(CMakePackage): variant("mpi", default=False, description="Enable MPI support") depends_on("mpi", when="+mpi") + # fixes duplicate symbol issue with static library build + patch( + "https://patch-diff.githubusercontent.com/raw/sandialabs/Compadre/pull/286.patch?full_index=1", + sha256="e267b74f8ecb8dd23970848ed919d29b7d442f619ce80983e02a19f1d9582c61", + when="@1.5.0", + ) + def cmake_args(self): spec = self.spec From 445365341809c3bb012180d64e978a4534221507 Mon Sep 17 00:00:00 2001 From: Ishaan Desai Date: Wed, 14 Sep 2022 16:55:48 +0200 Subject: [PATCH 102/241] [py-pyprecice] add v2.5.0.0 and v2.5.0.1 and update checksum of v2.4.0.0 (#32551) * Update versions 2.5.0.0 and 2.5.0.1 * Applying review changes * Updating incorrect checksum for v2.4.0.0 * Add for loop to define depends_on for preCICE versions and bindings versions * Formatting * Missing comma --- .../builtin/packages/py-pyprecice/package.py | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-pyprecice/package.py b/var/spack/repos/builtin/packages/py-pyprecice/package.py index 9e8978cbd02..e4af040e6da 100644 --- a/var/spack/repos/builtin/packages/py-pyprecice/package.py +++ b/var/spack/repos/builtin/packages/py-pyprecice/package.py @@ -19,7 +19,9 @@ class PyPyprecice(PythonPackage): # Always prefer final version of release candidate version("develop", branch="develop") - version("2.4.0.0", sha256="8877da85df97d66966892440c7e777b667d8e6a33747304ed3762f4c33b729ec") + version("2.5.0.1", sha256="e2602f828d4f907ea93e34f7d4adb8db086044a75a446592a4099423d56ed62c") + version("2.5.0.0", sha256="9f55a22594bb602cde8a5987217728569f16d9576ea53ed00497e9046a2e1794") + version("2.4.0.0", sha256="e80d16417b8ce1fdac80c988cb18ae1e16f785c5eb1035934d8b37ac18945242") version("2.3.0.1", sha256="ed4e48729b662680beaa4ee2a9aff724a79e760534c6c58181be739988da2789") version("2.2.1.1", sha256="139bac5077c3807e1b7b83d8d0da5ca0fc8c17393fd0df4bc5999cd63a351b78") version("2.2.0.2", sha256="2287185f9ad7500dced53459543d27bb66bd2438c2e4bf81ee3317e6a00513d5") @@ -32,16 +34,20 @@ class PyPyprecice(PythonPackage): version("2.0.0.2", sha256="5f055d809d65ec2e81f4d001812a250f50418de59990b47d6bcb12b88da5f5d7") version("2.0.0.1", sha256="96eafdf421ec61ad6fcf0ab1d3cf210831a815272984c470b2aea57d4d0c9e0e") - depends_on("precice@develop", when="@develop") - depends_on("precice@2.4.0", when="@2.4.0.1:2.4.0") - depends_on("precice@2.3.0", when="@2.3.0.1:2.3.1") - depends_on("precice@2.2.1", when="@2.2.1.1:2.2.1") - depends_on("precice@2.2.0", when="@2.2.0.1:2.2.0") - depends_on("precice@2.1.1", when="@2.1.1.1:2.1.1") - depends_on("precice@2.1.0", when="@2.1.0.1:2.1.0") - depends_on("precice@2.0.2", when="@2.0.2.1:2.0.2") - depends_on("precice@2.0.1", when="@2.0.1.1:2.0.1") - depends_on("precice@2.0.0", when="@2.0.0.1:2.0.0") + for ver in [ + "develop", + "2.5.0", + "2.4.0", + "2.3.0", + "2.2.1", + "2.2.0", + "2.1.1", + "2.1.0", + "2.0.2", + "2.0.1", + "2.0.0", + ]: + depends_on("precice@" + ver, when="@" + ver) depends_on("python@3:", type=("build", "link", "run")) depends_on("py-setuptools", type="build") @@ -50,6 +56,7 @@ class PyPyprecice(PythonPackage): depends_on("py-cython@0.29:", type="build") depends_on("py-packaging", type="build") depends_on("py-pip@19.0.0:", type="build") + depends_on("py-pkgconfig", type="build", when="@2.5:") @when("@:2.1") def patch(self): From 5ffde1d51c86a50aa1429d55ed6ee93d4080163d Mon Sep 17 00:00:00 2001 From: iarspider Date: Wed, 14 Sep 2022 18:48:56 +0200 Subject: [PATCH 103/241] Add checksum for yoda 1.9.6 (#32648) --- var/spack/repos/builtin/packages/yoda/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/yoda/package.py b/var/spack/repos/builtin/packages/yoda/package.py index 0d7f780e9a1..6c0b3bdfbbc 100644 --- a/var/spack/repos/builtin/packages/yoda/package.py +++ b/var/spack/repos/builtin/packages/yoda/package.py @@ -15,6 +15,7 @@ class Yoda(AutotoolsPackage): tags = ["hep"] + version("1.9.6", sha256="21523fa2f6b6c8f3348959f3a948734a930ca25951d3c9190b4424e13735f2a4") version("1.9.5", sha256="59191a0e9afa8db53ffaa2079f8532e5b13de1be622703d6f7060d3610528b6b") version("1.9.0", sha256="9a55de12ffebbe41d1704459c5c9289eeaf0f0eb6a4d0104ea222d7ab889fdf4") version("1.8.5", sha256="4c2e6b8571fc176271515a309b45687a2981af1b07ff3f00d0b035a597aa32fd") From 01c9780577ca47e9e6a20937915506248f87f095 Mon Sep 17 00:00:00 2001 From: Valentin Volkl Date: Wed, 14 Sep 2022 18:57:20 +0200 Subject: [PATCH 104/241] py-awkward: allow newer, fixed rapidjson versions (#32650) Rapidjson was constrained due to a bug (see https://github.com/spack/spack/pull/29889) , but newer (although untagged) versions of rapidjson have since been added to spack (https://github.com/spack/spack/pull/29869). Tested the build of py-awkward with the latest, works fine. --- var/spack/repos/builtin/packages/py-awkward/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-awkward/package.py b/var/spack/repos/builtin/packages/py-awkward/package.py index dd8269a24c0..2c258ec1094 100644 --- a/var/spack/repos/builtin/packages/py-awkward/package.py +++ b/var/spack/repos/builtin/packages/py-awkward/package.py @@ -37,6 +37,6 @@ class PyAwkward(PythonPackage): depends_on("py-numpy@1.13.1:", type=("build", "run")) depends_on("py-pybind11", type=("build", "link")) depends_on("dlpack", when="@1.0.0:") - depends_on("rapidjson@:1.1.0") + depends_on("rapidjson") depends_on("cmake@3.13:", type="build") depends_on("py-wheel@0.36.0:", type="build", when="@:1.7.0") From 045a5e80cb546b08d89cf53914a7c67c5aa25665 Mon Sep 17 00:00:00 2001 From: psakievich Date: Wed, 14 Sep 2022 11:16:28 -0600 Subject: [PATCH 105/241] Allow version to accept the '=' token without activating lexer switch (#32257) --- lib/spack/spack/spec.py | 44 +++++---- lib/spack/spack/test/spec_syntax.py | 140 ++++++++++++++++++++-------- 2 files changed, 128 insertions(+), 56 deletions(-) diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py index b7ff676fe2b..09769e48608 100644 --- a/lib/spack/spack/spec.py +++ b/lib/spack/spack/spec.py @@ -4981,7 +4981,7 @@ def __missing__(self, key): #: These are possible token types in the spec grammar. -HASH, DEP, AT, COLON, COMMA, ON, OFF, PCT, EQ, ID, VAL, FILE = range(12) +HASH, DEP, VER, COLON, COMMA, ON, OFF, PCT, EQ, ID, VAL, FILE = range(12) #: Regex for fully qualified spec names. (e.g., builtin.hdf5) spec_id_re = r"\w[\w.-]*" @@ -5001,10 +5001,13 @@ def __init__(self): ) super(SpecLexer, self).__init__( [ - (r"\^", lambda scanner, val: self.token(DEP, val)), - (r"\@", lambda scanner, val: self.token(AT, val)), + ( + r"\@([\w.\-]*\s*)*(\s*\=\s*\w[\w.\-]*)?", + lambda scanner, val: self.token(VER, val), + ), (r"\:", lambda scanner, val: self.token(COLON, val)), (r"\,", lambda scanner, val: self.token(COMMA, val)), + (r"\^", lambda scanner, val: self.token(DEP, val)), (r"\+", lambda scanner, val: self.token(ON, val)), (r"\-", lambda scanner, val: self.token(OFF, val)), (r"\~", lambda scanner, val: self.token(OFF, val)), @@ -5142,7 +5145,7 @@ def do_parse(self): else: # If the next token can be part of a valid anonymous spec, # create the anonymous spec - if self.next.type in (AT, ON, OFF, PCT): + if self.next.type in (VER, ON, OFF, PCT): # Raise an error if the previous spec is already concrete if specs and specs[-1].concrete: raise RedundantSpecError(specs[-1], "compiler, version, " "or variant") @@ -5250,7 +5253,7 @@ def spec(self, name): spec.name = spec_name while self.next: - if self.accept(AT): + if self.accept(VER): vlist = self.version_list() spec._add_versions(vlist) @@ -5268,7 +5271,6 @@ def spec(self, name): elif self.accept(ID): self.previous = self.token if self.accept(EQ): - # We're adding a key-value pair to the spec self.expect(VAL) spec._add_flag(self.previous.value, self.token.value) self.previous = None @@ -5304,16 +5306,24 @@ def variant(self, name=None): return self.token.value def version(self): + start = None end = None - if self.accept(ID): - start = self.token.value - if self.accept(EQ): - # This is for versions that are associated with a hash - # i.e. @[40 char hash]=version - start += self.token.value - self.expect(VAL) - start += self.token.value + + def str_translate(value): + # return None for empty strings since we can end up with `'@'.strip('@')` + if not (value and value.strip()): + return None + else: + return value + + if self.token.type is COMMA: + # need to increment commas, could be ID or COLON + self.accept(ID) + + if self.token.type in (VER, ID): + version_spec = self.token.value.lstrip("@") + start = str_translate(version_spec) if self.accept(COLON): if self.accept(ID): @@ -5323,10 +5333,10 @@ def version(self): else: end = self.token.value elif start: - # No colon, but there was a version. + # No colon, but there was a version return vn.Version(start) else: - # No colon and no id: invalid version. + # No colon and no id: invalid version self.next_token_error("Invalid version specifier") if start: @@ -5349,7 +5359,7 @@ def compiler(self): compiler = CompilerSpec.__new__(CompilerSpec) compiler.name = self.token.value compiler.versions = vn.VersionList() - if self.accept(AT): + if self.accept(VER): vlist = self.version_list() compiler._add_versions(vlist) else: diff --git a/lib/spack/spack/test/spec_syntax.py b/lib/spack/spack/test/spec_syntax.py index ec92cc877ea..41a75a3fcb6 100644 --- a/lib/spack/spack/test/spec_syntax.py +++ b/lib/spack/spack/test/spec_syntax.py @@ -31,63 +31,97 @@ ) from spack.variant import DuplicateVariantError -# Sample output for a complex lexing. -complex_lex = [ +# Building blocks for complex lexing. +complex_root = [ Token(sp.ID, "mvapich_foo"), - Token(sp.DEP), - Token(sp.ID, "_openmpi"), - Token(sp.AT), - Token(sp.ID, "1.2"), - Token(sp.COLON), - Token(sp.ID, "1.4"), - Token(sp.COMMA), - Token(sp.ID, "1.6"), - Token(sp.PCT), - Token(sp.ID, "intel"), - Token(sp.AT), - Token(sp.ID, "12.1"), - Token(sp.COLON), - Token(sp.ID, "12.6"), - Token(sp.ON), - Token(sp.ID, "debug"), - Token(sp.OFF), - Token(sp.ID, "qt_4"), - Token(sp.DEP), - Token(sp.ID, "stackwalker"), - Token(sp.AT), - Token(sp.ID, "8.1_1e"), ] -# Another sample lexer output with a kv pair. -kv_lex = [ +kv_root = [ Token(sp.ID, "mvapich_foo"), Token(sp.ID, "debug"), Token(sp.EQ), Token(sp.VAL, "4"), +] + +complex_compiler = [ + Token(sp.PCT), + Token(sp.ID, "intel"), +] + +complex_compiler_v = [ + Token(sp.VER, "@12.1"), + Token(sp.COLON), + Token(sp.ID, "12.6"), +] + +complex_compiler_v_space = [ + Token(sp.VER, "@"), + Token(sp.ID, "12.1"), + Token(sp.COLON), + Token(sp.ID, "12.6"), +] + +complex_dep1 = [ Token(sp.DEP), Token(sp.ID, "_openmpi"), - Token(sp.AT), + Token(sp.VER, "@1.2"), + Token(sp.COLON), + Token(sp.ID, "1.4"), + Token(sp.COMMA), + Token(sp.ID, "1.6"), +] + +complex_dep1_space = [ + Token(sp.DEP), + Token(sp.ID, "_openmpi"), + Token(sp.VER, "@"), Token(sp.ID, "1.2"), Token(sp.COLON), Token(sp.ID, "1.4"), Token(sp.COMMA), Token(sp.ID, "1.6"), - Token(sp.PCT), - Token(sp.ID, "intel"), - Token(sp.AT), - Token(sp.ID, "12.1"), - Token(sp.COLON), - Token(sp.ID, "12.6"), +] + +complex_dep1_var = [ Token(sp.ON), Token(sp.ID, "debug"), Token(sp.OFF), Token(sp.ID, "qt_4"), +] + +complex_dep2 = [ Token(sp.DEP), Token(sp.ID, "stackwalker"), - Token(sp.AT), + Token(sp.VER, "@8.1_1e"), +] + +complex_dep2_space = [ + Token(sp.DEP), + Token(sp.ID, "stackwalker"), + Token(sp.VER, "@"), Token(sp.ID, "8.1_1e"), ] +# Sample output from complex lexing +complex_lex = ( + complex_root + + complex_dep1 + + complex_compiler + + complex_compiler_v + + complex_dep1_var + + complex_dep2 +) + +# Another sample lexer output with a kv pair. +kv_lex = ( + kv_root + + complex_dep1 + + complex_compiler + + complex_compiler_v_space + + complex_dep1_var + + complex_dep2_space +) + class TestSpecSyntax(object): # ======================================================================== @@ -120,7 +154,7 @@ def check_lex(self, tokens, spec): lex_output = sp.SpecLexer().lex(spec) assert len(tokens) == len(lex_output), "unexpected number of tokens" for tok, spec_tok in zip(tokens, lex_output): - if tok.type == sp.ID or tok.type == sp.VAL: + if tok.type in (sp.ID, sp.VAL, sp.VER): assert tok == spec_tok else: # Only check the type for non-identifiers. @@ -716,14 +750,22 @@ def test_minimal_spaces(self): ) def test_spaces_between_dependences(self): + lex_key = ( + complex_root + + complex_dep1 + + complex_compiler + + complex_compiler_v + + complex_dep1_var + + complex_dep2_space + ) self.check_lex( - complex_lex, + lex_key, "mvapich_foo " "^_openmpi@1.2:1.4,1.6%intel@12.1:12.6+debug -qt_4 " "^stackwalker @ 8.1_1e", ) self.check_lex( - complex_lex, + lex_key, "mvapich_foo " "^_openmpi@1.2:1.4,1.6%intel@12.1:12.6+debug~qt_4 " "^stackwalker @ 8.1_1e", @@ -738,14 +780,30 @@ def test_spaces_between_options(self): ) def test_way_too_many_spaces(self): + lex_key = ( + complex_root + + complex_dep1 + + complex_compiler + + complex_compiler_v_space + + complex_dep1_var + + complex_dep2_space + ) self.check_lex( - complex_lex, + lex_key, "mvapich_foo " "^ _openmpi @1.2 : 1.4 , 1.6 % intel @ 12.1 : 12.6 + debug - qt_4 " "^ stackwalker @ 8.1_1e", ) + lex_key = ( + complex_root + + complex_dep1 + + complex_compiler + + complex_compiler_v_space + + complex_dep1_var + + complex_dep2_space + ) self.check_lex( - complex_lex, + lex_key, "mvapich_foo " "^ _openmpi @1.2 : 1.4 , 1.6 % intel @ 12.1 : 12.6 + debug ~ qt_4 " "^ stackwalker @ 8.1_1e", @@ -838,6 +896,10 @@ def test_compare_abstract_specs(self): # Check that we can compare without raising an error assert a <= b or b < a + def test_git_ref_specs_with_variants(self): + spec_str = "develop-branch-version@git.{h}=develop+var1+var2".format(h="a" * 40) + self.check_parse(spec_str) + def test_git_ref_spec_equivalences(self, mock_packages, mock_stage): s1 = sp.Spec("develop-branch-version@git.{hash}=develop".format(hash="a" * 40)) s2 = sp.Spec("develop-branch-version@git.{hash}=develop".format(hash="b" * 40)) From ebb20eb8f8fcd2cf01fc127e82759e7050f4b074 Mon Sep 17 00:00:00 2001 From: Sergey Kosukhin Date: Wed, 14 Sep 2022 20:45:41 +0200 Subject: [PATCH 106/241] llvm: fix detection of LLDB_PYTHON_EXE_RELATIVE_PATH (#32584) --- .../repos/builtin/packages/llvm/D133513.diff | 29 +++++++++++++++++++ .../repos/builtin/packages/llvm/package.py | 6 ++++ 2 files changed, 35 insertions(+) create mode 100644 var/spack/repos/builtin/packages/llvm/D133513.diff diff --git a/var/spack/repos/builtin/packages/llvm/D133513.diff b/var/spack/repos/builtin/packages/llvm/D133513.diff new file mode 100644 index 00000000000..54849b8e850 --- /dev/null +++ b/var/spack/repos/builtin/packages/llvm/D133513.diff @@ -0,0 +1,29 @@ +Index: lldb/bindings/python/get-python-config.py +=================================================================== +--- lldb/bindings/python/get-python-config.py ++++ lldb/bindings/python/get-python-config.py +@@ -44,15 +44,21 @@ + elif args.variable_name == "LLDB_PYTHON_EXE_RELATIVE_PATH": + tried = list() + exe = sys.executable +- prefix = os.path.realpath(sys.prefix) ++ prefix = sys.prefix + while True: + try: + print(relpath_nodots(exe, prefix)) + break + except ValueError: + tried.append(exe) +- if os.path.islink(exe): +- exe = os.path.join(os.path.realpath(os.path.dirname(exe)), os.readlink(exe)) ++ real_exe_dirname = os.path.realpath(os.path.dirname(exe)) ++ real_prefix = os.path.realpath(prefix) ++ if prefix != real_prefix: ++ prefix = real_prefix ++ exe = os.path.join(real_exe_dirname, os.path.basename(exe)) ++ continue ++ elif os.path.islink(exe): ++ exe = os.path.join(real_exe_dirname, os.readlink(exe)) + continue + else: + print("Could not find a relative path to sys.executable under sys.prefix", file=sys.stderr) diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py index ff23d4ff753..cff8f2e7584 100644 --- a/var/spack/repos/builtin/packages/llvm/package.py +++ b/var/spack/repos/builtin/packages/llvm/package.py @@ -377,6 +377,12 @@ class Llvm(CMakePackage, CudaPackage): when="@8:11", ) + # fix detection of LLDB_PYTHON_EXE_RELATIVE_PATH + # see https://reviews.llvm.org/D133513 + # TODO: adjust version constraint and switch to fetching from the upstream GitHub repo + # when/if the bugfix is merged + patch("D133513.diff", level=0, when="@14:15+lldb+python") + # The functions and attributes below implement external package # detection for LLVM. See: # From 7971985a06fd5d712406539389ffeff07cbeaec4 Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Wed, 14 Sep 2022 13:02:51 -0700 Subject: [PATCH 107/241] Manifest parsing: skip invalid manifest files (#32467) * catch json schema errors and reraise as property of SpackError * no need to catch subclass of given error * Builtin json library for Python 2 uses more generic type * Correct instantiation of SpackError (requires a string rather than an exception) * Use exception chaining (where possible) --- lib/spack/spack/cmd/external.py | 2 +- lib/spack/spack/cray_manifest.py | 24 +++++++++++++++--- lib/spack/spack/test/cray_manifest.py | 35 +++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 4 deletions(-) diff --git a/lib/spack/spack/cmd/external.py b/lib/spack/spack/cmd/external.py index 993533d395d..af186bb2183 100644 --- a/lib/spack/spack/cmd/external.py +++ b/lib/spack/spack/cmd/external.py @@ -219,7 +219,7 @@ def _collect_and_consume_cray_manifest_files( tty.debug("Reading manifest file: " + path) try: cray_manifest.read(path, not dry_run) - except (spack.compilers.UnknownCompilerError, spack.error.SpackError) as e: + except spack.error.SpackError as e: if fail_on_error: raise else: diff --git a/lib/spack/spack/cray_manifest.py b/lib/spack/spack/cray_manifest.py index 15b0d9293b9..d15c8450a3d 100644 --- a/lib/spack/spack/cray_manifest.py +++ b/lib/spack/spack/cray_manifest.py @@ -4,8 +4,10 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import json +import sys import jsonschema +import jsonschema.exceptions import six import llnl.util.tty as tty @@ -161,10 +163,21 @@ def entries_to_specs(entries): def read(path, apply_updates): - with open(path, "r") as json_file: - json_data = json.load(json_file) + if sys.version_info >= (3, 0): + decode_exception_type = json.decoder.JSONDecodeError + else: + decode_exception_type = ValueError - jsonschema.validate(json_data, manifest_schema) + try: + with open(path, "r") as json_file: + json_data = json.load(json_file) + + jsonschema.validate(json_data, manifest_schema) + except (jsonschema.exceptions.ValidationError, decode_exception_type) as e: + raise six.raise_from( + ManifestValidationError("error parsing manifest JSON:", str(e)), + e, + ) specs = entries_to_specs(json_data["specs"]) tty.debug("{0}: {1} specs read from manifest".format(path, str(len(specs)))) @@ -179,3 +192,8 @@ def read(path, apply_updates): if apply_updates: for spec in specs.values(): spack.store.db.add(spec, directory_layout=None) + + +class ManifestValidationError(spack.error.SpackError): + def __init__(self, msg, long_msg=None): + super(ManifestValidationError, self).__init__(msg, long_msg) diff --git a/lib/spack/spack/test/cray_manifest.py b/lib/spack/spack/test/cray_manifest.py index addf4e5287f..4d030e8e113 100644 --- a/lib/spack/spack/test/cray_manifest.py +++ b/lib/spack/spack/test/cray_manifest.py @@ -365,3 +365,38 @@ def test_read_old_manifest_v1_2(tmpdir, mutable_config, mock_packages, mutable_d """ ) cray_manifest.read(manifest_file_path, True) + + +def test_convert_validation_error(tmpdir, mutable_config, mock_packages, mutable_database): + manifest_dir = str(tmpdir.mkdir("manifest_dir")) + # Does not parse as valid JSON + invalid_json_path = os.path.join(manifest_dir, "invalid-json.json") + with open(invalid_json_path, "w") as f: + f.write( + """\ +{ +""" + ) + with pytest.raises(cray_manifest.ManifestValidationError) as e: + cray_manifest.read(invalid_json_path, True) + str(e) + + # Valid JSON, but does not conform to schema (schema-version is not a string + # of length > 0) + invalid_schema_path = os.path.join(manifest_dir, "invalid-schema.json") + with open(invalid_schema_path, "w") as f: + f.write( + """\ +{ + "_meta": { + "file-type": "cray-pe-json", + "system-type": "EX", + "schema-version": "" + }, + "specs": [] +} +""" + ) + with pytest.raises(cray_manifest.ManifestValidationError) as e: + cray_manifest.read(invalid_schema_path, True) + str(e) From deca34676ff7ea272bb299589b5ae4b499999b32 Mon Sep 17 00:00:00 2001 From: "John W. Parent" <45471568+johnwparent@users.noreply.github.com> Date: Wed, 14 Sep 2022 16:45:42 -0400 Subject: [PATCH 108/241] Bugfix: find_libraries (#32653) 53a7b49 created a reference error which broke `.libs` (and `find_libraries`) for many packages. This fixes the reference error and improves the testing for `find_libraries` by actually checking the extension types of libraries that are retrieved by the function. --- lib/spack/llnl/util/filesystem.py | 12 ++++----- lib/spack/spack/test/llnl/util/file_list.py | 29 ++++++++++++++++++--- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/lib/spack/llnl/util/filesystem.py b/lib/spack/llnl/util/filesystem.py index a161a64d2a0..a5da826217e 100644 --- a/lib/spack/llnl/util/filesystem.py +++ b/lib/spack/llnl/util/filesystem.py @@ -2055,22 +2055,22 @@ def find_libraries(libraries, root, shared=True, recursive=False): raise TypeError(message) if is_windows: - static = "lib" - shared = "dll" + static_ext = "lib" + shared_ext = "dll" else: # Used on both Linux and macOS - static = "a" - shared = "so" + static_ext = "a" + shared_ext = "so" # Construct the right suffix for the library if shared: # Used on both Linux and macOS - suffixes = [shared] + suffixes = [shared_ext] if sys.platform == "darwin": # Only used on macOS suffixes.append("dylib") else: - suffixes = [static] + suffixes = [static_ext] # List of libraries we are searching with suffixes libraries = ["{0}.{1}".format(lib, suffix) for lib in libraries for suffix in suffixes] diff --git a/lib/spack/spack/test/llnl/util/file_list.py b/lib/spack/spack/test/llnl/util/file_list.py index 0fe75724069..a6a7ef3fa99 100644 --- a/lib/spack/spack/test/llnl/util/file_list.py +++ b/lib/spack/spack/test/llnl/util/file_list.py @@ -72,7 +72,7 @@ def header_list(): plat_shared_ext = "dll" if is_windows else "so" -plat_apple_shared_ext = "dll" if is_windows else "dylib" +plat_apple_shared_ext = "dylib" class TestLibraryList(object): @@ -86,7 +86,7 @@ def test_joined_and_str(self, library_list): expected = " ".join( [ "/dir1/liblapack.%s" % plat_static_ext, - "/dir2/libpython3.6.%s" % plat_apple_shared_ext, + "/dir2/libpython3.6.%s" % (plat_apple_shared_ext if not is_windows else "dll"), "/dir1/libblas.%s" % plat_static_ext, "/dir3/libz.%s" % plat_shared_ext, "libmpi.%s.20.10.1" % plat_shared_ext, @@ -101,7 +101,7 @@ def test_joined_and_str(self, library_list): expected = ";".join( [ "/dir1/liblapack.%s" % plat_static_ext, - "/dir2/libpython3.6.%s" % plat_apple_shared_ext, + "/dir2/libpython3.6.%s" % (plat_apple_shared_ext if not is_windows else "dll"), "/dir1/libblas.%s" % plat_static_ext, "/dir3/libz.%s" % plat_shared_ext, "libmpi.%s.20.10.1" % plat_shared_ext, @@ -254,6 +254,29 @@ def test_add(self, header_list): search_dir = os.path.join(spack.paths.test_path, "data", "directory_search") +@pytest.mark.parametrize( + "lib_list,kwargs", + [ + (["liba"], {"shared": True, "recursive": True}), + (["liba"], {"shared": False, "recursive": True}), + (["libc", "liba"], {"shared": True, "recursive": True}), + (["liba", "libc"], {"shared": False, "recursive": True}), + (["libc", "libb", "liba"], {"shared": True, "recursive": True}), + (["liba", "libb", "libc"], {"shared": False, "recursive": True}), + ], +) +def test_library_type_search(lib_list, kwargs): + results = find_libraries(lib_list, search_dir, **kwargs) + assert len(results) != 0 + for result in results: + lib_type_ext = plat_shared_ext + if not kwargs["shared"]: + lib_type_ext = plat_static_ext + assert result.endswith(lib_type_ext) or ( + kwargs["shared"] and result.endswith(plat_apple_shared_ext) + ) + + @pytest.mark.parametrize( "search_fn,search_list,root,kwargs", [ From dde5867d15a1a286e3f9b867c11b32416293be7e Mon Sep 17 00:00:00 2001 From: Vicente Bolea Date: Wed, 14 Sep 2022 20:05:02 -0400 Subject: [PATCH 109/241] libcatalyst: use git instead of fixed urls (#32642) The issue is that we are not not able to install (Fetch URL error) any version of catalyst other than the specified in the spack package.py. This very version is accessible only because it is cached by Spack. The real URL does not exist anymore, I believe the reason is that there used to be a tag in catalyst that does not exist anymore. --- .../repos/builtin/packages/libcatalyst/package.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/var/spack/repos/builtin/packages/libcatalyst/package.py b/var/spack/repos/builtin/packages/libcatalyst/package.py index 7a25ec816a2..5bf1fe4f8fa 100644 --- a/var/spack/repos/builtin/packages/libcatalyst/package.py +++ b/var/spack/repos/builtin/packages/libcatalyst/package.py @@ -11,14 +11,12 @@ class Libcatalyst(CMakePackage): scientific data producers) to analyze and visualize data in situ.""" homepage = "https://gitlab.kitware.com/paraview/catalyst" - url = "https://gitlab.kitware.com/paraview/catalyst/-/archive/{0}/catalyst-{0}.tar.bz2" + git = "https://gitlab.kitware.com/paraview/catalyst.git" maintainers = ["mathstuf"] # master as of 2021-05-12 - version( - "2021-05-12", sha256="5a01f12b271d9d9e9b89f31d45a5f4b8426904483639d38754893adfd3547bab" - ) + version("2021-05-12", commit="8456ccd6015142b5a7705f79471361d4f5644fa7") variant("mpi", default=False, description="Enable MPI support") variant("python3", default=False, description="Enable Python3 support") @@ -28,10 +26,6 @@ class Libcatalyst(CMakePackage): # TODO: catalyst doesn't support an external conduit # depends_on('conduit') - def url_for_version(self, version): - _urlfmt = self.url - return _urlfmt.format(version) - def cmake_args(self): """Populate cmake arguments for libcatalyst.""" args = [ From eaf3f7c17c477aad586cfe94247e1f8201863149 Mon Sep 17 00:00:00 2001 From: Matthieu Dorier Date: Thu, 15 Sep 2022 06:41:34 +0100 Subject: [PATCH 110/241] [py-pip] fix setup_dependent_package in py-pip (#32632) --- var/spack/repos/builtin/packages/py-pip/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-pip/package.py b/var/spack/repos/builtin/packages/py-pip/package.py index f32199db310..ff244d5e4b9 100644 --- a/var/spack/repos/builtin/packages/py-pip/package.py +++ b/var/spack/repos/builtin/packages/py-pip/package.py @@ -94,7 +94,7 @@ def install(self, spec, prefix): python(*args) def setup_dependent_package(self, module, dependent_spec): - pip = self.spec["python"].command + pip = dependent_spec["python"].command pip.add_default_arg("-m") pip.add_default_arg("pip") setattr(module, "pip", pip) From 123354e920582607af689db83037c1055e4ff778 Mon Sep 17 00:00:00 2001 From: Glenn Johnson Date: Thu, 15 Sep 2022 03:03:05 -0500 Subject: [PATCH 111/241] FPLO: add new package (#32580) --- .../builtin/packages/fplo/MMakefile.patch | 61 +++++++ .../builtin/packages/fplo/fedit_py.patch | 12 ++ .../builtin/packages/fplo/lapackconfig.patch | 11 ++ .../repos/builtin/packages/fplo/ncurses.patch | 96 +++++++++++ .../repos/builtin/packages/fplo/package.py | 159 ++++++++++++++++++ .../repos/builtin/packages/fplo/qt-make.patch | 34 ++++ 6 files changed, 373 insertions(+) create mode 100644 var/spack/repos/builtin/packages/fplo/MMakefile.patch create mode 100644 var/spack/repos/builtin/packages/fplo/fedit_py.patch create mode 100644 var/spack/repos/builtin/packages/fplo/lapackconfig.patch create mode 100644 var/spack/repos/builtin/packages/fplo/ncurses.patch create mode 100644 var/spack/repos/builtin/packages/fplo/package.py create mode 100644 var/spack/repos/builtin/packages/fplo/qt-make.patch diff --git a/var/spack/repos/builtin/packages/fplo/MMakefile.patch b/var/spack/repos/builtin/packages/fplo/MMakefile.patch new file mode 100644 index 00000000000..beb6fb2bb36 --- /dev/null +++ b/var/spack/repos/builtin/packages/fplo/MMakefile.patch @@ -0,0 +1,61 @@ +--- a/FPLO22.00-62/install/MMakefile 2022-07-06 01:06:19.000000000 -0500 ++++ b/FPLO22.00-62/install/MMakefile 2022-08-28 16:23:30.921835477 -0500 +@@ -106,7 +106,7 @@ + + # directories with source code to compile + parentpath=../.. +-srcdir="COMMON ISO SLABIFY FEDIT CALC CIF OPTICS" ++srcdir="COMMON SLABIFY ISO FEDIT CALC CIF OPTICS" + doxinstall=0 + xsrcdir="XFPLO" + moddir="MODULES" +@@ -245,17 +245,15 @@ + + ########################### + # mkl +-echo "Please enter if you want to use the MKL eigenvalue solver (y/n) [default n]:" ; read YN +-if [ "x$YN" = "xy" -o "x$YN" = "xY" ];then mkl=1; fi ++#echo "Please enter if you want to use the MKL eigenvalue solver (y/n) [default n]:" ; read YN ++#if [ "x$YN" = "xy" -o "x$YN" = "xY" ];then mkl=1; fi + if [ $mkl = 1 ] ; then + nmkl=$(echo "$MKLROOT" | sed -e "s/[\t\n ]*//g" | wc -c) + if [ $nmkl -gt 1 ] ; then + echo "I found an mkl path" + else + echo "I did not find the mkl path you will have to setup the \n\ +-linkage yourself (README) or restart and answer no." +- echo "Press enter to continue:" ;read YN +- mkl=1 ++linkage yourself (README)." + fi + else + use_own_lapack=1 +@@ -346,27 +344,7 @@ + echo "" + ################################################################################ + echo " C-Compiler C++-Compiler F90-Compiler system specification" +-echo "probing $CC $CXX $F90 $hostname" +-if [ -f "$configdir/$CC-$F90-$hostname" ] +-then +- conffile="$configdir/$CC-$F90-$hostname" +-else +- echo "probing $CC $CXX $F90 $hostname" +- if [ -f "$configdir/$CC-$F90-$sname-$os_rel" ] +- then +- conffile="$configdir/$CC-$F90-$sname-$os_rel" +- else +- echo "probing $CC $CXX $F90 $hostname" +- if [ -f "$configdir/$CC-$F90-$sname" ] +- then +- conffile="$configdir/$CC-$F90-$sname" +- else +- echo "No configuration file for your settings are available!" +- exit +- fi +- fi +-fi +- ++conffile=$configdir/ + + + # make installdir diff --git a/var/spack/repos/builtin/packages/fplo/fedit_py.patch b/var/spack/repos/builtin/packages/fplo/fedit_py.patch new file mode 100644 index 00000000000..a667b82a423 --- /dev/null +++ b/var/spack/repos/builtin/packages/fplo/fedit_py.patch @@ -0,0 +1,12 @@ +--- a/FPLO22.00-62/PYTHON/fedit.py 2022-09-03 13:05:21.631163009 -0500 ++++ b/FPLO22.00-62/PYTHON/fedit.py 2022-09-03 13:06:37.636210691 -0500 +@@ -20,8 +20,8 @@ + Checkout the examples delivered with **fplo**. + ''' + import sys,os +-import pyfplo.fploio as fploio + import pyfplo.common ++import pyfplo.fploio as fploio + version=pyfplo.common.Version() + Version=pyfplo.common.Version + diff --git a/var/spack/repos/builtin/packages/fplo/lapackconfig.patch b/var/spack/repos/builtin/packages/fplo/lapackconfig.patch new file mode 100644 index 00000000000..2108d5a562f --- /dev/null +++ b/var/spack/repos/builtin/packages/fplo/lapackconfig.patch @@ -0,0 +1,11 @@ +--- a/FPLO22.00-62/PYTHON/setuphelper.py 2022-08-28 19:19:42.693913426 -0500 ++++ b/FPLO22.00-62/PYTHON/setuphelper.py 2022-08-28 19:20:54.902954741 -0500 +@@ -233,7 +233,7 @@ + self.ccompiler\ + =CompilerConfig.find(ccompilerconfigs,'gcc') + +- self.lapackconfig=LapackConfig.find(lapackconfigs,'our own copy') ++ self.lapackconfig=LapackConfig.find(lapackconfigs,'mkl 64bit integer 32bit') + + if "--lapackgeneric" in sys.argv: + sys.argv.remove("--lapackgeneric") diff --git a/var/spack/repos/builtin/packages/fplo/ncurses.patch b/var/spack/repos/builtin/packages/fplo/ncurses.patch new file mode 100644 index 00000000000..7887ebc7db6 --- /dev/null +++ b/var/spack/repos/builtin/packages/fplo/ncurses.patch @@ -0,0 +1,96 @@ +diff -ur a/FPLO22.00-62/install/conf/gcc-gfortran-Linux-i386 b/FPLO22.00-62/install/conf/gcc-gfortran-Linux-i386 +--- a/FPLO22.00-62/install/conf/gcc-gfortran-Linux-i386 2022-07-03 08:48:02.000000000 -0500 ++++ b/FPLO22.00-62/install/conf/gcc-gfortran-Linux-i386 2022-08-28 14:02:03.303297840 -0500 +@@ -41,7 +41,7 @@ + #TODO: set here the curses system library + # on Linux systems it must be -lncurses + # +-LIBS_CURSES=" -lncurses" ++LIBS_CURSES=" -lncurses -ltinfo" + + + +diff -ur a/FPLO22.00-62/install/conf/gcc-gfortran-Linux-x86_64 b/FPLO22.00-62/install/conf/gcc-gfortran-Linux-x86_64 +--- a/FPLO22.00-62/install/conf/gcc-gfortran-Linux-x86_64 2022-07-03 08:48:24.000000000 -0500 ++++ b/FPLO22.00-62/install/conf/gcc-gfortran-Linux-x86_64 2022-08-28 14:02:14.381306024 -0500 +@@ -42,7 +42,7 @@ + #TODO: set here the curses system library + # on Linux systems it must be -lncurses + # +-LIBS_CURSES=" -lncurses" ++LIBS_CURSES=" -lncurses -ltinfo" + + + +diff -ur a/FPLO22.00-62/install/conf/gcc-ifort-Darwin-i386 b/FPLO22.00-62/install/conf/gcc-ifort-Darwin-i386 +--- a/FPLO22.00-62/install/conf/gcc-ifort-Darwin-i386 2021-01-19 04:09:45.000000000 -0600 ++++ b/FPLO22.00-62/install/conf/gcc-ifort-Darwin-i386 2022-08-28 14:02:25.597314302 -0500 +@@ -47,7 +47,7 @@ + #TODO: set here the curses system library + # on Linux systems it must be -lncurses + # +-LIBS_CURSES=" -lncurses" ++LIBS_CURSES=" -lncurses -ltinfo" + + + +diff -ur a/FPLO22.00-62/install/conf/gcc-ifort-Linux-i386 b/FPLO22.00-62/install/conf/gcc-ifort-Linux-i386 +--- a/FPLO22.00-62/install/conf/gcc-ifort-Linux-i386 2021-01-19 04:09:50.000000000 -0600 ++++ b/FPLO22.00-62/install/conf/gcc-ifort-Linux-i386 2022-08-28 14:02:37.508323085 -0500 +@@ -47,7 +47,7 @@ + #TODO: set here the curses system library + # on Linux systems it must be -lncurses + # +-LIBS_CURSES=" -lncurses" ++LIBS_CURSES=" -lncurses -ltinfo" + + + +diff -ur a/FPLO22.00-62/install/conf/gcc-ifort-Linux-ia64 b/FPLO22.00-62/install/conf/gcc-ifort-Linux-ia64 +--- a/FPLO22.00-62/install/conf/gcc-ifort-Linux-ia64 2021-01-19 04:09:55.000000000 -0600 ++++ b/FPLO22.00-62/install/conf/gcc-ifort-Linux-ia64 2022-08-28 14:02:53.211334647 -0500 +@@ -32,7 +32,7 @@ + #TODO: set here the curses system library + # on Linux systems it must be -lncurses + # +-LIBS_CURSES=" -lncurses" ++LIBS_CURSES=" -lncurses -ltinfo" + + + +diff -ur a/FPLO22.00-62/install/conf/gcc-ifort-Linux-x86_64 b/FPLO22.00-62/install/conf/gcc-ifort-Linux-x86_64 +--- a/FPLO22.00-62/install/conf/gcc-ifort-Linux-x86_64 2022-05-15 01:53:01.000000000 -0500 ++++ b/FPLO22.00-62/install/conf/gcc-ifort-Linux-x86_64 2022-08-28 14:03:11.580348155 -0500 +@@ -49,7 +49,7 @@ + #TODO: set here the curses system library + # on Linux systems it must be -lncurses + # +-LIBS_CURSES=" -lncurses" ++LIBS_CURSES=" -lncurses -ltinfo" + + + +diff -ur a/FPLO22.00-62/install/conf/icc-ifort-Darwin-i386 b/FPLO22.00-62/install/conf/icc-ifort-Darwin-i386 +--- a/FPLO22.00-62/install/conf/icc-ifort-Darwin-i386 2021-01-19 04:10:07.000000000 -0600 ++++ b/FPLO22.00-62/install/conf/icc-ifort-Darwin-i386 2022-08-28 14:03:21.741355617 -0500 +@@ -47,7 +47,7 @@ + #TODO: set here the curses system library + # on Linux systems it must be -lncurses + # +-LIBS_CURSES=" -lncurses" ++LIBS_CURSES=" -lncurses -ltinfo" + + + +diff -ur a/FPLO22.00-62/install/conf/icc-ifort-Darwin-x86_64 b/FPLO22.00-62/install/conf/icc-ifort-Darwin-x86_64 +--- a/FPLO22.00-62/install/conf/icc-ifort-Darwin-x86_64 2021-01-19 04:10:11.000000000 -0600 ++++ b/FPLO22.00-62/install/conf/icc-ifort-Darwin-x86_64 2022-08-28 14:03:31.829363021 -0500 +@@ -49,7 +49,7 @@ + #TODO: set here the curses system library + # on Linux systems it must be -lncurses + # +-LIBS_CURSES=" -lncurses" ++LIBS_CURSES=" -lncurses -ltinfo" + + + diff --git a/var/spack/repos/builtin/packages/fplo/package.py b/var/spack/repos/builtin/packages/fplo/package.py new file mode 100644 index 00000000000..60db293e67f --- /dev/null +++ b/var/spack/repos/builtin/packages/fplo/package.py @@ -0,0 +1,159 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import glob +import os +import platform + +from spack.package import * + + +class Fplo(MakefilePackage): + """The FPLO(R) package is a full-potential local-orbital code to solve the + Kohn-Sham equations on a regular lattice or with free boundary conditions + (finite systems). Relativistic effects are treated either in a + scalar-relativistic or a full 4-component formalism. Available + functionals are LSDA, GGA (PBE 96) and LSDA/GGA+U. Orbital polarization + correction can be applied.""" + + homepage = "https://www.fplo.de/" + url = "file://{0}/FPLO22.00-62.tar.gz".format(os.getcwd()) + manual_download = True + + maintainers = ["glennpj"] + + version("22.00-62", sha256="0d1d4e9c1e8e41900901e26c3cd08ee39dcfdeb3f2c4c8862055eaf704b6d69e") + + # TODO: Try to get LAPACK to work with something other than MKL. The build + # fails even with the fallback/builtin lapack. + + # This patch replaces the default builtin lapack with MKL, as MKL is the + # only functioning LAPACK implementation. + patch("lapackconfig.patch") + + # This patch does 3 things: (1) Change the order of the src directories so + # the object dependencies are correct; (2) removes interactivity; and (3) + # explicitly sets the configuration. + patch("MMakefile.patch") + + # Add '-ltinfo' for linking. + patch("ncurses.patch") + + # Set the names for QT and PYTHON. + patch("qt-make.patch") + + # Sets the correct python module import order. + patch("fedit_py.patch") + + depends_on("mkl") + depends_on("ncurses") + depends_on("perl", type="run") + depends_on("qt@5+opengl") + + extends("python") + depends_on("py-numpy") + + conflicts("%gcc@12:") + + @property + def build_directory(self): + return join_path(self.stage.source_path, "FPLO{0}".format(self.version)) + + def edit(self, spec, prefix): + # Need to set this to 'gcc' even if using the intel compiler as all of + # the configuration files are named with 'gcc'. + if platform.system() == "Linux": + fplo_cc = "gcc" + else: + fplo_cc = os.path.basename(self.compiler.cc) + + fplo_fc = os.path.basename(self.compiler.fc) + + conffile = "{0}-{1}-{2}-{3}".format( + fplo_cc, fplo_fc, platform.system(), platform.machine() + ) + mmakefile = FileFilter(join_path(self.build_directory, "install", "MMakefile")) + mmakefile.filter(r"(^conffile=\$configdir/)$", r"\1{0}".format(conffile)) + mmakefile.filter(r"(^mkl=).*", r"\11") + + # use spack compiler + files = glob.glob(join_path(self.build_directory, "install", "conf", "*")) + filter_file(r"^\s*CC\s*=.*", "CC=" + spack_cc, *files) + filter_file(r"^\s*CXX\s*=.*", "CXX=" + spack_cxx, *files) + filter_file(r"^\s*F90\s*=.*", "F90=" + spack_fc, *files) + + # patch for 64 bit integers + if "^mkl+ilp64" in spec: + setuphelper = FileFilter(join_path(self.build_directory, "PYTHON", "setuphelper.py")) + setuphelper.filter("mkl 64bit integer 32bit", "mkl 64bit integer 64bit") + + # setup python build + python_makefile = FileFilter(join_path(self.build_directory, "PYTHON", "Makefile")) + python_makefile.filter(r"(build_ext\s* --inplace)\s*--interactive(\s*.*)", r"\1\2") + + def build(self, spec, prefix): + mmakefile = Executable(join_path(self.build_directory, "install", "MMakefile")) + mmakefile_args = [ + "-f90", + spack_fc, + "-cc", + spack_cc, + "-c+", + spack_cxx, + ] + + with working_dir(self.build_directory): + # copy contents of bin + copy_tree("bin", join_path(self.stage.source_path, "bin")) + + # configure the build + with working_dir("install"): + mmakefile(*mmakefile_args) + + # build main + make() + make("install") + + # build XFBP + with working_dir(join_path("XFBP_rel", "XFBP")): + make() + make("install") + + # build XFPLO + with working_dir(join_path("XFPLO_rel", "XFPLO")): + make() + make("install") + + # build python + with working_dir("PYTHON"): + if "^python@:2" in self.spec: + make() + else: + make("python3") + + def install(self, spec, prefix): + with working_dir(self.stage.source_path): + install_tree("bin", prefix.bin) + + with working_dir(self.build_directory): + install_tree("DOC", join_path(prefix.share, "DOC")) + with working_dir("PYTHON"): + install_tree("pyfplo", join_path(python_platlib, "pyfplo")) + + @run_after("install") + def perl_interpreter(self): + with working_dir(self.prefix.bin): + pattern = "^#!.*/usr/bin/perl" + repl = "#!{0}".format(self.spec["perl"].command.path) + files = [ + "fconv2", + "fconvdens2", + "fdowngrad.pl", + "fout2in", + "grBhfat", + "grpop", + ] + for file in files: + filter_file(pattern, repl, *files, backup=False) diff --git a/var/spack/repos/builtin/packages/fplo/qt-make.patch b/var/spack/repos/builtin/packages/fplo/qt-make.patch new file mode 100644 index 00000000000..3099353a914 --- /dev/null +++ b/var/spack/repos/builtin/packages/fplo/qt-make.patch @@ -0,0 +1,34 @@ +diff -ru a/FPLO22.00-62/XFBP_rel/XFBP/makefile b/FPLO22.00-62/XFBP_rel/XFBP/makefile +--- a/FPLO22.00-62/XFBP_rel/XFBP/makefile 2022-08-29 18:10:09.672721299 -0500 ++++ b/FPLO22.00-62/XFBP_rel/XFBP/makefile 2022-08-29 18:10:39.779667413 -0500 +@@ -1,7 +1,7 @@ + MAKE=make + QMAKE4=qmake + QMAKE4=qmake-qt4 +-QMAKE5=qmake -qt=5 ++QMAKE5=qmake + QTVERSION=5 + #QMAKE=/usr/local/qt4.5/bin/qmake + #QMAKE=/opt/trolltech/QT-4.6.2/bin/qmake +@@ -15,8 +15,8 @@ + # The config program could be named python-config + # or python2.7-config or python3-config or similar. + # You might need to install python-dev or python3-dev or somthing like this. +-PYTHON=python3 +-PYCONFIG=python3-config ++PYTHON=python ++PYCONFIG=python-config + + PROJECT1=XFBP + PROJECT1PYTHON=XFBPWITHPYTHON +diff -ru a/FPLO22.00-62/XFPLO_rel/XFPLO/makefile b/FPLO22.00-62/XFPLO_rel/XFPLO/makefile +--- a/FPLO22.00-62/XFPLO_rel/XFPLO/makefile 2022-08-29 18:10:09.654721332 -0500 ++++ b/FPLO22.00-62/XFPLO_rel/XFPLO/makefile 2022-08-29 18:10:58.263635879 -0500 +@@ -1,6 +1,6 @@ + MAKE=make + QMAKE4=qmake-qt4 +-QMAKE5=qmake -qt=5 ++QMAKE5=qmake + #QMAKE4=/usr/local/qt4.5/bin/qmake + #QMAKE4=/opt/trolltech/QT-4.6.2/bin/qmake + PROJECT1=XFPLO From 6f15d8ac766c4ec485e7b7b3ad1bfdce0351459e Mon Sep 17 00:00:00 2001 From: Robert Underwood Date: Thu, 15 Sep 2022 10:45:39 -0400 Subject: [PATCH 112/241] added missing dependency for py-msgpack that breaks neovim (#32631) * added missing dependency for py-msgpack that breaks neovim * Update var/spack/repos/builtin/packages/py-pynvim/package.py Co-authored-by: Adam J. Stewart Co-authored-by: Robert Underwood Co-authored-by: Adam J. Stewart --- var/spack/repos/builtin/packages/py-pynvim/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-pynvim/package.py b/var/spack/repos/builtin/packages/py-pynvim/package.py index 78a369dffb1..172fef6c386 100644 --- a/var/spack/repos/builtin/packages/py-pynvim/package.py +++ b/var/spack/repos/builtin/packages/py-pynvim/package.py @@ -17,5 +17,6 @@ class PyPynvim(PythonPackage): version("0.4.3", sha256="3a795378bde5e8092fbeb3a1a99be9c613d2685542f1db0e5c6fd467eed56dff") depends_on("py-setuptools", type="build") + depends_on("py-greenlet", type=("build", "run")) - depends_on("py-msgpack", type=("build", "run")) + depends_on("py-msgpack@0.5:", type=("build", "run")) From 66b451a70d8d89e00baad7614821cb7cc21b3e3c Mon Sep 17 00:00:00 2001 From: Matthew Archer <36638242+ma595@users.noreply.github.com> Date: Thu, 15 Sep 2022 16:11:25 +0100 Subject: [PATCH 113/241] Fenicsx v0.5.0 (#32611) * initial commit of 0.5.0 changes * updated dependencies * updated ffcx sha * comment style * llvm compilers * introduce pugixml dependency for 0.5.0: * update compilers to support C++20 features * style fixes * xtensor and xtl not needed for basix 0.5.0 and above * Skip to Basix 0.5.1 The 0.5.1 release removes the C++ build dependency on Python that sneaked into the 0.5.0 build system. * Improve depends on version ranges * More dependency version improvements Co-authored-by: Chris Richardson Co-authored-by: Garth N. Wells --- .../builtin/packages/fenics-basix/package.py | 17 ++++++++++++++--- .../builtin/packages/fenics-dolfinx/package.py | 17 +++++++++++++++-- .../builtin/packages/fenics-ufcx/package.py | 1 + .../builtin/packages/py-fenics-basix/package.py | 7 +++++-- .../packages/py-fenics-dolfinx/package.py | 6 ++++++ .../builtin/packages/py-fenics-ffcx/package.py | 3 +++ .../builtin/packages/py-fenics-ufl/package.py | 1 + 7 files changed, 45 insertions(+), 7 deletions(-) diff --git a/var/spack/repos/builtin/packages/fenics-basix/package.py b/var/spack/repos/builtin/packages/fenics-basix/package.py index a322fb47a68..f47dcb361e2 100644 --- a/var/spack/repos/builtin/packages/fenics-basix/package.py +++ b/var/spack/repos/builtin/packages/fenics-basix/package.py @@ -15,18 +15,29 @@ class FenicsBasix(CMakePackage): maintainers = ["mscroggs", "chrisrichardson", "garth-wells"] version("main", branch="main") + version("0.5.1", sha256="69133476ac35f0bd0deccb480676030378c341d7dfb2adaca22cd16b7e1dc1cb") version("0.4.2", sha256="a54f5e442b7cbf3dbb6319c682f9161272557bd7f42e2b8b8ccef88bc1b7a22f") version("0.3.0", sha256="9b148fd2a5485c94011fc6ca977ebdef0e51782a62b3654fc044f35b60e2bd07") version("0.2.0", sha256="e1ec537737adb283717060221635092474e3f2b5b5ba79dfac74aa496bec2fcb") version("0.1.0", sha256="2ab41fe6ad4f6c42f01b17a6e7c39debb4e0ae61c334d1caebee78b741bca4e7") + conflicts( + "%gcc@:9.10", when="@0.5.0:", msg="fenics-basix requires GCC-10 or newer for C++20 support" + ) + conflicts( + "%clang@:9.10", + when="@0.5.0:", + msg="fenics-basix requires Clang-10 or newer for C++20 support", + ) + depends_on("cmake@3.18:", type="build") - depends_on("xtl@0.7.2:") - depends_on("xtensor@0.23.10:") - depends_on("xtensor-blas@0.19.1:") depends_on("blas") depends_on("lapack") + depends_on("xtl@0.7.2:", when="@:0.4.2") + depends_on("xtensor@0.23.10:", when="@:0.4.2") + depends_on("xtensor-blas@0.19.1:", when="@:0.3.0") + @property def root_cmakelists_dir(self): if self.spec.satisfies("@0.4.0:"): diff --git a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py index 51a95d9947b..9ed3f6fb74b 100644 --- a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py +++ b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py @@ -15,11 +15,23 @@ class FenicsDolfinx(CMakePackage): maintainers = ["chrisrichardson", "garth-wells", "nate-sime"] version("main", branch="main") + version("0.5.0", sha256="503c70c01a44d1ffe48e052ca987693a49f8d201877652cabbe2a44eb3b7c040") version("0.4.1", sha256="68dcf29a26c750fcea5e02d8d58411e3b054313c3bf6fcbc1d0f08dd2851117f") version("0.3.0", sha256="4857d0fcb44a4e9bf9eb298ba5377abdee17a7ad0327448bdd06cce73d109bed") version("0.2.0", sha256="4c9b5a5c7ef33882c99299c9b4d98469fb7aa470a37a91bc5be3bb2fc5b863a4") version("0.1.0", sha256="0269379769b5b6d4d1864ded64402ecaea08054c2a5793c8685ea15a59af5e33") + conflicts( + "%gcc@:9.10", + when="@0.5.0:", + msg="fenics-dolfinx requires GCC-10 or newer for C++20 support", + ) + conflicts( + "%clang@:9.10", + when="@0.5.0:", + msg="fenics-dolfinx requires Clang-10 or newer for C++20 support", + ) + # Graph partitioner variants variant( "partitioners", @@ -60,16 +72,17 @@ class FenicsDolfinx(CMakePackage): depends_on("slepc", when="+slepc") depends_on("adios2+mpi", when="+adios2") - depends_on("pugixml", when="@main") + depends_on("pugixml", when="@0.5.0:") depends_on("fenics-ufcx@main", when="@main") + depends_on("fenics-ufcx@0.5.0", when="@0.5.0") depends_on("fenics-ufcx@0.4.2", when="@0.4.1") depends_on("py-fenics-ffcx@0.3.0", type=("build", "run"), when="@0.3.0") depends_on("py-fenics-ffcx@0.2.0", type=("build", "run"), when="@0.2.0") depends_on("py-fenics-ffcx@0.1.0", type=("build", "run"), when="@0.1.0") - depends_on("fenics-basix") depends_on("fenics-basix@main", when="@main") + depends_on("fenics-basix@0.5.1:0.5", when="@0.5.1:0.5") depends_on("fenics-basix@0.4.2", when="@0.4.1") depends_on("fenics-basix@0.3.0", when="@0.3.0") depends_on("fenics-basix@0.2.0", when="@0.2.0") diff --git a/var/spack/repos/builtin/packages/fenics-ufcx/package.py b/var/spack/repos/builtin/packages/fenics-ufcx/package.py index 405cb5f62c1..d376ea81155 100644 --- a/var/spack/repos/builtin/packages/fenics-ufcx/package.py +++ b/var/spack/repos/builtin/packages/fenics-ufcx/package.py @@ -18,6 +18,7 @@ class FenicsUfcx(CMakePackage): maintainers = ["ma595"] version("main", branch="main") + version("0.5.0", sha256="3413409e5885e41e220f99e0f95cc817e94c4931143d1f700c6e0c5e1bfad1f6") version("0.4.2", sha256="3be6eef064d6ef907245db5b6cc15d4e603762e68b76e53e099935ca91ef1ee4") root_cmakelists_dir = "cmake" diff --git a/var/spack/repos/builtin/packages/py-fenics-basix/package.py b/var/spack/repos/builtin/packages/py-fenics-basix/package.py index 6a9e879dfc7..4699a779c5e 100644 --- a/var/spack/repos/builtin/packages/py-fenics-basix/package.py +++ b/var/spack/repos/builtin/packages/py-fenics-basix/package.py @@ -16,12 +16,14 @@ class PyFenicsBasix(PythonPackage): maintainers = ["chrisrichardson", "mscroggs", "garth-wells"] version("main", branch="main") + version("0.5.1", sha256="69133476ac35f0bd0deccb480676030378c341d7dfb2adaca22cd16b7e1dc1cb") version("0.4.2", sha256="a54f5e442b7cbf3dbb6319c682f9161272557bd7f42e2b8b8ccef88bc1b7a22f") version("0.3.0", sha256="9b148fd2a5485c94011fc6ca977ebdef0e51782a62b3654fc044f35b60e2bd07") version("0.2.0", sha256="e1ec537737adb283717060221635092474e3f2b5b5ba79dfac74aa496bec2fcb") version("0.1.0", sha256="2ab41fe6ad4f6c42f01b17a6e7c39debb4e0ae61c334d1caebee78b741bca4e7") depends_on("fenics-basix@main", type=("build", "run"), when="@main") + depends_on("fenics-basix@0.5.1", type=("build", "run"), when="@0.5.1") depends_on("fenics-basix@0.4.2", type=("build", "run"), when="@0.4.2") depends_on("fenics-basix@0.3.0", type=("build", "run"), when="@0.3.0") depends_on("fenics-basix@0.2.0", type=("build", "run"), when="@0.2.0") @@ -30,8 +32,9 @@ class PyFenicsBasix(PythonPackage): depends_on("python@3.7:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("cmake@3.18:", type="build") - depends_on("xtl@0.7.2:", type="build") - depends_on("xtensor@0.23.10:", type="build") depends_on("py-pybind11@2.6.2:", type="build") + depends_on("xtl@0.7.2:", type="build", when="@:0.4.2") + depends_on("xtensor@0.23.10:", type="build", when="@:0.4.2") + build_directory = "python" diff --git a/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py b/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py index dcf8102f764..3ac1b1d4a5d 100644 --- a/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py +++ b/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py @@ -16,6 +16,7 @@ class PyFenicsDolfinx(PythonPackage): maintainers = ["chrisrichardson", "garth-wells", "nate-sime"] version("main", branch="main") + version("0.5.0", sha256="503c70c01a44d1ffe48e052ca987693a49f8d201877652cabbe2a44eb3b7c040") version("0.4.1", sha256="68dcf29a26c750fcea5e02d8d58411e3b054313c3bf6fcbc1d0f08dd2851117f") version("0.3.0", sha256="4857d0fcb44a4e9bf9eb298ba5377abdee17a7ad0327448bdd06cce73d109bed") version("0.2.0", sha256="4c9b5a5c7ef33882c99299c9b4d98469fb7aa470a37a91bc5be3bb2fc5b863a4") @@ -28,22 +29,27 @@ class PyFenicsDolfinx(PythonPackage): depends_on("py-setuptools", type="build") depends_on("fenics-dolfinx@main", when="@main") + depends_on("fenics-dolfinx@0.5.0", when="@0.5.0") depends_on("fenics-dolfinx@0.4.1", when="@0.4.1") depends_on("fenics-dolfinx@0.3.0", when="@0.3.0") depends_on("fenics-dolfinx@0.2.0", when="@0.2.0") depends_on("fenics-dolfinx@0.1.0", when="@0.1.0") depends_on("fenics-basix@main", type=("build", "link"), when="@main") + depends_on("fenics-basix@0.5.1:0.5", type=("build", "link"), when="@0.5.0:0.5") depends_on("fenics-basix@0.4.2", type=("build", "link"), when="@0.4.1") depends_on("fenics-basix@0.3.0", type=("build", "link"), when="@0.3.0") depends_on("fenics-basix@0.2.0", type=("build", "link"), when="@0.2.0") depends_on("fenics-basix@0.1.0", type=("build", "link"), when="@0.1.0") + depends_on("py-fenics-ffcx@main", type="run", when="@main") + depends_on("py-fenics-ffcx@0.5.0", type="run", when="@0.5.0") depends_on("py-fenics-ffcx@0.4.2", type="run", when="@0.4.1") depends_on("py-fenics-ffcx@0.3.0", type="run", when="@0.3.0") depends_on("py-fenics-ffcx@0.2.0", type="run", when="@0.2.0") depends_on("py-fenics-ffcx@0.1.0", type="run", when="@0.1.0") depends_on("py-fenics-ufl@main", type="run", when="@main") + depends_on("py-fenics-ufl@2022.2.0", type="run", when="@0.5.0") depends_on("py-fenics-ufl@2022.1.0", type="run", when="@0.4.1") depends_on("py-fenics-ufl@2021.1.0", type="run", when="@0.1:0.3.99") diff --git a/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py b/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py index 8b9f4cd622f..7c0db9b5e28 100644 --- a/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py +++ b/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py @@ -15,6 +15,7 @@ class PyFenicsFfcx(PythonPackage): maintainers = ["chrisrichardson", "garth-wells"] version("main", branch="main") + version("0.5.0", sha256="3413409e5885e41e220f99e0f95cc817e94c4931143d1f700c6e0c5e1bfad1f6") version("0.4.2", sha256="3be6eef064d6ef907245db5b6cc15d4e603762e68b76e53e099935ca91ef1ee4") version("0.3.0", sha256="33fa1a0cc5762f360033c25a99ec9462be933f8ba413279e35cd2c3b5c3e6096") version("0.2.0", sha256="562a704163a6427e0341d267e69b8bf55d8f53d673829170b443191577e8d9b6") @@ -28,10 +29,12 @@ class PyFenicsFfcx(PythonPackage): depends_on("py-cffi", type="run") depends_on("py-fenics-ufl@main", type="run", when="@main") + depends_on("py-fenics-ufl@2022.2.0", type="run", when="@0.5.0") depends_on("py-fenics-ufl@2022.1.0", type="run", when="@0.4.2") depends_on("py-fenics-ufl@2021.1.0", type="run", when="@0.1.0:0.3") depends_on("py-fenics-basix@main", type="run", when="@main") + depends_on("py-fenics-basix@0.5.1:0.5", type="run", when="@0.5.0:0.5") depends_on("py-fenics-basix@0.4.2", type="run", when="@0.4.2") depends_on("py-fenics-basix@0.3.0", type="run", when="@0.3.0") depends_on("py-fenics-basix@0.2.0", type="run", when="@0.2.0") diff --git a/var/spack/repos/builtin/packages/py-fenics-ufl/package.py b/var/spack/repos/builtin/packages/py-fenics-ufl/package.py index 14b8779880f..799ac0405b1 100644 --- a/var/spack/repos/builtin/packages/py-fenics-ufl/package.py +++ b/var/spack/repos/builtin/packages/py-fenics-ufl/package.py @@ -19,6 +19,7 @@ class PyFenicsUfl(PythonPackage): maintainers = ["chrisrichardson", "garth-wells"] version("main", branch="main") + version("2022.2.0", sha256="d6e18e06df5d7a626c3138d49a543914d68186afb6159c4d1a7cd72b2a199b02") version("2022.1.0", sha256="48359903d47fb397900d105fe4a60b459c50bbf9d9da78beb9accb54e4e4acaf") version("2021.1.0", sha256="130fdc09bb7fcd39dcd2618426912b8a25a03431d94575711068b38c666b4337") version("2019.1.0", sha256="46ac0df4e96327be10b9576d2b8fa8b2c4ca62d3c681d407f5718b162d3ca22d") From 31c24cd0d543f3bc06311fe148751fe88a11ecbb Mon Sep 17 00:00:00 2001 From: iarspider Date: Thu, 15 Sep 2022 19:13:37 +0200 Subject: [PATCH 114/241] New package: xrdcl-record (#32663) * New package: xrdcl-record * Flake-8 --- .../builtin/packages/xrdcl-record/package.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 var/spack/repos/builtin/packages/xrdcl-record/package.py diff --git a/var/spack/repos/builtin/packages/xrdcl-record/package.py b/var/spack/repos/builtin/packages/xrdcl-record/package.py new file mode 100644 index 00000000000..90261b66407 --- /dev/null +++ b/var/spack/repos/builtin/packages/xrdcl-record/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class XrdclRecord(CMakePackage): + """XrdClRecorder Plugin. This XRootD Client Plugin can be used to record + all user's actions on XrdCl::File object and store them into a csv file.""" + + homepage = "https://github.com/xrootd/xrdcl-record" + url = "https://github.com/xrootd/xrdcl-record/archive/refs/tags/v5.4.2.tar.gz" + + maintainers = ["iarspider"] + + version("5.4.2", sha256="fb76284491ff4e723bce4c9e9d87347e98e278e70c597167bc39a162bc876734") + + depends_on("xrootd") From 46d7ba9f789b1129e6879e1e58d1a09fe8f4ad10 Mon Sep 17 00:00:00 2001 From: liuyangzhuan Date: Thu, 15 Sep 2022 17:14:01 -0700 Subject: [PATCH 115/241] adding butterflypack 2.2.0 (#32670) --- var/spack/repos/builtin/packages/butterflypack/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/butterflypack/package.py b/var/spack/repos/builtin/packages/butterflypack/package.py index 624be61b2f8..8f7c39da6e5 100644 --- a/var/spack/repos/builtin/packages/butterflypack/package.py +++ b/var/spack/repos/builtin/packages/butterflypack/package.py @@ -22,10 +22,11 @@ class Butterflypack(CMakePackage): homepage = "https://github.com/liuyangzhuan/ButterflyPACK" git = "https://github.com/liuyangzhuan/ButterflyPACK.git" - url = "https://github.com/liuyangzhuan/ButterflyPACK/archive/v2.1.1.tar.gz" + url = "https://github.com/liuyangzhuan/ButterflyPACK/archive/v2.2.0.tar.gz" maintainers = ["liuyangzhuan"] version("master", branch="master") + version("2.2.0", sha256="1ce5b8461b3c4f488cee6396419e8a6f0a1bcf95254f24d7c27bfa53b391c30b") version("2.1.1", sha256="0d4a1ce540c84de37e4398f72ecf685ea0c4eabceba13015add5b445a4ca3a15") version("2.1.0", sha256="ac76cc8d431797c1a3641b23124e3de5eb8c3a3afb71c336e7ba69c6cdf150ef") version("2.0.0", sha256="84f0e5ac40997409f3c80324238a07f9c700a1263b84140ed97275d67b577b80") From a0c7209dc1480b16531fcb992642986f4796bc28 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Thu, 15 Sep 2022 17:57:10 -0700 Subject: [PATCH 116/241] bugfix: package hash should affect process, dag, and dunder hashes (#32516) This fixes a bug where two installations that differ only by package hash will not show up in `spack find`. The bug arose because `_cmp_node` on `Spec` didn't include the package hash in its yielded fields. So, any two `Spec` objects that were only different by package hash would appear to be equal and would overwrite each other when inserted into the same `dict`. Note that we could still *install* specs with different package hashes, and they would appear in the database, but we code that needed to put them into data structures that use `__hash__` would have issues. This PR makes `Spec.__hash__` and `Spec.__eq__` include the `process_hash()`, and it makes `Spec._cmp_node` include the package hash. All of these *should* include all information in a spec so that we don't end up in a situation where we are blind to particular field differences. Eventually, we should unify the `_cmp_*` methods with `to_node_dict` so there aren't two sources of truth, but this needs some thought, since the `_cmp_*` methods exist for speed. We should benchmark whether it's really worth having two types of hashing now that we use `json` instead of `yaml` for spec hashing. - [x] Add `package_hash` to `Spec._cmp_node` - [x] Add `package_hash` to `spack.solve.asp.spec_clauses` so that the `package_hash` will show up in `spack diff`. - [x] Add `package_hash` to the `process_hash` (which doesn't affect abstract specs but will make concrete specs correct) - [x] Make `_cmp_iter` report the dag_hash so that no two specs with different process hashes will be considered equal. --- lib/spack/spack/hash_types.py | 2 +- lib/spack/spack/solver/asp.py | 3 +++ lib/spack/spack/spec.py | 13 +++++++++++++ lib/spack/spack/test/cmd/diff.py | 1 + lib/spack/spack/test/spec_semantics.py | 22 ++++++++++++++++++++++ 5 files changed, 40 insertions(+), 1 deletion(-) diff --git a/lib/spack/spack/hash_types.py b/lib/spack/spack/hash_types.py index d9035150356..5058bfbd7c9 100644 --- a/lib/spack/spack/hash_types.py +++ b/lib/spack/spack/hash_types.py @@ -44,7 +44,7 @@ def __call__(self, spec): #: Hash descriptor used only to transfer a DAG, as is, across processes process_hash = SpecHashDescriptor( - deptype=("build", "link", "run", "test"), package_hash=False, name="process_hash" + deptype=("build", "link", "run", "test"), package_hash=True, name="process_hash" ) diff --git a/lib/spack/spack/solver/asp.py b/lib/spack/spack/solver/asp.py index 8e2e8bfd951..51782cf670a 100644 --- a/lib/spack/spack/solver/asp.py +++ b/lib/spack/spack/solver/asp.py @@ -1445,6 +1445,9 @@ class Body(object): # dependencies if spec.concrete: + # older specs do not have package hashes, so we have to do this carefully + if getattr(spec, "_package_hash", None): + clauses.append(fn.package_hash(spec.name, spec._package_hash)) clauses.append(fn.hash(spec.name, spec.dag_hash())) # add all clauses from dependencies diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py index 09769e48608..1194104a535 100644 --- a/lib/spack/spack/spec.py +++ b/lib/spack/spack/spec.py @@ -4056,6 +4056,9 @@ def _cmp_node(self): yield self.compiler_flags yield self.architecture + # this is not present on older specs + yield getattr(self, "_package_hash", None) + def eq_node(self, other): """Equality with another spec, not including dependencies.""" return (other is not None) and lang.lazy_eq(self._cmp_node, other._cmp_node) @@ -4065,6 +4068,16 @@ def _cmp_iter(self): for item in self._cmp_node(): yield item + # This needs to be in _cmp_iter so that no specs with different process hashes + # are considered the same by `__hash__` or `__eq__`. + # + # TODO: We should eventually unify the `_cmp_*` methods with `to_node_dict` so + # TODO: there aren't two sources of truth, but this needs some thought, since + # TODO: they exist for speed. We should benchmark whether it's really worth + # TODO: having two types of hashing now that we use `json` instead of `yaml` for + # TODO: spec hashing. + yield self.process_hash() if self.concrete else None + def deps(): for dep in sorted(itertools.chain.from_iterable(self._dependencies.values())): yield dep.spec.name diff --git a/lib/spack/spack/test/cmd/diff.py b/lib/spack/spack/test/cmd/diff.py index 9189c45ede9..dacbbb3c8c8 100644 --- a/lib/spack/spack/test/cmd/diff.py +++ b/lib/spack/spack/test/cmd/diff.py @@ -86,6 +86,7 @@ def test_load_first(install_mockery, mock_fetch, mock_archive, mock_packages): "node_compiler", "node_compiler_version", "node", + "package_hash", "hash", ) ) diff --git a/lib/spack/spack/test/spec_semantics.py b/lib/spack/spack/test/spec_semantics.py index b543eae9a80..7100cfdb5fb 100644 --- a/lib/spack/spack/test/spec_semantics.py +++ b/lib/spack/spack/test/spec_semantics.py @@ -1257,3 +1257,25 @@ def test_concretize_partial_old_dag_hash_spec(mock_packages, config): def test_unsupported_compiler(): with pytest.raises(UnsupportedCompilerError): Spec("gcc%fake-compiler").validate_or_raise() + + +def test_package_hash_affects_dunder_and_dag_hash(mock_packages, config): + a1 = Spec("a").concretized() + a2 = Spec("a").concretized() + + assert hash(a1) == hash(a2) + assert a1.dag_hash() == a2.dag_hash() + assert a1.process_hash() == a2.process_hash() + + a1.clear_cached_hashes() + a2.clear_cached_hashes() + + # tweak the dag hash of one of these specs + new_hash = "00000000000000000000000000000000" + if new_hash == a1._package_hash: + new_hash = "11111111111111111111111111111111" + a1._package_hash = new_hash + + assert hash(a1) != hash(a2) + assert a1.dag_hash() != a2.dag_hash() + assert a1.process_hash() != a2.process_hash() From 0f26931628bf6485b07ffe4611eb1ef3cec2c8c7 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Fri, 16 Sep 2022 14:38:29 +0200 Subject: [PATCH 117/241] CI: add coverage on Windows (#32610) Co-authored-by: Tom Scogland --- .github/workflows/windows_python.yml | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/.github/workflows/windows_python.yml b/.github/workflows/windows_python.yml index 82e48370aca..4a1bfafae82 100644 --- a/.github/workflows/windows_python.yml +++ b/.github/workflows/windows_python.yml @@ -23,14 +23,22 @@ jobs: python-version: 3.9 - name: Install Python packages run: | - python -m pip install --upgrade pip six pywin32 setuptools codecov coverage + python -m pip install --upgrade pip six pywin32 setuptools codecov pytest-cov - name: Create local develop run: | .\spack\.github\workflows\setup_git.ps1 - name: Unit Test run: | echo F|xcopy .\spack\share\spack\qa\configuration\windows_config.yaml $env:USERPROFILE\.spack\windows\config.yaml - spack unit-test --verbose --ignore=lib/spack/spack/test/cmd + cd spack + dir + (Get-Item '.\lib\spack\docs\_spack_root').Delete() + spack unit-test --verbose --cov --cov-config=pyproject.toml --ignore=lib/spack/spack/test/cmd + coverage combine -a + coverage xml + - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 + with: + flags: unittests,windows unit-tests-cmd: runs-on: windows-latest steps: @@ -42,14 +50,21 @@ jobs: python-version: 3.9 - name: Install Python packages run: | - python -m pip install --upgrade pip six pywin32 setuptools codecov coverage + python -m pip install --upgrade pip six pywin32 setuptools codecov coverage pytest-cov - name: Create local develop run: | .\spack\.github\workflows\setup_git.ps1 - name: Command Unit Test run: | echo F|xcopy .\spack\share\spack\qa\configuration\windows_config.yaml $env:USERPROFILE\.spack\windows\config.yaml - spack unit-test lib/spack/spack/test/cmd --verbose + cd spack + (Get-Item '.\lib\spack\docs\_spack_root').Delete() + spack unit-test --verbose --cov --cov-config=pyproject.toml lib/spack/spack/test/cmd + coverage combine -a + coverage xml + - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 + with: + flags: unittests,windows build-abseil: runs-on: windows-latest steps: @@ -85,7 +100,7 @@ jobs: python-version: 3.9 - name: Install Python packages run: | - python -m pip install --upgrade pip six pywin32 setuptools codecov coverage + python -m pip install --upgrade pip six pywin32 setuptools - name: Add Light and Candle to Path run: | $env:WIX >> $GITHUB_PATH @@ -116,7 +131,7 @@ jobs: python-version: 3.9 - name: Install Python packages run: | - python -m pip install --upgrade pip six pywin32 setuptools codecov coverage + python -m pip install --upgrade pip six pywin32 setuptools - name: Setup installer directory run: | mkdir -p spack_installer From 9e0755ca3a125f6360ea84223630a05363536101 Mon Sep 17 00:00:00 2001 From: Robert Cohn Date: Fri, 16 Sep 2022 14:16:06 -0400 Subject: [PATCH 118/241] [intel-oneapi-compilers] fix CC/CXX (#32677) --- .../builtin/packages/intel-oneapi-compilers/package.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py b/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py index 1ddb47a8728..bcb410cf7d8 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py @@ -130,10 +130,10 @@ def setup_run_environment(self, env): """ super(IntelOneapiCompilers, self).setup_run_environment(env) - env.set("CC", self.component_prefix.bin.icx) - env.set("CXX", self.component_prefix.bin.icpx) - env.set("F77", self.component_prefix.bin.ifx) - env.set("FC", self.component_prefix.bin.ifx) + env.set("CC", self.component_prefix.linux.bin.icx) + env.set("CXX", self.component_prefix.linux.bin.icpx) + env.set("F77", self.component_prefix.linux.bin.ifx) + env.set("FC", self.component_prefix.linux.bin.ifx) def install(self, spec, prefix): # Copy instead of install to speed up debugging From 2c7c749986bd2fd32ab3dcff18917cde96c798b0 Mon Sep 17 00:00:00 2001 From: Paul Kuberry Date: Sat, 17 Sep 2022 13:57:40 -0600 Subject: [PATCH 119/241] xyce: Change preferred to last numeric version (#32679) - Also handles new constraints on Trilinos version --- var/spack/repos/builtin/packages/xyce/package.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/xyce/package.py b/var/spack/repos/builtin/packages/xyce/package.py index cb0a5434bce..dc1fe806af2 100644 --- a/var/spack/repos/builtin/packages/xyce/package.py +++ b/var/spack/repos/builtin/packages/xyce/package.py @@ -22,7 +22,7 @@ class Xyce(CMakePackage): url = "https://github.com/Xyce/Xyce/archive/Release-7.2.0.tar.gz" maintainers = ["kuberry"] - version("github.master", branch="master", preferred=True) + version("master", branch="master") version("7.5.0", "854d7d5e19e0ee2138d1f20f10f8f27f2bebb94ec81c157040955cff7250dacd") version("7.4.0", "2d6bc1b7377834b2e0bf50131e96728c5be83dbb3548e765bb48911067c87c91") version("7.3.0", "43869a70967f573ff6f00451db3f4642684834bdad1fd3926380e3789016b446") @@ -71,7 +71,8 @@ class Xyce(CMakePackage): "+epetraextexperimental+epetraextgraphreorderings" ) # tested versions of Trilinos for everything up to 7.4.0 - depends_on("trilinos@12.12.1:13.2.0", when="@:7.4.0") + depends_on("trilinos@12.12.1:13.4", when="@:7.5") + depends_on("trilinos@13.5.0:develop", when="@7.6.0:master") depends_on("trilinos gotype=all cxxstd=11", when="^trilinos@:12.15") # pymi requires Kokkos/KokkosKernels >= 3.3, Trilinos 13.2 onward depends_on("trilinos@13.2.0:", when="+pymi") From d4c13b0f8f4534657f6148be63327c04b7b161e1 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Sun, 18 Sep 2022 01:02:30 +0200 Subject: [PATCH 120/241] Add skip_import to PythonPackage and use it in py-nilearn (#32664) * Add skip_import to PythonPackage and use it in py-nilearn * Fix dependencies --- .../docs/build_systems/pythonpackage.rst | 13 ++++ lib/spack/spack/build_systems/python.py | 18 +++++- .../builtin/packages/py-nilearn/package.py | 63 +++++++++---------- 3 files changed, 58 insertions(+), 36 deletions(-) diff --git a/lib/spack/docs/build_systems/pythonpackage.rst b/lib/spack/docs/build_systems/pythonpackage.rst index 13b59cc96e9..53d0f091677 100644 --- a/lib/spack/docs/build_systems/pythonpackage.rst +++ b/lib/spack/docs/build_systems/pythonpackage.rst @@ -582,6 +582,19 @@ libraries. Make sure not to add modules/packages containing the word "test", as these likely won't end up in the installation directory, or may require test dependencies like pytest to be installed. +Instead of defining the ``import_modules`` explicity, only the subset +of module names to be skipped can be defined by using ``skip_modules``. +If a defined module has submodules, they are skipped as well, e.g., +in case the ``plotting`` modules should be excluded from the +automatically detected ``import_modules`` ``['nilearn', 'nilearn.surface', +'nilearn.plotting', 'nilearn.plotting.data']`` set: + +.. code-block:: python + + skip_modules = ['nilearn.plotting'] + +This will set ``import_modules`` to ``['nilearn', 'nilearn.surface']`` + Import tests can be run during the installation using ``spack install --test=root`` or at any time after the installation using ``spack test run``. diff --git a/lib/spack/spack/build_systems/python.py b/lib/spack/spack/build_systems/python.py index 5cd60d774e9..085feec5fee 100644 --- a/lib/spack/spack/build_systems/python.py +++ b/lib/spack/spack/build_systems/python.py @@ -138,12 +138,28 @@ def import_modules(self): path.replace(root + os.sep, "", 1).replace(".py", "").replace("/", ".") ) - modules = [mod for mod in modules if re.match("[a-zA-Z0-9._]+$", mod)] + modules = [ + mod + for mod in modules + if re.match("[a-zA-Z0-9._]+$", mod) and not any(map(mod.startswith, self.skip_modules)) + ] tty.debug("Detected the following modules: {0}".format(modules)) return modules + @property + def skip_modules(self): + """Names of modules that should be skipped when running tests. + + These are a subset of import_modules. If a module has submodules, + they are skipped as well (meaning a.b is skipped if a is contained). + + Returns: + list: list of strings of module names + """ + return [] + @property def build_directory(self): """The root directory of the Python package. diff --git a/var/spack/repos/builtin/packages/py-nilearn/package.py b/var/spack/repos/builtin/packages/py-nilearn/package.py index 5348586bff8..950b1ba33cb 100644 --- a/var/spack/repos/builtin/packages/py-nilearn/package.py +++ b/var/spack/repos/builtin/packages/py-nilearn/package.py @@ -11,7 +11,10 @@ class PyNilearn(PythonPackage): homepage = "https://nilearn.github.io/" pypi = "nilearn/nilearn-0.7.1.tar.gz" + git = "https://github.com/nilearn/nilearn" + version("0.9.2", sha256="8da8d3835d92cd7b8a6cc92455a489d7e7f5994cf64fc71bce653e362773b9e4") + version("0.9.0", sha256="f9c8e30adef51489910aec7724b5699de178427d3ae63873dad9b23dd321fe76") version("0.8.1", sha256="a0489940855130f35bbc4cac0750479a6f82025215ea7b1d778faca064219298") version("0.8.0", sha256="f2d3dc81005f829f3a183efa6c90d698ea6818c06264d2e3f03e805c4340febb") version("0.7.1", sha256="8b1409a5e1f0f6d1a1f02555c2f11115a2364f45f1e57bcb5fb3c9ea11f346fa") @@ -25,13 +28,22 @@ class PyNilearn(PythonPackage): variant("plotting", default=False, description="Enable plotting functionalities") + depends_on("py-joblib@0.15:", when="@0.9.1:", type=("build", "run")) + depends_on("py-joblib@0.12:", when="@0.7:", type=("build", "run")) + depends_on("py-joblib@0.11:", when="@0.6:", type=("build", "run")) + depends_on("py-lxml", when="@0.9.1:", type=("build", "run")) + depends_on("py-nibabel@3:", when="@0.9.1:", type=("build", "run")) + depends_on("py-nibabel@2.5:", when="@0.8:", type=("build", "run")) + depends_on("py-nibabel@2.0.2:", type=("build", "run")) + depends_on("py-numpy@1.18:", when="@0.9.1:", type=("build", "run")) depends_on("py-numpy@1.16:", when="@0.8:", type=("build", "run")) depends_on("py-numpy@1.11:", when="@0.5:", type=("build", "run")) depends_on("py-numpy@1.6.1:", type=("build", "run")) - depends_on("py-scipy@1.2:", when="@0.8:", type=("build", "run")) - depends_on("py-scipy@0.19:", when="@0.6:", type=("build", "run")) - depends_on("py-scipy@0.17:", when="@0.5:", type=("build", "run")) - depends_on("py-scipy@0.14:", type=("build", "run")) + depends_on("py-pandas@1:", when="@0.9.1:", type=("build", "run")) + depends_on("py-pandas@0.24.0:", when="@0.8:", type=("build", "run")) + depends_on("py-pandas@0.18.0:", when="@0.7:", type=("build", "run")) + depends_on("py-requests@2:", when="@0.7:", type=("build", "run")) + depends_on("py-scikit-learn@0.22:", when="@0.9.1:", type=("build", "run")) depends_on("py-scikit-learn@0.21:", when="@0.8:", type=("build", "run")) depends_on("py-scikit-learn@0.19:", when="@0.7:", type=("build", "run")) # sklearn.linear_model.base was deprecated in py-scikit.learn@0.24 @@ -39,43 +51,24 @@ class PyNilearn(PythonPackage): # older py-nilearn versions use import sklearn.external.joblib which was # deprecated in py-scikit-learn@0.23: depends_on("py-scikit-learn@0.15:0.22", when="@:0.5", type=("build", "run")) - depends_on("py-joblib@0.12:", when="@0.7:", type=("build", "run")) - depends_on("py-joblib@0.11:", when="@0.6:", type=("build", "run")) - depends_on("py-nibabel@2.5:", when="@0.8:", type=("build", "run")) - depends_on("py-nibabel@2.0.2:", type=("build", "run")) - depends_on("py-pandas@0.24.0:", when="@0.8:", type=("build", "run")) - depends_on("py-pandas@0.18.0:", when="@0.7:", type=("build", "run")) - depends_on("py-requests@2:", when="@0.7:", type=("build", "run")) + depends_on("py-scipy@1.5:", when="@0.9.1:", type=("build", "run")) + depends_on("py-scipy@1.2:", when="@0.8:", type=("build", "run")) + depends_on("py-scipy@0.19:", when="@0.6:", type=("build", "run")) + depends_on("py-scipy@0.17:", when="@0.5:", type=("build", "run")) + depends_on("py-scipy@0.14:", type=("build", "run")) - depends_on("py-matplotlib@2.0:", when="@0.6: +plotting", type=("build", "run")) + depends_on("py-matplotlib@3:", when="@0.9.1: +plotting", type=("build", "run")) + depends_on("py-matplotlib@2:", when="@0.6: +plotting", type=("build", "run")) # older py-nilearn versions use matplotlib.cm.revcmap which was deprecated # in py-matplotlib@3.4: - depends_on("py-matplotlib@1.1.1:3.3", when="@:0.6 +plotting", type=("build", "run")) + depends_on("py-matplotlib@1.5.1:3.3", when="@:0.5 +plotting", type=("build", "run")) + depends_on("py-matplotlib@1.1.1:3.3", when="0.4.2 +plotting", type=("build", "run")) @property - def import_modules(self): - modules = [ - "nilearn", - "nilearn.connectome", - "nilearn.datasets", - "nilearn.decoding", - "nilearn.decomposition", - "nilearn.image", - "nilearn.input_data", - "nilearn.masking", - "nilearn.mass_univariate", - "nilearn.regions", - "nilearn.signal", - "nilearn.surface", - ] + def skip_modules(self): + modules = [] - if self.spec.satisfies("@0.6:"): - modules.append("nilearn.externals") - - if self.spec.satisfies("@0.7:"): - modules.append("nilearn.glm") - - if "+plotting" in self.spec: + if self.spec.satisfies("~plotting"): modules.append("nilearn.plotting") if self.spec.satisfies("@0.7:"): modules.append("nilearn.reporting") From 0376a624589d7000bc3cc9645f25534140a053bf Mon Sep 17 00:00:00 2001 From: "John W. Parent" <45471568+johnwparent@users.noreply.github.com> Date: Sun, 18 Sep 2022 12:18:28 -0400 Subject: [PATCH 121/241] Attempt at patching phist find mpi heuristic (#32688) for updated phist version --- var/spack/repos/builtin/packages/phist/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/phist/package.py b/var/spack/repos/builtin/packages/phist/package.py index 6460e756ee6..3253ad1799a 100644 --- a/var/spack/repos/builtin/packages/phist/package.py +++ b/var/spack/repos/builtin/packages/phist/package.py @@ -192,7 +192,7 @@ class Phist(CMakePackage): # the phist repo came with it's own FindMPI.cmake before, which may cause some other # MPI installation to be used than the one spack wants. def patch(self): - if self.spec.satisfies("@1.9.6"): + if self.spec.satisfies("@1.9.6:"): filter_file("USE mpi", "use mpi_f08", "src/kernels/builtin/crsmat_module.F90") # filter_file('use mpi', 'use mpi_f08', -> Needs more fixes # 'fortran_bindings/phist_testing.F90') From 17c16ac2fc7c5bae82f9cddefd4e7851c317c707 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Mon, 19 Sep 2022 12:25:35 +0200 Subject: [PATCH 122/241] py-pydicom: add 2.3.0 (#32681) --- var/spack/repos/builtin/packages/py-pydicom/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-pydicom/package.py b/var/spack/repos/builtin/packages/py-pydicom/package.py index 5884147c723..d33f0eaad64 100644 --- a/var/spack/repos/builtin/packages/py-pydicom/package.py +++ b/var/spack/repos/builtin/packages/py-pydicom/package.py @@ -15,6 +15,7 @@ class PyPydicom(PythonPackage): homepage = "https://github.com/pydicom/pydicom" pypi = "pydicom/pydicom-2.1.2.tar.gz" + version("2.3.0", sha256="dbfa081c9ad9ac8ff8a8efbd71784104db9eecf02fd775f7d7773f2183f89386") version("2.1.2", sha256="65f36820c5fec24b4e7ca45b7dae93e054ed269d55f92681863d39d30459e2fd") variant("numpy", default=False, description="Use NumPy for Pixel data") From 0f9cd73f58960143065f1be77de4608ec673bd97 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Mon, 19 Sep 2022 12:41:41 +0200 Subject: [PATCH 123/241] py-neurora: add 1.1.6.8 (#32684) --- var/spack/repos/builtin/packages/py-neurora/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-neurora/package.py b/var/spack/repos/builtin/packages/py-neurora/package.py index 4cc1c21004a..5201a547d00 100644 --- a/var/spack/repos/builtin/packages/py-neurora/package.py +++ b/var/spack/repos/builtin/packages/py-neurora/package.py @@ -12,6 +12,7 @@ class PyNeurora(PythonPackage): homepage = "https://github.com/ZitongLu1996/NeuroRA" pypi = "neurora/neurora-1.1.5.16.tar.gz" + version("1.1.6.8", sha256="84aebe82ce0e8e99b306dcab7b5e15f85269862c379f16b8161dbab64e7d1dd2") version("1.1.6.1", sha256="97b2d1287f273a8db11dcaa623fc906b47ee7c4459e264a42b131e6a4f332916") version("1.1.5.16", sha256="5ae296a5baf658b67e9754a172f5fb321c2077007455f93db6bb2aaeb3e23cd7") From 2f19826470b4009fa82b181b673b0520c8fa993a Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 19 Sep 2022 07:11:31 -0500 Subject: [PATCH 124/241] geant4: new bugfix version 11.0.3 (#32700) Geant4 has a new bugfix version 11.0 patch-03, [release notes](https://geant4-data.web.cern.ch/ReleaseNotes/Patch.11.0-3.txt). No build system changes. --- var/spack/repos/builtin/packages/geant4/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/geant4/package.py b/var/spack/repos/builtin/packages/geant4/package.py index 917a67cf1cc..ae350ae11ec 100644 --- a/var/spack/repos/builtin/packages/geant4/package.py +++ b/var/spack/repos/builtin/packages/geant4/package.py @@ -21,6 +21,7 @@ class Geant4(CMakePackage): maintainers = ["drbenmorgan"] + version("11.0.3", sha256="1e6560b802aa84e17255b83987dfc98a1457154fb603d0f340fae978238de3e7") version("11.0.2", sha256="661e1ab6f42e58910472d771e76ffd16a2b411398eed70f39808762db707799e") version("11.0.1", sha256="fa76d0774346b7347b1fb1424e1c1e0502264a83e185995f3c462372994f84fa") version("11.0.0", sha256="04d11d4d9041507e7f86f48eb45c36430f2b6544a74c0ccaff632ac51d9644f1") From 3762e7319dd2d3495091857c5d5b45240020923d Mon Sep 17 00:00:00 2001 From: iarspider Date: Mon, 19 Sep 2022 19:08:30 +0200 Subject: [PATCH 125/241] Fix benchmark recipe after branch name was changed (#32708) --- var/spack/repos/builtin/packages/benchmark/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/benchmark/package.py b/var/spack/repos/builtin/packages/benchmark/package.py index c75f54278ca..ceab95db300 100644 --- a/var/spack/repos/builtin/packages/benchmark/package.py +++ b/var/spack/repos/builtin/packages/benchmark/package.py @@ -15,7 +15,7 @@ class Benchmark(CMakePackage): # first properly installed CMake config packages in # 1.2.0 release: https://github.com/google/benchmark/issues/363 - version("develop", branch="master") + version("main", branch="main") version("1.6.0", sha256="1f71c72ce08d2c1310011ea6436b31e39ccab8c2db94186d26657d41747c85d6") version("1.5.5", sha256="3bff5f237c317ddfd8d5a9b96b3eede7c0802e799db520d38ce756a2a46a18a0") version("1.5.4", sha256="e3adf8c98bb38a198822725c0fc6c0ae4711f16fbbf6aeb311d5ad11e5a081b5") From 51d2c05022d894f36ab1a37afab8b9319d26608f Mon Sep 17 00:00:00 2001 From: Laurent Aphecetche Date: Mon, 19 Sep 2022 19:12:02 +0200 Subject: [PATCH 126/241] geant4-vmc: add version 6-1-p1 (#32704) --- var/spack/repos/builtin/packages/geant4-vmc/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/geant4-vmc/package.py b/var/spack/repos/builtin/packages/geant4-vmc/package.py index f6f5284dbdf..941e87570d2 100644 --- a/var/spack/repos/builtin/packages/geant4-vmc/package.py +++ b/var/spack/repos/builtin/packages/geant4-vmc/package.py @@ -18,6 +18,7 @@ class Geant4Vmc(CMakePackage): maintainer = ["wdconinc"] version("master", branch="master") + version("6-1-p1", sha256="b3115cd891192ae6cb347737854ee01a22620498f005beb7644af12461ad8b9d") version("5-3", sha256="22f58530963988380509a7741ad6b3dde21806f3862fb55c11cc27f25d3d3c2d") version("5-2", sha256="5bd0e4a4f938048b35724f06075952ecfbc8a97ffc979630cfe2788323845b13") version("5-1-p1", sha256="2e3e4705134ea464e993156f71d478cb7d3817f5b6026bf8d9a37d32ec97590b") From 0298823e289b349f95b1e853c22e61ab26b8df0c Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 19 Sep 2022 12:51:22 -0500 Subject: [PATCH 127/241] edm4hep: allow variant cxxstd 20, sync with podio (#32698) Now that `podio` can support `cxxstd` variants 17 and 20, we can allow `edm4hep` to use `cxxstd=20` as well, but must ensure that `edm4hep` uses the same `cxxstd` variant as `podio`. Solution as in `celeritas`. --- var/spack/repos/builtin/packages/edm4hep/package.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/edm4hep/package.py b/var/spack/repos/builtin/packages/edm4hep/package.py index d0ab83ad6da..32767f45828 100644 --- a/var/spack/repos/builtin/packages/edm4hep/package.py +++ b/var/spack/repos/builtin/packages/edm4hep/package.py @@ -54,10 +54,11 @@ class Edm4hep(CMakePackage): patch("test-deps.patch", when="@:0.3.2") + _cxxstd_values = ("17", "20") variant( "cxxstd", default="17", - values=("17",), + values=_cxxstd_values, multi=False, description="Use the specified C++ standard when building.", ) @@ -70,6 +71,9 @@ class Edm4hep(CMakePackage): depends_on("podio@0.14.1:", when="@0.4.1:") depends_on("podio@0.14", when="@0.4") depends_on("podio@0.13.0:0.13", when="@:0.3") + for _std in _cxxstd_values: + depends_on("podio cxxstd=" + _std, when="cxxstd=" + _std) + depends_on("py-jinja2", type="build") depends_on("py-pyyaml", type="build") From bb071d03ba13f5ac1eeeaa3044d647a84e7b0226 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 19 Sep 2022 12:56:47 -0500 Subject: [PATCH 128/241] py-sip: add v6.6.2 (#32695) * py-sip: add v6.6.2 * Fix python deptype --- var/spack/repos/builtin/packages/py-sip/package.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-sip/package.py b/var/spack/repos/builtin/packages/py-sip/package.py index 9dae8d90303..65e42f3e204 100644 --- a/var/spack/repos/builtin/packages/py-sip/package.py +++ b/var/spack/repos/builtin/packages/py-sip/package.py @@ -14,6 +14,7 @@ class PySip(PythonPackage): homepage = "https://www.riverbankcomputing.com/software/sip" pypi = "sip/sip-6.4.0.tar.gz" + version("6.6.2", sha256="0e3efac1c5dfd8e525ae57140927df26993e13f58b89d1577c314f4105bfd90d") version("6.4.0", sha256="42ec368520b8da4a0987218510b1b520b4981e4405086c1be384733affc2bcb0") version("5.5.0", sha256="5d024c419b30fea8a6de8c71a560c7ab0bc3c221fbfb14d55a5b865bd58eaac5") version("4.19.21", sha256="3bfd58e875a87471c00e008f25a01d8312885aa01efc4f688e5cac861c8676e4") @@ -32,15 +33,19 @@ class PySip(PythonPackage): multi=False, ) - depends_on("python@3.6:", when="@6:", type=("build", "run")) + depends_on("python@3.7:", when="@6.6:", type=("build", "link", "run")) + depends_on("python@3.6:", when="@6:", type=("build", "link", "run")) + + depends_on("py-ply", when="@6.6:", type=("build", "run")) with when("@5:"): - depends_on("python@3.5.1:", type=("build", "run")) + depends_on("python@3.5.1:", type=("build", "link", "run")) depends_on("py-packaging", type="build") depends_on("py-setuptools@30.3:", type="build") depends_on("py-toml", type="build") with when("@:4"): + depends_on("python", type=("build", "link", "run")) depends_on("flex", type="build") depends_on("bison", type="build") From fc1e25c5e1026bf4f742e57c6667f250e9942b03 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Mon, 19 Sep 2022 19:59:29 +0200 Subject: [PATCH 129/241] Don't run bootstrap on package only PRs (#32689) * Don't run bootstrap on package only PRs * Run bootstrap tests when ci.yaml is modified * Test a package only PR * Revert "Test a package only PR" This reverts commit af96b1af60b0c31efcc9a2875ffb1a809ef97241. --- .github/workflows/ci.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 3e741296561..2572a3bddbe 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -54,15 +54,14 @@ jobs: # built-in repository or documentation filters: | bootstrap: - - '!var/spack/repos/builtin/**' - 'var/spack/repos/builtin/packages/clingo-bootstrap/**' - 'var/spack/repos/builtin/packages/clingo/**' - 'var/spack/repos/builtin/packages/python/**' - 'var/spack/repos/builtin/packages/re2c/**' - - '!lib/spack/docs/**' - 'lib/spack/**' - 'share/spack/**' - '.github/workflows/bootstrap.yml' + - '.github/workflows/ci.yaml' core: - './!(var/**)/**' packages: From edee67d96ffa31c78a8755d536f611d81910f972 Mon Sep 17 00:00:00 2001 From: snehring <7978778+snehring@users.noreply.github.com> Date: Mon, 19 Sep 2022 13:07:51 -0500 Subject: [PATCH 130/241] fasttree: updating to 2.1.11 (#32683) --- var/spack/repos/builtin/packages/fasttree/package.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/var/spack/repos/builtin/packages/fasttree/package.py b/var/spack/repos/builtin/packages/fasttree/package.py index 77ca1e77995..748746bfdb4 100644 --- a/var/spack/repos/builtin/packages/fasttree/package.py +++ b/var/spack/repos/builtin/packages/fasttree/package.py @@ -15,7 +15,14 @@ class Fasttree(Package): homepage = "http://www.microbesonline.org/fasttree" url = "http://www.microbesonline.org/fasttree/FastTree-2.1.10.c" + maintainers = ["snehring"] + version( + "2.1.11", + sha256="9026ae550307374be92913d3098f8d44187d30bea07902b9dcbfb123eaa2050f", + expand=False, + url="http://www.microbesonline.org/fasttree/FastTree-2.1.11.c", + ) version( "2.1.10", sha256="54cb89fc1728a974a59eae7a7ee6309cdd3cddda9a4c55b700a71219fc6e926d", From 7d250c4bea152388633b560c1d9683b74d6e32e9 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 19 Sep 2022 13:32:47 -0500 Subject: [PATCH 131/241] root: determine_variants cxxstd=20 support (#32673) This is somewhat ahead of reality, but once/when external ROOT installs with cxxstd=20 are common, we will need this to pick up the correct variant. --- var/spack/repos/builtin/packages/root/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py index 3900dad8761..4b421b04f40 100644 --- a/var/spack/repos/builtin/packages/root/package.py +++ b/var/spack/repos/builtin/packages/root/package.py @@ -334,6 +334,8 @@ def determine_variants(cls, exes, version_str): v.append("cxxstd=14") elif "cxx17" in f: v.append("cxxstd=17") + elif "cxx20" in f: + v.append("cxxstd=20") # helper function: check if featurename is in features, and if it is, # append variantname to variants. featurename may be a list/tuple, in From 3ffc7f42813f8ad6de7e92563f487d574c3c783e Mon Sep 17 00:00:00 2001 From: Ashwin Kumar <46030335+iamashwin99@users.noreply.github.com> Date: Mon, 19 Sep 2022 21:31:59 +0200 Subject: [PATCH 132/241] patch etsf-io tests (#32666) (Patches from meisam.tabriz@mpcdf.mpg.de and smoke tests from @fangohr) --- .../repos/builtin/packages/etsf-io/package.py | 24 +++++++++++++++++++ .../builtin/packages/etsf-io/tests_init.patch | 14 +++++++++++ .../packages/etsf-io/tests_module.patch | 21 ++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 var/spack/repos/builtin/packages/etsf-io/tests_init.patch create mode 100644 var/spack/repos/builtin/packages/etsf-io/tests_module.patch diff --git a/var/spack/repos/builtin/packages/etsf-io/package.py b/var/spack/repos/builtin/packages/etsf-io/package.py index c0f390e4404..3aa8f57ecdd 100644 --- a/var/spack/repos/builtin/packages/etsf-io/package.py +++ b/var/spack/repos/builtin/packages/etsf-io/package.py @@ -25,6 +25,9 @@ class EtsfIo(Package): depends_on("netcdf-fortran") depends_on("hdf5+mpi~cxx", when="+mpi") # required for NetCDF-4 support + patch("tests_module.patch") + patch("tests_init.patch") + def install(self, spec, prefix): options = ["--prefix=%s" % prefix] oapp = options.append @@ -48,3 +51,24 @@ def install(self, spec, prefix): make() make("check") make("install") + + def test(self): + """Run this smoke test when requested explicitly""" + + # Test is to run "etsf_io --help" + spec = self.spec + exe = join_path(spec["etsf-io"].prefix.bin, "etsf_io") + options = ["--help"] + purpose = "Check etsf_io can execute (--help)" + expected = ["Usage: etsf_io"] + + self.run_test( + exe, + options=options, + expected=expected, + status=[0], + installed=False, + purpose=purpose, + skip_missing=False, + work_dir=None, + ) diff --git a/var/spack/repos/builtin/packages/etsf-io/tests_init.patch b/var/spack/repos/builtin/packages/etsf-io/tests_init.patch new file mode 100644 index 00000000000..33efb8fff07 --- /dev/null +++ b/var/spack/repos/builtin/packages/etsf-io/tests_init.patch @@ -0,0 +1,14 @@ +--- etsf-io/tests/group_level/tests_init.f90.orig 2022-06-13 21:38:17.550243223 +0200 ++++ etsf-io/tests/group_level/tests_init.f90 2022-06-13 21:35:32.735709916 +0200 +@@ -20,9 +20,9 @@ + type(etsf_io_low_error), intent(in) :: error + + if (lstat) then +- write(*, "(A,A,A,A)") "== ", name, repeat(" ", 68 - len(name)), "OK ==" ++ write(*, "(A,A,A,A)") "== ", name, repeat(" ", 88 - len(name)), "OK ==" + else +- write(*, "(A,A,A,A)") "== ", name, repeat(" ", 68 - len(name)), "Failed ==" ++ write(*, "(A,A,A,A)") "== ", name, repeat(" ", 88 - len(name)), "Failed ==" + call etsf_io_low_error_handle(error) + end if + end subroutine tests_write_status \ No newline at end of file diff --git a/var/spack/repos/builtin/packages/etsf-io/tests_module.patch b/var/spack/repos/builtin/packages/etsf-io/tests_module.patch new file mode 100644 index 00000000000..f3d8b95619d --- /dev/null +++ b/var/spack/repos/builtin/packages/etsf-io/tests_module.patch @@ -0,0 +1,21 @@ +--- etsf-io/tests/group_level/tests_module.f90.orig 2022-06-13 21:28:19.013027453 +0200 ++++ etsf-io/tests/group_level/tests_module.f90 2022-06-13 21:34:27.062699770 +0200 +@@ -85,7 +85,7 @@ + character(len = *), parameter :: me = "check_read_nD" + integer, allocatable :: int_array(:) + double precision, allocatable :: dbl_array(:) +- character(len = 256), allocatable :: strings(:) ++ character(len = dims(1)), allocatable :: strings(:) + + ! Allocate temporary read space + if (type == "integer") then +@@ -370,8 +370,8 @@ + end subroutine allocate_str_1D + + subroutine check_mem_str_0D(string, length, varname, lstat, error_data) +- character(len = length), intent(in) :: string + integer, intent(in) :: length ++ character(len = length), intent(in) :: string + character(len = *), intent(in) :: varname + logical, intent(out) :: lstat + type(etsf_io_low_error), intent(inout) :: error_data \ No newline at end of file From 5d42185698717b66bbcd7036d6168079386eebe0 Mon Sep 17 00:00:00 2001 From: Terry Cojean Date: Mon, 19 Sep 2022 21:37:34 +0200 Subject: [PATCH 133/241] Ginkgo: improve smoke testing (#32647) * Ginkgo: improve smoke testing * Fix style issues * Pass `self.compiler.{cc,cxx}` to the smoke tests --- .../repos/builtin/packages/ginkgo/package.py | 66 +++++++++++++++---- 1 file changed, 52 insertions(+), 14 deletions(-) diff --git a/var/spack/repos/builtin/packages/ginkgo/package.py b/var/spack/repos/builtin/packages/ginkgo/package.py index aa88add9bc2..8899964a544 100644 --- a/var/spack/repos/builtin/packages/ginkgo/package.py +++ b/var/spack/repos/builtin/packages/ginkgo/package.py @@ -153,17 +153,58 @@ def cmake_args(self): ) return args + extra_install_tests = join_path("test", "test_install") + @run_after("install") - def setup_build_tests(self): - """Build and install the smoke tests.""" - # For now only 1.4.0 and later releases support this scheme. - if self.spec.satisfies("@:1.3.0"): + def cache_test_sources(self): + self.cache_extra_test_sources(self.extra_install_tests) + + @property + def _cached_tests_src_dir(self): + """The cached smoke test source directory.""" + return join_path(self.test_suite.current_test_cache_dir, self.extra_install_tests) + + @property + def _cached_tests_work_dir(self): + """The working directory for cached test sources.""" + return join_path(self._cached_tests_src_dir, "build") + + def _build_test(self): + cmake_bin = join_path(self.spec["cmake"].prefix.bin, "cmake") + cmake_args = [ + "-DCMAKE_C_COMPILER={0}".format(self.compiler.cc), + "-DCMAKE_CXX_COMPILER={0}".format(self.compiler.cxx), + self._cached_tests_src_dir, + ] + + # Fix: For HIP tests, add the ARCH compilation flags when not present + if "+rocm" in self.spec: + src_path = join_path(self._cached_tests_src_dir, "CMakeLists.txt") + cmakelists = open(src_path, "rt") + data = cmakelists.read() + data = data.replace( + 'CLANG_OPTIONS "${GINKGO_PIC_OPTION}"', + 'CLANG_OPTIONS "${GINKGO_AMD_ARCH_FLAGS}" "${GINKGO_PIC_OPTION}"', + ) + cmakelists.close() + cmakelists = open(src_path, "wt") + cmakelists.write(data) + cmakelists.close() + + if not self.run_test( + cmake_bin, + options=cmake_args, + purpose="Generate the Makefile", + work_dir=self._cached_tests_work_dir, + ): + print("Skipping Ginkgo test: failed to generate Makefile") + return + + if not self.run_test( + "make", purpose="Build test software", work_dir=self._cached_tests_work_dir + ): + print("Skipping Ginkgo test: failed to build test") return - with working_dir(self.build_directory): - make("test_install") - smoke_test_path = join_path(self.build_directory, "test", "test_install") - with working_dir(smoke_test_path): - make("install") def test(self): """Run the smoke tests.""" @@ -172,10 +213,7 @@ def test(self): print("SKIPPED: smoke tests not supported with this Ginkgo version.") return - # The installation process installs tests and associated data - # in a non-standard subdirectory. Consequently, those files must - # be manually copied to the test stage here. - install_tree(self.prefix.smoke_tests, self.test_suite.current_test_cache_dir) + self._build_test() # Perform the test(s) created by setup_build_tests. files = [ @@ -191,5 +229,5 @@ def test(self): skip_missing=True, installed=False, purpose="test: Running {0}".format(f), - work_dir=self.test_suite.current_test_cache_dir, + work_dir=self._cached_tests_work_dir, ) From 13d870157f8719517676cbee356abc66cc41862c Mon Sep 17 00:00:00 2001 From: Stephen Sachs Date: Mon, 19 Sep 2022 21:44:32 +0200 Subject: [PATCH 134/241] Adding intel-oneapi-itac package (#32658) * Adding intel-oneapi-itac package * Make black happy * add rscohn2 as maintainer * black prefers double quotes Co-authored-by: Stephen Sachs Co-authored-by: Robert Cohn --- .../packages/intel-oneapi-itac/package.py | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 var/spack/repos/builtin/packages/intel-oneapi-itac/package.py diff --git a/var/spack/repos/builtin/packages/intel-oneapi-itac/package.py b/var/spack/repos/builtin/packages/intel-oneapi-itac/package.py new file mode 100644 index 00000000000..12b9933c1d2 --- /dev/null +++ b/var/spack/repos/builtin/packages/intel-oneapi-itac/package.py @@ -0,0 +1,42 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import platform + +from spack.package import * + + +@IntelOneApiPackage.update_description +class IntelOneapiItac(IntelOneApiPackage): + """The Intel® Trace Analyzer and Collector profiles and analyzes MPI applications to help + focus your optimization efforts. + + Find temporal dependencies and bottlenecks in your code. + Check the correctness of your application. + Locate potential programming errors, buffer overlaps, and deadlocks. + Visualize and understand parallel application behavior. + Evaluate profiling statistics and load balancing. + Analyze performance of subroutines or code blocks. + Learn about communication patterns, parameters, and performance data. + Identify communication hot spots. + Decrease time to solution and increase application efficiency. + + """ + + homepage = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/trace-analyzer.html" + + maintainers = ["rscohn2"] + + if platform.system() == "Linux": + version( + "2021.6.0", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18694/l_itac_oneapi_p_2021.6.0.434_offline.sh", + sha256="1ecc2735da960041b051e377cadb9f6ab2f44e8aa44d0f642529a56a3cbba436", + expand=False, + ) + + @property + def component_dir(self): + return "itac" From 8f8205af886c055b95ea0e665a748353e7edd2f4 Mon Sep 17 00:00:00 2001 From: rsanthanam-amd <70280935+rsanthanam-amd@users.noreply.github.com> Date: Mon, 19 Sep 2022 15:02:02 -0500 Subject: [PATCH 135/241] NCCL should not be dependent on ROCm builds since RCCL is used instead. (#32461) Allow the nccl flag to be specified even for ROCm builds so that NCCL kernels are included in the build. In this case the NCCL kernels will use RCCL as the backend implementation. --- var/spack/repos/builtin/packages/py-tensorflow/package.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-tensorflow/package.py b/var/spack/repos/builtin/packages/py-tensorflow/package.py index d6380bee014..5c6b3dc1ac2 100644 --- a/var/spack/repos/builtin/packages/py-tensorflow/package.py +++ b/var/spack/repos/builtin/packages/py-tensorflow/package.py @@ -291,7 +291,7 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage): depends_on("rocblas") depends_on("rocfft") depends_on("hipfft") - depends_on("rccl") + depends_on("rccl", when="+nccl") depends_on("hipsparse") depends_on("hipcub") depends_on("rocsolver") @@ -348,7 +348,7 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage): depends_on("cudnn@:6", when="@0.5:0.6 +cuda") depends_on("cudnn@:7", when="@0.7:2.2 +cuda") # depends_on('tensorrt', when='+tensorrt') - depends_on("nccl", when="+nccl") + depends_on("nccl", when="+nccl+cuda") depends_on("mpi", when="+mpi") # depends_on('android-ndk@10:18', when='+android') # depends_on('android-sdk', when='+android') @@ -418,7 +418,7 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage): msg="Currently TensorRT is only supported on Linux platform", ) conflicts("+nccl", when="@:1.7") - conflicts("+nccl", when="~cuda") + conflicts("+nccl", when="~cuda~rocm") conflicts( "+nccl", when="platform=darwin", msg="Currently NCCL is only supported on Linux platform" ) From cc78d5db3617d2efda35898d0140ac5b75a7e228 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Mon, 19 Sep 2022 22:30:34 +0200 Subject: [PATCH 136/241] py-datalad: add 0.17.5 (#32676) * py-datalad: add 0.17.5 * Fix description of py-types-urllib3 * Update var/spack/repos/builtin/packages/py-datalad/package.py Co-authored-by: Adam J. Stewart * Update var/spack/repos/builtin/packages/py-datalad/package.py Co-authored-by: Adam J. Stewart * Add colorama dependency for windows * Fix importlib-metadata dependency * Update var/spack/repos/builtin/packages/py-pytest/package.py Co-authored-by: Adam J. Stewart * Update var/spack/repos/builtin/packages/py-pytest/package.py Co-authored-by: Adam J. Stewart * Update var/spack/repos/builtin/packages/py-pytest/package.py Co-authored-by: Adam J. Stewart * Use conflict to avoid dependency duplication Co-authored-by: Adam J. Stewart --- .../builtin/packages/py-datalad/package.py | 63 +++++++++---------- .../packages/py-pytest-fail-slow/package.py | 20 ++++++ .../builtin/packages/py-pytest/package.py | 11 +++- .../py-types-python-dateutil/package.py | 18 ++++++ .../packages/py-types-requests/package.py | 20 ++++++ .../packages/py-types-urllib3/package.py | 18 ++++++ 6 files changed, 115 insertions(+), 35 deletions(-) create mode 100644 var/spack/repos/builtin/packages/py-pytest-fail-slow/package.py create mode 100644 var/spack/repos/builtin/packages/py-types-python-dateutil/package.py create mode 100644 var/spack/repos/builtin/packages/py-types-requests/package.py create mode 100644 var/spack/repos/builtin/packages/py-types-urllib3/package.py diff --git a/var/spack/repos/builtin/packages/py-datalad/package.py b/var/spack/repos/builtin/packages/py-datalad/package.py index 9df5cde46b5..4384bdd8edd 100644 --- a/var/spack/repos/builtin/packages/py-datalad/package.py +++ b/var/spack/repos/builtin/packages/py-datalad/package.py @@ -19,7 +19,9 @@ class PyDatalad(PythonPackage): homepage = "https://datalad.org/" pypi = "datalad/datalad-0.14.6.tar.gz" + git = "https://github.com/datalad/datalad" + version("0.17.5", sha256="a221312c58b0b9b57605cc1a2288838f24932491b2e50475dd7a940151cafccd") version("0.15.5", sha256="e569494a5bd4e0f100013ec30529d5ac02e78ba476a75fc533c0d89c0e5473bc") version("0.15.3", sha256="44f8c5b3960c6d9848aeecd868c82330c49689a21e975597df5b112dc2e5c9f0") version("0.15.2", sha256="1a878cf521270f089ee1f50339e71cfd7eed41e708d895a12d5c483a9b59991b") @@ -33,6 +35,7 @@ class PyDatalad(PythonPackage): variant("duecredit", default=False, description="Enable duecredit support") variant("full", default=False, description="Enable support for all available variants") + depends_on("python@3.7:", when="@0.16:", type=("build", "run")) depends_on("python@3.6:", type=("build", "run")) depends_on("py-setuptools@40.8.0:", type="build") @@ -40,31 +43,34 @@ class PyDatalad(PythonPackage): depends_on("git-annex", type=("build", "run")) # core - depends_on("py-appdirs", type=("build", "run")) - depends_on("py-chardet@3.0.4:", type=("build", "run")) - depends_on("py-distro", type=("build", "run"), when="^python@3.8:") - depends_on("py-importlib-metadata", type=("build", "run"), when="^python@:3.7") + depends_on("py-platformdirs", when="@0.16:", type=("build", "run")) + depends_on("py-chardet@3.0.4:4", type=("build", "run")) + depends_on("py-distro", when="^python@3.8:", type=("build", "run")) + depends_on("py-importlib-metadata@3.6:", when="@0.16: ^python@:3.9", type=("build", "run")) + depends_on("py-importlib-metadata", when="@:0.15 ^python@:3.7", type=("build", "run")) depends_on("py-iso8601", type=("build", "run")) depends_on("py-humanize", type=("build", "run")) depends_on("py-fasteners@0.14:", type=("build", "run")) depends_on("py-packaging", type=("build", "run"), when="@0.15.4:") depends_on("py-patool@1.7:", type=("build", "run")) depends_on("py-tqdm", type=("build", "run")) - depends_on("py-wrapt", type=("build", "run")) depends_on("py-annexremote", type=("build", "run")) - # additional dependency on 'colorama' if platform_system=="Windows"' + depends_on("py-colorama", when="platform=windows", type=("build", "run")) + depends_on("py-appdirs", when="@:0.15", type=("build", "run")) + depends_on("py-wrapt", when="@:0.15", type=("build", "run")) # downloaders depends_on("py-boto", type=("build", "run")) + depends_on("py-keyring@20.0:23.8,23.9.1:", when="@0.16:", type=("build", "run")) depends_on("py-keyring@8.0:", type=("build", "run")) depends_on("py-keyrings-alt", type=("build", "run")) depends_on("py-msgpack", type=("build", "run")) depends_on("py-requests@1.2:", type=("build", "run")) # publish - depends_on("py-pygithub", type=("build", "run")) - depends_on("py-python-gitlab", type=("build", "run"), when="@0.14.7:") - depends_on("py-jsmin", type=("build", "run"), when="@:0.14") + depends_on("py-python-gitlab", when="@0.14.7:", type=("build", "run")) + depends_on("py-pygithub", when="@:0.16", type=("build", "run")) + depends_on("py-jsmin", when="@:0.14", type=("build", "run")) # metadata depends_on("py-simplejson", type=("build", "run")) @@ -74,15 +80,22 @@ class PyDatalad(PythonPackage): depends_on("py-requests-ftp", type=("build", "run")) with when("+misc"): - depends_on("py-argcomplete", type=("build", "run"), when="@0.14.7:") + depends_on("py-argcomplete@1.12.3:", when="@0.16.5:", type=("build", "run")) + depends_on("py-argcomplete", when="@0.14.7:", type=("build", "run")) depends_on("py-pyperclip", type=("build", "run")) depends_on("py-python-dateutil", type=("build", "run")) with when("+tests"): depends_on("py-beautifulsoup4", type=("build", "run")) depends_on("py-httpretty@0.9.4:", type=("build", "run")) - depends_on("py-nose@1.3.4:", type=("build", "run")) + depends_on("py-mypy@0.900:0", when="@0.17.4:", type=("build", "run")) + depends_on("py-pytest@7", when="@0.17:", type=("build", "run")) + depends_on("py-pytest-cov@3", when="@0.17:", type=("build", "run")) + depends_on("py-pytest-fail-slow@0.2:0", when="@0.17:", type=("build", "run")) + depends_on("py-types-python-dateutil", when="@0.17.4:", type=("build", "run")) + depends_on("py-types-requests", when="@0.17.4:", type=("build", "run")) depends_on("py-vcrpy", type=("build", "run")) + depends_on("py-nose@1.3.4:", when="@:0.16", type=("build", "run")) with when("+metadata-extra"): depends_on("py-pyyaml", type=("build", "run")) @@ -94,27 +107,13 @@ class PyDatalad(PythonPackage): with when("+duecredit"): depends_on("py-duecredit", type=("build", "run")) - with when("+full"): - # all the above - # downloaders-extra - depends_on("py-requests-ftp", type=("build", "run")) - # misc - depends_on("py-argcomplete", type=("build", "run"), when="@0.14.7:") - depends_on("py-pyperclip", type=("build", "run")) - depends_on("py-python-dateutil", type=("build", "run")) - # tests - depends_on("py-beautifulsoup4", type=("build", "run")) - depends_on("py-httpretty@0.9.4:", type=("build", "run")) - depends_on("py-nose@1.3.4:", type=("build", "run")) - depends_on("py-vcrpy", type=("build", "run")) - # metadata-extra - depends_on("py-pyyaml", type=("build", "run")) - depends_on("py-mutagen@1.36:", type=("build", "run")) - depends_on("py-exifread", type=("build", "run")) - depends_on("py-python-xmp-toolkit", type=("build", "run")) - depends_on("pil", type=("build", "run")) - # duecredit - depends_on("py-duecredit", type=("build", "run")) + # full + # use conflict to avoid to have to maintain the dependencies twice + conflicts("~downloaders-extra", when="+full") + conflicts("~misc", when="+full") + conflicts("~tests", when="+full") + conflicts("~metadata-extra", when="+full") + conflicts("~duecredit", when="+full") install_time_test_callbacks = ["test", "installtest"] diff --git a/var/spack/repos/builtin/packages/py-pytest-fail-slow/package.py b/var/spack/repos/builtin/packages/py-pytest-fail-slow/package.py new file mode 100644 index 00000000000..0008b2955ae --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pytest-fail-slow/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyPytestFailSlow(PythonPackage): + """Fail tests that take too long to run.""" + + homepage = "https://github.com/jwodder/pytest-fail-slow" + pypi = "pytest-fail-slow/pytest-fail-slow-0.3.0.tar.gz" + + version("0.3.0", sha256="bc022f3f4f170b7e3e7d4dff45bd9e7855e4935ae396bb40b4521ce1ef8ea41c") + + depends_on("python@3.6:3", type=("build", "run")) + depends_on("py-setuptools@46.4:", type="build") + + depends_on("py-pytest@6:", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-pytest/package.py b/var/spack/repos/builtin/packages/py-pytest/package.py index e45bb04bbca..489060ae7bd 100644 --- a/var/spack/repos/builtin/packages/py-pytest/package.py +++ b/var/spack/repos/builtin/packages/py-pytest/package.py @@ -12,6 +12,7 @@ class PyPytest(PythonPackage): homepage = "https://pytest.org/" pypi = "pytest/pytest-5.2.1.tar.gz" + version("7.1.3", sha256="4f365fec2dff9c1162f834d9f18af1ba13062db0c708bf7b946f8a5c76180c39") version("6.2.5", sha256="131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89") version("6.2.4", sha256="50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b") version("6.2.1", sha256="66e419b1899bc27346cb2c993e12c5e5e8daba9073c1fbce33b9807abc95c306") @@ -31,16 +32,19 @@ class PyPytest(PythonPackage): version("3.0.2", sha256="64d8937626dd2a4bc15ef0edd307d26636a72a3f3f9664c424d78e40efb1e339") # python_requires + depends_on("python@3.7:", when="@7.1:", type=("build", "run")) depends_on("python@3.6:", when="@6.2:", type=("build", "run")) depends_on("python@3.5:", when="@5:6.1", type=("build", "run")) depends_on("python@2.7:2.8,3.4:", when="@3.3:4", type=("build", "run")) depends_on("python@2.6:2.8,3.3:", when="@:3.2", type=("build", "run")) # setup_requires + depends_on("py-setuptools@45.0:", when="@7:", type=("build", "run")) depends_on("py-setuptools@42.0:", when="@6.2:", type=("build", "run")) depends_on("py-setuptools@40.0:", when="@3.9.2:6.1", type=("build", "run")) depends_on("py-setuptools@30.3:", when="@3.9.0:3.9.1", type=("build", "run")) depends_on("py-setuptools", type=("build", "run")) + depends_on("py-setuptools-scm@6.2.3: +toml", when="@7:", type="build") depends_on("py-setuptools-scm@3.4: +toml", when="@6.2:", type="build") depends_on("py-setuptools-scm", when="@3.1:", type="build") @@ -63,14 +67,15 @@ class PyPytest(PythonPackage): depends_on("py-py@1.4.33:", when="@3.1.2:3.2.3,3.2.5:3.2", type=("build", "run")) depends_on("py-py@1.4.33:1.4", when="@3.2.4", type=("build", "run")) depends_on("py-py@1.4.29:", when="@:3.1.1", type=("build", "run")) - depends_on("py-toml", when="@6.0:", type=("build", "run")) - depends_on("py-atomicwrites@1.0:", when="@5.3: platform=windows", type=("build", "run")) - depends_on("py-atomicwrites@1.0:", when="@3.6:5.2", type=("build", "run")) + depends_on("py-tomli@1:", when="@7:", type=("build", "run")) depends_on("py-colorama", when="platform=windows", type=("build", "run")) depends_on("py-importlib-metadata@0.12:", when="@4.6:5.0", type=("build", "run")) depends_on("py-importlib-metadata@0.12:", when="@5.1: ^python@:3.7", type=("build", "run")) # Historic dependencies + depends_on("py-atomicwrites@1.0:", when="@5.3:7.1.2 platform=windows", type=("build", "run")) + depends_on("py-atomicwrites@1.0:", when="@3.6:5.2", type=("build", "run")) + depends_on("py-toml", when="@6", type=("build", "run")) depends_on("py-six@1.10.0:", when="@3.3:4", type=("build", "run")) depends_on("py-more-itertools@4.0.0:", when="@3.5.1:5", type=("build", "run")) depends_on( diff --git a/var/spack/repos/builtin/packages/py-types-python-dateutil/package.py b/var/spack/repos/builtin/packages/py-types-python-dateutil/package.py new file mode 100644 index 00000000000..3ea5e5164c1 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-types-python-dateutil/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyTypesPythonDateutil(PythonPackage): + """Typing stubs for python-dateutil.""" + + homepage = "https://github.com/python/typeshed" + pypi = "types-python-dateutil/types-python-dateutil-2.8.19.tar.gz" + + version("2.8.19", sha256="bfd3eb39c7253aea4ba23b10f69b017d30b013662bb4be4ab48b20bbd763f309") + + depends_on("python@3.7:", type=("build", "run")) + depends_on("py-setuptools", type="build") diff --git a/var/spack/repos/builtin/packages/py-types-requests/package.py b/var/spack/repos/builtin/packages/py-types-requests/package.py new file mode 100644 index 00000000000..4a50bdda83d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-types-requests/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyTypesRequests(PythonPackage): + """Typing stubs for requests.""" + + homepage = "https://github.com/python/typeshed" + pypi = "types-requests/types-requests-2.28.10.tar.gz" + + version("2.28.10", sha256="97d8f40aa1ffe1e58c3726c77d63c182daea9a72d9f1fa2cafdea756b2a19f2c") + + depends_on("python@3.7:", type=("build", "run")) + depends_on("py-setuptools", type="build") + + depends_on("py-types-urllib3@:1.26", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-types-urllib3/package.py b/var/spack/repos/builtin/packages/py-types-urllib3/package.py new file mode 100644 index 00000000000..a1fd4f9799d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-types-urllib3/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyTypesUrllib3(PythonPackage): + """Typing stubs for urllib3.""" + + homepage = "https://github.com/python/typeshed" + pypi = "types-urllib3/types-urllib3-1.26.24.tar.gz" + + version("1.26.24", sha256="a1b3aaea7dda3eb1b51699ee723aadd235488e4dc4648e030f09bc429ecff42f") + + depends_on("python@3.7:", type=("build", "run")) + depends_on("py-setuptools", type="build") From 83e66ce03ec5d57a5fef285715259da8f9060c31 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 19 Sep 2022 15:34:38 -0500 Subject: [PATCH 137/241] Deprecate Python 2 support (#32615) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR deprecates using Spack to install [EOL Python versions](https://endoflife.date/python), including Python 2.7, 3.1–3.6. It also deprecates running Spack with Python 2.7. Going forward, we expect Spack to have the following Python support timeline. ### Running Spack * Spack 0.18 (spring 2022): Python 2.7, 3.5–3.10 * Spack 0.19 (fall 2022): Python 2.7 (deprecated), 3.6–3.11 * Spack 0.20 (spring 2023): Python 3.6–3.11 ### Building with Spack * Spack 0.18 (spring 2022): Python 2.7, 3.1–3.10 * Spack 0.19 (fall 2022): Python 2.7, 3.1–3.6 (deprecated), 3.7–3.11 * Spack 0.20 (spring 2023): Python 3.7–3.11 This is a reboot of #28003. See #31824 for a detailed discussion of the motivation for this PR. If you have concerns about this change, please comment on #31824. --- .../repos/builtin/packages/python/package.py | 254 +++++++++++++++--- 1 file changed, 211 insertions(+), 43 deletions(-) diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py index 6951398c622..fb240d9685e 100644 --- a/var/spack/repos/builtin/packages/python/package.py +++ b/var/spack/repos/builtin/packages/python/package.py @@ -36,7 +36,7 @@ class Python(Package): list_url = "https://www.python.org/ftp/python/" list_depth = 1 - maintainers = ["adamjstewart", "skosukhin", "scheibelp", "varioustoxins", "pradyunsg"] + maintainers = ["adamjstewart", "skosukhin", "scheibelp", "pradyunsg"] phases = ["configure", "build", "install"] @@ -97,53 +97,221 @@ class Python(Package): version("3.7.2", sha256="f09d83c773b9cc72421abba2c317e4e6e05d919f9bcf34468e192b6a6c8e328d") version("3.7.1", sha256="36c1b81ac29d0f8341f727ef40864d99d8206897be96be73dc34d4739c9c9f06") version("3.7.0", sha256="85bb9feb6863e04fb1700b018d9d42d1caac178559ffa453d7e6a436e259fd0d") - version("3.6.15", sha256="54570b7e339e2cfd72b29c7e2fdb47c0b7b18b7412e61de5b463fc087c13b043") - version("3.6.14", sha256="70064897bc434d6eae8bcc3e5678f282b5ea776d60e695da548a1219ccfd27a5") - version("3.6.13", sha256="614950d3d54f6e78dac651b49c64cfe2ceefea5af3aff3371a9e4b27a53b2669") - version("3.6.12", sha256="12dddbe52385a0f702fb8071e12dcc6b3cb2dde07cd8db3ed60e90d90ab78693") - version("3.6.11", sha256="96621902f89746fffc22f39749c07da7c2917b232e72352e6837d41850f7b90c") - version("3.6.10", sha256="7034dd7cba98d4f94c74f9edd7345bac71c8814c41672c64d9044fa2f96f334d") - version("3.6.9", sha256="47fc92a1dcb946b9ed0abc311d3767b7215c54e655b17fd1d3f9b538195525aa") - version("3.6.8", sha256="7f5b1f08b3b0a595387ef6c64c85b1b13b38abef0dd871835ee923262e4f32f0") - version("3.6.7", sha256="b7c36f7ed8f7143b2c46153b7332db2227669f583ea0cce753facf549d1a4239") - version("3.6.6", sha256="7d56dadf6c7d92a238702389e80cfe66fbfae73e584189ed6f89c75bbf3eda58") - version("3.6.5", sha256="53a3e17d77cd15c5230192b6a8c1e031c07cd9f34a2f089a731c6f6bd343d5c6") - version("3.6.4", sha256="7dc453e1a93c083388eb1a23a256862407f8234a96dc4fae0fc7682020227486") - version("3.6.3", sha256="ab6193af1921b30f587b302fe385268510e80187ca83ca82d2bfe7ab544c6f91") - version("3.6.2", sha256="7919489310a5f17f7acbab64d731e46dca0702874840dadce8bd4b2b3b8e7a82") - version("3.6.1", sha256="aa50b0143df7c89ce91be020fe41382613a817354b33acdc6641b44f8ced3828") - version("3.6.0", sha256="aa472515800d25a3739833f76ca3735d9f4b2fe77c3cb21f69275e0cce30cb2b") - version("3.5.10", sha256="3496a0daf51913718a6f10e3eda51fa43634cb6151cb096f312d48bdbeff7d3a") - version("3.5.9", sha256="67a1d4fc6e4540d6a092cadc488e533afa961b3c9becc74dc3d6b55cb56e0cc1") - version("3.5.8", sha256="18c88dfd260147bc7247e6356010e5d4916dfbfc480f6434917f88e61228177a") - version("3.5.7", sha256="542d94920a2a06a471a73b51614805ad65366af98145b0369bc374cf248b521b") - version("3.5.6", sha256="30d2ff093988e74283e1abfee823292c6b59590796b9827e95ba4940b27d26f8") - version("3.5.5", sha256="2f988db33913dcef17552fd1447b41afb89dbc26e3cdfc068ea6c62013a3a2a5") - version("3.5.4", sha256="6ed87a8b6c758cc3299a8b433e8a9a9122054ad5bc8aad43299cff3a53d8ca44") - version("3.5.3", sha256="d8890b84d773cd7059e597dbefa510340de8336ec9b9e9032bf030f19291565a") - version("3.5.2", sha256="1524b840e42cf3b909e8f8df67c1724012c7dc7f9d076d4feef2d3eff031e8a0") - version("3.5.1", sha256="687e067d9f391da645423c7eda8205bae9d35edc0c76ef5218dcbe4cc770d0d7") - version("3.5.0", sha256="584e3d5a02692ca52fce505e68ecd77248a6f2c99adf9db144a39087336b0fe0") - version("3.4.10", sha256="217757699249ab432571b381386d441e12b433100ab5f908051fcb7cced2539d") - version("3.4.3", sha256="8b743f56e9e50bf0923b9e9c45dd927c071d7aa56cd46569d8818add8cf01147") - version("3.3.6", sha256="0a58ad1f1def4ecc90b18b0c410a3a0e1a48cf7692c75d1f83d0af080e5d2034") - version("3.2.6", sha256="fc1e41296e29d476f696303acae293ae7a2310f0f9d0d637905e722a3f16163e") + version( + "3.6.15", + sha256="54570b7e339e2cfd72b29c7e2fdb47c0b7b18b7412e61de5b463fc087c13b043", + deprecated=True, + ) + version( + "3.6.14", + sha256="70064897bc434d6eae8bcc3e5678f282b5ea776d60e695da548a1219ccfd27a5", + deprecated=True, + ) + version( + "3.6.13", + sha256="614950d3d54f6e78dac651b49c64cfe2ceefea5af3aff3371a9e4b27a53b2669", + deprecated=True, + ) + version( + "3.6.12", + sha256="12dddbe52385a0f702fb8071e12dcc6b3cb2dde07cd8db3ed60e90d90ab78693", + deprecated=True, + ) + version( + "3.6.11", + sha256="96621902f89746fffc22f39749c07da7c2917b232e72352e6837d41850f7b90c", + deprecated=True, + ) + version( + "3.6.10", + sha256="7034dd7cba98d4f94c74f9edd7345bac71c8814c41672c64d9044fa2f96f334d", + deprecated=True, + ) + version( + "3.6.9", + sha256="47fc92a1dcb946b9ed0abc311d3767b7215c54e655b17fd1d3f9b538195525aa", + deprecated=True, + ) + version( + "3.6.8", + sha256="7f5b1f08b3b0a595387ef6c64c85b1b13b38abef0dd871835ee923262e4f32f0", + deprecated=True, + ) + version( + "3.6.7", + sha256="b7c36f7ed8f7143b2c46153b7332db2227669f583ea0cce753facf549d1a4239", + deprecated=True, + ) + version( + "3.6.6", + sha256="7d56dadf6c7d92a238702389e80cfe66fbfae73e584189ed6f89c75bbf3eda58", + deprecated=True, + ) + version( + "3.6.5", + sha256="53a3e17d77cd15c5230192b6a8c1e031c07cd9f34a2f089a731c6f6bd343d5c6", + deprecated=True, + ) + version( + "3.6.4", + sha256="7dc453e1a93c083388eb1a23a256862407f8234a96dc4fae0fc7682020227486", + deprecated=True, + ) + version( + "3.6.3", + sha256="ab6193af1921b30f587b302fe385268510e80187ca83ca82d2bfe7ab544c6f91", + deprecated=True, + ) + version( + "3.6.2", + sha256="7919489310a5f17f7acbab64d731e46dca0702874840dadce8bd4b2b3b8e7a82", + deprecated=True, + ) + version( + "3.6.1", + sha256="aa50b0143df7c89ce91be020fe41382613a817354b33acdc6641b44f8ced3828", + deprecated=True, + ) + version( + "3.6.0", + sha256="aa472515800d25a3739833f76ca3735d9f4b2fe77c3cb21f69275e0cce30cb2b", + deprecated=True, + ) + version( + "3.5.10", + sha256="3496a0daf51913718a6f10e3eda51fa43634cb6151cb096f312d48bdbeff7d3a", + deprecated=True, + ) + version( + "3.5.9", + sha256="67a1d4fc6e4540d6a092cadc488e533afa961b3c9becc74dc3d6b55cb56e0cc1", + deprecated=True, + ) + version( + "3.5.8", + sha256="18c88dfd260147bc7247e6356010e5d4916dfbfc480f6434917f88e61228177a", + deprecated=True, + ) + version( + "3.5.7", + sha256="542d94920a2a06a471a73b51614805ad65366af98145b0369bc374cf248b521b", + deprecated=True, + ) + version( + "3.5.6", + sha256="30d2ff093988e74283e1abfee823292c6b59590796b9827e95ba4940b27d26f8", + deprecated=True, + ) + version( + "3.5.5", + sha256="2f988db33913dcef17552fd1447b41afb89dbc26e3cdfc068ea6c62013a3a2a5", + deprecated=True, + ) + version( + "3.5.4", + sha256="6ed87a8b6c758cc3299a8b433e8a9a9122054ad5bc8aad43299cff3a53d8ca44", + deprecated=True, + ) + version( + "3.5.3", + sha256="d8890b84d773cd7059e597dbefa510340de8336ec9b9e9032bf030f19291565a", + deprecated=True, + ) + version( + "3.5.2", + sha256="1524b840e42cf3b909e8f8df67c1724012c7dc7f9d076d4feef2d3eff031e8a0", + deprecated=True, + ) + version( + "3.5.1", + sha256="687e067d9f391da645423c7eda8205bae9d35edc0c76ef5218dcbe4cc770d0d7", + deprecated=True, + ) + version( + "3.5.0", + sha256="584e3d5a02692ca52fce505e68ecd77248a6f2c99adf9db144a39087336b0fe0", + deprecated=True, + ) + version( + "3.4.10", + sha256="217757699249ab432571b381386d441e12b433100ab5f908051fcb7cced2539d", + deprecated=True, + ) + version( + "3.4.3", + sha256="8b743f56e9e50bf0923b9e9c45dd927c071d7aa56cd46569d8818add8cf01147", + deprecated=True, + ) + version( + "3.3.6", + sha256="0a58ad1f1def4ecc90b18b0c410a3a0e1a48cf7692c75d1f83d0af080e5d2034", + deprecated=True, + ) + version( + "3.2.6", + sha256="fc1e41296e29d476f696303acae293ae7a2310f0f9d0d637905e722a3f16163e", + deprecated=True, + ) version( "3.1.5", sha256="d12dae6d06f52ef6bf1271db4d5b4d14b5dd39813e324314e72b648ef1bc0103", deprecated=True, ) - version("2.7.18", sha256="da3080e3b488f648a3d7a4560ddee895284c3380b11d6de75edb986526b9a814") - version("2.7.17", sha256="f22059d09cdf9625e0a7284d24a13062044f5bf59d93a7f3382190dfa94cecde") - version("2.7.16", sha256="01da813a3600876f03f46db11cc5c408175e99f03af2ba942ef324389a83bad5") - version("2.7.15", sha256="18617d1f15a380a919d517630a9cd85ce17ea602f9bbdc58ddc672df4b0239db") - version("2.7.14", sha256="304c9b202ea6fbd0a4a8e0ad3733715fbd4749f2204a9173a58ec53c32ea73e8") - version("2.7.13", sha256="a4f05a0720ce0fd92626f0278b6b433eee9a6173ddf2bced7957dfb599a5ece1") - version("2.7.12", sha256="3cb522d17463dfa69a155ab18cffa399b358c966c0363d6c8b5b3bf1384da4b6") - version("2.7.11", sha256="82929b96fd6afc8da838b149107078c02fa1744b7e60999a8babbc0d3fa86fc6") - version("2.7.10", sha256="eda8ce6eec03e74991abb5384170e7c65fcd7522e409b8e83d7e6372add0f12a") - version("2.7.9", sha256="c8bba33e66ac3201dabdc556f0ea7cfe6ac11946ec32d357c4c6f9b018c12c5b") - version("2.7.8", sha256="74d70b914da4487aa1d97222b29e9554d042f825f26cb2b93abd20fdda56b557") + version( + "2.7.18", + sha256="da3080e3b488f648a3d7a4560ddee895284c3380b11d6de75edb986526b9a814", + deprecated=True, + ) + version( + "2.7.17", + sha256="f22059d09cdf9625e0a7284d24a13062044f5bf59d93a7f3382190dfa94cecde", + deprecated=True, + ) + version( + "2.7.16", + sha256="01da813a3600876f03f46db11cc5c408175e99f03af2ba942ef324389a83bad5", + deprecated=True, + ) + version( + "2.7.15", + sha256="18617d1f15a380a919d517630a9cd85ce17ea602f9bbdc58ddc672df4b0239db", + deprecated=True, + ) + version( + "2.7.14", + sha256="304c9b202ea6fbd0a4a8e0ad3733715fbd4749f2204a9173a58ec53c32ea73e8", + deprecated=True, + ) + version( + "2.7.13", + sha256="a4f05a0720ce0fd92626f0278b6b433eee9a6173ddf2bced7957dfb599a5ece1", + deprecated=True, + ) + version( + "2.7.12", + sha256="3cb522d17463dfa69a155ab18cffa399b358c966c0363d6c8b5b3bf1384da4b6", + deprecated=True, + ) + version( + "2.7.11", + sha256="82929b96fd6afc8da838b149107078c02fa1744b7e60999a8babbc0d3fa86fc6", + deprecated=True, + ) + version( + "2.7.10", + sha256="eda8ce6eec03e74991abb5384170e7c65fcd7522e409b8e83d7e6372add0f12a", + deprecated=True, + ) + version( + "2.7.9", + sha256="c8bba33e66ac3201dabdc556f0ea7cfe6ac11946ec32d357c4c6f9b018c12c5b", + deprecated=True, + ) + version( + "2.7.8", + sha256="74d70b914da4487aa1d97222b29e9554d042f825f26cb2b93abd20fdda56b557", + deprecated=True, + ) extendable = True From 5b26df8f64b39e2679c344dee6d58745faef5819 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 19 Sep 2022 15:41:11 -0500 Subject: [PATCH 138/241] imagemagick: new variant ghostscript (#32450) * imagemagick: new variant ghostscript Ghostscript adds about 75 dependencies to an installation of imagemagick (97 without, 172 with Ghostscript). This adds a variant (defaulting to true for backward compatibility) that allows users to turn off Ghostscript support. * imagemagick: be explicit when `--with-gslib` * imagemagick: fix suggestion fail * imagemagick: use spec.prefix.share.font * imagemagick: default ghostscript false * imagemagick: no need for join_path anymore Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> --- .../builtin/packages/imagemagick/package.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/var/spack/repos/builtin/packages/imagemagick/package.py b/var/spack/repos/builtin/packages/imagemagick/package.py index 1ea57d03486..198f0b5b34e 100644 --- a/var/spack/repos/builtin/packages/imagemagick/package.py +++ b/var/spack/repos/builtin/packages/imagemagick/package.py @@ -18,6 +18,8 @@ class Imagemagick(AutotoolsPackage): version("7.0.2-7", sha256="f2f18a97f861c1668befdaff0cc3aaafb2111847aab028a88b4c2cb017acfbaa") version("7.0.2-6", sha256="7d49ca8030f895c683cae69c52d8edfc4876de651f5b8bfdbea907e222480bd3") + variant("ghostscript", default=False, description="Compile with Ghostscript support") + depends_on("jpeg") depends_on("pango") depends_on("libtool", type="build") @@ -26,15 +28,21 @@ class Imagemagick(AutotoolsPackage): depends_on("freetype") depends_on("fontconfig") depends_on("libtiff") - depends_on("ghostscript") - depends_on("ghostscript-fonts") + depends_on("ghostscript", when="+ghostscript") + depends_on("ghostscript-fonts", when="+ghostscript") depends_on("libsm") depends_on("pkgconfig", type="build") def configure_args(self): + args = [] spec = self.spec - gs_font_dir = join_path(spec["ghostscript-fonts"].prefix.share, "font") - return ["--with-gs-font-dir={0}".format(gs_font_dir)] + if spec.satisfies("+ghostscript"): + args.append("--with-gslib") + gs_font_dir = spec["ghostscript-fonts"].prefix.share.font + args.append("--with-gs-font-dir={0}".format(gs_font_dir)) + else: + args.append("--without-gslib") + return args @property def libs(self): From 8a7343f97bdd9adfd6ab5bb470e0e1c4e89374f0 Mon Sep 17 00:00:00 2001 From: kent-cheung-arm <40630626+kent-cheung-arm@users.noreply.github.com> Date: Mon, 19 Sep 2022 21:45:43 +0100 Subject: [PATCH 139/241] Added variant to ensure Arm Forge license acceptance (#32635) * Added variant to ensure Arm Forge license acceptance * Update var/spack/repos/builtin/packages/arm-forge/package.py Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> --- .../builtin/packages/arm-forge/package.py | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/arm-forge/package.py b/var/spack/repos/builtin/packages/arm-forge/package.py index fd26c5d509f..61c85810127 100644 --- a/var/spack/repos/builtin/packages/arm-forge/package.py +++ b/var/spack/repos/builtin/packages/arm-forge/package.py @@ -3,6 +3,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os import platform import subprocess @@ -130,6 +131,12 @@ class ArmForge(Package): description='Detect available PMU counters via "forge-probe" during install', ) + variant( + "accept-eula", + default=False, + description="Accept the EULA", + ) + # forge-probe executes with "/usr/bin/env python" depends_on("python@2.7:", type="build", when="+probe") @@ -143,7 +150,7 @@ class ArmForge(Package): "ALLINEA_LICENSE_FILE", "ALLINEA_LICENCE_FILE", ] - license_url = "https://developer.arm.com/tools-and-software/server-and-hpc/help/help-and-tutorials/system-administration/licensing/arm-licence-server" + license_url = "https://developer.arm.com/documentation/101169/latest/Use-Arm-Licence-Server" def url_for_version(self, version): return "https://content.allinea.com/downloads/arm-forge-%s-linux-%s.tar" % ( @@ -151,8 +158,22 @@ def url_for_version(self, version): platform.machine(), ) + @run_before("install") + def abort_without_eula_acceptance(self): + install_example = "spack install arm-forge +accept-eula" + license_terms_path = os.path.join(self.stage.source_path, "license_terms") + if not self.spec.variants["accept-eula"].value: + raise InstallError( + "\n\n\nNOTE:\nUse +accept-eula " + + "during installation " + + "to accept the license terms in:\n" + + " {0}\n".format(os.path.join(license_terms_path, "license_agreement.txt")) + + " {0}\n\n".format(os.path.join(license_terms_path, "supplementary_terms.txt")) + + "Example: '{0}'\n".format(install_example) + ) + def install(self, spec, prefix): - subprocess.call(["./textinstall.sh", "--accept-licence", prefix]) + subprocess.call(["./textinstall.sh", "--accept-license", prefix]) if spec.satisfies("+probe"): probe = join_path(prefix, "bin", "forge-probe") subprocess.call([probe, "--install", "global"]) From 5479f26aa6781d18c20a7af85dbb1711cd2f4e01 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 19 Sep 2022 16:09:52 -0500 Subject: [PATCH 140/241] py-pandas: add v1.5.0 (#32714) --- var/spack/repos/builtin/packages/py-pandas/package.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-pandas/package.py b/var/spack/repos/builtin/packages/py-pandas/package.py index 5db5f0c67a6..cb86bd502cd 100644 --- a/var/spack/repos/builtin/packages/py-pandas/package.py +++ b/var/spack/repos/builtin/packages/py-pandas/package.py @@ -17,6 +17,7 @@ class PyPandas(PythonPackage): maintainers = ["adamjstewart"] + version("1.5.0", sha256="3ee61b881d2f64dd90c356eb4a4a4de75376586cd3c9341c6c0fcaae18d52977") version("1.4.4", sha256="ab6c0d738617b675183e5f28db32b5148b694ad9bba0a40c3ea26d96b431db67") version("1.4.3", sha256="2ff7788468e75917574f080cd4681b27e1a7bf36461fe968b49a87b5a54d007c") version("1.4.2", sha256="92bc1fc585f1463ca827b45535957815b7deb218c549b7c18402c322c7549a12") @@ -67,7 +68,6 @@ class PyPandas(PythonPackage): depends_on("python@3.7.1:", type=("build", "run"), when="@1.2:") depends_on("python@3.6.1:", type=("build", "run"), when="@1:") depends_on("python@3.5.3:", type=("build", "run"), when="@0.25:") - # https://pandas.pydata.org/docs/whatsnew/v1.0.0.html#build-changes depends_on("py-cython@0.29.13:2", type="build", when="@1:") depends_on("py-cython@0.29.16:2", type="build", when="@1.1:") depends_on("py-cython@0.29.21:2", type="build", when="@1.1.3:") @@ -85,6 +85,7 @@ class PyPandas(PythonPackage): depends_on("py-numpy@1.16.5:", type=("build", "run"), when="@1.2:") depends_on("py-numpy@1.17.3:", type=("build", "run"), when="@1.3:") depends_on("py-numpy@1.18.5:", type=("build", "run"), when="@1.4:") + depends_on("py-numpy@1.20.3:", type=("build", "run"), when="@1.5:") depends_on("py-python-dateutil", type=("build", "run")) depends_on("py-python-dateutil@2.6.1:", type=("build", "run"), when="@0.25:") depends_on("py-python-dateutil@2.7.3:", type=("build", "run"), when="@1.1:") @@ -100,9 +101,11 @@ class PyPandas(PythonPackage): depends_on("py-numexpr@2.6.8:", type=("build", "run"), when="@1.2:") depends_on("py-numexpr@2.7.0:", type=("build", "run"), when="@1.3:") depends_on("py-numexpr@2.7.1:", type=("build", "run"), when="@1.4:") + depends_on("py-numexpr@2.7.3:", type=("build", "run"), when="@1.5:") depends_on("py-bottleneck", type=("build", "run")) depends_on("py-bottleneck@1.2.1:", type=("build", "run"), when="@0.25:") depends_on("py-bottleneck@1.3.1:", type=("build", "run"), when="@1.4:") + depends_on("py-bottleneck@1.3.2:", type=("build", "run"), when="@1.5:") # Optional dependencies # https://pandas.pydata.org/pandas-docs/stable/getting_started/install.html#optional-dependencies From 60997a7bc34616406e331a2919deec0bd36893a3 Mon Sep 17 00:00:00 2001 From: Jim Edwards Date: Mon, 19 Sep 2022 15:45:40 -0600 Subject: [PATCH 141/241] add pio2_5_9 to spack package (#32716) --- var/spack/repos/builtin/packages/parallelio/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/parallelio/package.py b/var/spack/repos/builtin/packages/parallelio/package.py index c97e3f1e610..91c2e340d51 100644 --- a/var/spack/repos/builtin/packages/parallelio/package.py +++ b/var/spack/repos/builtin/packages/parallelio/package.py @@ -17,6 +17,7 @@ class Parallelio(CMakePackage): maintainers = ["jedwards4b"] + version("2.5.9", sha256="e5dbc153d8637111de3a51a9655660bf15367d55842de78240dcfc024380553d") version("2_5_8", sha256="f2584fb4310ff7da39d51efbe3f334efd0ac53ae2995e5fc157decccc0570a89") version("2_5_7", sha256="af8af04e41af17f98f2c90b996ef0d8bcd980377e0b35e57b38938c7fdc87cbd") version("2_5_4", sha256="e51dc71683da808a714deddc1a80c2650ce847110383e42f1710f3ba567e7a65") From 0405ed6e9bac382b6201944528cc0680b8beb6e6 Mon Sep 17 00:00:00 2001 From: Sreenivasa Murthy Kolam <67086238+srekolam@users.noreply.github.com> Date: Mon, 19 Sep 2022 20:13:38 -0700 Subject: [PATCH 142/241] Bump up the version for rocm-5.2.1 release (#32195) * Bump up the version for rocm-5.2.1-initial commit * Bump up the version for rocm-5.2.1 release * Bump up the version for rocm-5.2.1 release * correct the PROF_API_HEADER_PATH to include * Bump up the version of rocm-openmp-extras for rocm-5.2.1 release * bump up the version of rocwmma for 5.2.1 --- ...to-usr-bin-rysnc-for-rsync-cmd-5.2.1.patch | 83 +++++++++++++++++++ .../repos/builtin/packages/atmi/package.py | 6 +- .../repos/builtin/packages/comgr/package.py | 2 + .../builtin/packages/hip-rocclr/package.py | 3 + ...e-compiler-rt-linkage-for-host.5.2.1.patch | 71 ++++++++++++++++ .../repos/builtin/packages/hip/package.py | 14 +++- .../repos/builtin/packages/hipblas/package.py | 3 + .../repos/builtin/packages/hipcub/package.py | 2 + .../repos/builtin/packages/hipfft/package.py | 3 + .../repos/builtin/packages/hipfort/package.py | 2 + .../builtin/packages/hipify-clang/package.py | 2 + .../builtin/packages/hipsolver/package.py | 4 +- .../builtin/packages/hipsparse/package.py | 3 + .../builtin/packages/hsa-rocr-dev/package.py | 3 + .../builtin/packages/hsakmt-roct/package.py | 2 + .../builtin/packages/llvm-amdgpu/package.py | 2 + .../builtin/packages/migraphx/package.py | 2 + .../builtin/packages/miopen-hip/package.py | 4 +- .../builtin/packages/miopen-opencl/package.py | 6 +- .../builtin/packages/miopengemm/package.py | 2 + .../builtin/packages/mivisionx/package.py | 5 +- .../builtin/packages/mlirmiopen/package.py | 3 +- .../repos/builtin/packages/rccl/package.py | 5 +- .../repos/builtin/packages/rdc/package.py | 4 +- .../builtin/packages/rocalution/package.py | 3 + .../repos/builtin/packages/rocblas/package.py | 4 + .../repos/builtin/packages/rocfft/package.py | 2 + .../packages/rocm-bandwidth-test/package.py | 2 + .../packages/rocm-clang-ocl/package.py | 2 + .../builtin/packages/rocm-cmake/package.py | 2 + .../builtin/packages/rocm-dbgapi/package.py | 2 + .../packages/rocm-debug-agent/package.py | 3 + .../packages/rocm-device-libs/package.py | 3 + .../builtin/packages/rocm-gdb/package.py | 2 + .../builtin/packages/rocm-opencl/package.py | 4 + .../packages/rocm-openmp-extras/package.py | 11 ++- .../builtin/packages/rocm-smi-lib/package.py | 1 + .../builtin/packages/rocm-tensile/package.py | 3 + .../packages/rocm-validation-suite/package.py | 2 + .../builtin/packages/rocminfo/package.py | 2 + .../repos/builtin/packages/rocprim/package.py | 2 + .../packages/rocprofiler-dev/package.py | 4 +- .../repos/builtin/packages/rocrand/package.py | 2 + .../builtin/packages/rocsolver/package.py | 3 + .../builtin/packages/rocsparse/package.py | 2 + .../builtin/packages/rocthrust/package.py | 2 + .../packages/roctracer-dev-api/package.py | 5 +- .../builtin/packages/roctracer-dev/package.py | 3 + .../repos/builtin/packages/rocwmma/package.py | 3 +- 49 files changed, 294 insertions(+), 16 deletions(-) create mode 100644 var/spack/repos/builtin/packages/atmi/0002-Remove-direct-reference-to-usr-bin-rysnc-for-rsync-cmd-5.2.1.patch create mode 100644 var/spack/repos/builtin/packages/hip/0012-Improve-compilation-without-git-repo-and-remove-compiler-rt-linkage-for-host.5.2.1.patch diff --git a/var/spack/repos/builtin/packages/atmi/0002-Remove-direct-reference-to-usr-bin-rysnc-for-rsync-cmd-5.2.1.patch b/var/spack/repos/builtin/packages/atmi/0002-Remove-direct-reference-to-usr-bin-rysnc-for-rsync-cmd-5.2.1.patch new file mode 100644 index 00000000000..32820267a51 --- /dev/null +++ b/var/spack/repos/builtin/packages/atmi/0002-Remove-direct-reference-to-usr-bin-rysnc-for-rsync-cmd-5.2.1.patch @@ -0,0 +1,83 @@ +From f3d2e44472e2f713d6a3fe7a9cfb0c6007632ad9 Mon Sep 17 00:00:00 2001 +From: sreenivasa murthy kolam +Date: Mon, 15 Aug 2022 22:28:37 +0000 +Subject: [PATCH] Remove direct reference to /usr/bin/rysnc for rsync command + +--- + src/CMakeLists.txt | 4 ++-- + src/device_runtime/CMakeLists.txt | 2 +- + src/runtime/core/CMakeLists.txt | 4 ++-- + src/runtime/interop/hsa/CMakeLists.txt | 2 +- + 4 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index bbd3196..51a8119 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -72,7 +72,7 @@ endif() + # make examples available in local build + add_custom_command( + OUTPUT examples +- COMMAND /usr/bin/rsync -rl ${CMAKE_CURRENT_SOURCE_DIR}/../examples . ++ COMMAND rsync -rl ${CMAKE_CURRENT_SOURCE_DIR}/../examples . + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../examples/* + ) + add_custom_target(example ALL DEPENDS examples) +@@ -80,7 +80,7 @@ add_custom_target(example ALL DEPENDS examples) + # make bin available in local build + add_custom_command( + OUTPUT bin +- COMMAND /usr/bin/rsync -rl ${CMAKE_CURRENT_SOURCE_DIR}/../bin . ++ COMMAND rsync -rl ${CMAKE_CURRENT_SOURCE_DIR}/../bin . + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../bin/* + ) + add_custom_target(script ALL DEPENDS bin) +diff --git a/src/device_runtime/CMakeLists.txt b/src/device_runtime/CMakeLists.txt +index 6688af2..6901e01 100644 +--- a/src/device_runtime/CMakeLists.txt ++++ b/src/device_runtime/CMakeLists.txt +@@ -108,7 +108,7 @@ set (OUTPUT_INC_DIRECTORY ${ATMI_RUNTIME_PATH}/include) + execute_process(COMMAND "/bin/mkdir" "-p" "${OUTPUT_INC_DIRECTORY}") + add_custom_command( + OUTPUT ${OUTPUT_INC_DIRECTORY}/atmi_kl.h +- COMMAND /usr/bin/rsync ${CMAKE_CURRENT_SOURCE_DIR}/../../include/atmi_kl.h ${OUTPUT_INC_DIRECTORY}/atmi_kl.h ++ COMMAND rsync ${CMAKE_CURRENT_SOURCE_DIR}/../../include/atmi_kl.h ${OUTPUT_INC_DIRECTORY}/atmi_kl.h + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../../include/*.h + ) + add_custom_target(device_header ALL DEPENDS ${OUTPUT_INC_DIRECTORY}/atmi_kl.h) +diff --git a/src/runtime/core/CMakeLists.txt b/src/runtime/core/CMakeLists.txt +index 88b3a47..000153a 100644 +--- a/src/runtime/core/CMakeLists.txt ++++ b/src/runtime/core/CMakeLists.txt +@@ -128,13 +128,13 @@ execute_process(COMMAND "/bin/mkdir" "-p" "${OUTPUT_INC_DIRECTORY}") + + add_custom_command( + OUTPUT ${OUTPUT_INC_DIRECTORY}/atmi.h +- COMMAND /usr/bin/rsync ${CMAKE_CURRENT_SOURCE_DIR}/../../../include/atmi.h ${OUTPUT_INC_DIRECTORY}/atmi.h ++ COMMAND rsync ${CMAKE_CURRENT_SOURCE_DIR}/../../../include/atmi.h ${OUTPUT_INC_DIRECTORY}/atmi.h + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../../../include/*.h + ) + + add_custom_command( + OUTPUT ${OUTPUT_INC_DIRECTORY}/atmi_runtime.h +- COMMAND /usr/bin/rsync ${CMAKE_CURRENT_SOURCE_DIR}/../../../include/atmi_runtime.h ${OUTPUT_INC_DIRECTORY}/atmi_runtime.h ++ COMMAND rsync ${CMAKE_CURRENT_SOURCE_DIR}/../../../include/atmi_runtime.h ${OUTPUT_INC_DIRECTORY}/atmi_runtime.h + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../../../include/*.h + ) + +diff --git a/src/runtime/interop/hsa/CMakeLists.txt b/src/runtime/interop/hsa/CMakeLists.txt +index af1012d..c58b716 100644 +--- a/src/runtime/interop/hsa/CMakeLists.txt ++++ b/src/runtime/interop/hsa/CMakeLists.txt +@@ -22,7 +22,7 @@ execute_process(COMMAND "/bin/mkdir" "-p" "${OUTPUT_INC_DIRECTORY}") + + add_custom_command( + OUTPUT ${OUTPUT_INC_DIRECTORY}/atmi_interop_hsa.h +- COMMAND /usr/bin/rsync ${CMAKE_CURRENT_SOURCE_DIR}/../../../../include/atmi_interop_hsa.h ${OUTPUT_INC_DIRECTORY}/atmi_interop_hsa.h ++ COMMAND rsync ${CMAKE_CURRENT_SOURCE_DIR}/../../../../include/atmi_interop_hsa.h ${OUTPUT_INC_DIRECTORY}/atmi_interop_hsa.h + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../../../../include/*.h + ) + +-- +2.18.4 + diff --git a/var/spack/repos/builtin/packages/atmi/package.py b/var/spack/repos/builtin/packages/atmi/package.py index 3fa52448c1b..cd1fe78d94d 100644 --- a/var/spack/repos/builtin/packages/atmi/package.py +++ b/var/spack/repos/builtin/packages/atmi/package.py @@ -20,6 +20,7 @@ class Atmi(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath"] + version("5.2.1", sha256="6b33445aa67444c038cd756f855a58a72dd35db57e7b63da37fe78a8585b982b") version("5.2.0", sha256="33e77905a607734157d46c736c924c7c50b6b13f2b2ddbf711cb08e37f2efa4f") version("5.1.3", sha256="a43448d77705b2b07e1758ffe8035aa6ba146abc2167984e8cb0f1615797b341") version("5.1.0", sha256="6a758f5a8332e6774cd8e14a4e5ce05e43b1e05298d817b4068c35fa1793d333") @@ -106,6 +107,7 @@ class Atmi(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("comgr@" + ver, type="link", when="@" + ver) depends_on("hsa-rocr-dev@" + ver, type="link", when="@" + ver) @@ -117,7 +119,9 @@ class Atmi(CMakePackage): # Removing direct reference to /usr/bin/rysnc for rsync command. patch("0002-Remove-usr-bin-rsync-reference.patch", when="@4.0.0:5.0.0") # Reset the installation path and remove direct reference to rsync. - patch("0002-Remove-usr-bin-rsync-reference-5.2.0.patch", when="@5.0.2:") + patch("0002-Remove-usr-bin-rsync-reference-5.2.0.patch", when="@5.0.2:5.2.0") + # Remove direct reference to /usr/bin/rsync path for rsync command + patch("0002-Remove-direct-reference-to-usr-bin-rysnc-for-rsync-cmd-5.2.1.patch", when="@5.2.1") def cmake_args(self): args = [self.define("ROCM_VERSION", self.spec.version)] diff --git a/var/spack/repos/builtin/packages/comgr/package.py b/var/spack/repos/builtin/packages/comgr/package.py index 69597af24f2..82cbe3d443c 100644 --- a/var/spack/repos/builtin/packages/comgr/package.py +++ b/var/spack/repos/builtin/packages/comgr/package.py @@ -22,6 +22,7 @@ class Comgr(CMakePackage): version("master", branch="amd-stg-open") + version("5.2.1", sha256="ebeaea8e653fc2b9d67d3271be44690ac7876ee679baa01d47863e75362b8c85") version("5.2.0", sha256="5f63fa93739ee9230756ef93c53019474b6cdddea3b588492d785dae1b08c087") version("5.1.3", sha256="3078c10e9a852fe8357712a263ad775b15944e083f93a879935c877511066ac9") version("5.1.0", sha256="1cdcfe5acb768ef50fb0026d4ee7ba01e615251ad3c27bb2593cdcf8c070a894") @@ -118,6 +119,7 @@ class Comgr(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", "master", ]: # llvm libs are linked statically, so this *could* be a build dep diff --git a/var/spack/repos/builtin/packages/hip-rocclr/package.py b/var/spack/repos/builtin/packages/hip-rocclr/package.py index 12f87aa7412..d4ecec51d3a 100644 --- a/var/spack/repos/builtin/packages/hip-rocclr/package.py +++ b/var/spack/repos/builtin/packages/hip-rocclr/package.py @@ -27,6 +27,7 @@ def url_for_version(self, version): return url.format(version) version("master", branch="main") + version("5.2.1", sha256="465ca9fa16869cd89dab8c2d66d9b9e3c14f744bbedaa1d215b0746d77a500ba") version("5.2.0", sha256="37f5fce04348183bce2ece8bac1117f6ef7e710ca68371ff82ab08e93368bafb") version("5.1.3", sha256="ddee63cdc6515c90bab89572b13e1627b145916cb8ede075ef8446cbb83f0a48") version("5.1.0", sha256="f4f265604b534795a275af902b2c814f416434d9c9e16db81b3ed5d062187dfa") @@ -115,6 +116,7 @@ def url_for_version(self, version): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", "master", ]: depends_on("hsakmt-roct@" + ver, when="@" + ver) @@ -137,6 +139,7 @@ def url_for_version(self, version): # Add opencl sources thru the below for d_version, d_shasum in [ + ("5.2.1", "eb4ff433f8894ca659802f81792646034f8088b47aca6ad999292bcb8d6381d5"), ("5.2.0", "80f73387effdcd987a150978775a87049a976aa74f5770d4420847b004dd59f0"), ("5.1.3", "44a7fac721abcd93470e1a7e466bdea0c668c253dee93e4f1ea9a72dbce4ba31"), ("5.1.0", "362d81303048cf7ed5d2f69fb65ed65425bc3da4734fff83e3b8fbdda51b0927"), diff --git a/var/spack/repos/builtin/packages/hip/0012-Improve-compilation-without-git-repo-and-remove-compiler-rt-linkage-for-host.5.2.1.patch b/var/spack/repos/builtin/packages/hip/0012-Improve-compilation-without-git-repo-and-remove-compiler-rt-linkage-for-host.5.2.1.patch new file mode 100644 index 00000000000..e332f90ee4e --- /dev/null +++ b/var/spack/repos/builtin/packages/hip/0012-Improve-compilation-without-git-repo-and-remove-compiler-rt-linkage-for-host.5.2.1.patch @@ -0,0 +1,71 @@ +From 526da7995578ef12908a297ae6fef4db0488253e Mon Sep 17 00:00:00 2001 +From: sreenivasa murthy kolam +Date: Tue, 16 Aug 2022 04:09:46 +0000 +Subject: [PATCH] Improve compilation without git repo and remove compiler rt + linkage-for-host + +--- + bin/hipcc.pl | 3 ++- + hipamd/CMakeLists.txt | 11 ++++++++--- + hipamd/hip-config.cmake.in | 1 - + 3 files changed, 10 insertions(+), 5 deletions(-) + +diff --git a/bin/hipcc.pl b/bin/hipcc.pl +index 1ef3a90..995abe5 100755 +--- a/bin/hipcc.pl ++++ b/bin/hipcc.pl +@@ -605,7 +605,8 @@ if($HIP_PLATFORM eq "amd"){ + $targetsStr = $ENV{HCC_AMDGPU_TARGET}; + } elsif (not $isWindows) { + # Else try using rocm_agent_enumerator +- $ROCM_AGENT_ENUM = "${ROCM_PATH}/bin/rocm_agent_enumerator"; ++ $ROCMINFO_PATH = $ENV{'ROCMINFO_PATH'} // $ROCM_PATH; ++ $ROCM_AGENT_ENUM = "${ROCMINFO_PATH}/bin/rocm_agent_enumerator"; + $targetsStr = `${ROCM_AGENT_ENUM} -t GPU`; + $targetsStr =~ s/\n/,/g; + } +diff --git a/hipamd/CMakeLists.txt b/hipamd/CMakeLists.txt +index f425504..831b192 100755 +--- a/hipamd/CMakeLists.txt ++++ b/hipamd/CMakeLists.txt +@@ -89,9 +89,14 @@ list(GET VERSION_LIST 1 HIP_VERSION_MINOR) + list(GET VERSION_LIST 2 HIP_VERSION_PATCH_GITHASH) + string(REPLACE "-" ";" VERSION_LIST ${HIP_VERSION_PATCH_GITHASH}) + list(GET VERSION_LIST 0 HIP_VERSION_PATCH) +-set(HIP_VERSION_GITDATE 0) ++if (IS_DIRECTORY "${PROJECT_SOURCE_DIR}/.git") ++ find_package(Git) ++endif() ++set(HIP_VERSION_GITDATE "0") ++set(HIP_VERSION_GITHASH "0") ++set(HIP_VERSION_BUILD_ID 0) ++set(HIP_VERSION_BUILD_NAME "") + +-find_package(Git) + + # FIXME: Two different version strings used. + # Below we use UNIX commands, not compatible with Windows. +@@ -183,7 +188,7 @@ set (HIP_LIB_VERSION_MINOR ${HIP_VERSION_MINOR}) + if (${ROCM_PATCH_VERSION} ) + set (HIP_LIB_VERSION_PATCH ${ROCM_PATCH_VERSION}) + else () +- set (HIP_LIB_VERSION_PATCH ${HIP_VERSION_PATCH}-${HIP_VERSION_GITHASH}) ++ set (HIP_LIB_VERSION_PATCH ${HIP_VERSION_PATCH}) + endif () + set (HIP_LIB_VERSION_STRING "${HIP_LIB_VERSION_MAJOR}.${HIP_LIB_VERSION_MINOR}.${HIP_LIB_VERSION_PATCH}") + if (DEFINED ENV{ROCM_RPATH}) +diff --git a/hipamd/hip-config.cmake.in b/hipamd/hip-config.cmake.in +index ba3e75c..02dd586 100755 +--- a/hipamd/hip-config.cmake.in ++++ b/hipamd/hip-config.cmake.in +@@ -290,7 +290,6 @@ if(HIP_COMPILER STREQUAL "clang") + if(CLANGRT_BUILTINS-NOTFOUND) + message(FATAL_ERROR "clangrt builtins lib not found") + else() +- set_property(TARGET hip::host APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${CLANGRT_BUILTINS}") + set_property(TARGET hip::device APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${CLANGRT_BUILTINS}") + endif() + endif() +-- +2.18.4 + diff --git a/var/spack/repos/builtin/packages/hip/package.py b/var/spack/repos/builtin/packages/hip/package.py index fe0292a4e36..498057439a1 100644 --- a/var/spack/repos/builtin/packages/hip/package.py +++ b/var/spack/repos/builtin/packages/hip/package.py @@ -25,6 +25,7 @@ class Hip(CMakePackage): libraries = ["libamdhip64"] version("master", branch="master") + version("5.2.1", sha256="7d4686a2f8a9124bb21f7f3958e451c57019f48a0cbb42ffdc56ed02860a46c3") version("5.2.0", sha256="a6e0515d4d25865c037b546035df9c51f0882cd2700e759c266ff7e199f37c3a") version("5.1.3", sha256="ce755ee6e407904eba3f6b3c9efcdd48eb4f58a26b06e1892166d05f19a75973") version("5.1.0", sha256="47e542183699f4005c48631d96f6a1fbdf27e07ad3402ccd7b5f707c2c602266") @@ -126,6 +127,7 @@ class Hip(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hsakmt-roct@" + ver, when="@" + ver) depends_on("hsa-rocr-dev@" + ver, when="@" + ver) @@ -144,6 +146,7 @@ class Hip(CMakePackage): # Add hip-amd sources thru the below for d_version, d_shasum in [ + ("5.2.1", "4feaa3883cbc54ddcd5d2d5becbe0f3fe3edd5b3b468dc73b5104893029eefac"), ("5.2.0", "8774958bebc29a4b7eb9dc2d38808d79d9a24bf9c1f44e801ff99d2d5ba82240"), ("5.1.3", "707f2217f0e7aeb62d7b76830a271056d665542bf5f7a54e40adf4d5f299ca93"), ("5.1.0", "77984854bfe00f938353fe4c7604d09967eaf5c609d05f1e6423d3c3dea86e61"), @@ -165,6 +168,7 @@ class Hip(CMakePackage): ) # Add opencl sources thru the below for d_version, d_shasum in [ + ("5.2.1", "eb4ff433f8894ca659802f81792646034f8088b47aca6ad999292bcb8d6381d5"), ("5.2.0", "80f73387effdcd987a150978775a87049a976aa74f5770d4420847b004dd59f0"), ("5.1.3", "44a7fac721abcd93470e1a7e466bdea0c668c253dee93e4f1ea9a72dbce4ba31"), ("5.1.0", "362d81303048cf7ed5d2f69fb65ed65425bc3da4734fff83e3b8fbdda51b0927"), @@ -185,6 +189,7 @@ class Hip(CMakePackage): when="@{0}".format(d_version), ) for d_version, d_shasum in [ + ("5.2.1", "465ca9fa16869cd89dab8c2d66d9b9e3c14f744bbedaa1d215b0746d77a500ba"), ("5.2.0", "37f5fce04348183bce2ece8bac1117f6ef7e710ca68371ff82ab08e93368bafb"), ("5.1.3", "ddee63cdc6515c90bab89572b13e1627b145916cb8ede075ef8446cbb83f0a48"), ("5.1.0", "f4f265604b534795a275af902b2c814f416434d9c9e16db81b3ed5d062187dfa"), @@ -228,7 +233,12 @@ class Hip(CMakePackage): patch( "0012-Improve-compilation-without-git-repo-and-remove-compiler-rt-linkage-for-host" ".5.2.0.patch", - when="@5.2.0:", + when="@5.2.0", + ) + patch( + "0012-Improve-compilation-without-git-repo-and-remove-compiler-rt-linkage-for-host" + ".5.2.1.patch", + when="@5.2.1", ) # See https://github.com/ROCm-Developer-Tools/HIP/pull/2141 @@ -462,7 +472,7 @@ def cmake_args(self): args = [ self.define( "PROF_API_HEADER_PATH", - join_path(self.spec["roctracer-dev-api"].prefix, "roctracer", "inc", "ext"), + join_path(self.spec["roctracer-dev-api"].prefix, "roctracer", "include", "ext"), ), self.define("HIP_COMPILER", "clang"), self.define("HSA_PATH", self.spec["hsa-rocr-dev"].prefix), diff --git a/var/spack/repos/builtin/packages/hipblas/package.py b/var/spack/repos/builtin/packages/hipblas/package.py index d1cf39bff77..d3067dd242a 100644 --- a/var/spack/repos/builtin/packages/hipblas/package.py +++ b/var/spack/repos/builtin/packages/hipblas/package.py @@ -22,6 +22,8 @@ class Hipblas(CMakePackage): version("develop", branch="develop") version("master", branch="master") + + version("5.2.1", sha256="ccae36b118b7a1eb4b2f7d65fb163f54ab9c5cf774dbe2ec60971d4f78ae8308") version("5.2.0", sha256="5e9091dc4ef83896f5c3bc5ade1cb5db8e1a6afc451dbba4da19d8a7ec2b6f29") version("5.1.3", sha256="f0fdaa851971b41b48ec2e7d640746fbd6f9f433da2020c5fd95c91a7473d9e1") version("5.1.0", sha256="22faba3828e50a4c4e22f569a7d6441c797a11db1d472619c01d3515a3275e92") @@ -128,6 +130,7 @@ def check(self): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocsolver@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hipcub/package.py b/var/spack/repos/builtin/packages/hipcub/package.py index 8aa066bc3e6..edef6a825cd 100644 --- a/var/spack/repos/builtin/packages/hipcub/package.py +++ b/var/spack/repos/builtin/packages/hipcub/package.py @@ -16,6 +16,7 @@ class Hipcub(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath"] + version("5.2.1", sha256="07b34d8cdf885838dde264c2a70044505e7b9632cb6efbdb52e2569f95112970") version("5.2.0", sha256="ac4dc2310f0eb657e1337c93d8cc4a5d8396f9544a7336eeceb455678a1f9139") version("5.1.3", sha256="dc75640689b6a5e15dd3acea643266bdf114ea63efc60be8272f484cf8f04494") version("5.1.0", sha256="b30d51fc5fca2584f0c9a6fa8dafc9fbdda96a3acff30288e49b397f8842f705") @@ -103,6 +104,7 @@ class Hipcub(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocprim@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hipfft/package.py b/var/spack/repos/builtin/packages/hipfft/package.py index b3ac42a4381..fee013748e3 100644 --- a/var/spack/repos/builtin/packages/hipfft/package.py +++ b/var/spack/repos/builtin/packages/hipfft/package.py @@ -22,6 +22,8 @@ class Hipfft(CMakePackage): maintainers = ["renjithravindrankannath", "srekolam"] version("master", branch="master") + + version("5.2.1", sha256="6c8fbace2864ca992b2fca9dc8d0bb4488aef62045acdfcf249d53dd005ebd35") version("5.2.0", sha256="ec37edcd61837281c403802ccc1cb01ec3fa3ba135b5ab16617961b66d4cc3e2") version("5.1.3", sha256="c26fa64499293b25d0686bed04feb61378c878a4bb4a6d559e6cb7be1f6bf2ec") version("5.1.0", sha256="1bac7761c055355216cd262cdc0450aabb383addcb739b56ba849b2e6e013fa5") @@ -71,6 +73,7 @@ class Hipfft(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) depends_on("hip@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hipfort/package.py b/var/spack/repos/builtin/packages/hipfort/package.py index cac817d371b..fb6553cc801 100644 --- a/var/spack/repos/builtin/packages/hipfort/package.py +++ b/var/spack/repos/builtin/packages/hipfort/package.py @@ -16,6 +16,7 @@ class Hipfort(CMakePackage): maintainers = ["cgmb", "srekolam", "renjithravindrankannath"] + version("5.2.1", sha256="ed53c9914d326124482751b81c4a353c6e64e87c1111124169a33513a3c49b42") version("5.2.0", sha256="a0af1fe62757993600a41af6bb6c4b8c6cfdfba650389645ac1f995f7623785c") version("5.1.3", sha256="8f8849d8d0972366bafa41be35cf6a7a59480ed584d1ddff39768cb14247e9d4") version("5.1.0", sha256="1ddd46c00bb6bcd539a921d6a94d858f4e4408a35cb6910186c7517f375ae8ab") @@ -91,6 +92,7 @@ class Hipfort(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hip@" + ver, type="build", when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hipify-clang/package.py b/var/spack/repos/builtin/packages/hipify-clang/package.py index 51f2f8817d2..425b16d1681 100644 --- a/var/spack/repos/builtin/packages/hipify-clang/package.py +++ b/var/spack/repos/builtin/packages/hipify-clang/package.py @@ -19,6 +19,7 @@ class HipifyClang(CMakePackage): version("master", branch="master") + version("5.2.1", sha256="4d658d00b219f7ef40e832da3680852aeb4c258c0a114f1779fa4cda99ee23b1") version("5.2.0", sha256="dcd5f44daceb984bb654a209e78debf81e1cdeaf9202444a1e110b45ad6c3f4f") version("5.1.3", sha256="6354b08b8ab2f4c481398fb768652bae00bb78c4cec7a11d5f6c7e4cb831ddf1") version("5.1.0", sha256="ba792294cbdcc880e0f02e38ee352dff8d4a2c183430e13d1c5ed176bd46cfc5") @@ -107,6 +108,7 @@ class HipifyClang(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", "master", ]: depends_on("llvm-amdgpu@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hipsolver/package.py b/var/spack/repos/builtin/packages/hipsolver/package.py index 6f81b1bea7e..a600ed64560 100644 --- a/var/spack/repos/builtin/packages/hipsolver/package.py +++ b/var/spack/repos/builtin/packages/hipsolver/package.py @@ -26,6 +26,8 @@ class Hipsolver(CMakePackage): version("develop", branch="develop") version("master", branch="master") + + version("5.2.1", sha256="e000b08cf7bfb5f8f6d65d163ebeeb3274172b9f474228b810bde5e6f87f2b37") version("5.2.0", sha256="96927410e0a2cc0f50172604ef6437e15d2cf4b62d22b2035f13aae21f43dc82") version("5.1.3", sha256="96faa799a2db8078b72f9c3b5c199179875a7c20dc1064371b22a6a63397c145") version("5.1.0", sha256="697ba2b2814e7ac6f79680e6455b4b5e0def1bee2014b6940f47be7d13c0ae74") @@ -51,7 +53,7 @@ class Hipsolver(CMakePackage): depends_on("rocblas@" + ver, when="@" + ver) depends_on("rocsolver@" + ver, when="@" + ver) - for ver in ["4.5.0", "4.5.2", "5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0"]: + for ver in ["4.5.0", "4.5.2", "5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0", "5.2.1"]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocblas@" + ver, when="@" + ver) depends_on("rocsolver@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hipsparse/package.py b/var/spack/repos/builtin/packages/hipsparse/package.py index 3b25234a704..fe74d264862 100644 --- a/var/spack/repos/builtin/packages/hipsparse/package.py +++ b/var/spack/repos/builtin/packages/hipsparse/package.py @@ -20,6 +20,7 @@ class Hipsparse(CMakePackage): maintainers = ["cgmb", "srekolam", "renjithravindrankannath", "haampie"] libraries = ["libhipsparse"] + version("5.2.1", sha256="7b8e4ff264285ae5aabb3c5c2b38bf28f90b2af44efb0398fcf13ffc24bc000a") version("5.2.0", sha256="4fdab6ec953c6d2d000687c5979077deafd37208cd722554b5a6ede1e5ba170c") version("5.1.3", sha256="6e6a0752654f0d391533df8cedf4b630a78ad34c99087741520c582963ce1602") version("5.1.0", sha256="f41329534f2ff477a0db6b7f77a72bb062f117800970c122d676db8b207ce80b") @@ -106,6 +107,7 @@ class Hipsparse(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) depends_on("hip@" + ver, when="@" + ver) @@ -126,6 +128,7 @@ class Hipsparse(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("rocprim@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py b/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py index 23a71e25ae1..b1ccaf7f48b 100644 --- a/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py +++ b/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py @@ -24,6 +24,8 @@ class HsaRocrDev(CMakePackage): libraries = ["libhsa-runtime64"] version("master", branch="master") + + version("5.2.1", sha256="448a7409bdc6618332a42b9503122996f26b91768140b710ba99bff8a8c03dd9") version("5.2.0", sha256="529e49693dd9f6459586dd0a26f14dd77dbdf8c0b45fb54830b294eba7babd27") version("5.1.3", sha256="479340ec34cdffbbdb1002c85a47d1fccd23e8394631a1f001ef6130be08287d") version("5.1.0", sha256="a5f7245059c3d28dbc037e1e6fa3f09084e29147096dd61f7ce5560291ab330f") @@ -116,6 +118,7 @@ class HsaRocrDev(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", "master", ]: depends_on("hsakmt-roct@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hsakmt-roct/package.py b/var/spack/repos/builtin/packages/hsakmt-roct/package.py index 45a63102556..b838ce55659 100644 --- a/var/spack/repos/builtin/packages/hsakmt-roct/package.py +++ b/var/spack/repos/builtin/packages/hsakmt-roct/package.py @@ -20,6 +20,8 @@ class HsakmtRoct(CMakePackage): maintainers = ["srekolam", "arjun-raj-kuppala", "renjithravindrankannath"] version("master", branch="master") + + version("5.2.1", sha256="13c4a6748c4ae70f87869f10fda101d67c9dbaecf040687f7f5d9bb8b6d0506c") version("5.2.0", sha256="3797cb0eafbec3fd3d4a2b53f789eb8cdbab30729f13dbcca0a10bc1bafd2187") version("5.1.3", sha256="3c66b1aa7451571ce8bee10e601d34b93c9416b9be476610ee5685dbad81034a") version("5.1.0", sha256="032717e80b1aefed59f11399e575564ee86ee7c125e889f7c79c2afdfab1eb93") diff --git a/var/spack/repos/builtin/packages/llvm-amdgpu/package.py b/var/spack/repos/builtin/packages/llvm-amdgpu/package.py index 13cbcb18c54..454e7f77ef2 100644 --- a/var/spack/repos/builtin/packages/llvm-amdgpu/package.py +++ b/var/spack/repos/builtin/packages/llvm-amdgpu/package.py @@ -21,6 +21,7 @@ class LlvmAmdgpu(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath", "haampie"] version("master", branch="amd-stg-open") + version("5.2.1", sha256="3644e927d943d61e22672422591c47a62ff83e3d87ced68439822156d8f79abf") version("5.2.0", sha256="0f892174111b78a02d1a00f8f46d9f80b9abb95513a7af38ecf2a5a0882fe87f") version("5.1.3", sha256="d236a2064363c0278f7ba1bb2ff1545ee4c52278c50640e8bb2b9cfef8a2f128") version("5.1.0", sha256="db5d45c4a7842a908527c1b7b8d4a40c688225a41d23cfa382eab23edfffdd10") @@ -144,6 +145,7 @@ class LlvmAmdgpu(CMakePackage): # Add device libs sources so they can be an external LLVM project for d_version, d_shasum in [ + ("5.2.1", "e5855387ce73ed483ed0d03dbfef31f297c6ca66cf816f6816fd5ee373fc8225"), ("5.2.0", "901674bc941115c72f82c5def61d42f2bebee687aefd30a460905996f838e16c"), ("5.1.3", "c41958560ec29c8bf91332b9f668793463904a2081c330c0d828bf2f91d4f04e"), ("5.1.0", "47dbcb41fb4739219cadc9f2b5f21358ed2f9895ce786d2f7a1b2c4fd044d30f"), diff --git a/var/spack/repos/builtin/packages/migraphx/package.py b/var/spack/repos/builtin/packages/migraphx/package.py index 9da2a561076..0e2cc57cdd4 100644 --- a/var/spack/repos/builtin/packages/migraphx/package.py +++ b/var/spack/repos/builtin/packages/migraphx/package.py @@ -19,6 +19,7 @@ class Migraphx(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["libmigraphx"] + version("5.2.1", sha256="300d990e1b92ad27c3eba3e94ef34538730ca9556398b8b9f7d61d28bf66c57d") version("5.2.0", sha256="33afcdf52c6e0e3a2f939fcf30e87f712b8e8ef3633a3dc03a19fea359704925") version("5.1.3", sha256="686e068774500a46b6e6488370bbf5bd0bba6d19ecdb00636f951704d19c9ef2") version("5.1.0", sha256="6398efaef18a74f2a475aa21bd34bc7c077332a430ee3f6ba4fde6e6a6aa9f89") @@ -127,6 +128,7 @@ def url_for_version(self, version): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) depends_on("hip@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/miopen-hip/package.py b/var/spack/repos/builtin/packages/miopen-hip/package.py index 83880e3eae9..1d861e7f4de 100644 --- a/var/spack/repos/builtin/packages/miopen-hip/package.py +++ b/var/spack/repos/builtin/packages/miopen-hip/package.py @@ -20,6 +20,7 @@ class MiopenHip(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["libMIOpen"] + version("5.2.1", sha256="0977a8876d41bbd2fa268341c93892f35878d7efc1711194ad87582f877ff500") version("5.2.0", sha256="5fda69426e81df9f8fb6658e579176b9c4fcce3516fc8488d3cfd2b6f6f2b3b4") version("5.1.3", sha256="510461f5c5bdbcf8dc889099d1e5960b9f84bd845a9fc9154588a9898c701c1d") version("5.1.0", sha256="bb50201334d68addf153b84b88ab803027c4913d71bdbda6f5ccde3f672f6fdd") @@ -118,13 +119,14 @@ class MiopenHip(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) depends_on("hip@" + ver, when="@" + ver) depends_on("rocm-clang-ocl@" + ver, when="@" + ver) depends_on("rocblas@" + ver, when="@" + ver) - for ver in ["5.1.0", "5.1.3", "5.2.0"]: + for ver in ["5.1.0", "5.1.3", "5.2.0", "5.2.1"]: depends_on("mlirmiopen@" + ver, when="@" + ver) def setup_build_environment(self, env): diff --git a/var/spack/repos/builtin/packages/miopen-opencl/package.py b/var/spack/repos/builtin/packages/miopen-opencl/package.py index c31488b031b..446bda73057 100644 --- a/var/spack/repos/builtin/packages/miopen-opencl/package.py +++ b/var/spack/repos/builtin/packages/miopen-opencl/package.py @@ -20,6 +20,7 @@ class MiopenOpencl(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["libMIOpen"] + version("5.2.1", sha256="0977a8876d41bbd2fa268341c93892f35878d7efc1711194ad87582f877ff500") version("5.2.0", sha256="5fda69426e81df9f8fb6658e579176b9c4fcce3516fc8488d3cfd2b6f6f2b3b4") version("5.1.3", sha256="510461f5c5bdbcf8dc889099d1e5960b9f84bd845a9fc9154588a9898c701c1d") version("5.1.0", sha256="bb50201334d68addf153b84b88ab803027c4913d71bdbda6f5ccde3f672f6fdd") @@ -116,9 +117,9 @@ class MiopenOpencl(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) - depends_on("hip@" + ver, when="@" + ver) depends_on("rocm-opencl@" + ver, when="@" + ver) for ver in [ @@ -138,10 +139,11 @@ class MiopenOpencl(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("miopengemm@" + ver, when="@" + ver) - for ver in ["5.1.0", "5.1.3", "5.2.0"]: + for ver in ["5.1.0", "5.1.3", "5.2.0", "5.2.1"]: depends_on("mlirmiopen@" + ver, when="@" + ver) @classmethod diff --git a/var/spack/repos/builtin/packages/miopengemm/package.py b/var/spack/repos/builtin/packages/miopengemm/package.py index f7633ed7ef6..af15ca7dbd9 100644 --- a/var/spack/repos/builtin/packages/miopengemm/package.py +++ b/var/spack/repos/builtin/packages/miopengemm/package.py @@ -26,6 +26,7 @@ def url_for_version(self, version): url = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM/archive/rocm-{0}.tar.gz" return url.format(version) + version("5.2.1", sha256="9cea190ee0a6645b6d3ce3e136a8e7d07cf4044e98014ccc82b5e5f8b468b1c1") version("5.2.0", sha256="10458fb07b56a7fbe165595d588b7bf5f1300c57bda2f3133c3687c7bae39ea8") version("5.1.3", sha256="c70fc9e2a6d47356a612e24f5757bf16fdf26e671bd53a0975c1a0978da740b6") version("5.1.0", sha256="e2b20cdc20a745bcb7a554852e6b4bd39274c7dcc13fc19a81a282fb4dfa475f") @@ -112,6 +113,7 @@ def url_for_version(self, version): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("rocm-cmake@" + ver, type="build", when="@" + ver) depends_on("rocm-opencl@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/mivisionx/package.py b/var/spack/repos/builtin/packages/mivisionx/package.py index 430fbf73068..625e4914fc0 100644 --- a/var/spack/repos/builtin/packages/mivisionx/package.py +++ b/var/spack/repos/builtin/packages/mivisionx/package.py @@ -25,6 +25,7 @@ def url_for_version(self, version): url = "https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-{0}.tar.gz" return url.format(version) + version("5.2.1", sha256="201996b31f59a8d5e4cc3f17d17a5b81158a34d2a1c833b65ccc3dceb21d176f") version("5.2.0", sha256="fee620a1edd3bce18b2cec9ef26ec2afe0a85d6da8a37ed713ab0d1342382503") version("5.1.3", sha256="62591d5caedc13832c3ccef629a88d9c2a43c884daad1124ddcb9c5f7d5470e9") version("5.1.0", sha256="e082415cc2fb859c53a6d6e5d72ca4529f6b4d56a4abe274dc374faaa5910513") @@ -146,6 +147,7 @@ def flag_handler(self, name, flags): depends_on("miopen-opencl@3.5.0", when="@1.7") depends_on("miopengemm@1.1.6", when="@1.7") depends_on("openssl", when="@4.0.0:") + conflicts("^cmake@3.22:", when="@:5.0.0") for ver in [ @@ -165,11 +167,12 @@ def flag_handler(self, name, flags): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("rocm-opencl@" + ver, when="@" + ver) depends_on("miopengemm@" + ver, when="@" + ver) depends_on("miopen-opencl@" + ver, when="@" + ver) - for ver in ["4.5.0", "4.5.2", "5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0"]: + for ver in ["4.5.0", "4.5.2", "5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0", "5.2.1"]: depends_on("miopen-hip@" + ver, when="@" + ver) def cmake_args(self): diff --git a/var/spack/repos/builtin/packages/mlirmiopen/package.py b/var/spack/repos/builtin/packages/mlirmiopen/package.py index f76579cf89b..3a055d5e4c6 100644 --- a/var/spack/repos/builtin/packages/mlirmiopen/package.py +++ b/var/spack/repos/builtin/packages/mlirmiopen/package.py @@ -17,6 +17,7 @@ class Mlirmiopen(CMakePackage): maintainers = ["srekolam"] + version("5.2.1", sha256="912eed29ceff038ae537aeb2bc70abdef6d05f3143862c4efe3513e9e9ca2e8d") version("5.2.0", sha256="546121f203e7787d3501fbaf6673bdbeefbb39e0446b02c480454338362a1f01") version("5.1.3", sha256="936f92707ffe9a1973728503db6365bb7f14e5aeccfaef9f0924e54d25080c69") version("5.1.0", sha256="56dab11877295784cbb754c10bf2bd6535a3dfea31ec0b97ffe77b94115109dc") @@ -37,7 +38,7 @@ class Mlirmiopen(CMakePackage): depends_on("half") depends_on("pkgconfig", type="build") - for ver in ["5.1.0", "5.1.3", "5.2.0"]: + for ver in ["5.1.0", "5.1.3", "5.2.0", "5.2.1"]: depends_on("hip@" + ver, when="@" + ver) depends_on("llvm-amdgpu@" + ver, when="@" + ver) depends_on("hsa-rocr-dev@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rccl/package.py b/var/spack/repos/builtin/packages/rccl/package.py index c9f3ae39f21..119ab751df5 100644 --- a/var/spack/repos/builtin/packages/rccl/package.py +++ b/var/spack/repos/builtin/packages/rccl/package.py @@ -22,6 +22,7 @@ class Rccl(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["librccl"] + version("5.2.1", sha256="cfd17dc003f19900e44928d81111570d3720d4905321f2a18c909909c4bee822") version("5.2.0", sha256="6ee3a04da0d16eb53f768a088633a7d8ecc4416a2d0c07f7ba8426ab7892b060") version("5.1.3", sha256="56491257f27b48bf85f4b91434a2a6e49a448337c889db181b02c8a4a260a4bc") version("5.1.0", sha256="02b0180857e615326f9cab775573436b9162899ad8e526830f54392b8a51b1f5") @@ -112,6 +113,7 @@ class Rccl(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) depends_on("hip@" + ver, when="@" + ver) @@ -135,9 +137,10 @@ class Rccl(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("numactl@2:", when="@" + ver) - for ver in ["4.5.0", "4.5.2", "5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0"]: + for ver in ["4.5.0", "4.5.2", "5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0", "5.2.1"]: depends_on("rocm-smi-lib@" + ver, when="@" + ver) @classmethod diff --git a/var/spack/repos/builtin/packages/rdc/package.py b/var/spack/repos/builtin/packages/rdc/package.py index 03c1e206a11..eecaf119d4d 100644 --- a/var/spack/repos/builtin/packages/rdc/package.py +++ b/var/spack/repos/builtin/packages/rdc/package.py @@ -24,6 +24,7 @@ def url_for_version(self, version): url = "https://github.com/RadeonOpenCompute/rdc/archive/rocm-{0}.tar.gz" return url.format(version) + version("5.2.1", sha256="84b3c3754b8c9732ee6d00d37881591d3d6876feb8f29746d9eb18faea7ad035") version("5.2.0", sha256="2f35f74485e783f56ea724a7c69ce825f181fcdbe89de453d97ce6a3d3176ae0") version("5.1.3", sha256="ac3e594d7b245c787d6d9b63f551ca898d4d9403fbec0e4502f9970575e031b8") version("5.1.0", sha256="3cf58cb07ef241b3b73b23af83b6477194884feba642584a491e67deeceff038") @@ -101,10 +102,11 @@ def url_for_version(self, version): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("rocm-smi-lib@" + ver, type=("build", "link"), when="@" + ver) - for ver in ["5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0"]: + for ver in ["5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0", "5.2.1"]: depends_on("hsa-rocr-dev@" + ver, when="@" + ver) def patch(self): diff --git a/var/spack/repos/builtin/packages/rocalution/package.py b/var/spack/repos/builtin/packages/rocalution/package.py index 6b6fb7ef99f..9b092ece6ce 100644 --- a/var/spack/repos/builtin/packages/rocalution/package.py +++ b/var/spack/repos/builtin/packages/rocalution/package.py @@ -24,6 +24,7 @@ class Rocalution(CMakePackage): maintainers = ["cgmb", "srekolam", "renjithravindrankannath"] libraries = ["librocalution_hip"] + version("5.2.1", sha256="f246bd5b5d1b5821c29b566610a1c1d5c5cc361e0e5c373b8b04168b05e9b26f") version("5.2.0", sha256="a5aac471bbec87d019ad7c6db779c73327ad40ecdea09dc5ab2106e62cd6b7eb") version("5.1.3", sha256="7febe8179f120cbe58ea255bc233ad5d1b4c106f3934eb8e670135a8b7bd09c7") version("5.1.0", sha256="d9122189103ebafe7ec5aeb50e60f3e02af5c2747021f9071aab91e7f875c29e") @@ -111,6 +112,7 @@ class Rocalution(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocprim@" + ver, when="@" + ver) @@ -141,6 +143,7 @@ class Rocalution(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: for tgt in itertools.chain(["auto"], amdgpu_targets): depends_on( diff --git a/var/spack/repos/builtin/packages/rocblas/package.py b/var/spack/repos/builtin/packages/rocblas/package.py index 32958a16cf2..82699574f30 100644 --- a/var/spack/repos/builtin/packages/rocblas/package.py +++ b/var/spack/repos/builtin/packages/rocblas/package.py @@ -21,6 +21,8 @@ class Rocblas(CMakePackage): version("develop", branch="develop") version("master", branch="master") + + version("5.2.1", sha256="6be804ba8d9e491a85063c220cd0ddbf3d13e3b481eee31041c35a938723f4c6") version("5.2.0", sha256="b178b7db5f0af55b21b5f744b8825f5e002daec69b4688e50df2bca2fac155bd") version("5.1.3", sha256="915374431db8f0cecdc2bf318a0ad33c3a8eceedc461d7a06b92ccb02b07313c") version("5.1.0", sha256="efa0c424b5ada697314aa8a78c19c93ade15f1612c4bfc8c53d71d1c9719aaa3") @@ -142,6 +144,7 @@ def check(self): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("llvm-amdgpu@" + ver, type="build", when="@" + ver) @@ -178,6 +181,7 @@ def check(self): ("@5.1.0", "ea38f8661281a37cd81c96cc07868e3f07d2c4da"), ("@5.1.3", "ea38f8661281a37cd81c96cc07868e3f07d2c4da"), ("@5.2.0", "9ca08f38c4c3bfe6dfa02233637e7e3758c7b6db"), + ("@5.2.1", "9ca08f38c4c3bfe6dfa02233637e7e3758c7b6db"), ]: resource( name="Tensile", diff --git a/var/spack/repos/builtin/packages/rocfft/package.py b/var/spack/repos/builtin/packages/rocfft/package.py index 6458b488037..293d784482e 100644 --- a/var/spack/repos/builtin/packages/rocfft/package.py +++ b/var/spack/repos/builtin/packages/rocfft/package.py @@ -19,6 +19,7 @@ class Rocfft(CMakePackage): maintainers = ["cgmb", "srekolam", "renjithravindrankannath", "haampie"] libraries = ["librocfft"] + version("5.2.1", sha256="6302349b6cc610a9a939377e2c7ffba946656a8d43f2e438ff0b3088f0f963ad") version("5.2.0", sha256="ebba280b7879fb4bc529a68072b98d4e815201f90d24144d672094bc241743d4") version("5.1.3", sha256="b4fcd03c1b07d465bb307ec33cc7fb50036dff688e497c5e52b2dec37f4cb618") version("5.1.0", sha256="dc11c9061753ae43a9d5db9c4674aa113a8adaf50818b2701cbb940894147f68") @@ -120,6 +121,7 @@ def check(self): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py b/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py index 08d21085bd2..1467eb6ddeb 100644 --- a/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py +++ b/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py @@ -19,6 +19,7 @@ class RocmBandwidthTest(CMakePackage): version("master", branch="master") + version("5.2.1", sha256="ebdf868bef8ab6c7f32775ba6eab85cf3e078af1fc1b1a11fdbaad777f37a190") version("5.2.0", sha256="046f2a6984c62899f57a557490136fbe7ab28e2fd334750abac71b03609226ef") version("5.1.3", sha256="6a6e7fb998c886951db75dcf34dca523d9caaff8d0ccf2b7431504a1808b1ff3") version("5.1.0", sha256="18fe51f0ba61760fc89ffc81f737fd4fa20fb4b00df3f35145be77c3e0a6162b") @@ -104,6 +105,7 @@ class RocmBandwidthTest(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", "master", ]: depends_on("hsa-rocr-dev@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py b/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py index cf69a36d302..ca0a3e4b385 100644 --- a/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py +++ b/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py @@ -17,6 +17,7 @@ class RocmClangOcl(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath"] version("master", branch="master") + version("5.2.1", sha256="693a9a360cb2f7e6910a6714df236df6a9d984f94b01712103a520d8e506c03f") version("5.2.0", sha256="a2059f6aeccc119abbd444cb37128e00e4854e22a88a47f120f8f8b947d862c5") version("5.1.3", sha256="e19ee15f26fc03309398ac73cc738508c0e1617deccfd667d369a3948b5d3552") version("5.1.0", sha256="38d9e2e98cff1a262fdd45c3239fd76a9f6ad5eff38a31aa19c3bb0faea53375") @@ -102,6 +103,7 @@ class RocmClangOcl(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", "master", ]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-cmake/package.py b/var/spack/repos/builtin/packages/rocm-cmake/package.py index 6313ba0f337..ff1cb323379 100644 --- a/var/spack/repos/builtin/packages/rocm-cmake/package.py +++ b/var/spack/repos/builtin/packages/rocm-cmake/package.py @@ -19,6 +19,8 @@ class RocmCmake(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath"] version("master", branch="master") + + version("5.2.1", sha256="3d179496fb8f5f96230f736a313990f66705dc91fd10948a3042b495a440bf63") version("5.2.0", sha256="be8646c4f7babfe9a103c97d0e9f369322f8ac6cfa528edacdbdcf7f3ef44943") version("5.1.3", sha256="19b2da0d56300aab454655b57435ab3ed9e101ecb96561336ea8865bbd993c23") version("5.1.0", sha256="2eff47b7cf5bd56d465ff3c110eb936d31860df60182a82ba511ba11bbcf23fc") diff --git a/var/spack/repos/builtin/packages/rocm-dbgapi/package.py b/var/spack/repos/builtin/packages/rocm-dbgapi/package.py index 5cbdd104dcd..eda4e2f63af 100644 --- a/var/spack/repos/builtin/packages/rocm-dbgapi/package.py +++ b/var/spack/repos/builtin/packages/rocm-dbgapi/package.py @@ -23,6 +23,7 @@ class RocmDbgapi(CMakePackage): libraries = ["librocm-dbgapi"] version("master", branch="amd-master") + version("5.2.1", sha256="169e3914ebd99d6a5c034c568964b7bad56611262e292f77c0c65a7708e02376") version("5.2.0", sha256="44f0528a7583bc59b6585166d2289970b20115c4c70e3bcc218aff19fc242b3f") version("5.1.3", sha256="880f80ebf741e3451676837f720551e02cffd0b9346ca4dfa6cf7f7043282f2b") version("5.1.0", sha256="406db4b20bda12f6f32cbef88b03110aa001bf7bef6676f36e909b53c8354e43") @@ -108,6 +109,7 @@ class RocmDbgapi(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", "master", ]: depends_on("hsa-rocr-dev@" + ver, type="build", when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-debug-agent/package.py b/var/spack/repos/builtin/packages/rocm-debug-agent/package.py index 1b0b5a7bd83..c720f782e65 100644 --- a/var/spack/repos/builtin/packages/rocm-debug-agent/package.py +++ b/var/spack/repos/builtin/packages/rocm-debug-agent/package.py @@ -19,6 +19,7 @@ class RocmDebugAgent(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["librocm-debug-agent"] + version("5.2.1", sha256="a60c224c546a25dafcff1e50ce3a1605e152efdb36624a672ddb5812cd34773e") version("5.2.0", sha256="f8e8d5ad691033d0c0f1850d69f35c98ba9722ab4adc66c4251f22257f56f0a2") version("5.1.3", sha256="ef26130829f3348d503669467ab1ea39fb67d943d88d64e7ac04b9617ec6067d") version("5.1.0", sha256="e0ceeef575d8645385bc6e4c9c3accaa192a93c42d83545cf5626c848f59806b") @@ -114,6 +115,7 @@ def url_for_version(self, version): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hsa-rocr-dev@" + ver, when="@" + ver) depends_on("hsakmt-roct@" + ver, when="@" + ver) @@ -135,6 +137,7 @@ def url_for_version(self, version): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("rocm-dbgapi@" + ver, when="@" + ver) depends_on("hip@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-device-libs/package.py b/var/spack/repos/builtin/packages/rocm-device-libs/package.py index 47fec671e0f..51135b3fe0b 100644 --- a/var/spack/repos/builtin/packages/rocm-device-libs/package.py +++ b/var/spack/repos/builtin/packages/rocm-device-libs/package.py @@ -18,6 +18,8 @@ class RocmDeviceLibs(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath", "haampie"] version("master", branch="amd-stg-open") + + version("5.2.1", sha256="e5855387ce73ed483ed0d03dbfef31f297c6ca66cf816f6816fd5ee373fc8225") version("5.2.0", sha256="901674bc941115c72f82c5def61d42f2bebee687aefd30a460905996f838e16c") version("5.1.3", sha256="c41958560ec29c8bf91332b9f668793463904a2081c330c0d828bf2f91d4f04e") version("5.1.0", sha256="47dbcb41fb4739219cadc9f2b5f21358ed2f9895ce786d2f7a1b2c4fd044d30f") @@ -113,6 +115,7 @@ class RocmDeviceLibs(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", "master", ]: depends_on("llvm-amdgpu@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-gdb/package.py b/var/spack/repos/builtin/packages/rocm-gdb/package.py index 3cc6a5a52ab..98f15f4c493 100644 --- a/var/spack/repos/builtin/packages/rocm-gdb/package.py +++ b/var/spack/repos/builtin/packages/rocm-gdb/package.py @@ -17,6 +17,7 @@ class RocmGdb(AutotoolsPackage): maintainers = ["srekolam", "renjithravindrankannath"] + version("5.2.1", sha256="77169d88f24e6ccb6aef3945448b179edffe806a51a3e996236b08fb510f3979") version("5.2.0", sha256="70c5b443292b9bb114844eb63b72cfab1b65f083511ee39d55db7a633c63bf5a") version("5.1.3", sha256="81f5e368facdcc424a37cb5809f0b436bedb9a6d9af4d17785b3c446ab0a7821") version("5.1.0", sha256="cf638149b269f838aaec59c5801098b9c0fc42f6c86a39309a8995b56978b424") @@ -104,6 +105,7 @@ class RocmGdb(AutotoolsPackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("rocm-dbgapi@" + ver, type="link", when="@" + ver) depends_on("comgr@" + ver, type="link", when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-opencl/package.py b/var/spack/repos/builtin/packages/rocm-opencl/package.py index ff85976a804..bc5e362356c 100644 --- a/var/spack/repos/builtin/packages/rocm-opencl/package.py +++ b/var/spack/repos/builtin/packages/rocm-opencl/package.py @@ -28,6 +28,8 @@ def url_for_version(self, version): return url.format(version) version("master", branch="main") + + version("5.2.1", sha256="eb4ff433f8894ca659802f81792646034f8088b47aca6ad999292bcb8d6381d5") version("5.2.0", sha256="80f73387effdcd987a150978775a87049a976aa74f5770d4420847b004dd59f0") version("5.1.3", sha256="44a7fac721abcd93470e1a7e466bdea0c668c253dee93e4f1ea9a72dbce4ba31") version("5.1.0", sha256="362d81303048cf7ed5d2f69fb65ed65425bc3da4734fff83e3b8fbdda51b0927") @@ -98,6 +100,7 @@ def url_for_version(self, version): depends_on("numactl", type="link", when="@3.7.0:") for d_version, d_shasum in [ + ("5.2.1", "465ca9fa16869cd89dab8c2d66d9b9e3c14f744bbedaa1d215b0746d77a500ba"), ("5.2.0", "37f5fce04348183bce2ece8bac1117f6ef7e710ca68371ff82ab08e93368bafb"), ("5.1.3", "ddee63cdc6515c90bab89572b13e1627b145916cb8ede075ef8446cbb83f0a48"), ("5.1.0", "f4f265604b534795a275af902b2c814f416434d9c9e16db81b3ed5d062187dfa"), @@ -152,6 +155,7 @@ def url_for_version(self, version): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", "master", ]: depends_on("comgr@" + ver, type="build", when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py b/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py index f72c391d6a1..c4897ef7a7c 100644 --- a/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py +++ b/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py @@ -30,6 +30,7 @@ "e69fe0c933cb30daafe49d9f1df71fe16f387e0287bba921995feeefdf9ac262", "8bab3d621343f419b29043ac0cb56e062f114991dc3ec1e33e786f771deecc8f", "20e21312816272222d1f427ea72a99a9a67077078552f5e2638a40860d161d25", + "c0aa6997e889d6ce0e37cfa6a2e91c5c0b54cda1673abdcabcf34da1ba78ba72", ] devlib = [ @@ -47,6 +48,7 @@ "47dbcb41fb4739219cadc9f2b5f21358ed2f9895ce786d2f7a1b2c4fd044d30f", "c41958560ec29c8bf91332b9f668793463904a2081c330c0d828bf2f91d4f04e", "901674bc941115c72f82c5def61d42f2bebee687aefd30a460905996f838e16c", + "e5855387ce73ed483ed0d03dbfef31f297c6ca66cf816f6816fd5ee373fc8225", ] llvm = [ @@ -64,6 +66,7 @@ "db5d45c4a7842a908527c1b7b8d4a40c688225a41d23cfa382eab23edfffdd10", "d236a2064363c0278f7ba1bb2ff1545ee4c52278c50640e8bb2b9cfef8a2f128", "0f892174111b78a02d1a00f8f46d9f80b9abb95513a7af38ecf2a5a0882fe87f", + "3644e927d943d61e22672422591c47a62ff83e3d87ced68439822156d8f79abf", ] flang = [ @@ -81,6 +84,7 @@ "d95e36f3b93097ab6fb319c744ddc71cd94af0c358accc1e5224c2bbd431266d", "d7847b5c6e1344dc0b4723dbe76a859257b4c242644dedb34e425f07738530d4", "20f48cac9b58496230fa2428eba4e15ec0a6e92d429569b154a328b7a8c5da17", + "012a9c10a7d2a248dc40510e2f5c02a54b5f6bc39961500dc48b6780dac5ad67", ] extras = [ @@ -98,6 +102,7 @@ "c3a2a83d8f586ee765df96a692ebe010631446f700273fa31738ea260dfc35f7", "2e3151a47d77166d071213af2a1691487691aae0abd5c1718d818a6d7d09cb2d", "817c2e8975e56a8875ff56f9d1ea34d5e7e50f1b541b7f1236e3e5c8d9eee47f", + "8b738225f0be39f27bba64c014816cfa1b79f2c7cf2d0e31fbc0fffb6c26e429", ] versions = [ @@ -115,6 +120,7 @@ "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ] versions_dict = dict() # type: Dict[str,Dict[str,str]] components = ["aomp", "devlib", "llvm", "flang", "extras"] @@ -132,10 +138,11 @@ class RocmOpenmpExtras(Package): """OpenMP support for ROCm LLVM.""" homepage = tools_url + "/aomp" - url = tools_url + "/aomp/archive/rocm-5.2.0.tar.gz" + url = tools_url + "/aomp/archive/rocm-5.2.1.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath", "estewart08"] + version("5.2.1", sha256=versions_dict["5.2.1"]["aomp"]) version("5.2.0", sha256=versions_dict["5.2.0"]["aomp"]) version("5.1.3", sha256=versions_dict["5.1.3"]["aomp"]) version("5.1.0", sha256=versions_dict["5.1.0"]["aomp"]) @@ -174,6 +181,7 @@ class RocmOpenmpExtras(Package): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hsakmt-roct@" + ver, when="@" + ver) depends_on("comgr@" + ver, when="@" + ver) @@ -273,6 +281,7 @@ def patch(self): aomp_extras.format(src) + "/aompextras/CMakeLists.txt", libomptarget.format(src) + "/deviceRTLs/amdgcn/CMakeLists.txt", ) + # Libm moved into llvm-project in 4.5.0 if self.spec.version < Version("4.5.0"): filter_file( diff --git a/var/spack/repos/builtin/packages/rocm-smi-lib/package.py b/var/spack/repos/builtin/packages/rocm-smi-lib/package.py index 23f7d6a2e3e..371b8b97bbf 100644 --- a/var/spack/repos/builtin/packages/rocm-smi-lib/package.py +++ b/var/spack/repos/builtin/packages/rocm-smi-lib/package.py @@ -24,6 +24,7 @@ class RocmSmiLib(CMakePackage): libraries = ["librocm_smi64"] version("master", branch="master") + version("5.2.1", sha256="07ad3be6f8c7d3f0a1b8b79950cd7839fb82972cef373dccffdbda32a3aca760") version("5.2.0", sha256="7bce567ff4e087598eace2cae72d24c98b2bcc93af917eafa61ec9d1e8ef4477") version("5.1.3", sha256="8a19ce60dc9221545aa50e83e88d8c4be9bf7cde2425cefb13710131dc1d7b1b") version("5.1.0", sha256="21b31b43015b77a9119cf4c1d4ff3864f9ef1f34e2a52a38f985a3f710dc5f87") diff --git a/var/spack/repos/builtin/packages/rocm-tensile/package.py b/var/spack/repos/builtin/packages/rocm-tensile/package.py index 2ece5414f4b..8697cbd8b0b 100644 --- a/var/spack/repos/builtin/packages/rocm-tensile/package.py +++ b/var/spack/repos/builtin/packages/rocm-tensile/package.py @@ -18,6 +18,7 @@ class RocmTensile(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath", "haampie"] + version("5.2.1", sha256="49582e28f7e14fed6a66c59482a41d3899c1eb8e7aa0ce40a7a2e806dadc536b") version("5.2.0", sha256="aa6107944482ad278111d11d2e926393423fc70e7e1838574fe7ad9f553bdacf") version("5.1.3", sha256="87020ca268e3a1ed8853f629839d6497764d862bd70b8775e98de439f6c89f1d") version("5.1.0", sha256="0ac86a623597152c5b1d8bb5634aad3e55afa51959476aaa5e9869d259ddf375") @@ -125,6 +126,7 @@ class RocmTensile(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("rocm-cmake@" + ver, type="build", when="@" + ver) depends_on("hip@" + ver, when="@" + ver) @@ -149,6 +151,7 @@ class RocmTensile(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("rocm-smi-lib@" + ver, type="build", when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-validation-suite/package.py b/var/spack/repos/builtin/packages/rocm-validation-suite/package.py index fbc0cc03585..fd20cd4a661 100644 --- a/var/spack/repos/builtin/packages/rocm-validation-suite/package.py +++ b/var/spack/repos/builtin/packages/rocm-validation-suite/package.py @@ -21,6 +21,7 @@ class RocmValidationSuite(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath"] + version("5.2.1", sha256="a0ea3ab9cbb8ac17bfa4537713a4d7075f869949bfdead4565a46f75864bd4a9") version("5.2.0", sha256="2dfef5d66f544230957ac9aaf647b2f1dccf3cc7592cc322cae9fbdcf3321365") version("5.1.3", sha256="0140a4128c31749c078d9e1dc863cbbd690efc65843c34a4b80f0056e5b8c7b6") version("5.1.0", sha256="d9b9771b885bd94e5d0352290d3fe0fa12f94ce3f384c3844002cd7614880010") @@ -121,6 +122,7 @@ def setup_build_environment(self, build_env): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocminfo@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocminfo/package.py b/var/spack/repos/builtin/packages/rocminfo/package.py index 5ded25e201f..2d665eb4f47 100644 --- a/var/spack/repos/builtin/packages/rocminfo/package.py +++ b/var/spack/repos/builtin/packages/rocminfo/package.py @@ -18,6 +18,7 @@ class Rocminfo(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath", "haampie"] version("master", branch="master") + version("5.2.1", sha256="e8a3b3228387d164e21de060e18ac018eecb5e9abe0ae45830c51ead4b7f1004") version("5.2.0", sha256="e721eb81efd384abd22ff01cdcbb6245b11084dc11a867c74c8ad6b028aa0404") version("5.1.3", sha256="7aecd7b189e129b77c8f2af70be2926a0f3a5ee89814879bc8477924a7e6f2ae") version("5.1.0", sha256="76f6cc9e69d9fc7e692e5c7db35e89079d3b1d2d47632e4742d612e743c396d3") @@ -103,6 +104,7 @@ class Rocminfo(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", "master", ]: depends_on("hsakmt-roct@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocprim/package.py b/var/spack/repos/builtin/packages/rocprim/package.py index ccabfcfc83e..b9d82601663 100644 --- a/var/spack/repos/builtin/packages/rocprim/package.py +++ b/var/spack/repos/builtin/packages/rocprim/package.py @@ -16,6 +16,7 @@ class Rocprim(CMakePackage): maintainers = ["cgmb", "srekolam", "renjithravindrankannath"] + version("5.2.1", sha256="47f09536b0afbb7be4d6fb71cca9f0a4fa58dde29c83aee247d4b167f6f3acae") version("5.2.0", sha256="f99eb7d2f6b1445742fba631a0dc8bb0d464a767a9c4fb79ac865d9570fe747b") version("5.1.3", sha256="b5a08d2e76388bd1ffa6c946009928fe95de846ab6b65a6475998070c0cf6dc1") version("5.1.0", sha256="dfe106c01155e00ed816f0231d1576ff8c08750cc8278fa453926f388dc6fe48") @@ -106,6 +107,7 @@ class Rocprim(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("comgr@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocprofiler-dev/package.py b/var/spack/repos/builtin/packages/rocprofiler-dev/package.py index 28bf4e6167c..51432d1fe68 100644 --- a/var/spack/repos/builtin/packages/rocprofiler-dev/package.py +++ b/var/spack/repos/builtin/packages/rocprofiler-dev/package.py @@ -19,6 +19,7 @@ class RocprofilerDev(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["librocprofiler64"] + version("5.2.1", sha256="c6768ec428590aadfb0e7ef6e22b8dc5ac8ed97babeb56db07f2d5d41cd122e2") version("5.2.0", sha256="1f4db27b56ef1863d4c9e1d96bac9117d66be45156d0637cfe4fd38cae61a23a") version("5.1.3", sha256="eca7be451c7bf000fd9c75683e7f5dfbed32dbb385b5ac685d2251ee8c3abc96") version("5.1.0", sha256="4a1c6ed887b0159392406af8796508df2794353a4c3aacc801116044fb4a10a5") @@ -103,6 +104,7 @@ class RocprofilerDev(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hsakmt-roct@" + ver, when="@" + ver) depends_on("hsa-rocr-dev@" + ver, when="@" + ver) @@ -137,7 +139,7 @@ def determine_version(cls, lib): def cmake_args(self): return [ self.define( - "PROF_API_HEADER_PATH", self.spec["roctracer-dev-api"].prefix.roctracer.inc.ext + "PROF_API_HEADER_PATH", self.spec["roctracer-dev-api"].prefix.roctracer.include.ext ), self.define("ROCM_ROOT_DIR", self.spec["hsakmt-roct"].prefix.include), ] diff --git a/var/spack/repos/builtin/packages/rocrand/package.py b/var/spack/repos/builtin/packages/rocrand/package.py index 1eba3ab1f94..333c89a918b 100644 --- a/var/spack/repos/builtin/packages/rocrand/package.py +++ b/var/spack/repos/builtin/packages/rocrand/package.py @@ -22,6 +22,7 @@ class Rocrand(CMakePackage): maintainers = ["cgmb", "srekolam", "renjithravindrankannath"] libraries = ["librocrand"] + version("5.2.1", sha256="4b2a7780f0112c12b5f307e1130e6b2c02ab984a0c1b94e9190dae38f0067600") version("5.2.0", sha256="ab3057e7c17a9fbe584f89ef98ec92a74d638a98d333e7d0f64daf7bc9051e38") version("5.1.3", sha256="4a19e1bcb60955a02a73ad64594c23886d6749afe06b0104e2b877dbe02c8d1c") version("5.1.0", sha256="0c6f114a775d0b38be71f3f621a10bde2104a1f655d5d68c5fecb79b8b51a815") @@ -122,6 +123,7 @@ class Rocrand(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocsolver/package.py b/var/spack/repos/builtin/packages/rocsolver/package.py index a68e9cd3a67..4aeb9229ddf 100644 --- a/var/spack/repos/builtin/packages/rocsolver/package.py +++ b/var/spack/repos/builtin/packages/rocsolver/package.py @@ -34,6 +34,8 @@ class Rocsolver(CMakePackage): version("develop", branch="develop") version("master", branch="master") + + version("5.2.1", sha256="74c127efaefec70a14dff6fa0e92276f38a6c313bf1271d68d03a4222d1fc3b6") version("5.2.0", sha256="94d46ebe1266eaa05df50c1789dc27d3f2dbf3cb5af156e757777a82ed6ef356") version("5.1.3", sha256="5a8f3b95ac9a131c31538196e954ea53b863009c092cce0c0ef869a0cd5dd554") version("5.1.0", sha256="88de515a6e75eaa3c50c9c8ae1e7ae8e3b46e712e388f44f79b63fefa9fc0831") @@ -139,6 +141,7 @@ def check(self): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocblas@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocsparse/package.py b/var/spack/repos/builtin/packages/rocsparse/package.py index 765dc23bff9..15261fc1115 100644 --- a/var/spack/repos/builtin/packages/rocsparse/package.py +++ b/var/spack/repos/builtin/packages/rocsparse/package.py @@ -34,6 +34,7 @@ class Rocsparse(CMakePackage): ) variant("test", default=False, description="Build rocsparse-test client") + version("5.2.1", sha256="01f3535442740221edad2cde0a20b2499c807f6733d5016b33c47f34a5a55c49") version("5.2.0", sha256="7ed929af16d2502135024a6463997d9a95f03899b8a33aa95db7029575c89572") version("5.1.3", sha256="ef9641045b36c9aacc87e4fe7717b41b1e29d97e21432678dce7aca633a8edc2") version("5.1.0", sha256="a2f0f8cb02b95993480bd7264fc65e8b11464a90b86f2dcd0dd82a2e6d4bd704") @@ -112,6 +113,7 @@ class Rocsparse(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocprim@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocthrust/package.py b/var/spack/repos/builtin/packages/rocthrust/package.py index c19903013fe..e79ed917795 100644 --- a/var/spack/repos/builtin/packages/rocthrust/package.py +++ b/var/spack/repos/builtin/packages/rocthrust/package.py @@ -19,6 +19,7 @@ class Rocthrust(CMakePackage): maintainers = ["cgmb", "srekolam", "renjithravindrankannath"] + version("5.2.1", sha256="5df35ff0970b83d68b69a07ae9ebb62955faac7401c91daa7929664fdd09d69b") version("5.2.0", sha256="afa126218485586682c78e97df8025ae4efd32f3751c340e84c436e08868c326") version("5.1.3", sha256="8d92de1e69815d92a423b7657f2f37c90f1d427f5bc92915c202d4c266254dad") version("5.1.0", sha256="fee779ae3d55b97327d87beca784fc090fa02bc95238d9c3bf3021e266e73979") @@ -111,6 +112,7 @@ class Rocthrust(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocprim@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/roctracer-dev-api/package.py b/var/spack/repos/builtin/packages/roctracer-dev-api/package.py index bc2c9cfd4b3..dc406a73a51 100644 --- a/var/spack/repos/builtin/packages/roctracer-dev-api/package.py +++ b/var/spack/repos/builtin/packages/roctracer-dev-api/package.py @@ -18,6 +18,7 @@ class RoctracerDevApi(Package): maintainers = ["srekolam", "renjithravindrankannath"] + version("5.2.1", sha256="e200b5342bdf840960ced6919d4bf42c8f30f8013513f25a2190ee8767667e59") version("5.2.0", sha256="9747356ce61c57d22c2e0a6c90b66a055e435d235ba3459dc3e3f62aabae6a03") version("5.1.3", sha256="45f19875c15eb609b993788b47fd9c773b4216074749d7744f3a671be17ef33c") version("5.1.0", sha256="58b535f5d6772258190e4adcc23f37c916f775057a91b960e1f2ee1f40ed5aac") @@ -83,5 +84,5 @@ def install(self, spec, prefix): def only_headers(p): return p.endswith("CMakeLists.txt") or p.endswith("RPM") or p.endswith("DEBIAN") - mkdirp(prefix.roctracer.inc) - install_tree(include, prefix.roctracer.inc, ignore=only_headers) + mkdirp(prefix.roctracer.include) + install_tree(include, prefix.roctracer.include, ignore=only_headers) diff --git a/var/spack/repos/builtin/packages/roctracer-dev/package.py b/var/spack/repos/builtin/packages/roctracer-dev/package.py index 8cea5c7427b..c7e1800c732 100644 --- a/var/spack/repos/builtin/packages/roctracer-dev/package.py +++ b/var/spack/repos/builtin/packages/roctracer-dev/package.py @@ -21,6 +21,7 @@ class RoctracerDev(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["libroctracer64"] + version("5.2.1", sha256="e200b5342bdf840960ced6919d4bf42c8f30f8013513f25a2190ee8767667e59") version("5.2.0", sha256="9747356ce61c57d22c2e0a6c90b66a055e435d235ba3459dc3e3f62aabae6a03") version("5.1.3", sha256="45f19875c15eb609b993788b47fd9c773b4216074749d7744f3a671be17ef33c") version("5.1.0", sha256="58b535f5d6772258190e4adcc23f37c916f775057a91b960e1f2ee1f40ed5aac") @@ -109,6 +110,7 @@ class RoctracerDev(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("hsakmt-roct@" + ver, when="@" + ver) depends_on("hsa-rocr-dev@" + ver, when="@" + ver) @@ -126,6 +128,7 @@ class RoctracerDev(CMakePackage): "5.1.0", "5.1.3", "5.2.0", + "5.2.1", ]: depends_on("rocprofiler-dev@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocwmma/package.py b/var/spack/repos/builtin/packages/rocwmma/package.py index eda65a0e648..fff29a3bb00 100644 --- a/var/spack/repos/builtin/packages/rocwmma/package.py +++ b/var/spack/repos/builtin/packages/rocwmma/package.py @@ -26,6 +26,7 @@ class Rocwmma(CMakePackage): maintainers = ["srekolam"] + version("5.2.1", sha256="73adb6a0ae99051493459a9902ad718b0452d6d819583a58d713ce52fa813f21") version("5.2.0", sha256="257ccd1cf2bc1d8064e72e78d276ef7446b2cb7e2dec05ff8331bb44eff2b7cb") # gfx908:xnack-;gfx90a:xnack-;gfx90a:xnack+ @@ -46,7 +47,7 @@ class Rocwmma(CMakePackage): depends_on("googletest@1.10.0:", type="test") - for ver in ["5.2.0"]: + for ver in ["5.2.0", "5.2.1"]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) depends_on("llvm-amdgpu@" + ver, type="build", when="@" + ver) depends_on("hip@" + ver, when="@" + ver) From 9b9691233aa132535c4434267d1122d119513c8b Mon Sep 17 00:00:00 2001 From: Gregory Lee Date: Mon, 19 Sep 2022 23:43:36 -0700 Subject: [PATCH 143/241] stat: add v4.2.1 (#32691) --- var/spack/repos/builtin/packages/stat/package.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/stat/package.py b/var/spack/repos/builtin/packages/stat/package.py index fbc7145d3dc..91a5f095a6e 100644 --- a/var/spack/repos/builtin/packages/stat/package.py +++ b/var/spack/repos/builtin/packages/stat/package.py @@ -16,6 +16,11 @@ class Stat(AutotoolsPackage): maintainers = ["lee218llnl"] version("develop", branch="develop") + version( + "4.2.1", + sha256="137529889ec5b5f9b9bae3a0864a385c5814e989d0074228dd3500e3e713801d", + url="https://github.com/LLNL/STAT/releases/download/v4.2.1/stat-4.2.1.tar.gz", + ) version( "4.2.0", sha256="d244d53585b0949e308354eb024f7a89ee3467fd2866b818e8aa6c8b5d372ced", @@ -76,9 +81,10 @@ class Stat(AutotoolsPackage): variant("gui", default=True, description="enable GUI") depends_on("autoconf", type="build") - depends_on("automake@:1.15", type="build") + depends_on("automake", type="build") depends_on("libtool", type="build") - depends_on("dyninst@:11.9", when="~dysect") + depends_on("dyninst", when="@4.2.1:") + depends_on("dyninst@:11.9", when="~dysect @:4.2.0") depends_on("dyninst@:9", when="@:4.0.1") depends_on("dyninst@8.2.1+stat_dysect", when="+dysect") # we depend on fgfs@master to avoid seg faults with fgfs 1.1 From 7e008522780e055740fb04c563d7ba01f2a02161 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Tue, 20 Sep 2022 09:05:45 +0200 Subject: [PATCH 144/241] py-bids-validator: add 1.9.8 (#32712) --- var/spack/repos/builtin/packages/py-bids-validator/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-bids-validator/package.py b/var/spack/repos/builtin/packages/py-bids-validator/package.py index 7dc70ed4b21..b8b0e037eb0 100644 --- a/var/spack/repos/builtin/packages/py-bids-validator/package.py +++ b/var/spack/repos/builtin/packages/py-bids-validator/package.py @@ -12,6 +12,7 @@ class PyBidsValidator(PythonPackage): homepage = "https://github.com/bids-standard/bids-validator" pypi = "bids-validator/bids-validator-1.7.2.tar.gz" + version("1.9.8", sha256="ff39799bb205f92d6f2c322f0b8eff0d1c0288f4291a0b18fce61afa4dfd7f3e") version("1.9.4", sha256="4bf07d375f231a2ad2f450beeb3ef6c54f93194fd993aa5157d57a8fba48ed50") version("1.8.9", sha256="01fcb5a8fe6de1280cdfd5b37715103ffa0bafb3c739ca7f5ffc41e46549612e") version("1.8.4", sha256="63e7a02c9ddb5505a345e178f4e436b82c35ec0a177d7047b67ea10ea3029a68") From 637a95c67f7af1962d5f8bdea375e747ce181d89 Mon Sep 17 00:00:00 2001 From: Jen Herting Date: Tue, 20 Sep 2022 03:30:36 -0400 Subject: [PATCH 145/241] py-h5py: add v3.7.0 (#32578) --- var/spack/repos/builtin/packages/py-h5py/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-h5py/package.py b/var/spack/repos/builtin/packages/py-h5py/package.py index 0a3ffbded49..c7418b90857 100644 --- a/var/spack/repos/builtin/packages/py-h5py/package.py +++ b/var/spack/repos/builtin/packages/py-h5py/package.py @@ -16,6 +16,7 @@ class PyH5py(PythonPackage): maintainers = ["bryanherman", "takluyver"] version("master", branch="master") + version("3.7.0", sha256="3fcf37884383c5da64846ab510190720027dca0768def34dd8dcb659dbe5cbf3") version("3.6.0", sha256="8752d2814a92aba4e2b2a5922d2782d0029102d99caaf3c201a566bc0b40db29") version("3.5.0", sha256="77c7be4001ac7d3ed80477de5b6942501d782de1bbe4886597bdfec2a7ab821f") version("3.4.0", sha256="ee1c683d91ab010d5e85cb61e8f9e7ee0d8eab545bf3dd50a9618f1d0e8f615e") From 2518a5510563d3a45e348c46d68dc5f70f9122ca Mon Sep 17 00:00:00 2001 From: iarspider Date: Tue, 20 Sep 2022 09:31:48 +0200 Subject: [PATCH 146/241] Add checksum for py-nbconvert 6.5.1 (#32646) --- var/spack/repos/builtin/packages/py-nbconvert/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-nbconvert/package.py b/var/spack/repos/builtin/packages/py-nbconvert/package.py index 4728d002870..1d0a7c83832 100644 --- a/var/spack/repos/builtin/packages/py-nbconvert/package.py +++ b/var/spack/repos/builtin/packages/py-nbconvert/package.py @@ -13,6 +13,7 @@ class PyNbconvert(PythonPackage): homepage = "https://github.com/jupyter/nbconvert" pypi = "nbconvert/nbconvert-6.0.1.tar.gz" + version("6.5.1", sha256="2c01f3f518fee736c3d3f999dd20e0a16febba17a0d60a3b0fd28fbdec14115d") version("6.5.0", sha256="223e46e27abe8596b8aed54301fadbba433b7ffea8196a68fd7b1ff509eee99d") version("6.4.2", sha256="eb2803db18f6facce6bf3b01b684fe47907994bd156d15eaccdf011e3d7f8164") version("6.3.0", sha256="5e77d6203854944520105e38f2563a813a4a3708e8563aa598928a3b5ee1081a") @@ -60,6 +61,7 @@ class PyNbconvert(PythonPackage): depends_on("py-traitlets", type=("build", "run")) depends_on("py-traitlets@4.2:", type=("build", "run"), when="@5:") depends_on("py-traitlets@5:", type=("build", "run"), when="@6.2.0:") + depends_on("py-lxml", type=("build", "run"), when="@6.5.1:") # https://bugs.gentoo.org/720870 # https://github.com/jupyter/nbconvert/pull/937 From 71434d8b9d05e5d89a57ba992ded2d22ef6e6765 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Tue, 20 Sep 2022 11:02:10 +0200 Subject: [PATCH 147/241] intel-oneapi-itac: remove UTF-8 character in docstring This character causes random failures in CI for Python 2.7 --- var/spack/repos/builtin/packages/intel-oneapi-itac/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/intel-oneapi-itac/package.py b/var/spack/repos/builtin/packages/intel-oneapi-itac/package.py index 12b9933c1d2..cbe8216c8c8 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-itac/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-itac/package.py @@ -10,7 +10,7 @@ @IntelOneApiPackage.update_description class IntelOneapiItac(IntelOneApiPackage): - """The Intel® Trace Analyzer and Collector profiles and analyzes MPI applications to help + """The Intel Trace Analyzer and Collector profiles and analyzes MPI applications to help focus your optimization efforts. Find temporal dependencies and bottlenecks in your code. From 24245be85a9f4461731c6245484538224a4ee558 Mon Sep 17 00:00:00 2001 From: Jim Galarowicz Date: Tue, 20 Sep 2022 05:45:15 -0500 Subject: [PATCH 148/241] must: fix incorrect cmake argument (#32671) --- var/spack/repos/builtin/packages/must/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/must/package.py b/var/spack/repos/builtin/packages/must/package.py index 68143f5e26d..c9586fb6b29 100644 --- a/var/spack/repos/builtin/packages/must/package.py +++ b/var/spack/repos/builtin/packages/must/package.py @@ -101,6 +101,6 @@ def cmake_args(self): cmake_args.extend(["-DUSE BACKWARD=Off"]) else: if spec.satisfies("+backward"): - cmake_args.extend(["-DSUSE BACKWARD=On"]) + cmake_args.extend(["-DUSE BACKWARD=On"]) return cmake_args From 3b273e263bfca5911cbd647cbf8c842c6d5aebae Mon Sep 17 00:00:00 2001 From: natshineman Date: Tue, 20 Sep 2022 06:57:59 -0400 Subject: [PATCH 149/241] osu-micro-benchmarks: add v6.1 (#32692) --- .../repos/builtin/packages/osu-micro-benchmarks/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py b/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py index 52ebbe7fcc6..ad0fc1d7941 100644 --- a/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py +++ b/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py @@ -16,10 +16,11 @@ class OsuMicroBenchmarks(AutotoolsPackage, CudaPackage): and can be used for both traditional and GPU-enhanced nodes.""" homepage = "https://mvapich.cse.ohio-state.edu/benchmarks/" - url = "https://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-6.0.tar.gz" + url = "https://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-6.1.tar.gz" maintainers = ["natshineman", "harisubramoni", "MatthewLieber"] + version("6.1", sha256="ecccedc868264f75db4d9529af79005419a2775113c7fae8f4e4a8434362e4a7") version("6.0", sha256="309fb7583ff54562343b0e0df1eebde3fc245191e183be362f031ac74f4ab542") version("5.9", sha256="d619740a1c2cc7c02a9763931546b320d0fa4093c415ff3873c2958e121c0609") version( From e656b4659aa41538614d3dd0269bdde61d7e89f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Sep 2022 14:03:47 +0200 Subject: [PATCH 150/241] build(deps): bump codecov/codecov-action from 3.1.0 to 3.1.1 (#32717) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/81cd2dc8148241f03f5839d295e000b8f761e378...d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/audit.yaml | 2 +- .github/workflows/unit_tests.yaml | 8 ++++---- .github/workflows/windows_python.yml | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/audit.yaml b/.github/workflows/audit.yaml index 2b8c9895184..c7bbd2e8cc5 100644 --- a/.github/workflows/audit.yaml +++ b/.github/workflows/audit.yaml @@ -38,7 +38,7 @@ jobs: run: | . share/spack/setup-env.sh $(which spack) audit packages - - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # @v2.1.0 if: ${{ inputs.with_coverage == 'true' }} with: flags: unittests,linux,audits diff --git a/.github/workflows/unit_tests.yaml b/.github/workflows/unit_tests.yaml index c3c2b3242eb..abb3e9872c0 100644 --- a/.github/workflows/unit_tests.yaml +++ b/.github/workflows/unit_tests.yaml @@ -86,7 +86,7 @@ jobs: share/spack/qa/run-unit-tests coverage combine -a coverage xml - - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 with: flags: unittests,linux,${{ matrix.concretizer }} # Test shell integration @@ -117,7 +117,7 @@ jobs: COVERAGE: true run: | share/spack/qa/run-shell-tests - - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 with: flags: shelltests,linux @@ -179,7 +179,7 @@ jobs: share/spack/qa/run-unit-tests coverage combine -a coverage xml - - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 # @v2.1.0 + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # @v2.1.0 with: flags: unittests,linux,clingo # Run unit tests on MacOS @@ -219,6 +219,6 @@ jobs: # Delete the symlink going from ./lib/spack/docs/_spack_root back to # the initial directory, since it causes ELOOP errors with codecov/actions@2 rm lib/spack/docs/_spack_root - - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 with: flags: unittests,macos diff --git a/.github/workflows/windows_python.yml b/.github/workflows/windows_python.yml index 4a1bfafae82..2655457d9f9 100644 --- a/.github/workflows/windows_python.yml +++ b/.github/workflows/windows_python.yml @@ -36,7 +36,7 @@ jobs: spack unit-test --verbose --cov --cov-config=pyproject.toml --ignore=lib/spack/spack/test/cmd coverage combine -a coverage xml - - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 with: flags: unittests,windows unit-tests-cmd: @@ -62,7 +62,7 @@ jobs: spack unit-test --verbose --cov --cov-config=pyproject.toml lib/spack/spack/test/cmd coverage combine -a coverage xml - - uses: codecov/codecov-action@81cd2dc8148241f03f5839d295e000b8f761e378 + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 with: flags: unittests,windows build-abseil: From 578d06a86a3c5546cf7babb98f95b9d1711f15f7 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Tue, 20 Sep 2022 18:01:06 +0200 Subject: [PATCH 151/241] py-nibabel: add 4.0.2 (#32721) --- var/spack/repos/builtin/packages/py-nibabel/package.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-nibabel/package.py b/var/spack/repos/builtin/packages/py-nibabel/package.py index d670d2bdb12..e473880118b 100644 --- a/var/spack/repos/builtin/packages/py-nibabel/package.py +++ b/var/spack/repos/builtin/packages/py-nibabel/package.py @@ -11,15 +11,20 @@ class PyNibabel(PythonPackage): homepage = "https://nipy.org/nibabel" pypi = "nibabel/nibabel-3.2.1.tar.gz" + git = "https://github.com/nipy/nibabel" + version("4.0.2", sha256="45c49b5349351b45f6c045a91aa02b4f0d367686ff3284632ef95ac65b930786") version("3.2.2", sha256="b0dcc174b30405ce9e8fec1eab3cbbb20f5c5e4920976c08b22e050b7c124f94") version("3.2.1", sha256="4d2ff9426b740011a1c916b54fc25da9348282e727eaa2ea163f42e00f1fc29e") version("2.4.1", sha256="f165ff1cb4464902d6594eb2694e2cfb6f8b9fe233b856c976c3cff623ee0e17") + depends_on("python@3.7:", when="@4:", type=("build", "run")) depends_on("python@3.6:", when="@3.1:", type=("build", "run")) depends_on("py-setuptools@30.3.0:", type=("build", "run")) + depends_on("py-numpy@1.17:", when="@4:", type=("build", "run")) depends_on("py-numpy@1.14:", when="@3.2:", type=("build", "run")) depends_on("py-numpy@1.8:", type=("build", "run")) + depends_on("py-packaging@17:", when="@4:", type=("build", "run")) depends_on("py-packaging@14.3:", when="@3.1:", type=("build", "run")) depends_on("py-six@1.3:", when="@:2.5", type=("build", "run")) depends_on("py-bz2file", when="@:2.5 ^python@:2", type=("build", "run")) From 0d3a4d799a9ad010a6f63d342591bf98717a1654 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Tue, 20 Sep 2022 18:03:33 +0200 Subject: [PATCH 152/241] py-pybids: add 0.15.3 (#32722) --- var/spack/repos/builtin/packages/py-pybids/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-pybids/package.py b/var/spack/repos/builtin/packages/py-pybids/package.py index e21a34aae44..d422b3d1653 100644 --- a/var/spack/repos/builtin/packages/py-pybids/package.py +++ b/var/spack/repos/builtin/packages/py-pybids/package.py @@ -12,6 +12,7 @@ class PyPybids(PythonPackage): homepage = "https://github.com/bids-standard/pybids" pypi = "pybids/pybids-0.13.1.tar.gz" + version("0.15.3", sha256="4d99c979bc4bc209cff70a02d1da309c9bf8c6b0338e2a0b66ebea77c7f3c461") version("0.15.1", sha256="0253507a04dbfea43eb1f75a1f71aab04be21076bfe96c004888000b802e38f2") version("0.14.0", sha256="73c4d03aad333f2a7cb4405abe96f55a33cffa4b5a2d23fad6ac5767c45562ef") version("0.13.2", sha256="9692013af3b86b096b5423b88179c6c9b604baff5a6b6f89ba5f40429feb7a3e") @@ -34,6 +35,7 @@ class PyPybids(PythonPackage): depends_on("py-sqlalchemy", type=("build", "run")) depends_on("py-bids-validator", type=("build", "run")) depends_on("py-num2words", type=("build", "run")) + depends_on("py-click@8:", when="@0.15.2:", type=("build", "run")) depends_on("py-click", when="@0.12.1:", type=("build", "run")) depends_on("py-patsy", when="@:0.13", type=("build", "run")) From 8409ec0f2184d4d8debb6c2f30aa58ab41e73ce2 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Tue, 20 Sep 2022 18:06:03 +0200 Subject: [PATCH 153/241] py-annexremote: add 1.6.0 (#32725) --- var/spack/repos/builtin/packages/py-annexremote/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-annexremote/package.py b/var/spack/repos/builtin/packages/py-annexremote/package.py index 56924d85159..80fd963550b 100644 --- a/var/spack/repos/builtin/packages/py-annexremote/package.py +++ b/var/spack/repos/builtin/packages/py-annexremote/package.py @@ -12,7 +12,9 @@ class PyAnnexremote(PythonPackage): homepage = "https://github.com/Lykos153/AnnexRemote" pypi = "annexremote/annexremote-1.5.0.tar.gz" + version("1.6.0", sha256="779a43e5b1b4afd294761c6587dee8ac68f453a5a8cc40f419e9ca777573ae84") version("1.5.0", sha256="92f32b6f5461cbaeefe0c60b32f9c1e0c1dbe4e57b8ee425affb56f4060f64ef") + depends_on("python@3:", when="@1.6:", type="build") depends_on("py-setuptools", type="build") - depends_on("py-future", type=("build", "run")) + depends_on("py-future", when="@:1.5", type=("build", "run")) From 757a2db741e17d942cffc533418d1f15c60f8b00 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Tue, 20 Sep 2022 18:41:53 +0200 Subject: [PATCH 154/241] py-python-gitlab: add 3.9.0 (#32723) --- var/spack/repos/builtin/packages/py-python-gitlab/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-python-gitlab/package.py b/var/spack/repos/builtin/packages/py-python-gitlab/package.py index 8110c5d3984..1559dde322e 100644 --- a/var/spack/repos/builtin/packages/py-python-gitlab/package.py +++ b/var/spack/repos/builtin/packages/py-python-gitlab/package.py @@ -12,6 +12,7 @@ class PyPythonGitlab(PythonPackage): homepage = "https://github.com/gpocentek/python-gitlab" pypi = "python-gitlab/python-gitlab-0.19.tar.gz" + version("3.9.0", sha256="5fc5e88f81f366e11851cb8b4b9a5b827491ce20ba7585446b74c9b097726ba3") version("2.10.1", sha256="7afa7d7c062fa62c173190452265a30feefb844428efc58ea5244f3b9fc0d40f") version("1.8.0", sha256="a6b03bc53f6e2e22b88d5ff9772b1bb360570ec82752f1def3d6eb60cda093e7") version("0.19", sha256="88b65591db7a10a0d9979797e4e654a113e2b93b3a559309f6092b27ab93934a") @@ -19,7 +20,8 @@ class PyPythonGitlab(PythonPackage): version("0.17", sha256="f79337cd8b2343195b7ac0909e0483624d4235cca78fc76196a0ee4e109c9a70") version("0.16", sha256="2c50dc0bd3ed7c6b1edb6e556b0f0109493ae9dfa46e3bffcf3e5e67228d7d53") - depends_on("python@3.6:", when="@2.0.0:", type=("build", "run")) + depends_on("python@3.7:", when="@3:", type=("build", "run")) + depends_on("python@3.6:", when="@2:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-requests-toolbelt@0.9.1:", when="@2.6.0:", type=("build", "run")) depends_on("py-requests@2.25.0:", when="@2.10.1:", type=("build", "run")) From cc0e7c87c17cf3ed66d896792d9c0d6907b35200 Mon Sep 17 00:00:00 2001 From: Luke Diorio-Toth Date: Tue, 20 Sep 2022 12:14:01 -0500 Subject: [PATCH 155/241] new version (py-multiqc v1.13) + new package (py-rich-click) (#32719) * started updating multiqc package * working now * added py-rich-click * fixed style * changed py-matlibplot versions Co-authored-by: Adam J. Stewart * changed py-networkx versions Co-authored-by: Adam J. Stewart * changed py-coloredlogs versions Co-authored-by: Adam J. Stewart * changed python versions Co-authored-by: Adam J. Stewart * changed py-markdown versions Co-authored-by: Adam J. Stewart * changed py-pyyaml requirement Co-authored-by: Adam J. Stewart * changed py-requests requirements Co-authored-by: Adam J. Stewart * changed py-spectra requirements Co-authored-by: Adam J. Stewart Co-authored-by: Adam J. Stewart --- .../builtin/packages/py-multiqc/package.py | 26 ++++++++++++++----- .../builtin/packages/py-rich-click/package.py | 23 ++++++++++++++++ 2 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 var/spack/repos/builtin/packages/py-rich-click/package.py diff --git a/var/spack/repos/builtin/packages/py-multiqc/package.py b/var/spack/repos/builtin/packages/py-multiqc/package.py index 6d96fdb9484..db431b7f347 100644 --- a/var/spack/repos/builtin/packages/py-multiqc/package.py +++ b/var/spack/repos/builtin/packages/py-multiqc/package.py @@ -14,23 +14,35 @@ class PyMultiqc(PythonPackage): homepage = "https://multiqc.info" pypi = "multiqc/multiqc-1.0.tar.gz" + version("1.13", sha256="0564fb0f894e6ca0822a0f860941b3ed2c33dce407395ac0c2103775d45cbfa0") version("1.7", sha256="02e6a7fac7cd9ed036dcc6c92b8f8bcacbd28983ba6be53afb35e08868bd2d68") version("1.5", sha256="fe0ffd2b0d1067365ba4e54ae8991f2f779c7c684b037549b617020ea883310a") version("1.3", sha256="cde17845680131e16521ace04235bb9496c78c44cdc7b5a0fb6fd93f4ad7a13b") version("1.0", sha256="1a49331a3d3f2e591a6e9902bc99b16e9205731f0cd2d6eaeee0da3d0f0664c9") - depends_on("python@2.7:") + depends_on("python@2.7:", when="@:1.7", type=("build", "run")) + depends_on("python@3:", when="@1.9:", type=("build", "run")) depends_on("py-setuptools", type="build") + depends_on("py-matplotlib@2.1.1:", type=("build", "run"), when="@:1.13") + depends_on("py-matplotlib@2.1.1:2", type=("build", "run"), when="@1.7") + depends_on("py-matplotlib@:2.1.0", type=("build", "run"), when="@1.5") + depends_on("py-matplotlib", type=("build", "run"), when="@:1.3") + depends_on("py-networkx@2.5.1:", type=("build", "run"), when="@1.13:") + depends_on("py-networkx@:1", type=("build", "run"), when="@1.3") + depends_on("py-numpy", type=("build", "run")) depends_on("py-click", type=("build", "run")) + depends_on("py-coloredlogs", type=("build", "run"), when="@1.13:") + depends_on("py-future@0.14.1:", type=("build", "run")) depends_on("py-jinja2@2.9:", type=("build", "run")) depends_on("py-lzstring", type=("build", "run")) - depends_on("py-future@0.14.1:", type=("build", "run")) - depends_on("py-spectra@0.0.10:", type=("build", "run")) - depends_on("py-matplotlib@2.0.0:2.9.9", type=("build", "run")) - depends_on("py-numpy", type=("build", "run")) + depends_on("py-markdown", type=("build", "run"), when="@1.3:") depends_on("py-pyyaml", type=("build", "run")) + depends_on("py-pyyaml@4:", type=("build", "run"), when="@1.13:") + depends_on("py-requests", type=("build", "run"), when="@1.3:") + depends_on("py-rich@10:", type=("build", "run"), when="@1.13:") + depends_on("py-rich-click", type=("build", "run"), when="@1.13:") depends_on("py-simplejson", type=("build", "run")) - depends_on("py-requests", type=("build", "run"), when="@1.5:") + depends_on("py-spectra@0.0.10:", type=("build", "run"), when="@1.5:") + depends_on("py-spectra", type=("build", "run")) depends_on("py-enum34", type=("build", "run"), when="@1.4:1.5 ^python@:3.3") depends_on("py-enum34", type=("build", "run"), when="@1.3") - depends_on("py-markdown", type=("build", "run"), when="@1.5:") diff --git a/var/spack/repos/builtin/packages/py-rich-click/package.py b/var/spack/repos/builtin/packages/py-rich-click/package.py new file mode 100644 index 00000000000..f9de7328ffc --- /dev/null +++ b/var/spack/repos/builtin/packages/py-rich-click/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack.package import * + + +class PyRichClick(PythonPackage): + """The intention of rich-click is to provide attractive help output + from click, formatted with rich, with minimal customisation required.""" + + homepage = "https://github.com/ewels/rich-click" + pypi = "rich-click/rich-click-1.5.2.tar.gz" + + version("1.5.2", sha256="a57ca70242cb8b372a670eaa0b0be48f2440b66656deb4a56e6aadc1bbb79670") + + depends_on("python@3.7:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-click@7:", type=("build", "run")) + depends_on("py-rich@10.7.0:", type=("build", "run")) + depends_on("py-importlib-metadata", type=("build", "run"), when="^python@:3.7") From d8e566d5542e2c8f0508a83922ba1eada5d473cd Mon Sep 17 00:00:00 2001 From: Joel Falcou Date: Tue, 20 Sep 2022 19:35:39 +0200 Subject: [PATCH 156/241] Update EVE to 2022.09 (#32729) --- var/spack/repos/builtin/packages/eve/package.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/eve/package.py b/var/spack/repos/builtin/packages/eve/package.py index f37eef00fa4..f824073f8d2 100644 --- a/var/spack/repos/builtin/packages/eve/package.py +++ b/var/spack/repos/builtin/packages/eve/package.py @@ -9,11 +9,12 @@ class Eve(CMakePackage): """Expressive Velocity Engine - SIMD in C++ Goes Brrrr""" - homepage = "https://jfalcou.github.io/eve/html/index.html" - url = "https://github.com/jfalcou/eve/archive/refs/tags/v2022.03.0.tar.gz" + homepage = "https://jfalcou.github.io/eve/" + url = "https://github.com/jfalcou/eve/archive/refs/tags/v2022.09.0.tar.gz" maintainers = ["jfalcou"] git = "https://github.com/jfalcou/eve.git" version("main", branch="main") + version("2022.09.0", sha256="53a4e1944a1080c67380a6d7f4fb42998f1c1db35e2370e02d7853c3ac1e0a33") version("2022.03.0", sha256="8bf9faea516806e7dd468e778dcedc81c51f0b2c6a70b9c75987ce12bb759911") version("2021.10.0", sha256="580c40a8244039a700b93ea49fb0affc1c8d3c100eb6dc66368e101753f51e5c") From ac459df2b6cd24e352a5f49d424612cc4099b79e Mon Sep 17 00:00:00 2001 From: iarspider Date: Tue, 20 Sep 2022 19:40:39 +0200 Subject: [PATCH 157/241] Add fixed version 0.7.0 to cpu-features (#32726) * Add fixed version 0.7.0 to cpu-features * [@spackbot] updating style on behalf of iarspider Co-authored-by: iarspider --- var/spack/repos/builtin/packages/cpu-features/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/var/spack/repos/builtin/packages/cpu-features/package.py b/var/spack/repos/builtin/packages/cpu-features/package.py index 9609382dde9..35a0fecc753 100644 --- a/var/spack/repos/builtin/packages/cpu-features/package.py +++ b/var/spack/repos/builtin/packages/cpu-features/package.py @@ -15,6 +15,8 @@ class CpuFeatures(CMakePackage): version("main", branch="main") version("develop", branch="main", deprecated=True) + version("0.7.0", tag="v0.7.0") + depends_on("cmake@3.0.0:", type="build") def cmake_args(self): From 2f796e111966dd503e5694965a23dc4a13fafe97 Mon Sep 17 00:00:00 2001 From: Stephanie Labasan Brink Date: Tue, 20 Sep 2022 10:46:04 -0700 Subject: [PATCH 158/241] variorum: new versions 0.5 and 0.6, remove log option (#32731) --- var/spack/repos/builtin/packages/variorum/package.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/var/spack/repos/builtin/packages/variorum/package.py b/var/spack/repos/builtin/packages/variorum/package.py index f6f21cb2577..07ac0de3abe 100644 --- a/var/spack/repos/builtin/packages/variorum/package.py +++ b/var/spack/repos/builtin/packages/variorum/package.py @@ -17,6 +17,8 @@ class Variorum(CMakePackage): maintainers = ["slabasan", "rountree"] + version("0.6.0", sha256="c0928a0e6901808ee50142d1034de15edc2c90d7d1b9fbce43757226e7c04306") + version("0.5.0", sha256="de331762e7945ee882d08454ff9c66436e2b6f87f761d2b31c6ab3028723bfed") version("0.4.1", sha256="be7407b856bc2239ecaa27d3df80aee2f541bb721fbfa183612bd9c0ce061f28") version("0.4.0", sha256="70ff1c5a3ae15d0bd07d409ab6f3c128e69528703a829cb18ecb4a50adeaea34") version("0.3.0", sha256="f79563f09b8fe796283c879b05f7730c36d79ca0346c12995b7bccc823653f42") @@ -28,7 +30,6 @@ class Variorum(CMakePackage): ############ variant("shared", default=True, description="Build Variorum as shared lib") variant("docs", default=False, description="Build Variorum's documentation") - variant("log", default=False, description="Enable Variorum's logs") variant( "build_type", default="Release", @@ -78,11 +79,6 @@ def cmake_args(self): else: cmake_args.append("-DVARIORUM_DEBUG=OFF") - if "+log" in spec: - cmake_args.append("-DVARIORUM_LOG=ON") - else: - cmake_args.append("-DVARIORUM_LOG=OFF") - if self.run_tests: cmake_args.append("-DBUILD_TESTS=ON") else: From 692f1d0e759c32660827f85fb356b5af6ebdf9d9 Mon Sep 17 00:00:00 2001 From: HELICS-bot <45982316+HELICS-bot@users.noreply.github.com> Date: Tue, 20 Sep 2022 10:53:59 -0700 Subject: [PATCH 159/241] helics: Add version 3.3.0 (#32682) Co-authored-by: github-actions[bot] Co-authored-by: Ryan Mast <3969255+nightlark@users.noreply.github.com> --- var/spack/repos/builtin/packages/helics/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/helics/package.py b/var/spack/repos/builtin/packages/helics/package.py index aeb7f8b8745..1a4f24e6ea6 100644 --- a/var/spack/repos/builtin/packages/helics/package.py +++ b/var/spack/repos/builtin/packages/helics/package.py @@ -21,6 +21,7 @@ class Helics(CMakePackage): version("develop", branch="develop", submodules=True) version("main", branch="main", submodules=True) version("master", branch="main", submodules=True) + version("3.3.0", sha256="0c2fe0eb2bfc527901a50bbdaa742a7c4b9424dc8fa326ca614157613dcd1457") version("3.2.1", sha256="9df8a7a687c7cf8ea6f157e748e57e8bf5cefa9a49a24e7c590fe9191291da95") version("3.2.0", sha256="b9cec50b9e767113b2e04a5623437885f76196cc9a58287e21f5c0f62c32cca1") version("3.1.2", sha256="eed5daff8ce131c86e972383a1e67933ddac97be5345d41b41ef71663eb097bb") From 4b66364b06967a6b56e02b65c1e3d97465094543 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Tue, 20 Sep 2022 13:20:55 -0500 Subject: [PATCH 160/241] gaudi: @:36 fails to build with fmt@9: (#32699) Since fmt@9.0.0 and 9.1.0 were [added](https://github.com/spack/spack/commit/6c4acfbf83372f76fe69aa7b959f257b6a1e8410) to spack a few days ago, gaudi fails to compile with default concretization. Since gaudi developers are usually paying attention to new versions of dependencies, I'm going to assume (perhaps optimistically) that the next bugfix version of gaudi will fix this (even though the issue has not been reported yet to Gaudi; I posted on the [key4hep public mirror](https://github.com/key4hep/Gaudi/issues/1)). --- var/spack/repos/builtin/packages/gaudi/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/gaudi/package.py b/var/spack/repos/builtin/packages/gaudi/package.py index 1dc701c5cec..7f38dde5448 100644 --- a/var/spack/repos/builtin/packages/gaudi/package.py +++ b/var/spack/repos/builtin/packages/gaudi/package.py @@ -65,6 +65,7 @@ class Gaudi(CMakePackage): depends_on("cmake", type="build") depends_on("cppgsl") depends_on("fmt", when="@33.2:") + depends_on("fmt@:8", when="@:36.7") depends_on("intel-tbb") depends_on("uuid") depends_on("nlohmann-json", when="@35.0:") From fd66f55e3c53aec5736a091d445acdfd641274b5 Mon Sep 17 00:00:00 2001 From: "John W. Parent" <45471568+johnwparent@users.noreply.github.com> Date: Tue, 20 Sep 2022 14:24:16 -0400 Subject: [PATCH 161/241] cmake: add v3.24.1 and v3.24.2 (#32654) --- var/spack/repos/builtin/packages/cmake/package.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py index 9af718f121c..e988af5ba26 100644 --- a/var/spack/repos/builtin/packages/cmake/package.py +++ b/var/spack/repos/builtin/packages/cmake/package.py @@ -28,6 +28,9 @@ class Cmake(Package): executables = ["^cmake$"] version("master", branch="master") + version("3.24.2", sha256="0d9020f06f3ddf17fb537dc228e1a56c927ee506b486f55fe2dc19f69bf0c8db") + version("3.24.1", sha256="4931e277a4db1a805f13baa7013a7757a0cbfe5b7932882925c7061d9d1fa82b") + version("3.24.0", sha256="c2b61f7cdecb1576cad25f918a8f42b8685d88a832fd4b62b9e0fa32e915a658") version("3.23.3", sha256="06fefaf0ad94989724b56f733093c2623f6f84356e5beb955957f9ce3ee28809") version("3.23.2", sha256="f316b40053466f9a416adf981efda41b160ca859e97f6a484b447ea299ff26aa") version("3.23.1", sha256="33fd10a8ec687a4d0d5b42473f10459bb92b3ae7def2b745dc10b192760869f3") From 16692b802b7271d7db33212b9f314ae26ef95bad Mon Sep 17 00:00:00 2001 From: Paulo Baraldi Mausbach Date: Tue, 20 Sep 2022 17:47:08 -0300 Subject: [PATCH 162/241] New python package support: py-river (#32718) --- .../builtin/packages/py-river/package.py | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-river/package.py diff --git a/var/spack/repos/builtin/packages/py-river/package.py b/var/spack/repos/builtin/packages/py-river/package.py new file mode 100644 index 00000000000..567f9cbb5fa --- /dev/null +++ b/var/spack/repos/builtin/packages/py-river/package.py @@ -0,0 +1,28 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyRiver(PythonPackage): + """River is a Python library for online machine learning. It aims to be the most + user-friendly library for doing machine learning on streaming data. River is the + result of a merge between creme and scikit-multiflow.""" + + homepage = "https://riverml.xyz/0.13.0/" + pypi = "river/river-0.13.0.tar.gz" + + version("0.13.0", sha256="9d068b7a9db32302fbd581af81315681dfe61774a5d777fb3d5982d3c3061340") + + # pyproject.toml + depends_on("py-cython", type="build") + depends_on("py-setuptools", type="build") + depends_on("py-setuptools-rust", type="build") + + # setup.py + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-numpy@1.22:", type=("build", "run")) + depends_on("py-scipy@1.5:", type=("build", "run")) + depends_on("py-pandas@1.3:", type=("build", "run")) From e45bc8440b225cda03c28f29591e62d7cb2f4a4a Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Tue, 20 Sep 2022 18:57:50 -0500 Subject: [PATCH 163/241] pango: harfbuzz+coretext required on macOS (#32637) --- .../repos/builtin/packages/harfbuzz/package.py | 17 +++++++++++++++++ .../repos/builtin/packages/pango/package.py | 1 + 2 files changed, 18 insertions(+) diff --git a/var/spack/repos/builtin/packages/harfbuzz/package.py b/var/spack/repos/builtin/packages/harfbuzz/package.py index 03625c77ff6..0400c0a21ab 100644 --- a/var/spack/repos/builtin/packages/harfbuzz/package.py +++ b/var/spack/repos/builtin/packages/harfbuzz/package.py @@ -13,6 +13,7 @@ class Harfbuzz(MesonPackage): url = "https://github.com/harfbuzz/harfbuzz/releases/download/2.9.1/harfbuzz-2.9.1.tar.xz" git = "https://github.com/harfbuzz/harfbuzz.git" + version("5.1.0", sha256="2edb95db668781aaa8d60959d21be2ff80085f31b12053cdd660d9a50ce84f05") version("4.2.1", sha256="bd17916513829aeff961359a5ccebba6de2f4bf37a91faee3ac29c120e3d7ee1") version("4.1.0", sha256="f7984ff4241d4d135f318a93aa902d910a170a8265b7eaf93b5d9a504eed40c8") version("4.0.1", sha256="98f68777272db6cd7a3d5152bac75083cd52a26176d87bc04c8b3929d33bce49") @@ -57,6 +58,12 @@ class Harfbuzz(MesonPackage): ) variant("graphite2", default=False, description="enable support for graphite2 font engine") + variant( + "coretext", + default=False, + when="platform=darwin", + description="Enable CoreText shaper backend on macOS", + ) depends_on("pkgconfig", type="build") depends_on("glib") @@ -109,6 +116,11 @@ def meson_args(self): "-Dgraphite2=" + ("enabled" if self.spec.satisfies("+graphite2") else "disabled") ) + if "+coretext" in self.spec: + args.append("-Dcoretext=enabled") + elif "~coretext" in self.spec: + args.append("-Dcoretext=disabled") + return args @when("@:2.9") @@ -124,6 +136,11 @@ def configure_args(self): args.append("GTKDOC_REBASE={0}".format(true)) args.extend(self.with_or_without("graphite2")) + if "+coretext" in self.spec: + args.append("--with-coretext") + elif "~coretext" in self.spec: + args.append("--without-coretext") + return args def patch(self): diff --git a/var/spack/repos/builtin/packages/pango/package.py b/var/spack/repos/builtin/packages/pango/package.py index beec669c71f..b3480c76286 100644 --- a/var/spack/repos/builtin/packages/pango/package.py +++ b/var/spack/repos/builtin/packages/pango/package.py @@ -55,6 +55,7 @@ class Pango(MesonPackage): depends_on("pkgconfig@0.9.0:", type="build") depends_on("harfbuzz") + depends_on("harfbuzz+coretext", when="platform=darwin") depends_on("cairo+ft+fc") depends_on("cairo~X", when="~X") depends_on("cairo+X", when="+X") From 1313bc99a6402d4f6ece5d0a9987b2ff7b1dfeee Mon Sep 17 00:00:00 2001 From: "Garth N. Wells" Date: Wed, 21 Sep 2022 09:12:22 +0100 Subject: [PATCH 164/241] dolfinx: fix depends_on directive missing a version (#32730) --- var/spack/repos/builtin/packages/fenics-dolfinx/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py index 9ed3f6fb74b..ee821d18aef 100644 --- a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py +++ b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py @@ -82,7 +82,7 @@ class FenicsDolfinx(CMakePackage): depends_on("py-fenics-ffcx@0.1.0", type=("build", "run"), when="@0.1.0") depends_on("fenics-basix@main", when="@main") - depends_on("fenics-basix@0.5.1:0.5", when="@0.5.1:0.5") + depends_on("fenics-basix@0.5.1:0.5", when="@0.5.0:0.5") depends_on("fenics-basix@0.4.2", when="@0.4.1") depends_on("fenics-basix@0.3.0", when="@0.3.0") depends_on("fenics-basix@0.2.0", when="@0.2.0") From f12ececee547e498cd80ea630ab57116eb51c934 Mon Sep 17 00:00:00 2001 From: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Date: Wed, 21 Sep 2022 05:23:58 -0700 Subject: [PATCH 165/241] Docs: Update pipeline ci rebuild to add --tests (plus fixed typos) (#32048) --- lib/spack/docs/pipelines.rst | 84 ++++++++++++++++++++++++++---------- 1 file changed, 62 insertions(+), 22 deletions(-) diff --git a/lib/spack/docs/pipelines.rst b/lib/spack/docs/pipelines.rst index bd695c29bac..419e128fc77 100644 --- a/lib/spack/docs/pipelines.rst +++ b/lib/spack/docs/pipelines.rst @@ -5,9 +5,9 @@ .. _pipelines: -========= -Pipelines -========= +============ +CI Pipelines +============ Spack provides commands that support generating and running automated build pipelines designed for Gitlab CI. At the highest level it works like this: @@ -168,7 +168,7 @@ which specs are up to date and which need to be rebuilt (it's a good idea for ot reasons as well, but those are out of scope for this discussion). In this case we have disabled it (using ``rebuild-index: False``) because the index would only be generated in the artifacts mirror anyway, and consequently would not be available -during subesequent pipeline runs. +during subsequent pipeline runs. .. note:: With the addition of reproducible builds (#22887) a previously working @@ -267,24 +267,64 @@ generated by jobs in the pipeline. ``spack ci rebuild`` ^^^^^^^^^^^^^^^^^^^^^ -The purpose of the ``spack ci rebuild`` is straightforward: take its assigned -spec job, check whether the target mirror already has a binary for that spec, -and if not, build the spec from source and push the binary to the mirror. To -accomplish this in a reproducible way, the sub-command prepares a ``spack install`` -command line to build a single spec in the DAG, saves that command in a -shell script, ``install.sh``, in the current working directory, and then runs -it to install the spec. The shell script is also exported as an artifact to -aid in reproducing the build outside of the CI environment. +The purpose of ``spack ci rebuild`` is straightforward: take its assigned +spec and ensure a binary of a successful build exists on the target mirror. +If the binary does not already exist, it is built from source and pushed +to the mirror. The associated stand-alone tests are optionally run against +the new build. Additionally, files for reproducing the build outside of the +CI environment are created to facilitate debugging. -If it was necessary to install the spec from source, ``spack ci rebuild`` will -also subsequently create a binary package for the spec and try to push it to the -mirror. +If a binary for the spec does not exist on the target mirror, an install +shell script, ``install.sh``, is created and saved in the current working +directory. The script is run in a job to install the spec from source. The +resulting binary package is pushed to the mirror. If ``cdash`` is configured +for the environment, then the build results will be uploaded to the site. -The ``spack ci rebuild`` sub-command mainly expects its "input" to come either -from environment variables or from the ``gitlab-ci`` section of the ``spack.yaml`` -environment file. There are two main sources of the environment variables, some -are written into ``.gitlab-ci.yml`` by ``spack ci generate``, and some are -provided by the GitLab CI runtime. +Environment variables and values in the ``gitlab-ci`` section of the +``spack.yaml`` environment file provide inputs to this process. The +two main sources of environment variables are variables written into +``.gitlab-ci.yml`` by ``spack ci generate`` and the GitLab CI runtime. +Several key CI pipeline variables are described in +:ref:`ci_environment_variables`. + +If the ``--tests`` option is provided, stand-alone tests are performed but +only if the build was successful *and* the package does not appear in the +list of ``broken-tests-packages``. A shell script, ``test.sh``, is created +and run to perform the tests. On completion, test logs are exported as job +artifacts for review and to facilitate debugging. If `cdash` is configured, +test results are also uploaded to the site. + +A snippet from an example ``spack.yaml`` file illustrating use of this +option *and* specification of a package with broken tests is given below. +The inclusion of a spec for building ``gptune`` is not shown here. Note +that ``--tests`` is passed to ``spack ci rebuild`` as part of the +``gitlab-ci`` script. + +.. code-block:: yaml + + gitlab-ci: + script: + - . "./share/spack/setup-env.sh" + - spack --version + - cd ${SPACK_CONCRETE_ENV_DIR} + - spack env activate --without-view . + - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'" + - mkdir -p ${SPACK_ARTIFACTS_ROOT}/user_data + - if [[ -r /mnt/key/intermediate_ci_signing_key.gpg ]]; then spack gpg trust /mnt/key/intermediate_ci_signing_key.gpg; fi + - if [[ -r /mnt/key/spack_public_key.gpg ]]; then spack gpg trust /mnt/key/spack_public_key.gpg; fi + - spack -d ci rebuild --tests > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) + + broken-tests-packages: + - gptune + +In this case, even if ``gptune`` is successfully built from source, the +pipeline will *not* run its stand-alone tests since the package is listed +under ``broken-tests-packages``. + +Spack's cloud pipelines provide actual, up-to-date examples of the CI/CD +configuration and environment files used by Spack. You can find them +under Spack's `stacks +`_ repository directory. .. _cmd-spack-ci-rebuild-index: @@ -447,7 +487,7 @@ Note about "no-op" jobs ^^^^^^^^^^^^^^^^^^^^^^^ If no specs in an environment need to be rebuilt during a given pipeline run -(meaning all are already up to date on the mirror), a single succesful job +(meaning all are already up to date on the mirror), a single successful job (a NO-OP) is still generated to avoid an empty pipeline (which GitLab considers to be an error). An optional ``service-job-attributes`` section can be added to your ``spack.yaml`` where you can provide ``tags`` and @@ -725,7 +765,7 @@ above with ``git checkout ${SPACK_CHECKOUT_VERSION}``. On the other hand, if you're pointing to a spack repository and branch under your control, there may be no benefit in using the captured ``SPACK_CHECKOUT_VERSION``, and you can instead just clone using the variables you define (``SPACK_REPO`` -and ``SPACK_REF`` in the example aboves). +and ``SPACK_REF`` in the example above). .. _custom_workflow: From 874364bf4d3d0c4a973e522adb036fa24eeaabda Mon Sep 17 00:00:00 2001 From: Laurent Aphecetche Date: Wed, 21 Sep 2022 15:38:52 +0200 Subject: [PATCH 166/241] vgm: add v5-0 (#32742) --- var/spack/repos/builtin/packages/vgm/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/vgm/package.py b/var/spack/repos/builtin/packages/vgm/package.py index 203981e8ab9..2f80760f102 100644 --- a/var/spack/repos/builtin/packages/vgm/package.py +++ b/var/spack/repos/builtin/packages/vgm/package.py @@ -19,6 +19,7 @@ class Vgm(CMakePackage): maintainer = ["wdconinc"] version("master", branch="master") + version("5-0", sha256="ab929df1aa9b0cda40451f5a98982c3328901865b33e30207ee9b9fe14331344") version("4-8", sha256="4fcd607b4f100fc00a65fec7a5803575daf9d4919d1808bbd6a30be263c001dd") version("4-7", sha256="a5f5588db457dc3e6562d1f7da1707960304560fbb0a261559fa3f112a476aea") version("4-6", sha256="6bf0aeef38f357a313e376090b45d3e0713ef9e52ca198075fae8579b8d5a23a") From 36df918e7deba7ce7dc6ce24b6de8073811fbebe Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Wed, 21 Sep 2022 16:48:16 +0200 Subject: [PATCH 167/241] py-bleach: add 5.0.1 (#32727) --- var/spack/repos/builtin/packages/py-bleach/package.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-bleach/package.py b/var/spack/repos/builtin/packages/py-bleach/package.py index f5d97aca9ee..890ebc2443f 100644 --- a/var/spack/repos/builtin/packages/py-bleach/package.py +++ b/var/spack/repos/builtin/packages/py-bleach/package.py @@ -12,16 +12,18 @@ class PyBleach(PythonPackage): homepage = "https://github.com/mozilla/bleach" pypi = "bleach/bleach-3.1.0.tar.gz" + version("5.0.1", sha256="0d03255c47eb9bd2f26aa9bb7f2107732e7e8fe195ca2f64709fcf3b0a4a085c") version("4.1.0", sha256="0900d8b37eba61a802ee40ac0061f8c2b5dee29c1927dd1d233e075ebf5a71da") version("4.0.0", sha256="ffa9221c6ac29399cc50fcc33473366edd0cf8d5e2cbbbb63296dc327fb67cc8") version("3.3.1", sha256="306483a5a9795474160ad57fce3ddd1b50551e981eed8e15a582d34cef28aafa") version("3.1.0", sha256="3fdf7f77adcf649c9911387df51254b813185e32b2c6619f690b593a617e19fa") version("1.5.0", sha256="978e758599b54cd3caa2e160d74102879b230ea8dc93871d0783721eef58bc65") - depends_on("python@3.6:", when="@4.0.0:", type=("build", "run")) + depends_on("python@3.7:", when="@5:", type=("build", "run")) + depends_on("python@3.6:", when="@4:", type=("build", "run")) depends_on("python@2.7:2,3.5:", when="@3.1.3:", type=("build", "run")) depends_on("python@2.7:2,3.4:", type=("build", "run")) depends_on("py-setuptools", type=("build", "run")) depends_on("py-six@1.9.0:", type=("build", "run")) depends_on("py-webencodings", type=("build", "run")) - depends_on("py-packaging", when="@3.1.5:", type=("build", "run")) + depends_on("py-packaging", when="@3.1.5:4", type=("build", "run")) From dc214edc9c34d092b2a4a65046de36c4aa29ac37 Mon Sep 17 00:00:00 2001 From: Vanessasaurus <814322+vsoch@users.noreply.github.com> Date: Wed, 21 Sep 2022 10:26:09 -0600 Subject: [PATCH 168/241] flux-sched: add v0.24.0 (#32743) Co-authored-by: github-actions --- var/spack/repos/builtin/packages/flux-sched/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/flux-sched/package.py b/var/spack/repos/builtin/packages/flux-sched/package.py index 2bac4dfb50c..bb1bc739ba8 100644 --- a/var/spack/repos/builtin/packages/flux-sched/package.py +++ b/var/spack/repos/builtin/packages/flux-sched/package.py @@ -20,7 +20,7 @@ class FluxSched(AutotoolsPackage): maintainers = ["grondo"] version("master", branch="master") - + version("0.24.0", sha256="e104eb740e94f26a6a690f1c299bbe643f88751cc14a2596f0779a19cfeb5e6f") version("0.23.0", sha256="159b62cc4d25ef3d5da5338511ff38449a893d8adca13383cda7b322295acc1c") version("0.22.0", sha256="33cab21b667eeccd5665c5f139293b7b3e17cd3847e5fb2633c0dbacb33c611f") version("0.21.1", sha256="4dbe8a2e06a816535ef43f34cec960c1e4108932438cd6dbb1d0040423f4477d") From 663f55825dfa1c169b19511ffc7d2e5c9f955887 Mon Sep 17 00:00:00 2001 From: Vanessasaurus <814322+vsoch@users.noreply.github.com> Date: Wed, 21 Sep 2022 10:26:41 -0600 Subject: [PATCH 169/241] flux-core: add v0.43.0 (#32744) Co-authored-by: github-actions --- var/spack/repos/builtin/packages/flux-core/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/flux-core/package.py b/var/spack/repos/builtin/packages/flux-core/package.py index fb270d52504..7995cfef237 100644 --- a/var/spack/repos/builtin/packages/flux-core/package.py +++ b/var/spack/repos/builtin/packages/flux-core/package.py @@ -20,6 +20,7 @@ class FluxCore(AutotoolsPackage): maintainers = ["grondo"] version("master", branch="master") + version("0.43.0", sha256="4b9816d04e8b5b248a8d5e3dac3f9822f8f89831e340f36745e01512d768597b") version("0.42.0", sha256="ac64055976cd7cda26e2991174b9a58048bd4fb75c5c2012023050d76c718445") version("0.41.0", sha256="3f3a6a8a1e7d2f326b0e684dcf70e4489076b3f52dd14480e2f33cfdaeba690a") version("0.40.0", sha256="b15996b6165f037e5a6c42ea277e2c1c56a4f4b6bf47334105e324dcfefbf6fa") From d07b200b6704d821555b6b8e02a94d731ffb5168 Mon Sep 17 00:00:00 2001 From: Robert Pavel Date: Wed, 21 Sep 2022 10:45:48 -0600 Subject: [PATCH 170/241] Spackage for mlperf's OpenCatalyst (#32553) * Initial opencatalyst proxy app spackage Initial spackage for opencatalyst proxy app. Includes exposing of versions in dependency spackages * Verified Functionality and Spack Style Verified build of mlperf-opencatalyst and fixed lingering spack style issues * Making requested changes to py-ocp Making requested changed to spackage * Further Requested Changes --- .../builtin/packages/py-demjson/package.py | 26 +++++++++++ .../repos/builtin/packages/py-lmdb/package.py | 1 + .../builtin/packages/py-ocp-models/package.py | 45 +++++++++++++++++++ .../builtin/packages/py-pre-commit/package.py | 1 + .../builtin/packages/py-pymatgen/package.py | 3 ++ .../builtin/packages/py-pytest/package.py | 1 + .../builtin/packages/py-pyyaml/package.py | 1 + .../repos/builtin/packages/py-tqdm/package.py | 1 + 8 files changed, 79 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-demjson/package.py create mode 100644 var/spack/repos/builtin/packages/py-ocp-models/package.py diff --git a/var/spack/repos/builtin/packages/py-demjson/package.py b/var/spack/repos/builtin/packages/py-demjson/package.py new file mode 100644 index 00000000000..25308242e43 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-demjson/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyDemjson(PythonPackage): + """demjson is a Python language module for encoding, decoding, and syntax-checking JSON data""" + + homepage = "http://deron.meranda.us/python/demjson/" + pypi = "demjson/demjson-2.2.4.tar.gz" + + version("2.2.4", sha256="31de2038a0fdd9c4c11f8bf3b13fe77bc2a128307f965c8d5fb4dc6d6f6beb79") + version("2.2.3", sha256="9fb0f3c02fe500104680af2889a64d1637b395aebdb37341ae2309d77854f40c") + version("2.2.2", sha256="5114563dd3a0324b6c9c74250528660adbb6a095b2a015038149e31a9b5727d5") + version("2.2.1", sha256="75055ebb6112a3c6bc3e009f528b209f9968773ebd3d3a1cd0d4b6c2006ee830") + version("2.2", sha256="2aaa78c4d6f08c1bbcb88babd18cb54bb3ba2446870088ca33581c69f603a3a2") + version("2.0.1", sha256="572c755df5aec7ac3fde5535795b8bf71f54e4681196c97a7a97d81916293504") + version("2.0", sha256="24f638daa0c28a9d44db2282d46ea3edfd4c7d11a656e38677b741620bf1483d") + version("1.6", sha256="1d989c310e33569ecc178b8182e53bde8f748bf5ea10cfbc0e331f8c313f6e29") + version("1.5", sha256="446f4a74ba95679fa2fbe31887beb0c9870b6b8b2706ed5798bbf91339e8c349") + version("1.4", sha256="e5858dc54a80290cecbc1d1514c6ce50dca44fbd15ccc195c4a8b6969b45a41f") + + depends_on("py-setuptools", type="build") diff --git a/var/spack/repos/builtin/packages/py-lmdb/package.py b/var/spack/repos/builtin/packages/py-lmdb/package.py index fd04b15b774..f7f56deccd8 100644 --- a/var/spack/repos/builtin/packages/py-lmdb/package.py +++ b/var/spack/repos/builtin/packages/py-lmdb/package.py @@ -14,6 +14,7 @@ class PyLmdb(PythonPackage): homepage = "https://github.com/jnwatson/py-lmdb/" version("1.3.0", sha256="60a11efc21aaf009d06518996360eed346f6000bfc9de05114374230879f992e") + version("1.1.1", sha256="165cd1669b29b16c2d5cc8902b90fede15a7ee475c54d466f1444877a3f511ac") depends_on("python@2.7:2,3.4:", type=("build", "run")) depends_on("py-setuptools", type="build") diff --git a/var/spack/repos/builtin/packages/py-ocp-models/package.py b/var/spack/repos/builtin/packages/py-ocp-models/package.py new file mode 100644 index 00000000000..ade12c6cc41 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-ocp-models/package.py @@ -0,0 +1,45 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack.package import * + + +class PyOcpModels(PythonPackage): + """Reference implementation for the MLPerf HPC OpenCatalyst DimeNet++ benchmark""" + + homepage = "https://opencatalystproject.org/" + git = "https://github.com/mlcommons/hpc.git" + + version("main", branch="main") + + tags = ["proxy-app"] + + depends_on("python@3.8", type=("build", "run")) + depends_on("py-ase@3.21", type=("build", "run")) + depends_on("py-matplotlib@3.3", type=("build", "run")) + depends_on("py-pre-commit@2.10", type=("build", "run")) + depends_on("py-pymatgen@2020.12.31", type=("build", "run")) + depends_on("py-torch@1.8.1", type=("build", "run")) + depends_on("py-pyyaml@5.4", type=("build", "run")) + depends_on("py-tensorboard@2.4", type=("build", "run")) + depends_on("py-tqdm@4.58", type=("build", "run")) + depends_on("py-sphinx", type=("build", "run")) + depends_on("py-nbsphinx", type=("build", "run")) + depends_on("pandoc", type=("build", "run")) + depends_on("py-black", type=("build", "run")) + depends_on("py-torch", type=("build", "run")) + depends_on("py-torch-scatter", type=("build", "run")) + depends_on("py-torch-cluster", type=("build", "run")) + depends_on("py-torch-sparse", type=("build", "run")) + depends_on("py-torch-spline-conv", type=("build", "run")) + depends_on("py-demjson", type=("build", "run")) + depends_on("py-pillow", type=("build", "run")) + depends_on("py-torch-geometric", type=("build", "run")) + depends_on("py-wandb", type=("build", "run")) + depends_on("py-lmdb@1.1.1", type=("build", "run")) + depends_on("py-pytest@6.2.2", type=("build", "run")) + depends_on("py-submitit", type=("build", "run")) + depends_on("py-sphinx-rtd-theme", type=("build", "run")) + + build_directory = "open_catalyst" diff --git a/var/spack/repos/builtin/packages/py-pre-commit/package.py b/var/spack/repos/builtin/packages/py-pre-commit/package.py index 32a7327f615..62b39be7219 100644 --- a/var/spack/repos/builtin/packages/py-pre-commit/package.py +++ b/var/spack/repos/builtin/packages/py-pre-commit/package.py @@ -15,6 +15,7 @@ class PyPreCommit(PythonPackage): version("2.20.0", sha256="a978dac7bc9ec0bcee55c18a277d553b0f419d259dadb4b9418ff2d00eb43959") version("2.17.0", sha256="c1a8040ff15ad3d648c70cc3e55b93e4d2d5b687320955505587fd79bbaed06a") + version("2.10.1", sha256="399baf78f13f4de82a29b649afd74bef2c4e28eb4f021661fc7f29246e8c7a3a") version("1.20.0", sha256="9f152687127ec90642a2cc3e4d9e1e6240c4eb153615cb02aa1ad41d331cbb6e") depends_on("python@2.7:2.8,3.5:", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-pymatgen/package.py b/var/spack/repos/builtin/packages/py-pymatgen/package.py index 7c238b25bad..c3277cc6e0d 100644 --- a/var/spack/repos/builtin/packages/py-pymatgen/package.py +++ b/var/spack/repos/builtin/packages/py-pymatgen/package.py @@ -16,6 +16,9 @@ class PyPymatgen(PythonPackage): pypi = "pymatgen/pymatgen-4.7.2.tar.gz" version("2021.3.9", sha256="a6f22d69133a48b7801bfd5e6a2878b47b4b4b2ef1a377b87c6c573be14cbf16") + version( + "2020.12.31", sha256="5002490facd47c55d2dae42c35712e061c1f5d881180485c0543a899589856d6" + ) version("4.7.2", sha256="e439b78cc3833a03963c3c3efe349d8a0e52a1550c8a05c56a89aa1b86657436") version("4.6.2", sha256="f34349090c6f604f7d402cb09cd486830b38523639d7160d7fd282d504036a0e") diff --git a/var/spack/repos/builtin/packages/py-pytest/package.py b/var/spack/repos/builtin/packages/py-pytest/package.py index 489060ae7bd..d9d1ef217d3 100644 --- a/var/spack/repos/builtin/packages/py-pytest/package.py +++ b/var/spack/repos/builtin/packages/py-pytest/package.py @@ -15,6 +15,7 @@ class PyPytest(PythonPackage): version("7.1.3", sha256="4f365fec2dff9c1162f834d9f18af1ba13062db0c708bf7b946f8a5c76180c39") version("6.2.5", sha256="131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89") version("6.2.4", sha256="50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b") + version("6.2.2", sha256="9d1edf9e7d0b84d72ea3dbcdfd22b35fb543a5e8f2a60092dd578936bf63d7f9") version("6.2.1", sha256="66e419b1899bc27346cb2c993e12c5e5e8daba9073c1fbce33b9807abc95c306") version("6.1.1", sha256="8f593023c1a0f916110285b6efd7f99db07d59546e3d8c36fc60e2ab05d3be92") version("5.3.4", sha256="1d122e8be54d1a709e56f82e2d85dcba3018313d64647f38a91aec88c239b600") diff --git a/var/spack/repos/builtin/packages/py-pyyaml/package.py b/var/spack/repos/builtin/packages/py-pyyaml/package.py index 9dd8b39092c..6da402d5a0e 100644 --- a/var/spack/repos/builtin/packages/py-pyyaml/package.py +++ b/var/spack/repos/builtin/packages/py-pyyaml/package.py @@ -14,6 +14,7 @@ class PyPyyaml(PythonPackage): git = "https://github.com/yaml/pyyaml.git" version("6.0", sha256="68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2") + version("5.4.1", sha256="607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e") version("5.3.1", sha256="b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d") version("5.2", sha256="c0ee8eca2c582d29c3c2ec6e2c4f703d1b7f1fb10bc72317355a746057e7346c") version("5.1.2", sha256="01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4") diff --git a/var/spack/repos/builtin/packages/py-tqdm/package.py b/var/spack/repos/builtin/packages/py-tqdm/package.py index ecf8f160343..9168d85f3b0 100644 --- a/var/spack/repos/builtin/packages/py-tqdm/package.py +++ b/var/spack/repos/builtin/packages/py-tqdm/package.py @@ -15,6 +15,7 @@ class PyTqdm(PythonPackage): version("4.64.0", sha256="40be55d30e200777a307a7585aee69e4eabb46b4ec6a4b4a5f2d9f11e7d5408d") version("4.62.3", sha256="d359de7217506c9851b7869f3708d8ee53ed70a1b8edbba4dbcb47442592920d") version("4.59.0", sha256="d666ae29164da3e517fcf125e41d4fe96e5bb375cd87ff9763f6b38b5592fe33") + version("4.58.0", sha256="c23ac707e8e8aabb825e4d91f8e17247f9cc14b0d64dd9e97be0781e9e525bba") version("4.56.2", sha256="11d544652edbdfc9cc41aa4c8a5c166513e279f3f2d9f1a9e1c89935b51de6ff") version("4.46.0", sha256="4733c4a10d0f2a4d098d801464bdaf5240c7dadd2a7fde4ee93b0a0efd9fb25e") version("4.45.0", sha256="00339634a22c10a7a22476ee946bbde2dbe48d042ded784e4d88e0236eca5d81") From 7e01a1252a846c2b20becb4488cb1bb95f2863d9 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Wed, 21 Sep 2022 19:22:58 +0200 Subject: [PATCH 171/241] Allow conditional variants as first values in a variant directive (#32740) --- lib/spack/spack/test/variant.py | 11 +++++++++-- lib/spack/spack/variant.py | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/spack/spack/test/variant.py b/lib/spack/spack/test/variant.py index 204514b58d7..0284c5ea0c5 100644 --- a/lib/spack/spack/test/variant.py +++ b/lib/spack/spack/test/variant.py @@ -2,13 +2,12 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - - import numbers import pytest import spack.error +import spack.variant from spack.variant import ( BoolValuedVariant, DuplicateVariantError, @@ -737,3 +736,11 @@ def test_disjoint_set_fluent_methods(): assert "none" not in d assert "none" not in [x for x in d] assert "none" not in d.feature_values + + +@pytest.mark.regression("32694") +@pytest.mark.parametrize("other", [True, False]) +def test_conditional_value_comparable_to_bool(other): + value = spack.variant.Value("98", when="@1.0") + comparison = value == other + assert comparison is False diff --git a/lib/spack/spack/variant.py b/lib/spack/spack/variant.py index 1f21aad89fd..864ea264467 100644 --- a/lib/spack/spack/variant.py +++ b/lib/spack/spack/variant.py @@ -886,7 +886,7 @@ def __hash__(self): return hash(self.value) def __eq__(self, other): - if isinstance(other, six.string_types): + if isinstance(other, (six.string_types, bool)): return self.value == other return self.value == other.value From e7f1f1af30f975ffbb2ae73feabdd83253bc8bfe Mon Sep 17 00:00:00 2001 From: Sreenivasa Murthy Kolam <67086238+srekolam@users.noreply.github.com> Date: Wed, 21 Sep 2022 14:40:40 -0700 Subject: [PATCH 172/241] Update the version details for rocm-5.2.3 release (#32733) * Bump up the version for rocm-5.2.3 release * revert miopen-hip till the tag for mlirmiopen for 5.2.3 is available --- var/spack/repos/builtin/packages/atmi/package.py | 6 +++++- var/spack/repos/builtin/packages/comgr/package.py | 4 +++- var/spack/repos/builtin/packages/hip-rocclr/package.py | 3 +++ var/spack/repos/builtin/packages/hip/package.py | 8 +++++++- var/spack/repos/builtin/packages/hipblas/package.py | 4 +++- var/spack/repos/builtin/packages/hipcub/package.py | 4 +++- var/spack/repos/builtin/packages/hipfft/package.py | 4 +++- var/spack/repos/builtin/packages/hipfort/package.py | 4 +++- .../repos/builtin/packages/hipify-clang/package.py | 4 +++- var/spack/repos/builtin/packages/hipsolver/package.py | 5 +++-- var/spack/repos/builtin/packages/hipsparse/package.py | 5 ++++- .../repos/builtin/packages/hsa-rocr-dev/package.py | 4 +++- .../repos/builtin/packages/hsakmt-roct/package.py | 2 +- .../repos/builtin/packages/llvm-amdgpu/package.py | 5 ++++- var/spack/repos/builtin/packages/migraphx/package.py | 4 +++- var/spack/repos/builtin/packages/miopen-hip/package.py | 6 ++++-- .../repos/builtin/packages/miopen-opencl/package.py | 8 +++++--- var/spack/repos/builtin/packages/miopengemm/package.py | 2 ++ var/spack/repos/builtin/packages/mlirmiopen/package.py | 5 +++-- var/spack/repos/builtin/packages/rdc/package.py | 4 +++- var/spack/repos/builtin/packages/rocalution/package.py | 5 ++++- var/spack/repos/builtin/packages/rocblas/package.py | 5 ++++- var/spack/repos/builtin/packages/rocfft/package.py | 2 ++ .../builtin/packages/rocm-bandwidth-test/package.py | 4 +++- .../repos/builtin/packages/rocm-clang-ocl/package.py | 4 +++- var/spack/repos/builtin/packages/rocm-cmake/package.py | 3 ++- .../repos/builtin/packages/rocm-dbgapi/package.py | 5 ++++- .../repos/builtin/packages/rocm-debug-agent/package.py | 5 ++++- .../repos/builtin/packages/rocm-device-libs/package.py | 4 +++- var/spack/repos/builtin/packages/rocm-gdb/package.py | 4 +++- .../repos/builtin/packages/rocm-opencl/package.py | 3 +++ .../builtin/packages/rocm-openmp-extras/package.py | 10 +++++++++- .../repos/builtin/packages/rocm-smi-lib/package.py | 3 ++- var/spack/repos/builtin/packages/rocminfo/package.py | 5 ++++- var/spack/repos/builtin/packages/rocprim/package.py | 4 +++- .../repos/builtin/packages/rocprofiler-dev/package.py | 4 +++- var/spack/repos/builtin/packages/rocrand/package.py | 4 +++- var/spack/repos/builtin/packages/rocsolver/package.py | 4 +++- var/spack/repos/builtin/packages/rocsparse/package.py | 4 +++- var/spack/repos/builtin/packages/rocthrust/package.py | 4 +++- .../builtin/packages/roctracer-dev-api/package.py | 3 ++- .../repos/builtin/packages/roctracer-dev/package.py | 5 ++++- var/spack/repos/builtin/packages/rocwmma/package.py | 7 ++++--- 43 files changed, 146 insertions(+), 46 deletions(-) diff --git a/var/spack/repos/builtin/packages/atmi/package.py b/var/spack/repos/builtin/packages/atmi/package.py index cd1fe78d94d..a9575e8fdb8 100644 --- a/var/spack/repos/builtin/packages/atmi/package.py +++ b/var/spack/repos/builtin/packages/atmi/package.py @@ -20,6 +20,7 @@ class Atmi(CMakePackage): maintainers = ["srekolam", "renjithravindrankannath"] + version("5.2.3", sha256="5f66c59e668cf968e86b556a0a52ee0202d1b370d8406e291a874cbfd200ee17") version("5.2.1", sha256="6b33445aa67444c038cd756f855a58a72dd35db57e7b63da37fe78a8585b982b") version("5.2.0", sha256="33e77905a607734157d46c736c924c7c50b6b13f2b2ddbf711cb08e37f2efa4f") version("5.1.3", sha256="a43448d77705b2b07e1758ffe8035aa6ba146abc2167984e8cb0f1615797b341") @@ -108,6 +109,7 @@ class Atmi(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("comgr@" + ver, type="link", when="@" + ver) depends_on("hsa-rocr-dev@" + ver, type="link", when="@" + ver) @@ -121,7 +123,9 @@ class Atmi(CMakePackage): # Reset the installation path and remove direct reference to rsync. patch("0002-Remove-usr-bin-rsync-reference-5.2.0.patch", when="@5.0.2:5.2.0") # Remove direct reference to /usr/bin/rsync path for rsync command - patch("0002-Remove-direct-reference-to-usr-bin-rysnc-for-rsync-cmd-5.2.1.patch", when="@5.2.1") + patch( + "0002-Remove-direct-reference-to-usr-bin-rysnc-for-rsync-cmd-5.2.1.patch", when="@5.2.1:" + ) def cmake_args(self): args = [self.define("ROCM_VERSION", self.spec.version)] diff --git a/var/spack/repos/builtin/packages/comgr/package.py b/var/spack/repos/builtin/packages/comgr/package.py index 82cbe3d443c..e1fad6604aa 100644 --- a/var/spack/repos/builtin/packages/comgr/package.py +++ b/var/spack/repos/builtin/packages/comgr/package.py @@ -14,7 +14,7 @@ class Comgr(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport" git = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport.git" - url = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath", "haampie"] @@ -22,6 +22,7 @@ class Comgr(CMakePackage): version("master", branch="amd-stg-open") + version("5.2.3", sha256="36d67dbe791d08ad0a02f0f3aedd46059848a0a232c5f999670103b0410c89dc") version("5.2.1", sha256="ebeaea8e653fc2b9d67d3271be44690ac7876ee679baa01d47863e75362b8c85") version("5.2.0", sha256="5f63fa93739ee9230756ef93c53019474b6cdddea3b588492d785dae1b08c087") version("5.1.3", sha256="3078c10e9a852fe8357712a263ad775b15944e083f93a879935c877511066ac9") @@ -120,6 +121,7 @@ class Comgr(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", "master", ]: # llvm libs are linked statically, so this *could* be a build dep diff --git a/var/spack/repos/builtin/packages/hip-rocclr/package.py b/var/spack/repos/builtin/packages/hip-rocclr/package.py index d4ecec51d3a..49e1b2283c5 100644 --- a/var/spack/repos/builtin/packages/hip-rocclr/package.py +++ b/var/spack/repos/builtin/packages/hip-rocclr/package.py @@ -27,6 +27,7 @@ def url_for_version(self, version): return url.format(version) version("master", branch="main") + version("5.2.3", sha256="0493c414d4db1af8e1eb30a651d9512044644244488ebb13478c2138a7612998") version("5.2.1", sha256="465ca9fa16869cd89dab8c2d66d9b9e3c14f744bbedaa1d215b0746d77a500ba") version("5.2.0", sha256="37f5fce04348183bce2ece8bac1117f6ef7e710ca68371ff82ab08e93368bafb") version("5.1.3", sha256="ddee63cdc6515c90bab89572b13e1627b145916cb8ede075ef8446cbb83f0a48") @@ -117,6 +118,7 @@ def url_for_version(self, version): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", "master", ]: depends_on("hsakmt-roct@" + ver, when="@" + ver) @@ -139,6 +141,7 @@ def url_for_version(self, version): # Add opencl sources thru the below for d_version, d_shasum in [ + ("5.2.3", "932ea3cd268410010c0830d977a30ef9c14b8c37617d3572a062b5d4595e2b94"), ("5.2.1", "eb4ff433f8894ca659802f81792646034f8088b47aca6ad999292bcb8d6381d5"), ("5.2.0", "80f73387effdcd987a150978775a87049a976aa74f5770d4420847b004dd59f0"), ("5.1.3", "44a7fac721abcd93470e1a7e466bdea0c668c253dee93e4f1ea9a72dbce4ba31"), diff --git a/var/spack/repos/builtin/packages/hip/package.py b/var/spack/repos/builtin/packages/hip/package.py index 498057439a1..8b9b39f9a76 100644 --- a/var/spack/repos/builtin/packages/hip/package.py +++ b/var/spack/repos/builtin/packages/hip/package.py @@ -25,6 +25,8 @@ class Hip(CMakePackage): libraries = ["libamdhip64"] version("master", branch="master") + + version("5.2.3", sha256="5b83d1513ea4003bfad5fe8fa741434104e3e49a87e1d7fad49e5a8c1d06e57b") version("5.2.1", sha256="7d4686a2f8a9124bb21f7f3958e451c57019f48a0cbb42ffdc56ed02860a46c3") version("5.2.0", sha256="a6e0515d4d25865c037b546035df9c51f0882cd2700e759c266ff7e199f37c3a") version("5.1.3", sha256="ce755ee6e407904eba3f6b3c9efcdd48eb4f58a26b06e1892166d05f19a75973") @@ -128,6 +130,7 @@ class Hip(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hsakmt-roct@" + ver, when="@" + ver) depends_on("hsa-rocr-dev@" + ver, when="@" + ver) @@ -146,6 +149,7 @@ class Hip(CMakePackage): # Add hip-amd sources thru the below for d_version, d_shasum in [ + ("5.2.3", "5031d07554ce07620e24e44d482cbc269fa972e3e35377e935d2694061ff7c04"), ("5.2.1", "4feaa3883cbc54ddcd5d2d5becbe0f3fe3edd5b3b468dc73b5104893029eefac"), ("5.2.0", "8774958bebc29a4b7eb9dc2d38808d79d9a24bf9c1f44e801ff99d2d5ba82240"), ("5.1.3", "707f2217f0e7aeb62d7b76830a271056d665542bf5f7a54e40adf4d5f299ca93"), @@ -168,6 +172,7 @@ class Hip(CMakePackage): ) # Add opencl sources thru the below for d_version, d_shasum in [ + ("5.2.3", "932ea3cd268410010c0830d977a30ef9c14b8c37617d3572a062b5d4595e2b94"), ("5.2.1", "eb4ff433f8894ca659802f81792646034f8088b47aca6ad999292bcb8d6381d5"), ("5.2.0", "80f73387effdcd987a150978775a87049a976aa74f5770d4420847b004dd59f0"), ("5.1.3", "44a7fac721abcd93470e1a7e466bdea0c668c253dee93e4f1ea9a72dbce4ba31"), @@ -189,6 +194,7 @@ class Hip(CMakePackage): when="@{0}".format(d_version), ) for d_version, d_shasum in [ + ("5.2.3", "0493c414d4db1af8e1eb30a651d9512044644244488ebb13478c2138a7612998"), ("5.2.1", "465ca9fa16869cd89dab8c2d66d9b9e3c14f744bbedaa1d215b0746d77a500ba"), ("5.2.0", "37f5fce04348183bce2ece8bac1117f6ef7e710ca68371ff82ab08e93368bafb"), ("5.1.3", "ddee63cdc6515c90bab89572b13e1627b145916cb8ede075ef8446cbb83f0a48"), @@ -238,7 +244,7 @@ class Hip(CMakePackage): patch( "0012-Improve-compilation-without-git-repo-and-remove-compiler-rt-linkage-for-host" ".5.2.1.patch", - when="@5.2.1", + when="@5.2.1:", ) # See https://github.com/ROCm-Developer-Tools/HIP/pull/2141 diff --git a/var/spack/repos/builtin/packages/hipblas/package.py b/var/spack/repos/builtin/packages/hipblas/package.py index d3067dd242a..0b242be212b 100644 --- a/var/spack/repos/builtin/packages/hipblas/package.py +++ b/var/spack/repos/builtin/packages/hipblas/package.py @@ -14,7 +14,7 @@ class Hipblas(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/hipBLAS" git = "https://github.com/ROCmSoftwarePlatform/hipBLAS.git" - url = "https://github.com/ROCmSoftwarePlatform/hipBLAS/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/hipBLAS/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["cgmb", "srekolam", "renjithravindrankannath", "haampie"] @@ -23,6 +23,7 @@ class Hipblas(CMakePackage): version("develop", branch="develop") version("master", branch="master") + version("5.2.3", sha256="4d66db9b000b6207b5270d90556b724bfdb08ebbfcc675f014287e0be7ee6344") version("5.2.1", sha256="ccae36b118b7a1eb4b2f7d65fb163f54ab9c5cf774dbe2ec60971d4f78ae8308") version("5.2.0", sha256="5e9091dc4ef83896f5c3bc5ade1cb5db8e1a6afc451dbba4da19d8a7ec2b6f29") version("5.1.3", sha256="f0fdaa851971b41b48ec2e7d640746fbd6f9f433da2020c5fd95c91a7473d9e1") @@ -131,6 +132,7 @@ def check(self): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocsolver@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hipcub/package.py b/var/spack/repos/builtin/packages/hipcub/package.py index edef6a825cd..3c5d55c0a60 100644 --- a/var/spack/repos/builtin/packages/hipcub/package.py +++ b/var/spack/repos/builtin/packages/hipcub/package.py @@ -11,11 +11,12 @@ class Hipcub(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/hipCUB" git = "https://github.com/ROCmSoftwarePlatform/hipCUB.git" - url = "https://github.com/ROCmSoftwarePlatform/hipCUB/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/hipCUB/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] + version("5.2.3", sha256="cab929f10c649f8fd76df989a16d0cd9301bc6aaad91cd2f84498c831378d559") version("5.2.1", sha256="07b34d8cdf885838dde264c2a70044505e7b9632cb6efbdb52e2569f95112970") version("5.2.0", sha256="ac4dc2310f0eb657e1337c93d8cc4a5d8396f9544a7336eeceb455678a1f9139") version("5.1.3", sha256="dc75640689b6a5e15dd3acea643266bdf114ea63efc60be8272f484cf8f04494") @@ -105,6 +106,7 @@ class Hipcub(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocprim@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hipfft/package.py b/var/spack/repos/builtin/packages/hipfft/package.py index fee013748e3..11a4d43f50e 100644 --- a/var/spack/repos/builtin/packages/hipfft/package.py +++ b/var/spack/repos/builtin/packages/hipfft/package.py @@ -16,13 +16,14 @@ class Hipfft(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/hipFFT" git = "https://github.com/ROCmSoftwarePlatform/hipFFT.git" - url = "https://github.com/ROCmSoftwarePlatform/hipfft/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/hipfft/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["renjithravindrankannath", "srekolam"] version("master", branch="master") + version("5.2.3", sha256="10be731fe91ede5e9f254f6eb3bc00b4dbeab449477f3cac03de358a7d0a6fa1") version("5.2.1", sha256="6c8fbace2864ca992b2fca9dc8d0bb4488aef62045acdfcf249d53dd005ebd35") version("5.2.0", sha256="ec37edcd61837281c403802ccc1cb01ec3fa3ba135b5ab16617961b66d4cc3e2") version("5.1.3", sha256="c26fa64499293b25d0686bed04feb61378c878a4bb4a6d559e6cb7be1f6bf2ec") @@ -74,6 +75,7 @@ class Hipfft(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) depends_on("hip@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hipfort/package.py b/var/spack/repos/builtin/packages/hipfort/package.py index fb6553cc801..c57a93e44de 100644 --- a/var/spack/repos/builtin/packages/hipfort/package.py +++ b/var/spack/repos/builtin/packages/hipfort/package.py @@ -11,11 +11,12 @@ class Hipfort(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/hipfort" git = "https://github.com/ROCmSoftwarePlatform/hipfort.git" - url = "https://github.com/ROCmSoftwarePlatform/hipfort/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/hipfort/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["cgmb", "srekolam", "renjithravindrankannath"] + version("5.2.3", sha256="6648350ca4edc8757f0ae51d73a05a9a536808f19ad45f5b5ab84d420c72c9ec") version("5.2.1", sha256="ed53c9914d326124482751b81c4a353c6e64e87c1111124169a33513a3c49b42") version("5.2.0", sha256="a0af1fe62757993600a41af6bb6c4b8c6cfdfba650389645ac1f995f7623785c") version("5.1.3", sha256="8f8849d8d0972366bafa41be35cf6a7a59480ed584d1ddff39768cb14247e9d4") @@ -93,6 +94,7 @@ class Hipfort(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hip@" + ver, type="build", when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hipify-clang/package.py b/var/spack/repos/builtin/packages/hipify-clang/package.py index 425b16d1681..094730650b5 100644 --- a/var/spack/repos/builtin/packages/hipify-clang/package.py +++ b/var/spack/repos/builtin/packages/hipify-clang/package.py @@ -12,13 +12,14 @@ class HipifyClang(CMakePackage): homepage = "https://github.com/ROCm-Developer-Tools/HIPIFY" git = "https://github.com/ROCm-Developer-Tools/HIPIFY.git" - url = "https://github.com/ROCm-Developer-Tools/HIPIFY/archive/rocm-5.1.3.tar.gz" + url = "https://github.com/ROCm-Developer-Tools/HIPIFY/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] version("master", branch="master") + version("5.2.3", sha256="1314a37ab544b68fd51858b77d2d4b30ecff82ef3f90de6e80891a95f6749849") version("5.2.1", sha256="4d658d00b219f7ef40e832da3680852aeb4c258c0a114f1779fa4cda99ee23b1") version("5.2.0", sha256="dcd5f44daceb984bb654a209e78debf81e1cdeaf9202444a1e110b45ad6c3f4f") version("5.1.3", sha256="6354b08b8ab2f4c481398fb768652bae00bb78c4cec7a11d5f6c7e4cb831ddf1") @@ -109,6 +110,7 @@ class HipifyClang(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", "master", ]: depends_on("llvm-amdgpu@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hipsolver/package.py b/var/spack/repos/builtin/packages/hipsolver/package.py index a600ed64560..cb47992de6b 100644 --- a/var/spack/repos/builtin/packages/hipsolver/package.py +++ b/var/spack/repos/builtin/packages/hipsolver/package.py @@ -18,7 +18,7 @@ class Hipsolver(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/hipSOLVER" git = "https://github.com/ROCmSoftwarePlatform/hipSOLVER.git" - url = "https://github.com/ROCmSoftwarePlatform/hipSOLVER/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/hipSOLVER/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["cgmb", "srekolam", "renjithravindrankannath"] @@ -27,6 +27,7 @@ class Hipsolver(CMakePackage): version("develop", branch="develop") version("master", branch="master") + version("5.2.3", sha256="a57d883fdd09c6c7f9856fcfcabee6fa7ff9beed33d2f1a465bf28d38ea6f364") version("5.2.1", sha256="e000b08cf7bfb5f8f6d65d163ebeeb3274172b9f474228b810bde5e6f87f2b37") version("5.2.0", sha256="96927410e0a2cc0f50172604ef6437e15d2cf4b62d22b2035f13aae21f43dc82") version("5.1.3", sha256="96faa799a2db8078b72f9c3b5c199179875a7c20dc1064371b22a6a63397c145") @@ -53,7 +54,7 @@ class Hipsolver(CMakePackage): depends_on("rocblas@" + ver, when="@" + ver) depends_on("rocsolver@" + ver, when="@" + ver) - for ver in ["4.5.0", "4.5.2", "5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0", "5.2.1"]: + for ver in ["4.5.0", "4.5.2", "5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0", "5.2.1", "5.2.3"]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocblas@" + ver, when="@" + ver) depends_on("rocsolver@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hipsparse/package.py b/var/spack/repos/builtin/packages/hipsparse/package.py index fe74d264862..74c2ccf53e1 100644 --- a/var/spack/repos/builtin/packages/hipsparse/package.py +++ b/var/spack/repos/builtin/packages/hipsparse/package.py @@ -14,12 +14,13 @@ class Hipsparse(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/hipSPARSE" git = "https://github.com/ROCmSoftwarePlatform/hipSPARSE.git" - url = "https://github.com/ROCmSoftwarePlatform/hipSPARSE/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/hipSPARSE/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["cgmb", "srekolam", "renjithravindrankannath", "haampie"] libraries = ["libhipsparse"] + version("5.2.3", sha256="f70d3deff13188adc4105ef3ead53510e4b54075b9ffcfe3d3355d90d4b6eadd") version("5.2.1", sha256="7b8e4ff264285ae5aabb3c5c2b38bf28f90b2af44efb0398fcf13ffc24bc000a") version("5.2.0", sha256="4fdab6ec953c6d2d000687c5979077deafd37208cd722554b5a6ede1e5ba170c") version("5.1.3", sha256="6e6a0752654f0d391533df8cedf4b630a78ad34c99087741520c582963ce1602") @@ -108,6 +109,7 @@ class Hipsparse(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) depends_on("hip@" + ver, when="@" + ver) @@ -129,6 +131,7 @@ class Hipsparse(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("rocprim@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py b/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py index b1ccaf7f48b..391551d2df5 100644 --- a/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py +++ b/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py @@ -17,7 +17,7 @@ class HsaRocrDev(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/ROCR-Runtime" git = "https://github.com/RadeonOpenCompute/ROCR-Runtime.git" - url = "https://github.com/RadeonOpenCompute/ROCR-Runtime/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/ROCR-Runtime/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath", "haampie"] @@ -25,6 +25,7 @@ class HsaRocrDev(CMakePackage): version("master", branch="master") + version("5.2.3", sha256="978de85d3455207bb82bef2254a4624e9116b1258a8c164d7a7e21a644eff12f") version("5.2.1", sha256="448a7409bdc6618332a42b9503122996f26b91768140b710ba99bff8a8c03dd9") version("5.2.0", sha256="529e49693dd9f6459586dd0a26f14dd77dbdf8c0b45fb54830b294eba7babd27") version("5.1.3", sha256="479340ec34cdffbbdb1002c85a47d1fccd23e8394631a1f001ef6130be08287d") @@ -119,6 +120,7 @@ class HsaRocrDev(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", "master", ]: depends_on("hsakmt-roct@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/hsakmt-roct/package.py b/var/spack/repos/builtin/packages/hsakmt-roct/package.py index b838ce55659..b3c5361f671 100644 --- a/var/spack/repos/builtin/packages/hsakmt-roct/package.py +++ b/var/spack/repos/builtin/packages/hsakmt-roct/package.py @@ -20,7 +20,7 @@ class HsakmtRoct(CMakePackage): maintainers = ["srekolam", "arjun-raj-kuppala", "renjithravindrankannath"] version("master", branch="master") - + version("5.2.3", sha256="8d313b8fd945a8d7248c00a2de9a2ee896fe77e464430a91b63400a986ec0bf0") version("5.2.1", sha256="13c4a6748c4ae70f87869f10fda101d67c9dbaecf040687f7f5d9bb8b6d0506c") version("5.2.0", sha256="3797cb0eafbec3fd3d4a2b53f789eb8cdbab30729f13dbcca0a10bc1bafd2187") version("5.1.3", sha256="3c66b1aa7451571ce8bee10e601d34b93c9416b9be476610ee5685dbad81034a") diff --git a/var/spack/repos/builtin/packages/llvm-amdgpu/package.py b/var/spack/repos/builtin/packages/llvm-amdgpu/package.py index 454e7f77ef2..7f761261ab7 100644 --- a/var/spack/repos/builtin/packages/llvm-amdgpu/package.py +++ b/var/spack/repos/builtin/packages/llvm-amdgpu/package.py @@ -15,12 +15,14 @@ class LlvmAmdgpu(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/llvm-project" git = "https://github.com/RadeonOpenCompute/llvm-project.git" - url = "https://github.com/RadeonOpenCompute/llvm-project/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/llvm-project/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath", "haampie"] version("master", branch="amd-stg-open") + + version("5.2.3", sha256="1b852711aec3137b568fb65f93606d37fdcd62e06f5da3766f2ffcd4e0c646df") version("5.2.1", sha256="3644e927d943d61e22672422591c47a62ff83e3d87ced68439822156d8f79abf") version("5.2.0", sha256="0f892174111b78a02d1a00f8f46d9f80b9abb95513a7af38ecf2a5a0882fe87f") version("5.1.3", sha256="d236a2064363c0278f7ba1bb2ff1545ee4c52278c50640e8bb2b9cfef8a2f128") @@ -145,6 +147,7 @@ class LlvmAmdgpu(CMakePackage): # Add device libs sources so they can be an external LLVM project for d_version, d_shasum in [ + ("5.2.3", "16b7fc7db4759bd6fb54852e9855fa16ead76c97871d7e1e9392e846381d611a"), ("5.2.1", "e5855387ce73ed483ed0d03dbfef31f297c6ca66cf816f6816fd5ee373fc8225"), ("5.2.0", "901674bc941115c72f82c5def61d42f2bebee687aefd30a460905996f838e16c"), ("5.1.3", "c41958560ec29c8bf91332b9f668793463904a2081c330c0d828bf2f91d4f04e"), diff --git a/var/spack/repos/builtin/packages/migraphx/package.py b/var/spack/repos/builtin/packages/migraphx/package.py index 0e2cc57cdd4..b07bef85f9d 100644 --- a/var/spack/repos/builtin/packages/migraphx/package.py +++ b/var/spack/repos/builtin/packages/migraphx/package.py @@ -13,12 +13,13 @@ class Migraphx(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX" git = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX.git" - url = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["libmigraphx"] + version("5.2.3", sha256="03f7d49f2efdd2c7a6afcaa5a5db5103edc15047b0ff5e146a775cfb36b36af2") version("5.2.1", sha256="300d990e1b92ad27c3eba3e94ef34538730ca9556398b8b9f7d61d28bf66c57d") version("5.2.0", sha256="33afcdf52c6e0e3a2f939fcf30e87f712b8e8ef3633a3dc03a19fea359704925") version("5.1.3", sha256="686e068774500a46b6e6488370bbf5bd0bba6d19ecdb00636f951704d19c9ef2") @@ -129,6 +130,7 @@ def url_for_version(self, version): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) depends_on("hip@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/miopen-hip/package.py b/var/spack/repos/builtin/packages/miopen-hip/package.py index 1d861e7f4de..51d72972c8d 100644 --- a/var/spack/repos/builtin/packages/miopen-hip/package.py +++ b/var/spack/repos/builtin/packages/miopen-hip/package.py @@ -14,12 +14,13 @@ class MiopenHip(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/MIOpen" git = "https://github.com/ROCmSoftwarePlatform/MIOpen.git" - url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["libMIOpen"] + version("5.2.3", sha256="28747847446955b3bab24f7fc65c1a6b863a12f12ad3a35e0312072482d38122") version("5.2.1", sha256="0977a8876d41bbd2fa268341c93892f35878d7efc1711194ad87582f877ff500") version("5.2.0", sha256="5fda69426e81df9f8fb6658e579176b9c4fcce3516fc8488d3cfd2b6f6f2b3b4") version("5.1.3", sha256="510461f5c5bdbcf8dc889099d1e5960b9f84bd845a9fc9154588a9898c701c1d") @@ -120,13 +121,14 @@ class MiopenHip(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) depends_on("hip@" + ver, when="@" + ver) depends_on("rocm-clang-ocl@" + ver, when="@" + ver) depends_on("rocblas@" + ver, when="@" + ver) - for ver in ["5.1.0", "5.1.3", "5.2.0", "5.2.1"]: + for ver in ["5.1.0", "5.1.3", "5.2.0", "5.2.1", "5.2.3"]: depends_on("mlirmiopen@" + ver, when="@" + ver) def setup_build_environment(self, env): diff --git a/var/spack/repos/builtin/packages/miopen-opencl/package.py b/var/spack/repos/builtin/packages/miopen-opencl/package.py index 446bda73057..1996d59732e 100644 --- a/var/spack/repos/builtin/packages/miopen-opencl/package.py +++ b/var/spack/repos/builtin/packages/miopen-opencl/package.py @@ -14,12 +14,13 @@ class MiopenOpencl(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/MIOpen" git = "https://github.com/ROCmSoftwarePlatform/MIOpen.git" - url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["libMIOpen"] + version("5.2.3", sha256="28747847446955b3bab24f7fc65c1a6b863a12f12ad3a35e0312072482d38122") version("5.2.1", sha256="0977a8876d41bbd2fa268341c93892f35878d7efc1711194ad87582f877ff500") version("5.2.0", sha256="5fda69426e81df9f8fb6658e579176b9c4fcce3516fc8488d3cfd2b6f6f2b3b4") version("5.1.3", sha256="510461f5c5bdbcf8dc889099d1e5960b9f84bd845a9fc9154588a9898c701c1d") @@ -118,6 +119,7 @@ class MiopenOpencl(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) depends_on("rocm-opencl@" + ver, when="@" + ver) @@ -139,11 +141,11 @@ class MiopenOpencl(CMakePackage): "5.1.0", "5.1.3", "5.2.0", - "5.2.1", + "5.2.3", ]: depends_on("miopengemm@" + ver, when="@" + ver) - for ver in ["5.1.0", "5.1.3", "5.2.0", "5.2.1"]: + for ver in ["5.1.0", "5.1.3", "5.2.0", "5.2.1", "5.2.3"]: depends_on("mlirmiopen@" + ver, when="@" + ver) @classmethod diff --git a/var/spack/repos/builtin/packages/miopengemm/package.py b/var/spack/repos/builtin/packages/miopengemm/package.py index af15ca7dbd9..0ef04d58777 100644 --- a/var/spack/repos/builtin/packages/miopengemm/package.py +++ b/var/spack/repos/builtin/packages/miopengemm/package.py @@ -26,6 +26,7 @@ def url_for_version(self, version): url = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM/archive/rocm-{0}.tar.gz" return url.format(version) + version("5.2.3", sha256="de9eecf39e6620be1511923e990101e64c63c2f56d8491c8bf9ffd1033709c00") version("5.2.1", sha256="9cea190ee0a6645b6d3ce3e136a8e7d07cf4044e98014ccc82b5e5f8b468b1c1") version("5.2.0", sha256="10458fb07b56a7fbe165595d588b7bf5f1300c57bda2f3133c3687c7bae39ea8") version("5.1.3", sha256="c70fc9e2a6d47356a612e24f5757bf16fdf26e671bd53a0975c1a0978da740b6") @@ -114,6 +115,7 @@ def url_for_version(self, version): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("rocm-cmake@" + ver, type="build", when="@" + ver) depends_on("rocm-opencl@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/mlirmiopen/package.py b/var/spack/repos/builtin/packages/mlirmiopen/package.py index 3a055d5e4c6..a2313ac47a3 100644 --- a/var/spack/repos/builtin/packages/mlirmiopen/package.py +++ b/var/spack/repos/builtin/packages/mlirmiopen/package.py @@ -11,12 +11,13 @@ class Mlirmiopen(CMakePackage): """Multi-Level Intermediate Representation for rocm miopen project.""" homepage = "https://github.com/ROCmSoftwarePlatform/llvm-project-mlir" - url = "https://github.com/ROCmSoftwarePlatform/llvm-project-mlir/archive/refs/tags/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/llvm-project-mlir/archive/refs/tags/rocm-5.2.3.tar.gz" git = "https://github.com/ROCmSoftwarePlatform/llvm-project-mlir.git" tags = ["rocm"] maintainers = ["srekolam"] + version("5.2.3", sha256="29e1c352d203622fa083432d5d368caccb53ba141119fbb7e8d5247d99854625") version("5.2.1", sha256="912eed29ceff038ae537aeb2bc70abdef6d05f3143862c4efe3513e9e9ca2e8d") version("5.2.0", sha256="546121f203e7787d3501fbaf6673bdbeefbb39e0446b02c480454338362a1f01") version("5.1.3", sha256="936f92707ffe9a1973728503db6365bb7f14e5aeccfaef9f0924e54d25080c69") @@ -38,7 +39,7 @@ class Mlirmiopen(CMakePackage): depends_on("half") depends_on("pkgconfig", type="build") - for ver in ["5.1.0", "5.1.3", "5.2.0", "5.2.1"]: + for ver in ["5.1.0", "5.1.3", "5.2.0", "5.2.1", "5.2.3"]: depends_on("hip@" + ver, when="@" + ver) depends_on("llvm-amdgpu@" + ver, when="@" + ver) depends_on("hsa-rocr-dev@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rdc/package.py b/var/spack/repos/builtin/packages/rdc/package.py index eecaf119d4d..f7a84485735 100644 --- a/var/spack/repos/builtin/packages/rdc/package.py +++ b/var/spack/repos/builtin/packages/rdc/package.py @@ -24,6 +24,7 @@ def url_for_version(self, version): url = "https://github.com/RadeonOpenCompute/rdc/archive/rocm-{0}.tar.gz" return url.format(version) + version("5.2.3", sha256="5ba060449bbf5e84979cb4c62eb1dac9b0e3eca45e930d2e20e7beaa87361b39") version("5.2.1", sha256="84b3c3754b8c9732ee6d00d37881591d3d6876feb8f29746d9eb18faea7ad035") version("5.2.0", sha256="2f35f74485e783f56ea724a7c69ce825f181fcdbe89de453d97ce6a3d3176ae0") version("5.1.3", sha256="ac3e594d7b245c787d6d9b63f551ca898d4d9403fbec0e4502f9970575e031b8") @@ -103,10 +104,11 @@ def url_for_version(self, version): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("rocm-smi-lib@" + ver, type=("build", "link"), when="@" + ver) - for ver in ["5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0", "5.2.1"]: + for ver in ["5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0", "5.2.1", "5.2.3"]: depends_on("hsa-rocr-dev@" + ver, when="@" + ver) def patch(self): diff --git a/var/spack/repos/builtin/packages/rocalution/package.py b/var/spack/repos/builtin/packages/rocalution/package.py index 9b092ece6ce..58a333522a5 100644 --- a/var/spack/repos/builtin/packages/rocalution/package.py +++ b/var/spack/repos/builtin/packages/rocalution/package.py @@ -18,12 +18,13 @@ class Rocalution(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocALUTION" git = "https://github.com/ROCmSoftwarePlatform/rocALUTION.git" - url = "https://github.com/ROCmSoftwarePlatform/rocALUTION/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocALUTION/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["cgmb", "srekolam", "renjithravindrankannath"] libraries = ["librocalution_hip"] + version("5.2.3", sha256="8e0d77099bf7dc0d00505e1c936b072a59719102c75398dc1416cbef31902253") version("5.2.1", sha256="f246bd5b5d1b5821c29b566610a1c1d5c5cc361e0e5c373b8b04168b05e9b26f") version("5.2.0", sha256="a5aac471bbec87d019ad7c6db779c73327ad40ecdea09dc5ab2106e62cd6b7eb") version("5.1.3", sha256="7febe8179f120cbe58ea255bc233ad5d1b4c106f3934eb8e670135a8b7bd09c7") @@ -113,6 +114,7 @@ class Rocalution(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocprim@" + ver, when="@" + ver) @@ -144,6 +146,7 @@ class Rocalution(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: for tgt in itertools.chain(["auto"], amdgpu_targets): depends_on( diff --git a/var/spack/repos/builtin/packages/rocblas/package.py b/var/spack/repos/builtin/packages/rocblas/package.py index 82699574f30..84f90cff4b3 100644 --- a/var/spack/repos/builtin/packages/rocblas/package.py +++ b/var/spack/repos/builtin/packages/rocblas/package.py @@ -13,7 +13,7 @@ class Rocblas(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocBLAS/" git = "https://github.com/ROCmSoftwarePlatform/rocBLAS.git" - url = "https://github.com/ROCmSoftwarePlatform/rocBLAS/archive/rocm-5.1.3.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocBLAS/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["cgmb", "srekolam", "renjithravindrankannath", "haampie"] @@ -22,6 +22,7 @@ class Rocblas(CMakePackage): version("develop", branch="develop") version("master", branch="master") + version("5.2.3", sha256="36f74ce53b82331a756c42f95f3138498d6f4a66f2fd370cff9ab18281bb12d5") version("5.2.1", sha256="6be804ba8d9e491a85063c220cd0ddbf3d13e3b481eee31041c35a938723f4c6") version("5.2.0", sha256="b178b7db5f0af55b21b5f744b8825f5e002daec69b4688e50df2bca2fac155bd") version("5.1.3", sha256="915374431db8f0cecdc2bf318a0ad33c3a8eceedc461d7a06b92ccb02b07313c") @@ -145,6 +146,7 @@ def check(self): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("llvm-amdgpu@" + ver, type="build", when="@" + ver) @@ -182,6 +184,7 @@ def check(self): ("@5.1.3", "ea38f8661281a37cd81c96cc07868e3f07d2c4da"), ("@5.2.0", "9ca08f38c4c3bfe6dfa02233637e7e3758c7b6db"), ("@5.2.1", "9ca08f38c4c3bfe6dfa02233637e7e3758c7b6db"), + ("@5.2.3", "9ca08f38c4c3bfe6dfa02233637e7e3758c7b6db"), ]: resource( name="Tensile", diff --git a/var/spack/repos/builtin/packages/rocfft/package.py b/var/spack/repos/builtin/packages/rocfft/package.py index 293d784482e..b709e72d7d0 100644 --- a/var/spack/repos/builtin/packages/rocfft/package.py +++ b/var/spack/repos/builtin/packages/rocfft/package.py @@ -19,6 +19,7 @@ class Rocfft(CMakePackage): maintainers = ["cgmb", "srekolam", "renjithravindrankannath", "haampie"] libraries = ["librocfft"] + version("5.2.3", sha256="0cee37886f01f1afb3ae5dad1164c819573c13c6675bff4eb668de334adbff27") version("5.2.1", sha256="6302349b6cc610a9a939377e2c7ffba946656a8d43f2e438ff0b3088f0f963ad") version("5.2.0", sha256="ebba280b7879fb4bc529a68072b98d4e815201f90d24144d672094bc241743d4") version("5.1.3", sha256="b4fcd03c1b07d465bb307ec33cc7fb50036dff688e497c5e52b2dec37f4cb618") @@ -122,6 +123,7 @@ def check(self): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py b/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py index 1467eb6ddeb..1f19de50dcf 100644 --- a/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py +++ b/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py @@ -12,13 +12,14 @@ class RocmBandwidthTest(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/rocm_bandwidth_test" git = "https://github.com/RadeonOpenCompute/rocm_bandwidth_test.git" - url = "https://github.com/RadeonOpenCompute/rocm_bandwidth_test/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/rocm_bandwidth_test/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] version("master", branch="master") + version("5.2.3", sha256="b76fe33898d67ec1f5f1ec58adaea88e88ed28b1f5470aa4c08c347d8f558af2") version("5.2.1", sha256="ebdf868bef8ab6c7f32775ba6eab85cf3e078af1fc1b1a11fdbaad777f37a190") version("5.2.0", sha256="046f2a6984c62899f57a557490136fbe7ab28e2fd334750abac71b03609226ef") version("5.1.3", sha256="6a6e7fb998c886951db75dcf34dca523d9caaff8d0ccf2b7431504a1808b1ff3") @@ -106,6 +107,7 @@ class RocmBandwidthTest(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", "master", ]: depends_on("hsa-rocr-dev@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py b/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py index ca0a3e4b385..480b6a7c416 100644 --- a/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py +++ b/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py @@ -11,12 +11,13 @@ class RocmClangOcl(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/clang-ocl" git = "https://github.com/RadeonOpenCompute/clang-ocl.git" - url = "https://github.com/RadeonOpenCompute/clang-ocl/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/clang-ocl/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] version("master", branch="master") + version("5.2.3", sha256="9cdb387168975207314c08ba63ae7cd11f70542117a5390eddbec77ebb84bed0") version("5.2.1", sha256="693a9a360cb2f7e6910a6714df236df6a9d984f94b01712103a520d8e506c03f") version("5.2.0", sha256="a2059f6aeccc119abbd444cb37128e00e4854e22a88a47f120f8f8b947d862c5") version("5.1.3", sha256="e19ee15f26fc03309398ac73cc738508c0e1617deccfd667d369a3948b5d3552") @@ -104,6 +105,7 @@ class RocmClangOcl(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", "master", ]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-cmake/package.py b/var/spack/repos/builtin/packages/rocm-cmake/package.py index ff1cb323379..f8ad21bc2bb 100644 --- a/var/spack/repos/builtin/packages/rocm-cmake/package.py +++ b/var/spack/repos/builtin/packages/rocm-cmake/package.py @@ -13,13 +13,14 @@ class RocmCmake(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/rocm-cmake" git = "https://github.com/RadeonOpenCompute/rocm-cmake.git" - url = "https://github.com/RadeonOpenCompute/rocm-cmake/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/rocm-cmake/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] version("master", branch="master") + version("5.2.3", sha256="c63b707ec07d24fda5a2a6fffeda4df4cc04ceea5df3b8822cbe4e6600e358b4") version("5.2.1", sha256="3d179496fb8f5f96230f736a313990f66705dc91fd10948a3042b495a440bf63") version("5.2.0", sha256="be8646c4f7babfe9a103c97d0e9f369322f8ac6cfa528edacdbdcf7f3ef44943") version("5.1.3", sha256="19b2da0d56300aab454655b57435ab3ed9e101ecb96561336ea8865bbd993c23") diff --git a/var/spack/repos/builtin/packages/rocm-dbgapi/package.py b/var/spack/repos/builtin/packages/rocm-dbgapi/package.py index eda4e2f63af..8c055b814c8 100644 --- a/var/spack/repos/builtin/packages/rocm-dbgapi/package.py +++ b/var/spack/repos/builtin/packages/rocm-dbgapi/package.py @@ -16,13 +16,15 @@ class RocmDbgapi(CMakePackage): homepage = "https://github.com/ROCm-Developer-Tools/ROCdbgapi" git = "https://github.com/ROCm-Developer-Tools/ROCdbgapi.git" - url = "https://github.com/ROCm-Developer-Tools/ROCdbgapi/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCm-Developer-Tools/ROCdbgapi/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["librocm-dbgapi"] version("master", branch="amd-master") + + version("5.2.3", sha256="17925d23f614ecb2b40dffe5e14535cba380d4f489ea1a027762c356be9fbc2b") version("5.2.1", sha256="169e3914ebd99d6a5c034c568964b7bad56611262e292f77c0c65a7708e02376") version("5.2.0", sha256="44f0528a7583bc59b6585166d2289970b20115c4c70e3bcc218aff19fc242b3f") version("5.1.3", sha256="880f80ebf741e3451676837f720551e02cffd0b9346ca4dfa6cf7f7043282f2b") @@ -110,6 +112,7 @@ class RocmDbgapi(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", "master", ]: depends_on("hsa-rocr-dev@" + ver, type="build", when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-debug-agent/package.py b/var/spack/repos/builtin/packages/rocm-debug-agent/package.py index c720f782e65..962cc699baa 100644 --- a/var/spack/repos/builtin/packages/rocm-debug-agent/package.py +++ b/var/spack/repos/builtin/packages/rocm-debug-agent/package.py @@ -13,12 +13,13 @@ class RocmDebugAgent(CMakePackage): homepage = "https://github.com/ROCm-Developer-Tools/rocr_debug_agent" git = "https://github.com/ROCm-Developer-Tools/rocr_debug_agent.git" - url = "https://github.com/ROCm-Developer-Tools/rocr_debug_agent/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCm-Developer-Tools/rocr_debug_agent/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["librocm-debug-agent"] + version("5.2.3", sha256="5d31372e2980738271ae26b92dcc402c387cdf5f23710ce6feeb2bd303ff7ea0") version("5.2.1", sha256="a60c224c546a25dafcff1e50ce3a1605e152efdb36624a672ddb5812cd34773e") version("5.2.0", sha256="f8e8d5ad691033d0c0f1850d69f35c98ba9722ab4adc66c4251f22257f56f0a2") version("5.1.3", sha256="ef26130829f3348d503669467ab1ea39fb67d943d88d64e7ac04b9617ec6067d") @@ -116,6 +117,7 @@ def url_for_version(self, version): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hsa-rocr-dev@" + ver, when="@" + ver) depends_on("hsakmt-roct@" + ver, when="@" + ver) @@ -138,6 +140,7 @@ def url_for_version(self, version): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("rocm-dbgapi@" + ver, when="@" + ver) depends_on("hip@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-device-libs/package.py b/var/spack/repos/builtin/packages/rocm-device-libs/package.py index 51135b3fe0b..b782fa64c2f 100644 --- a/var/spack/repos/builtin/packages/rocm-device-libs/package.py +++ b/var/spack/repos/builtin/packages/rocm-device-libs/package.py @@ -12,13 +12,14 @@ class RocmDeviceLibs(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs" git = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs.git" - url = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs/archive/rocm-5.1.3.tar.gz" + url = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath", "haampie"] version("master", branch="amd-stg-open") + version("5.2.3", sha256="16b7fc7db4759bd6fb54852e9855fa16ead76c97871d7e1e9392e846381d611a") version("5.2.1", sha256="e5855387ce73ed483ed0d03dbfef31f297c6ca66cf816f6816fd5ee373fc8225") version("5.2.0", sha256="901674bc941115c72f82c5def61d42f2bebee687aefd30a460905996f838e16c") version("5.1.3", sha256="c41958560ec29c8bf91332b9f668793463904a2081c330c0d828bf2f91d4f04e") @@ -116,6 +117,7 @@ class RocmDeviceLibs(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", "master", ]: depends_on("llvm-amdgpu@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-gdb/package.py b/var/spack/repos/builtin/packages/rocm-gdb/package.py index 98f15f4c493..b86b6695feb 100644 --- a/var/spack/repos/builtin/packages/rocm-gdb/package.py +++ b/var/spack/repos/builtin/packages/rocm-gdb/package.py @@ -12,11 +12,12 @@ class RocmGdb(AutotoolsPackage): based on GDB, the GNU source-level debugger.""" homepage = "https://github.com/ROCm-Developer-Tools/ROCgdb/" - url = "https://github.com/ROCm-Developer-Tools/ROCgdb/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCm-Developer-Tools/ROCgdb/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] + version("5.2.3", sha256="c2df5cccd8bb07ea331b45091fb3141999a37a67696d273f3888b48f6d4281aa") version("5.2.1", sha256="77169d88f24e6ccb6aef3945448b179edffe806a51a3e996236b08fb510f3979") version("5.2.0", sha256="70c5b443292b9bb114844eb63b72cfab1b65f083511ee39d55db7a633c63bf5a") version("5.1.3", sha256="81f5e368facdcc424a37cb5809f0b436bedb9a6d9af4d17785b3c446ab0a7821") @@ -106,6 +107,7 @@ class RocmGdb(AutotoolsPackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("rocm-dbgapi@" + ver, type="link", when="@" + ver) depends_on("comgr@" + ver, type="link", when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-opencl/package.py b/var/spack/repos/builtin/packages/rocm-opencl/package.py index bc5e362356c..83d61647c55 100644 --- a/var/spack/repos/builtin/packages/rocm-opencl/package.py +++ b/var/spack/repos/builtin/packages/rocm-opencl/package.py @@ -29,6 +29,7 @@ def url_for_version(self, version): version("master", branch="main") + version("5.2.3", sha256="932ea3cd268410010c0830d977a30ef9c14b8c37617d3572a062b5d4595e2b94") version("5.2.1", sha256="eb4ff433f8894ca659802f81792646034f8088b47aca6ad999292bcb8d6381d5") version("5.2.0", sha256="80f73387effdcd987a150978775a87049a976aa74f5770d4420847b004dd59f0") version("5.1.3", sha256="44a7fac721abcd93470e1a7e466bdea0c668c253dee93e4f1ea9a72dbce4ba31") @@ -100,6 +101,7 @@ def url_for_version(self, version): depends_on("numactl", type="link", when="@3.7.0:") for d_version, d_shasum in [ + ("5.2.3", "0493c414d4db1af8e1eb30a651d9512044644244488ebb13478c2138a7612998"), ("5.2.1", "465ca9fa16869cd89dab8c2d66d9b9e3c14f744bbedaa1d215b0746d77a500ba"), ("5.2.0", "37f5fce04348183bce2ece8bac1117f6ef7e710ca68371ff82ab08e93368bafb"), ("5.1.3", "ddee63cdc6515c90bab89572b13e1627b145916cb8ede075ef8446cbb83f0a48"), @@ -156,6 +158,7 @@ def url_for_version(self, version): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", "master", ]: depends_on("comgr@" + ver, type="build", when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py b/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py index c4897ef7a7c..b390bb6b5b3 100644 --- a/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py +++ b/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py @@ -31,6 +31,7 @@ "8bab3d621343f419b29043ac0cb56e062f114991dc3ec1e33e786f771deecc8f", "20e21312816272222d1f427ea72a99a9a67077078552f5e2638a40860d161d25", "c0aa6997e889d6ce0e37cfa6a2e91c5c0b54cda1673abdcabcf34da1ba78ba72", + "4ba1792095427588c484feed01f2f48e66aaad26bc000cbc74a15032551699e7", ] devlib = [ @@ -49,6 +50,7 @@ "c41958560ec29c8bf91332b9f668793463904a2081c330c0d828bf2f91d4f04e", "901674bc941115c72f82c5def61d42f2bebee687aefd30a460905996f838e16c", "e5855387ce73ed483ed0d03dbfef31f297c6ca66cf816f6816fd5ee373fc8225", + "16b7fc7db4759bd6fb54852e9855fa16ead76c97871d7e1e9392e846381d611a", ] llvm = [ @@ -67,6 +69,7 @@ "d236a2064363c0278f7ba1bb2ff1545ee4c52278c50640e8bb2b9cfef8a2f128", "0f892174111b78a02d1a00f8f46d9f80b9abb95513a7af38ecf2a5a0882fe87f", "3644e927d943d61e22672422591c47a62ff83e3d87ced68439822156d8f79abf", + "1b852711aec3137b568fb65f93606d37fdcd62e06f5da3766f2ffcd4e0c646df", ] flang = [ @@ -85,6 +88,7 @@ "d7847b5c6e1344dc0b4723dbe76a859257b4c242644dedb34e425f07738530d4", "20f48cac9b58496230fa2428eba4e15ec0a6e92d429569b154a328b7a8c5da17", "012a9c10a7d2a248dc40510e2f5c02a54b5f6bc39961500dc48b6780dac5ad67", + "496f00918721c72eae0bd926a5a8f1f35bd443f6b22bc08e2a42c67e44a4dbaf", ] extras = [ @@ -103,6 +107,7 @@ "2e3151a47d77166d071213af2a1691487691aae0abd5c1718d818a6d7d09cb2d", "817c2e8975e56a8875ff56f9d1ea34d5e7e50f1b541b7f1236e3e5c8d9eee47f", "8b738225f0be39f27bba64c014816cfa1b79f2c7cf2d0e31fbc0fffb6c26e429", + "f42ca7d85b0b64e6890502f1cf8309ef97f707829876742da2ea5c2cdf3ad8ac", ] versions = [ @@ -121,6 +126,7 @@ "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ] versions_dict = dict() # type: Dict[str,Dict[str,str]] components = ["aomp", "devlib", "llvm", "flang", "extras"] @@ -138,10 +144,11 @@ class RocmOpenmpExtras(Package): """OpenMP support for ROCm LLVM.""" homepage = tools_url + "/aomp" - url = tools_url + "/aomp/archive/rocm-5.2.1.tar.gz" + url = tools_url + "/aomp/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath", "estewart08"] + version("5.2.3", sha256=versions_dict["5.2.3"]["aomp"]) version("5.2.1", sha256=versions_dict["5.2.1"]["aomp"]) version("5.2.0", sha256=versions_dict["5.2.0"]["aomp"]) version("5.1.3", sha256=versions_dict["5.1.3"]["aomp"]) @@ -182,6 +189,7 @@ class RocmOpenmpExtras(Package): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hsakmt-roct@" + ver, when="@" + ver) depends_on("comgr@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocm-smi-lib/package.py b/var/spack/repos/builtin/packages/rocm-smi-lib/package.py index 371b8b97bbf..5af375cb41f 100644 --- a/var/spack/repos/builtin/packages/rocm-smi-lib/package.py +++ b/var/spack/repos/builtin/packages/rocm-smi-lib/package.py @@ -17,13 +17,14 @@ class RocmSmiLib(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/rocm_smi_lib" git = "https://github.com/RadeonOpenCompute/rocm_smi_lib.git" - url = "https://github.com/RadeonOpenCompute/rocm_smi_lib/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/rocm_smi_lib/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["librocm_smi64"] version("master", branch="master") + version("5.2.3", sha256="fcf4f75a8daeca81ecb107989712c5f3776ee11e6eed870cb93efbf66ff1c384") version("5.2.1", sha256="07ad3be6f8c7d3f0a1b8b79950cd7839fb82972cef373dccffdbda32a3aca760") version("5.2.0", sha256="7bce567ff4e087598eace2cae72d24c98b2bcc93af917eafa61ec9d1e8ef4477") version("5.1.3", sha256="8a19ce60dc9221545aa50e83e88d8c4be9bf7cde2425cefb13710131dc1d7b1b") diff --git a/var/spack/repos/builtin/packages/rocminfo/package.py b/var/spack/repos/builtin/packages/rocminfo/package.py index 2d665eb4f47..da9d9820054 100644 --- a/var/spack/repos/builtin/packages/rocminfo/package.py +++ b/var/spack/repos/builtin/packages/rocminfo/package.py @@ -12,12 +12,14 @@ class Rocminfo(CMakePackage): homepage = "https://github.com/RadeonOpenCompute/rocminfo" git = "https://github.com/RadeonOpenCompute/rocminfo.git" - url = "https://github.com/RadeonOpenCompute/rocminfo/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/RadeonOpenCompute/rocminfo/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath", "haampie"] version("master", branch="master") + + version("5.2.3", sha256="38fe8db21077100ee2242bd087371f6b8e0078d3a269e145d3a4ab314d0b8902") version("5.2.1", sha256="e8a3b3228387d164e21de060e18ac018eecb5e9abe0ae45830c51ead4b7f1004") version("5.2.0", sha256="e721eb81efd384abd22ff01cdcbb6245b11084dc11a867c74c8ad6b028aa0404") version("5.1.3", sha256="7aecd7b189e129b77c8f2af70be2926a0f3a5ee89814879bc8477924a7e6f2ae") @@ -105,6 +107,7 @@ class Rocminfo(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", "master", ]: depends_on("hsakmt-roct@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocprim/package.py b/var/spack/repos/builtin/packages/rocprim/package.py index b9d82601663..924a7cf3596 100644 --- a/var/spack/repos/builtin/packages/rocprim/package.py +++ b/var/spack/repos/builtin/packages/rocprim/package.py @@ -11,11 +11,12 @@ class Rocprim(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocPRIM" git = "https://github.com/ROCmSoftwarePlatform/rocPRIM.git" - url = "https://github.com/ROCmSoftwarePlatform/rocPRIM/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocPRIM/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["cgmb", "srekolam", "renjithravindrankannath"] + version("5.2.3", sha256="502f49cf3190f4ac20d0a6b19eb2d0786bb3c5661329940378081f1678aa8e82") version("5.2.1", sha256="47f09536b0afbb7be4d6fb71cca9f0a4fa58dde29c83aee247d4b167f6f3acae") version("5.2.0", sha256="f99eb7d2f6b1445742fba631a0dc8bb0d464a767a9c4fb79ac865d9570fe747b") version("5.1.3", sha256="b5a08d2e76388bd1ffa6c946009928fe95de846ab6b65a6475998070c0cf6dc1") @@ -108,6 +109,7 @@ class Rocprim(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("comgr@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocprofiler-dev/package.py b/var/spack/repos/builtin/packages/rocprofiler-dev/package.py index 51432d1fe68..4162fd0ab10 100644 --- a/var/spack/repos/builtin/packages/rocprofiler-dev/package.py +++ b/var/spack/repos/builtin/packages/rocprofiler-dev/package.py @@ -13,12 +13,13 @@ class RocprofilerDev(CMakePackage): homepage = "https://github.com/ROCm-Developer-Tools/rocprofiler" git = "https://github.com/ROCm-Developer-Tools/rocprofiler.git" - url = "https://github.com/ROCm-Developer-Tools/rocprofiler/archive/refs/tags/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCm-Developer-Tools/rocprofiler/archive/refs/tags/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["librocprofiler64"] + version("5.2.3", sha256="4ed22e86633ab177eed85fed8994fcb71017c4c4774998e4d3fc36b6c0a15eac") version("5.2.1", sha256="c6768ec428590aadfb0e7ef6e22b8dc5ac8ed97babeb56db07f2d5d41cd122e2") version("5.2.0", sha256="1f4db27b56ef1863d4c9e1d96bac9117d66be45156d0637cfe4fd38cae61a23a") version("5.1.3", sha256="eca7be451c7bf000fd9c75683e7f5dfbed32dbb385b5ac685d2251ee8c3abc96") @@ -105,6 +106,7 @@ class RocprofilerDev(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hsakmt-roct@" + ver, when="@" + ver) depends_on("hsa-rocr-dev@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocrand/package.py b/var/spack/repos/builtin/packages/rocrand/package.py index 333c89a918b..b6bf4e200af 100644 --- a/var/spack/repos/builtin/packages/rocrand/package.py +++ b/var/spack/repos/builtin/packages/rocrand/package.py @@ -16,12 +16,13 @@ class Rocrand(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocRAND" git = "https://github.com/ROCmSoftwarePlatform/rocRAND.git" - url = "https://github.com/ROCmSoftwarePlatform/rocRAND/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocRAND/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["cgmb", "srekolam", "renjithravindrankannath"] libraries = ["librocrand"] + version("5.2.3", sha256="01eda8022fab7bafb2c457fe26a9e9c99950ed1b772ae7bf8710b23a90b56e32") version("5.2.1", sha256="4b2a7780f0112c12b5f307e1130e6b2c02ab984a0c1b94e9190dae38f0067600") version("5.2.0", sha256="ab3057e7c17a9fbe584f89ef98ec92a74d638a98d333e7d0f64daf7bc9051e38") version("5.1.3", sha256="4a19e1bcb60955a02a73ad64594c23886d6749afe06b0104e2b877dbe02c8d1c") @@ -124,6 +125,7 @@ class Rocrand(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocsolver/package.py b/var/spack/repos/builtin/packages/rocsolver/package.py index 4aeb9229ddf..ea634fec9d8 100644 --- a/var/spack/repos/builtin/packages/rocsolver/package.py +++ b/var/spack/repos/builtin/packages/rocsolver/package.py @@ -15,7 +15,7 @@ class Rocsolver(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocSOLVER" git = "https://github.com/ROCmSoftwarePlatform/rocSOLVER.git" - url = "https://github.com/ROCmSoftwarePlatform/rocSOLVER/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocSOLVER/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["cgmb", "srekolam", "renjithravindrankannath", "haampie"] @@ -35,6 +35,7 @@ class Rocsolver(CMakePackage): version("develop", branch="develop") version("master", branch="master") + version("5.2.3", sha256="b278a1640f31fb1905f18dc5127d57e2b1d36fd2b4f39ae811b5537fa6ce87d4") version("5.2.1", sha256="74c127efaefec70a14dff6fa0e92276f38a6c313bf1271d68d03a4222d1fc3b6") version("5.2.0", sha256="94d46ebe1266eaa05df50c1789dc27d3f2dbf3cb5af156e757777a82ed6ef356") version("5.1.3", sha256="5a8f3b95ac9a131c31538196e954ea53b863009c092cce0c0ef869a0cd5dd554") @@ -142,6 +143,7 @@ def check(self): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocblas@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocsparse/package.py b/var/spack/repos/builtin/packages/rocsparse/package.py index 15261fc1115..779658405b3 100644 --- a/var/spack/repos/builtin/packages/rocsparse/package.py +++ b/var/spack/repos/builtin/packages/rocsparse/package.py @@ -17,7 +17,7 @@ class Rocsparse(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocSPARSE" git = "https://github.com/ROCmSoftwarePlatform/rocSPARSE.git" - url = "https://github.com/ROCmSoftwarePlatform/rocSPARSE/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocSPARSE/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["cgmb", "srekolam", "renjithravindrankannath"] @@ -34,6 +34,7 @@ class Rocsparse(CMakePackage): ) variant("test", default=False, description="Build rocsparse-test client") + version("5.2.3", sha256="6da3f3303a8ada94c4dbff4b42ee33a2e2883a908ee21c41cb2aa7180382026a") version("5.2.1", sha256="01f3535442740221edad2cde0a20b2499c807f6733d5016b33c47f34a5a55c49") version("5.2.0", sha256="7ed929af16d2502135024a6463997d9a95f03899b8a33aa95db7029575c89572") version("5.1.3", sha256="ef9641045b36c9aacc87e4fe7717b41b1e29d97e21432678dce7aca633a8edc2") @@ -114,6 +115,7 @@ class Rocsparse(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocprim@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocthrust/package.py b/var/spack/repos/builtin/packages/rocthrust/package.py index e79ed917795..d760666eda8 100644 --- a/var/spack/repos/builtin/packages/rocthrust/package.py +++ b/var/spack/repos/builtin/packages/rocthrust/package.py @@ -14,11 +14,12 @@ class Rocthrust(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocThrust" git = "https://github.com/ROCmSoftwarePlatform/rocThrust.git" - url = "https://github.com/ROCmSoftwarePlatform/rocThrust/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocThrust/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["cgmb", "srekolam", "renjithravindrankannath"] + version("5.2.3", sha256="0f5ef39c5faab31eb34b48391d58096463969c133ca7ed09ab4e43caa5461b29") version("5.2.1", sha256="5df35ff0970b83d68b69a07ae9ebb62955faac7401c91daa7929664fdd09d69b") version("5.2.0", sha256="afa126218485586682c78e97df8025ae4efd32f3751c340e84c436e08868c326") version("5.1.3", sha256="8d92de1e69815d92a423b7657f2f37c90f1d427f5bc92915c202d4c266254dad") @@ -113,6 +114,7 @@ class Rocthrust(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocprim@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/roctracer-dev-api/package.py b/var/spack/repos/builtin/packages/roctracer-dev-api/package.py index dc406a73a51..2791b7ed107 100644 --- a/var/spack/repos/builtin/packages/roctracer-dev-api/package.py +++ b/var/spack/repos/builtin/packages/roctracer-dev-api/package.py @@ -13,11 +13,12 @@ class RoctracerDevApi(Package): homepage = "https://github.com/ROCm-Developer-Tools/roctracer" git = "https://github.com/ROCm-Developer-Tools/roctracer.git" - url = "https://github.com/ROCm-Developer-Tools/roctracer/archive/refs/tags/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCm-Developer-Tools/roctracer/archive/refs/tags/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] + version("5.2.3", sha256="93f4bb7529db732060bc12055aa10dc346a459a1086cddd5d86c7b509301be4f") version("5.2.1", sha256="e200b5342bdf840960ced6919d4bf42c8f30f8013513f25a2190ee8767667e59") version("5.2.0", sha256="9747356ce61c57d22c2e0a6c90b66a055e435d235ba3459dc3e3f62aabae6a03") version("5.1.3", sha256="45f19875c15eb609b993788b47fd9c773b4216074749d7744f3a671be17ef33c") diff --git a/var/spack/repos/builtin/packages/roctracer-dev/package.py b/var/spack/repos/builtin/packages/roctracer-dev/package.py index c7e1800c732..ed8e94185a1 100644 --- a/var/spack/repos/builtin/packages/roctracer-dev/package.py +++ b/var/spack/repos/builtin/packages/roctracer-dev/package.py @@ -15,12 +15,13 @@ class RoctracerDev(CMakePackage): homepage = "https://github.com/ROCm-Developer-Tools/roctracer" git = "https://github.com/ROCm-Developer-Tools/roctracer.git" - url = "https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["libroctracer64"] + version("5.2.3", sha256="93f4bb7529db732060bc12055aa10dc346a459a1086cddd5d86c7b509301be4f") version("5.2.1", sha256="e200b5342bdf840960ced6919d4bf42c8f30f8013513f25a2190ee8767667e59") version("5.2.0", sha256="9747356ce61c57d22c2e0a6c90b66a055e435d235ba3459dc3e3f62aabae6a03") version("5.1.3", sha256="45f19875c15eb609b993788b47fd9c773b4216074749d7744f3a671be17ef33c") @@ -111,6 +112,7 @@ class RoctracerDev(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hsakmt-roct@" + ver, when="@" + ver) depends_on("hsa-rocr-dev@" + ver, when="@" + ver) @@ -129,6 +131,7 @@ class RoctracerDev(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("rocprofiler-dev@" + ver, when="@" + ver) diff --git a/var/spack/repos/builtin/packages/rocwmma/package.py b/var/spack/repos/builtin/packages/rocwmma/package.py index fff29a3bb00..7fe59679cca 100644 --- a/var/spack/repos/builtin/packages/rocwmma/package.py +++ b/var/spack/repos/builtin/packages/rocwmma/package.py @@ -21,11 +21,12 @@ class Rocwmma(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rocWMMA" git = "https://github.com/ROCmSoftwarePlatform/rocWMMA.git" - url = "https://github.com/ROCmSoftwarePlatform/rocWMMA/archive/refs/tags/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rocWMMA/archive/refs/tags/rocm-5.2.3.tar.gz" tags = ["rocm"] - maintainers = ["srekolam"] + maintainers = ["srekolam", "renjithravindrankannath"] + version("5.2.3", sha256="7f42e9742eff258f7c09c518c5ea9c71a224574e1c075d7e1c4e464192fc4920") version("5.2.1", sha256="73adb6a0ae99051493459a9902ad718b0452d6d819583a58d713ce52fa813f21") version("5.2.0", sha256="257ccd1cf2bc1d8064e72e78d276ef7446b2cb7e2dec05ff8331bb44eff2b7cb") @@ -47,7 +48,7 @@ class Rocwmma(CMakePackage): depends_on("googletest@1.10.0:", type="test") - for ver in ["5.2.0", "5.2.1"]: + for ver in ["5.2.0", "5.2.1", "5.2.3"]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) depends_on("llvm-amdgpu@" + ver, type="build", when="@" + ver) depends_on("hip@" + ver, when="@" + ver) From c6d7557484d5082d4332af2a0bd25dcac867664c Mon Sep 17 00:00:00 2001 From: renjithravindrankannath <94420380+renjithravindrankannath@users.noreply.github.com> Date: Wed, 21 Sep 2022 15:48:23 -0700 Subject: [PATCH 173/241] Update the version details for rccl, rvs, rocm-tensile rocm-5.2.3 release (#32741) * ROCm 5.2.3 release changes * Patch file for rccl Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> --- ...0003-Fix-numactl-rocm-smi-path-issue.patch | 25 +++++++++++++++++++ .../repos/builtin/packages/rccl/package.py | 10 +++++--- .../builtin/packages/rocm-tensile/package.py | 7 ++++-- .../packages/rocm-validation-suite/package.py | 4 ++- 4 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 var/spack/repos/builtin/packages/rccl/0003-Fix-numactl-rocm-smi-path-issue.patch diff --git a/var/spack/repos/builtin/packages/rccl/0003-Fix-numactl-rocm-smi-path-issue.patch b/var/spack/repos/builtin/packages/rccl/0003-Fix-numactl-rocm-smi-path-issue.patch new file mode 100644 index 00000000000..1451e545830 --- /dev/null +++ b/var/spack/repos/builtin/packages/rccl/0003-Fix-numactl-rocm-smi-path-issue.patch @@ -0,0 +1,25 @@ +From 5d40f88d3af525326aaeae052f0e7345445336d8 Mon Sep 17 00:00:00 2001 +From: Renjith Ravindran +Date: Wed, 21 Sep 2022 05:42:54 +0000 +Subject: [PATCH] 5.2.3 changes for spack + +--- + CMakeLists.txt | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 79e0a35..21f2a54 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -123,6 +123,8 @@ include_directories(src) + include_directories(src/include) + include_directories(src/collectives) + include_directories(src/collectives/device) ++include_directories(${NUMACTL_DIR}/include) ++link_directories(${NUMACTL_DIR}/lib) + + # Create git version file + # _git_version.cpp is a dummy output to force re-run prior to build +-- +2.17.1 + diff --git a/var/spack/repos/builtin/packages/rccl/package.py b/var/spack/repos/builtin/packages/rccl/package.py index 119ab751df5..d8f5c1a6527 100644 --- a/var/spack/repos/builtin/packages/rccl/package.py +++ b/var/spack/repos/builtin/packages/rccl/package.py @@ -16,12 +16,13 @@ class Rccl(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/rccl" git = "https://github.com/ROCmSoftwarePlatform/rccl.git" - url = "https://github.com/ROCmSoftwarePlatform/rccl/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/rccl/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] libraries = ["librccl"] + version("5.2.3", sha256="ecba09f4c95b4b2dae81b88231a972ac956d29909b5e712e21cf2a74bd251ff4") version("5.2.1", sha256="cfd17dc003f19900e44928d81111570d3720d4905321f2a18c909909c4bee822") version("5.2.0", sha256="6ee3a04da0d16eb53f768a088633a7d8ecc4416a2d0c07f7ba8426ab7892b060") version("5.1.3", sha256="56491257f27b48bf85f4b91434a2a6e49a448337c889db181b02c8a4a260a4bc") @@ -92,7 +93,8 @@ class Rccl(CMakePackage): ) patch("0001-Fix-numactl-path-issue.patch", when="@3.7.0:4.3.2") - patch("0002-Fix-numactl-rocm-smi-path-issue.patch", when="@4.5.0:") + patch("0002-Fix-numactl-rocm-smi-path-issue.patch", when="@4.5.0:5.2.1") + patch("0003-Fix-numactl-rocm-smi-path-issue.patch", when="@5.2.3:") depends_on("cmake@3.5:", type="build") for ver in [ @@ -114,6 +116,7 @@ class Rccl(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) depends_on("hip@" + ver, when="@" + ver) @@ -138,9 +141,10 @@ class Rccl(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("numactl@2:", when="@" + ver) - for ver in ["4.5.0", "4.5.2", "5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0", "5.2.1"]: + for ver in ["4.5.0", "4.5.2", "5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0", "5.2.1", "5.2.3"]: depends_on("rocm-smi-lib@" + ver, when="@" + ver) @classmethod diff --git a/var/spack/repos/builtin/packages/rocm-tensile/package.py b/var/spack/repos/builtin/packages/rocm-tensile/package.py index 8697cbd8b0b..a201d8e9589 100644 --- a/var/spack/repos/builtin/packages/rocm-tensile/package.py +++ b/var/spack/repos/builtin/packages/rocm-tensile/package.py @@ -13,11 +13,12 @@ class RocmTensile(CMakePackage): homepage = "https://github.com/ROCmSoftwarePlatform/Tensile/" git = "https://github.com/ROCmSoftwarePlatform/Tensile.git" - url = "https://github.com/ROCmSoftwarePlatform/Tensile/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCmSoftwarePlatform/Tensile/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath", "haampie"] + version("5.2.3", sha256="840698bf2ac62e08ae76c3843f1dad5367ed098d42e6a5fa7953de70642fd2cf") version("5.2.1", sha256="49582e28f7e14fed6a66c59482a41d3899c1eb8e7aa0ce40a7a2e806dadc536b") version("5.2.0", sha256="aa6107944482ad278111d11d2e926393423fc70e7e1838574fe7ad9f553bdacf") version("5.1.3", sha256="87020ca268e3a1ed8853f629839d6497764d862bd70b8775e98de439f6c89f1d") @@ -127,6 +128,7 @@ class RocmTensile(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("rocm-cmake@" + ver, type="build", when="@" + ver) depends_on("hip@" + ver, when="@" + ver) @@ -152,6 +154,7 @@ class RocmTensile(CMakePackage): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("rocm-smi-lib@" + ver, type="build", when="@" + ver) @@ -184,7 +187,7 @@ def cmake_args(self): self.define("Tensile_LOGIC", "asm_full"), self.define("Tensile_CODE_OBJECT_VERSION", "V3"), self.define("Boost_USE_STATIC_LIBS", "OFF"), - self.define("TENSILE_USE_OPENMP", "OFF"), + self.define("TENSILE_USE_OPENMP", "ON"), self.define("BUILD_WITH_TENSILE_HOST", "ON" if "@3.7.0:" in self.spec else "OFF"), ] diff --git a/var/spack/repos/builtin/packages/rocm-validation-suite/package.py b/var/spack/repos/builtin/packages/rocm-validation-suite/package.py index fd20cd4a661..6e8392a885b 100644 --- a/var/spack/repos/builtin/packages/rocm-validation-suite/package.py +++ b/var/spack/repos/builtin/packages/rocm-validation-suite/package.py @@ -16,11 +16,12 @@ class RocmValidationSuite(CMakePackage): compatible platform.""" homepage = "https://github.com/ROCm-Developer-Tools/ROCmValidationSuite" - url = "https://github.com/ROCm-Developer-Tools/ROCmValidationSuite/archive/rocm-5.2.0.tar.gz" + url = "https://github.com/ROCm-Developer-Tools/ROCmValidationSuite/archive/rocm-5.2.3.tar.gz" tags = ["rocm"] maintainers = ["srekolam", "renjithravindrankannath"] + version("5.2.3", sha256="5dfbd41c694bf2eb4368edad8653dc60ec2927d174fc7aaa5fa416156c5f921f") version("5.2.1", sha256="a0ea3ab9cbb8ac17bfa4537713a4d7075f869949bfdead4565a46f75864bd4a9") version("5.2.0", sha256="2dfef5d66f544230957ac9aaf647b2f1dccf3cc7592cc322cae9fbdcf3321365") version("5.1.3", sha256="0140a4128c31749c078d9e1dc863cbbd690efc65843c34a4b80f0056e5b8c7b6") @@ -123,6 +124,7 @@ def setup_build_environment(self, build_env): "5.1.3", "5.2.0", "5.2.1", + "5.2.3", ]: depends_on("hip@" + ver, when="@" + ver) depends_on("rocminfo@" + ver, when="@" + ver) From 457daf4be65478a592102177662eb9dad52b8767 Mon Sep 17 00:00:00 2001 From: Sreenivasa Murthy Kolam <67086238+srekolam@users.noreply.github.com> Date: Wed, 21 Sep 2022 16:54:40 -0700 Subject: [PATCH 174/241] Add new variants (OPENCL and HIP) for MIVisionX recipe and their dependencies correctly. (#32486) * add the 2 variants OPENCL and HIP and their dependencies correctly for OPENCL - rocm-opencl, miopengemm and miopen-opencl for HIP - miopen-hip Earlier this was adding both the dependencies -miopen-hip and miopen-opencl for both the backends which did not seem correct. Also corrected the miopen-hip or miopen-opencl config.h in patch() depending on the backend Also added libjpeg-turbo as it is required for building ROCAl . the AMDRpp is still required for ROCAL inclusion but it currently does not build AMDRpp will be added as a new spack recipe and the mivisionx will refer to that as a dependency in future. * fix style errors * bump up the version for 5.2.3 release. tested +opencl, +hip and ~hip~opencl(cpu backend) Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> --- .../builtin/packages/mivisionx/package.py | 124 ++++++++++++------ 1 file changed, 84 insertions(+), 40 deletions(-) diff --git a/var/spack/repos/builtin/packages/mivisionx/package.py b/var/spack/repos/builtin/packages/mivisionx/package.py index 625e4914fc0..4bec317816a 100644 --- a/var/spack/repos/builtin/packages/mivisionx/package.py +++ b/var/spack/repos/builtin/packages/mivisionx/package.py @@ -25,6 +25,7 @@ def url_for_version(self, version): url = "https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-{0}.tar.gz" return url.format(version) + version("5.2.3", sha256="bbcdb5808d2bc880486dffa89f4111fb4b1d6dfe9b11fcd46fbd17939d057cf0") version("5.2.1", sha256="201996b31f59a8d5e4cc3f17d17a5b81158a34d2a1c833b65ccc3dceb21d176f") version("5.2.0", sha256="fee620a1edd3bce18b2cec9ef26ec2afe0a85d6da8a37ed713ab0d1342382503") version("5.1.3", sha256="62591d5caedc13832c3ccef629a88d9c2a43c884daad1124ddcb9c5f7d5470e9") @@ -90,10 +91,16 @@ def url_for_version(self, version): values=("Release", "Debug", "RelWithDebInfo"), description="CMake build type", ) - variant("backend", default="OPENCL", values=("HIP", "OPENCL"), description="backend type") + # Adding 2 variants OPENCL ,HIP which HIP as default. earlier to 5.0.0,OPENCL + # was the default but has change dto HIP from 5.0.0 onwards. + # when tested with HIP as true for versions before 5.1.0, build errors were encountered + # this was corrected with 5.2.0. Hence it was made as default starting with 5.2.0 onwards + + variant("opencl", default=False, description="Use OPENCL as the backend") + variant("hip", default=True, description="Use HIP as backend") def patch(self): - if "@4.2.0" in self.spec: + if self.spec.satisfies("@4.2.0"): filter_file( "${ROCM_PATH}/opencl", self.spec["rocm-opencl"].prefix, @@ -106,7 +113,7 @@ def patch(self): "utilities/mv_deploy/CMakeLists.txt", string=True, ) - if "@4.5.0:5.1" in self.spec: + if self.spec.satisfies("@4.5.0:5.1 + hip"): filter_file( "${ROCM_PATH}/miopen", self.spec["miopen-hip"].prefix.miopen, @@ -125,13 +132,20 @@ def patch(self): "amd_openvx_extensions/amd_nn/nn_hip/CMakeLists.txt", string=True, ) - - def flag_handler(self, name, flags): - spec = self.spec - protobuf = spec["protobuf"].prefix.include - if name == "cxxflags": - flags.append("-I{0}".format(protobuf)) - return (flags, None, None) + if self.spec.satisfies("@5.1.3: + hip"): + filter_file( + "${ROCM_PATH}/include/miopen/config.h", + "{0}/include/miopen/config.h".format(self.spec["miopen-hip"].prefix), + "amd_openvx_extensions/CMakeLists.txt", + string=True, + ) + if self.spec.satisfies("@5.1.3: + opencl"): + filter_file( + "${ROCM_PATH}/include/miopen/config.h", + "{0}/include/miopen/config.h".format(self.spec["miopen-opencl"].prefix), + "amd_openvx_extensions/CMakeLists.txt", + string=True, + ) depends_on("cmake@3.5:", type="build") depends_on("ffmpeg@:4", type="build") @@ -142,46 +156,76 @@ def flag_handler(self, name, flags): "+video+videoio+flann+photo+objdetect", type="build", ) - depends_on("rocm-opencl@3.5.0", when="@1.7") + depends_on("rocm-opencl@3.5.0", when="@1.7+opencl") depends_on("rocm-cmake@3.5.0", type="build", when="@1.7") - depends_on("miopen-opencl@3.5.0", when="@1.7") - depends_on("miopengemm@1.1.6", when="@1.7") + depends_on("miopen-opencl@3.5.0", when="@1.7+opencl") + depends_on("miopengemm@1.1.6", when="@1.7+opencl") depends_on("openssl", when="@4.0.0:") + depends_on("libjpeg-turbo", type="build") conflicts("^cmake@3.22:", when="@:5.0.0") + # need to choose atleast one backend and both cannot be set + # HIP as backend did not build for older releases 5.1.0 where + # OPENCL was default backend. + conflicts("+opencl+hip") + conflicts("+hip", when="@:5.1.0") - for ver in [ - "3.7.0", - "3.8.0", - "3.9.0", - "3.10.0", - "4.0.0", - "4.1.0", - "4.2.0", - "4.3.0", - "4.3.1", - "4.5.0", - "4.5.2", - "5.0.0", - "5.0.2", - "5.1.0", - "5.1.3", - "5.2.0", - "5.2.1", - ]: - depends_on("rocm-opencl@" + ver, when="@" + ver) - depends_on("miopengemm@" + ver, when="@" + ver) - depends_on("miopen-opencl@" + ver, when="@" + ver) - for ver in ["4.5.0", "4.5.2", "5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0", "5.2.1"]: - depends_on("miopen-hip@" + ver, when="@" + ver) + with when("+opencl"): + for ver in [ + "3.7.0", + "3.8.0", + "3.9.0", + "3.10.0", + "4.0.0", + "4.1.0", + "4.2.0", + "4.3.0", + "4.3.1", + "4.5.0", + "4.5.2", + "5.0.0", + "5.0.2", + "5.1.0", + "5.1.3", + "5.2.0", + "5.2.1", + "5.2.3", + ]: + depends_on("rocm-opencl@" + ver, when="@" + ver) + depends_on("miopengemm@" + ver, when="@" + ver) + depends_on("miopen-opencl@" + ver, when="@" + ver) + with when("+hip"): + for ver in [ + "4.5.0", + "4.5.2", + "5.0.0", + "5.0.2", + "5.1.0", + "5.1.3", + "5.2.0", + "5.2.1", + "5.2.3", + ]: + depends_on("miopen-hip@" + ver, when="@" + ver) + + def flag_handler(self, name, flags): + spec = self.spec + protobuf = spec["protobuf"].prefix.include + if name == "cxxflags": + flags.append("-I{0}".format(protobuf)) + return (flags, None, None) def cmake_args(self): spec = self.spec protobuf = spec["protobuf"].prefix.include args = [ self.define("CMAKE_CXX_FLAGS", "-I{0}".format(protobuf)), - self.define_from_variant("BACKEND", "backend"), - self.define("HIP_PATH", spec["hip"].prefix), - self.define("HSA_PATH", spec["hsa-rocr-dev"].prefix), ] + if self.spec.satisfies("+opencl"): + args.append(self.define("BACKEND", "OPENCL")) + args.append(self.define("HSA_PATH", spec["hsa-rocr-dev"].prefix)) + if self.spec.satisfies("+hip"): + args.append(self.define("BACKEND", "HIP")) + args.append(self.define("HSA_PATH", spec["hsa-rocr-dev"].prefix)) + args.append(self.define("HIP_PATH", spec["hip"].prefix)) return args From 54d06fca7903a7207f1d94c6b269563f56235f51 Mon Sep 17 00:00:00 2001 From: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Date: Thu, 22 Sep 2022 00:18:43 -0700 Subject: [PATCH 175/241] Add hash hint to multi-spec message (#32652) --- lib/spack/spack/cmd/__init__.py | 23 ++++++++++++++--------- lib/spack/spack/cmd/view.py | 12 +----------- lib/spack/spack/test/cmd/load.py | 12 +++++++----- 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/lib/spack/spack/cmd/__init__.py b/lib/spack/spack/cmd/__init__.py index bf7f1a59598..e829166d396 100644 --- a/lib/spack/spack/cmd/__init__.py +++ b/lib/spack/spack/cmd/__init__.py @@ -291,19 +291,24 @@ def disambiguate_spec_from_hashes(spec, hashes, local=False, installed=True, fir elif first: return matching_specs[0] - elif len(matching_specs) > 1: - format_string = "{name}{@version}{%compiler}{arch=architecture}" - args = ["%s matches multiple packages." % spec, "Matching packages:"] - args += [ - colorize(" @K{%s} " % s.dag_hash(7)) + s.cformat(format_string) - for s in matching_specs - ] - args += ["Use a more specific spec."] - tty.die(*args) + ensure_single_spec_or_die(spec, matching_specs) return matching_specs[0] +def ensure_single_spec_or_die(spec, matching_specs): + if len(matching_specs) <= 1: + return + + format_string = "{name}{@version}{%compiler}{arch=architecture}" + args = ["%s matches multiple packages." % spec, "Matching packages:"] + args += [ + colorize(" @K{%s} " % s.dag_hash(7)) + s.cformat(format_string) for s in matching_specs + ] + args += ["Use a more specific spec (e.g., prepend '/' to the hash)."] + tty.die(*args) + + def gray_hash(spec, length): if not length: # default to maximum hash length diff --git a/lib/spack/spack/cmd/view.py b/lib/spack/spack/cmd/view.py index cb693c569d1..a032b39ab2b 100644 --- a/lib/spack/spack/cmd/view.py +++ b/lib/spack/spack/cmd/view.py @@ -35,7 +35,6 @@ """ import llnl.util.tty as tty from llnl.util.link_tree import MergeConflictError -from llnl.util.tty.color import colorize import spack.cmd import spack.environment as ev @@ -66,16 +65,7 @@ def squash(matching_specs): tty.die("Spec matches no installed packages.") matching_in_view = [ms for ms in matching_specs if ms in view_specs] - - if len(matching_in_view) > 1: - spec_format = "{name}{@version}{%compiler}{arch=architecture}" - args = ["Spec matches multiple packages.", "Matching packages:"] - args += [ - colorize(" @K{%s} " % s.dag_hash(7)) + s.cformat(spec_format) - for s in matching_in_view - ] - args += ["Use a more specific spec."] - tty.die(*args) + spack.cmd.ensure_single_spec_or_die("Spec", matching_in_view) return matching_in_view[0] if matching_in_view else matching_specs[0] diff --git a/lib/spack/spack/test/cmd/load.py b/lib/spack/spack/test/cmd/load.py index 93cb7348ce2..9226a00bb32 100644 --- a/lib/spack/spack/test/cmd/load.py +++ b/lib/spack/spack/test/cmd/load.py @@ -10,7 +10,7 @@ import spack.spec import spack.user_environment as uenv -from spack.main import SpackCommand, SpackCommandError +from spack.main import SpackCommand load = SpackCommand("load") unload = SpackCommand("unload") @@ -115,10 +115,12 @@ def test_load_first(install_mockery, mock_fetch, mock_archive, mock_packages): """Test with and without the --first option""" install("libelf@0.8.12") install("libelf@0.8.13") - # Now there are two versions of libelf - with pytest.raises(SpackCommandError): - # This should cause an error due to multiple versions - load("--sh", "libelf") + + # Now there are two versions of libelf, which should cause an error + out = load("--sh", "libelf", fail_on_error=False) + assert "matches multiple packages" in out + assert "Use a more specific spec" in out + # Using --first should avoid the error condition load("--sh", "--first", "libelf") From 0ddbb92ae3acad8b2b87198d127aa96ea95f48c0 Mon Sep 17 00:00:00 2001 From: Andrey Alekseenko Date: Thu, 22 Sep 2022 14:10:30 +0200 Subject: [PATCH 176/241] GROMACS: update CMake version, and a couple more fixes (#32748) - GROMACS is not an acronym (https://www.gromacs.org/about.html). - GROMACS switched to LGPL a long time ago, so let's mention it first. - CMake version required for `main` has been bumped to 3.18 (https://gitlab.com/gromacs/gromacs/-/merge_requests/3093) - `-DGMX_USE_OPENCL` flag was used before 2021; for newer versions, `-DGMX_GPU=OpenCL` is enough. --- .../repos/builtin/packages/gromacs/package.py | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py index 9974eec291f..52e66ee4cdc 100644 --- a/var/spack/repos/builtin/packages/gromacs/package.py +++ b/var/spack/repos/builtin/packages/gromacs/package.py @@ -9,16 +9,15 @@ class Gromacs(CMakePackage): - """GROMACS (GROningen MAchine for Chemical Simulations) is a molecular - dynamics package primarily designed for simulations of proteins, lipids - and nucleic acids. It was originally developed in the Biophysical - Chemistry department of University of Groningen, and is now maintained - by contributors in universities and research centers across the world. + """GROMACS is a molecular dynamics package primarily designed for simulations + of proteins, lipids and nucleic acids. It was originally developed in + the Biophysical Chemistry department of University of Groningen, and is now + maintained by contributors in universities and research centers across the world. GROMACS is one of the fastest and most popular software packages available and can run on CPUs as well as GPUs. It is free, open source - released under the GNU General Public License. Starting from version 4.6, - GROMACS is released under the GNU Lesser General Public License. + released under the GNU Lesser General Public License. Before the version 4.6, + GROMACS was released under the GNU General Public License. """ homepage = "https://www.gromacs.org" @@ -204,8 +203,9 @@ class Gromacs(CMakePackage): depends_on("cmake@2.8.8:3", type="build") depends_on("cmake@3.4.3:3", type="build", when="@2018:") depends_on("cmake@3.9.6:3", type="build", when="@2020") - depends_on("cmake@3.13.0:3", type="build", when="@2021:") - depends_on("cmake@3.16.0:3", type="build", when="@master") + depends_on("cmake@3.13.0:3", type="build", when="@2021") + depends_on("cmake@3.16.3:3", type="build", when="@2022:") + depends_on("cmake@3.18.4:3", type="build", when="@main") depends_on("cmake@3.16.0:3", type="build", when="%fj") depends_on("cuda", when="+cuda") depends_on("sycl", when="+sycl") @@ -369,15 +369,14 @@ def cmake_args(self): else: if "+cuda" in self.spec or "+opencl" in self.spec: options.append("-DGMX_GPU:BOOL=ON") + if "+opencl" in self.spec: + options.append("-DGMX_USE_OPENCL=ON") else: options.append("-DGMX_GPU:BOOL=OFF") if "+cuda" in self.spec: options.append("-DCUDA_TOOLKIT_ROOT_DIR:STRING=" + self.spec["cuda"].prefix) - if "+opencl" in self.spec: - options.append("-DGMX_USE_OPENCL=on") - if "+lapack" in self.spec: options.append("-DGMX_EXTERNAL_LAPACK:BOOL=ON") if self.spec["lapack"].libs: From 83d55daae5c0034be5f765c01a7dc513e01b639a Mon Sep 17 00:00:00 2001 From: iarspider Date: Thu, 22 Sep 2022 17:47:44 +0200 Subject: [PATCH 177/241] New package: cepgen (#32754) --- .../repos/builtin/packages/cepgen/package.py | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 var/spack/repos/builtin/packages/cepgen/package.py diff --git a/var/spack/repos/builtin/packages/cepgen/package.py b/var/spack/repos/builtin/packages/cepgen/package.py new file mode 100644 index 00000000000..2a8b21b36d8 --- /dev/null +++ b/var/spack/repos/builtin/packages/cepgen/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Cepgen(CMakePackage): + """A generic central exclusive processes event generator""" + + homepage = "https://cepgen.hepforge.org/" + url = "https://github.com/cepgen/cepgen/archive/refs/tags/1.0.2patch1.tar.gz" + generator = "Ninja" + + tags = ["hep"] + + version( + "1.0.2patch1", sha256="333bba0cb1965a98dec127e00c150eab1a515cd348a90f7b1d66d5cd8d206d21" + ) + + depends_on("gsl") + depends_on("openblas") + depends_on("hepmc") + depends_on("hepmc3") + depends_on("lhapdf") + depends_on("pythia6") + depends_on("root") + + depends_on("ninja", type="build") From 2ad47c8ab22b6cad55b7204ee2a253628ed6676d Mon Sep 17 00:00:00 2001 From: Hans Fangohr Date: Thu, 22 Sep 2022 17:50:59 +0200 Subject: [PATCH 178/241] Enable use of latest version of Octopus (12.0) (#32758) Release notes: https://www.octopus-code.org/documentation/main/releases/octopus-12/ --- var/spack/repos/builtin/packages/octopus/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/octopus/package.py b/var/spack/repos/builtin/packages/octopus/package.py index f900c596f6c..5ba38a4a400 100644 --- a/var/spack/repos/builtin/packages/octopus/package.py +++ b/var/spack/repos/builtin/packages/octopus/package.py @@ -20,6 +20,7 @@ class Octopus(Package, CudaPackage): maintainers = ["fangohr", "RemiLacroix-IDRIS"] + version("12.0", sha256="70beaf08573d394a766f10346a708219b355ad725642126065d12596afbc0dcc") version("11.4", sha256="73bb872bff8165ddd8efc5b891f767cb3fe575b5a4b518416c834450a4492da7") version("11.3", sha256="0c98417071b5e38ba6cbdd409adf917837c387a010e321c0a7f94d9bd9478930") version("11.1", sha256="d943cc2419ca409dda7459b7622987029f2af89984d0d5f39a6b464c3fc266da") From be38400ce272e74dc7b7366898ee49ddc1b347ab Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Thu, 22 Sep 2022 18:30:14 +0200 Subject: [PATCH 179/241] py-anyio: add 3.6.1 (#32756) --- var/spack/repos/builtin/packages/py-anyio/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-anyio/package.py b/var/spack/repos/builtin/packages/py-anyio/package.py index 4de2b973576..9aa494ef973 100644 --- a/var/spack/repos/builtin/packages/py-anyio/package.py +++ b/var/spack/repos/builtin/packages/py-anyio/package.py @@ -13,6 +13,7 @@ class PyAnyio(PythonPackage): homepage = "https://github.com/agronholm/anyio" pypi = "anyio/anyio-3.2.1.tar.gz" + version("3.6.1", sha256="413adf95f93886e442aea925f3ee43baa5a765a64a0f52c6081894f9992fdd0b") version("3.5.0", sha256="a0aeffe2fb1fdf374a8e4b471444f0f3ac4fb9f5a5b542b48824475e0042a5a6") version("3.3.4", sha256="67da67b5b21f96b9d3d65daa6ea99f5d5282cb09f50eb4456f8fb51dffefc3ff") version("3.2.1", sha256="07968db9fa7c1ca5435a133dc62f988d84ef78e1d9b22814a59d1c62618afbc5") From 0869d22fcb4f29ff2ca00977e5ef7f03ad5dede4 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Thu, 22 Sep 2022 12:22:45 -0500 Subject: [PATCH 180/241] py-pytorch-lightning: add v1.7.7 (#32765) --- var/spack/repos/builtin/packages/py-pytorch-lightning/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py b/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py index d48d4bfe97f..369cc7dd5ac 100644 --- a/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py +++ b/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py @@ -14,6 +14,7 @@ class PyPytorchLightning(PythonPackage): maintainers = ["adamjstewart"] + version("1.7.7", sha256="27c2dd01a18db2415168e3fa3775ccb5a1fa1e2961a50439ad9365507fe9d4ae") version("1.7.6", sha256="93266c83f8340c100e41b3777bbab26dd2c20b4df3deccce3b8a15652326b9c8") version("1.7.5", sha256="a5838ae990f0eef9a894fa863be3bc1f5594d2abba7848fb21317ba3e885d7cd") version("1.7.4", sha256="d80df235228a8f6d6b77df4bfa34b3d667d734bd40e960bb4ca553a2746523eb") From 4094e59ab86284ee955bb91bfc4f59cb4ebd3e8b Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Thu, 22 Sep 2022 10:54:52 -0700 Subject: [PATCH 181/241] Fetching: log more exceptions (#32736) Include exception info related to url retrieval in debug messages which otherwise would be swallowed. This is intended to be useful for detecting if CA configuration interferes with downloads from HTTPS links. --- lib/spack/spack/fetch_strategy.py | 1 + lib/spack/spack/util/web.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py index ae23bacf142..5ed46c3278d 100644 --- a/lib/spack/spack/fetch_strategy.py +++ b/lib/spack/spack/fetch_strategy.py @@ -338,6 +338,7 @@ def fetch(self): errors = [] for url in self.candidate_urls: if not web_util.url_exists(url, self.curl): + tty.debug("URL does not exist: " + url) continue try: diff --git a/lib/spack/spack/util/web.py b/lib/spack/spack/util/web.py index 202cb8a5044..fa4119f9173 100644 --- a/lib/spack/spack/util/web.py +++ b/lib/spack/spack/util/web.py @@ -444,7 +444,8 @@ def url_exists(url, curl=None): try: read_from_url(url) return True - except (SpackWebError, URLError): + except (SpackWebError, URLError) as e: + tty.debug("Failure reading URL: " + str(e)) return False From b18ab062cf2b4595c62a2a3b66143a412919d259 Mon Sep 17 00:00:00 2001 From: Matthieu Dorier Date: Thu, 22 Sep 2022 22:32:19 +0200 Subject: [PATCH 182/241] [py-tinydb] Added package py-tinydb (#32752) * [py-tinydb] added package py-tinydb * [py-tinydb] corrected version in dependency for py-tinydb * [py-tinydb] update python dependency Co-authored-by: Adam J. Stewart * [py-tinydb] update dependency Co-authored-by: Adam J. Stewart Co-authored-by: Adam J. Stewart --- .../builtin/packages/py-tinydb/package.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-tinydb/package.py diff --git a/var/spack/repos/builtin/packages/py-tinydb/package.py b/var/spack/repos/builtin/packages/py-tinydb/package.py new file mode 100644 index 00000000000..09f22a65c5a --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tinydb/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack.package import * + + +class PyTinydb(PythonPackage): + """TinyDB is a tiny, document oriented database optimized for your happiness.""" + + homepage = "https://tinydb.readthedocs.io" + pypi = "tinydb/tinydb-4.7.0.tar.gz" + + version("4.7.0", sha256="357eb7383dee6915f17b00596ec6dd2a890f3117bf52be28a4c516aeee581100") + + depends_on("python@3.6:3", type=("build", "run")) + depends_on("py-poetry-core", type="build") + depends_on("py-typing-extensions@3.10.0:4", type=("build", "run"), when="^python@:3.7") From cbde650eed436f941b975654c5ed696d5b25f655 Mon Sep 17 00:00:00 2001 From: iarspider Date: Thu, 22 Sep 2022 22:41:53 +0200 Subject: [PATCH 183/241] New package: py-jaraco-classes (#32759) * New package: py-jaraco-classes * Update var/spack/repos/builtin/packages/py-jaraco-classes/package.py Co-authored-by: Adam J. Stewart Co-authored-by: Adam J. Stewart --- .../packages/py-jaraco-classes/package.py | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-jaraco-classes/package.py diff --git a/var/spack/repos/builtin/packages/py-jaraco-classes/package.py b/var/spack/repos/builtin/packages/py-jaraco-classes/package.py new file mode 100644 index 00000000000..1c0ec60f981 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-jaraco-classes/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyJaracoClasses(PythonPackage): + """Utility functions for Python class constructs""" + + homepage = "https://github.com/jaraco/jaraco.classes" + pypi = "jaraco.classes/jaraco.classes-3.2.2.tar.gz" + + version("3.2.2", sha256="6745f113b0b588239ceb49532aa09c3ebb947433ce311ef2f8e3ad64ebb74594") + + depends_on("python@3.7:", type=("build", "run")) + + depends_on("py-setuptools@56:", type="build") + depends_on("py-setuptools-scm@3.4.1: +toml", type="build") + + depends_on("py-more-itertools", type=("build", "run")) From 8f5b847cb0b294374b44f394b8c4365dc1fc52a0 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Fri, 23 Sep 2022 02:29:38 +0200 Subject: [PATCH 184/241] py-babel: add 2.10.3 (#32763) * py-babel: add 2.10.3 * Update var/spack/repos/builtin/packages/py-babel/package.py Co-authored-by: Adam J. Stewart Co-authored-by: Adam J. Stewart --- var/spack/repos/builtin/packages/py-babel/package.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-babel/package.py b/var/spack/repos/builtin/packages/py-babel/package.py index ba654dac4f4..add05cb8d6d 100644 --- a/var/spack/repos/builtin/packages/py-babel/package.py +++ b/var/spack/repos/builtin/packages/py-babel/package.py @@ -13,13 +13,16 @@ class PyBabel(PythonPackage): homepage = "https://babel.pocoo.org/en/latest/" pypi = "Babel/Babel-2.7.0.tar.gz" + git = "https://github.com/python-babel/babel" + version("2.10.3", sha256="7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51") version("2.9.1", sha256="bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0") version("2.7.0", sha256="e86135ae101e31e2c8ec20a4e0c5220f4eed12487d5cf3f78be7e98d3a57fc28") version("2.6.0", sha256="8cba50f48c529ca3fa18cf81fa9403be176d374ac4d60738b839122dfaaa3d23") version("2.4.0", sha256="8c98f5e5f8f5f088571f2c6bd88d530e331cbbcb95a7311a0db69d3dca7ec563") version("2.3.4", sha256="c535c4403802f6eb38173cd4863e419e2274921a01a8aad8a5b497c131c62875") + depends_on("python@3.6:", when="@2.10:", type=("build", "run")) depends_on("python@2.7:2.8,3.4:", type=("build", "run")) depends_on("py-setuptools", type=("build", "run")) depends_on("py-pytz@2015.7:", type=("build", "run")) From 0a050785e98b07d4b7b4c791a3420a50a23387ca Mon Sep 17 00:00:00 2001 From: Peter Scheibel Date: Fri, 23 Sep 2022 00:29:48 -0700 Subject: [PATCH 185/241] Skip all tests using problematic fixture on python 2.7 (#32768) --- lib/spack/spack/test/concretize.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/spack/spack/test/concretize.py b/lib/spack/spack/test/concretize.py index d1b2021c391..020e921c250 100644 --- a/lib/spack/spack/test/concretize.py +++ b/lib/spack/spack/test/concretize.py @@ -1188,6 +1188,9 @@ def mock_fn(*args, **kwargs): second_spec.concretize() assert first_spec.dag_hash() != second_spec.dag_hash() + @pytest.mark.skipif( + sys.version_info[:2] == (2, 7), reason="Fixture fails intermittently with Python 2.7" + ) @pytest.mark.regression("20292") @pytest.mark.parametrize( "context", @@ -1510,6 +1513,9 @@ def test_add_microarchitectures_on_explicit_request(self): s = Spec("python target=k10").concretized() assert s.satisfies("target=k10") + @pytest.mark.skipif( + sys.version_info[:2] == (2, 7), reason="Fixture fails intermittently with Python 2.7" + ) @pytest.mark.regression("29201") def test_delete_version_and_reuse(self, mutable_database, repo_with_changing_recipe): """Test that we can reuse installed specs with versions not From 86958669cf52f36efc10fb71bb52e579c0ea0e48 Mon Sep 17 00:00:00 2001 From: iarspider Date: Fri, 23 Sep 2022 10:17:42 +0200 Subject: [PATCH 186/241] New packages: py-conan, py-node-semver, py-patch-ng (#32753) * New packages: py-conan, py-node-semver, py-patch-ng * Update var/spack/repos/builtin/packages/py-conan/package.py Co-authored-by: Adam J. Stewart * Update var/spack/repos/builtin/packages/py-conan/package.py Co-authored-by: Adam J. Stewart Co-authored-by: Adam J. Stewart --- .../builtin/packages/py-conan/package.py | 34 +++++++++++++++++++ .../packages/py-node-semver/package.py | 19 +++++++++++ .../builtin/packages/py-patch-ng/package.py | 17 ++++++++++ 3 files changed, 70 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-conan/package.py create mode 100644 var/spack/repos/builtin/packages/py-node-semver/package.py create mode 100644 var/spack/repos/builtin/packages/py-patch-ng/package.py diff --git a/var/spack/repos/builtin/packages/py-conan/package.py b/var/spack/repos/builtin/packages/py-conan/package.py new file mode 100644 index 00000000000..64b1516692b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-conan/package.py @@ -0,0 +1,34 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyConan(PythonPackage): + """Conan C/C++ package manager""" + + homepage = "https://conan.io/" + pypi = "conan/conan-1.52.0.tar.gz" + + version("1.52.0", sha256="184761f16d00fde17615e60125d2f14fca692ffba7666cc7d6d834fc3858cf82") + + depends_on("python@3.6:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-requests@2.25:2", type=("build", "run")) + depends_on("py-urllib3@1.26.6:1.26", type=("build", "run")) + depends_on("py-colorama@0.3.3:0.4", type=("build", "run")) + depends_on("py-pyyaml@3.11:6.0", type=("build", "run")) + depends_on("py-patch-ng@1.17.4:1.17", type=("build", "run")) + depends_on("py-fasteners@0.14.1:", type=("build", "run")) + depends_on("py-six@1.10.0:1.16.0", type=("build", "run")) + depends_on("py-node-semver@0.6.1", type=("build", "run")) + depends_on("py-distro@1.0.2:1.6.0", type=("build", "run"), when="platform=linux") + depends_on("py-pygments@2.0:2", type=("build", "run")) + depends_on("py-tqdm@4.28.1:4", type=("build", "run")) + depends_on("py-jinja2@2.9:2", type=("build", "run"), when="^python@:2.7") + depends_on("py-markupsafe@:2.0.1", type=("build", "run"), when="^python@:2.7") + depends_on("py-jinja2@3.0:3", type=("build", "run"), when="^python@3:") + depends_on("py-python-dateutil@2.7.0:2", type=("build", "run")) + depends_on("py-configparser@3.5:", type=("build", "run"), when="^python@:2.7") diff --git a/var/spack/repos/builtin/packages/py-node-semver/package.py b/var/spack/repos/builtin/packages/py-node-semver/package.py new file mode 100644 index 00000000000..c7674df4bb7 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-node-semver/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyNodeSemver(PythonPackage): + """python version of node-semver (https://github.com/isaacs/node-semver)""" + + homepage = "https://github.com/podhmo/python-semver" + pypi = "node-semver/node-semver-0.8.1.tar.gz" + + version("0.8.1", sha256="281600d009606f4f63ddcbe148992e235b39a69937b9c20359e2f4a2adbb1e00") + version("0.6.1", sha256="4016f7c1071b0493f18db69ea02d3763e98a633606d7c7beca811e53b5ac66b7") + + depends_on("python@3:", type=("build", "run")) + depends_on("py-setuptools", type="build") diff --git a/var/spack/repos/builtin/packages/py-patch-ng/package.py b/var/spack/repos/builtin/packages/py-patch-ng/package.py new file mode 100644 index 00000000000..99666c75355 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-patch-ng/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyPatchNg(PythonPackage): + """Library to parse and apply unified diffs.""" + + homepage = "https://github.com/conan-io/python-patch" + pypi = "patch-ng/patch-ng-1.17.4.tar.gz" + + version("1.17.4", sha256="627abc5bd723c8b481e96849b9734b10065426224d4d22cd44137004ac0d4ace") + + depends_on("py-setuptools", type="build") From e98e27ac3fa8f7cada77519883bddca0483b8303 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Fri, 23 Sep 2022 10:49:43 +0200 Subject: [PATCH 187/241] py-asttokens: add 2.0.8 (#32760) --- var/spack/repos/builtin/packages/py-asttokens/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-asttokens/package.py b/var/spack/repos/builtin/packages/py-asttokens/package.py index 53db3585afb..e85979d0a13 100644 --- a/var/spack/repos/builtin/packages/py-asttokens/package.py +++ b/var/spack/repos/builtin/packages/py-asttokens/package.py @@ -12,9 +12,11 @@ class PyAsttokens(PythonPackage): homepage = "https://github.com/gristlabs/asttokens" pypi = "asttokens/asttokens-2.0.5.tar.gz" + version("2.0.8", sha256="c61e16246ecfb2cde2958406b4c8ebc043c9e6d73aaa83c941673b35e5d3a76b") version("2.0.5", sha256="9a54c114f02c7a9480d56550932546a3f1fe71d8a02f1bc7ccd0ee3ee35cf4d5") depends_on("py-setuptools@44:", type="build") depends_on("py-setuptools-scm+toml@3.4.3:", type="build") depends_on("py-six", type=("build", "run")) + depends_on("py-typing", when="@2.0.7: ^python@:3.4", type=("build", "run")) From 2fa9aff206019f8b4c71546f3bc1c82855dc74f9 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Fri, 23 Sep 2022 11:01:59 +0200 Subject: [PATCH 188/241] gitlab: cuda not compatible amazon linux 2 (#32678) amazon linux 2 ships a glibc that is too old to work with cuda toolkit for aarch64. For example: `libcurand.so.10.2.10.50` requires the symbol `logf@@GLIBC_2.27`, but glibc is at 2.26. So, these specs are removed. --- .../cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml | 11 ----------- .../stacks/radiuss-aws-aarch64/spack.yaml | 6 ------ 2 files changed, 17 deletions(-) diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml index 4d76ffee727..248d49fd40c 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml @@ -70,12 +70,6 @@ spack: # - intel-oneapi-compilers@2022.1 # - nvhpc - - cuda_specs: - # Depends on ctffind which embeds fsincos (x86-specific asm) within code. Will not build on ARM - #- relion +cuda cuda_arch=70 - - raja +cuda cuda_arch=70 - - mfem +cuda cuda_arch=70 - - app_specs: - bwa # Depends on simde which requires newer compiler? @@ -133,11 +127,6 @@ spack: specs: - - matrix: - - - $cuda_specs - - - $compiler - - - $target - - matrix: - - $app_specs - - $compiler diff --git a/share/spack/gitlab/cloud_pipelines/stacks/radiuss-aws-aarch64/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/radiuss-aws-aarch64/spack.yaml index c66bbf48d5a..4d18961d4b3 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/radiuss-aws-aarch64/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/radiuss-aws-aarch64/spack.yaml @@ -30,18 +30,12 @@ spack: - ascent - blt - caliper - - caliper +cuda cuda_arch=70 - camp - - camp +cuda - chai - - chai +cuda +raja - mfem - mfem +superlu-dist+petsc+sundials - - mfem +cuda cuda_arch=70 ^hypre+cuda - raja - - raja +cuda cuda_arch=70 - umpire - - umpire +cuda - compiler: - '%gcc@7.3.1' From 4bfa61c1490f95614b450fe217f2fe1dc2cce691 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Fri, 23 Sep 2022 12:09:44 +0200 Subject: [PATCH 189/241] py-attrs: add 22.1.0 (#32762) --- var/spack/repos/builtin/packages/py-attrs/package.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-attrs/package.py b/var/spack/repos/builtin/packages/py-attrs/package.py index 47a402ec730..7329d4479a1 100644 --- a/var/spack/repos/builtin/packages/py-attrs/package.py +++ b/var/spack/repos/builtin/packages/py-attrs/package.py @@ -11,7 +11,9 @@ class PyAttrs(PythonPackage): homepage = "https://attrs.org/" pypi = "attrs/attrs-20.3.0.tar.gz" + git = "https://github.com/python-attrs/attrs" + version("22.1.0", sha256="29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6") version("21.4.0", sha256="626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd") version("21.2.0", sha256="ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb") version("20.3.0", sha256="832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700") @@ -23,6 +25,7 @@ class PyAttrs(PythonPackage): version("18.1.0", sha256="e0d0eb91441a3b53dab4d9b743eafc1ac44476296a2053b6ca3af0b139faf87b") version("16.3.0", sha256="80203177723e36f3bbe15aa8553da6e80d47bfe53647220ccaa9ad7a5e473ccc") + depends_on("python@3.5:", when="@22.1.0:", type=("build", "run")) depends_on("python@2.7:2.8,3.5:", when="@21.2.0:", type=("build", "run")) depends_on("python@2.7:2.8,3.4:", type=("build", "run")) depends_on("py-setuptools@40.6.0:", when="@19.1.0:", type="build") From ca62819261ad527d46a26ad705ddf7c0cfbd961b Mon Sep 17 00:00:00 2001 From: "Daryl W. Grunau" Date: Fri, 23 Sep 2022 07:41:44 -0600 Subject: [PATCH 190/241] Packages/py scipy (#32767) --- .../repos/builtin/packages/py-scipy/package.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py index b8ca9e61c9f..f2ac3ae4b01 100644 --- a/var/spack/repos/builtin/packages/py-scipy/package.py +++ b/var/spack/repos/builtin/packages/py-scipy/package.py @@ -118,6 +118,15 @@ def set_fortran_compiler(self): with open("setup.cfg", "w") as f: f.write("[config_fc]\n") f.write("fcompiler = fujitsu\n") + elif self.spec.satisfies("%intel") or self.spec.satisfies("%oneapi"): + if self.spec.satisfies("target=x86:"): + with open("setup.cfg", "w") as f: + f.write("[config_fc]\n") + f.write("fcompiler = intel\n") + elif self.spec.satisfies("target=x86_64:"): + with open("setup.cfg", "w") as f: + f.write("[config_fc]\n") + f.write("fcompiler = intelem\n") def setup_build_environment(self, env): # https://github.com/scipy/scipy/issues/9080 @@ -129,6 +138,11 @@ def setup_build_environment(self, env): if self.spec.satisfies("^py-numpy@1.16:1.17"): env.set("NPY_DISTUTILS_APPEND_FLAGS", "1") + # https://github.com/scipy/scipy/issues/14935 + if self.spec.satisfies("%intel ^py-pythran") or self.spec.satisfies("%oneapi ^py-pythran"): + if self.spec["py-pythran"].version < Version("0.12"): + env.set("SCIPY_USE_PYTHRAN", "0") + # Pick up Blas/Lapack from numpy self.spec["py-numpy"].package.setup_build_environment(env) From 3f28ef89cc1c891d81deebee4747bcdb1e0ed326 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Fri, 23 Sep 2022 17:30:01 +0200 Subject: [PATCH 191/241] py-pytz: add 2022.2.1 (#32711) --- var/spack/repos/builtin/packages/py-pytz/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-pytz/package.py b/var/spack/repos/builtin/packages/py-pytz/package.py index 67b3b20d074..d87b5e6cab3 100644 --- a/var/spack/repos/builtin/packages/py-pytz/package.py +++ b/var/spack/repos/builtin/packages/py-pytz/package.py @@ -12,6 +12,7 @@ class PyPytz(PythonPackage): homepage = "https://pythonhosted.org/pytz" pypi = "pytz/pytz-2019.3.tar.gz" + version("2022.2.1", sha256="cea221417204f2d1a2aa03ddae3e867921971d0d76f14d87abb4414415bbdcf5") version("2021.3", sha256="acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326") version("2021.1", sha256="83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da") version("2020.1", sha256="c35965d010ce31b23eeb663ed3cc8c906275d6be1a34393a1d73a41febf4a048") From 4751881fd1cf212343c98ebc3e5ea72b1cb556c1 Mon Sep 17 00:00:00 2001 From: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Date: Fri, 23 Sep 2022 11:17:01 -0700 Subject: [PATCH 192/241] Fix two docstring typos (#32751) --- lib/spack/spack/version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/spack/spack/version.py b/lib/spack/spack/version.py index 624d9faeae3..f4f08d8c77d 100644 --- a/lib/spack/spack/version.py +++ b/lib/spack/spack/version.py @@ -504,7 +504,7 @@ class GitVersion(VersionBase): 1) GitVersions instantiated with an associated reference version (e.g. 'git.foo=1.2') 2) GitVersions requiring commit lookups - Git ref versions that are not paried with a known version + Git ref versions that are not paired with a known version are handled separately from all other version comparisons. When Spack identifies a git ref version, it associates a ``CommitLookup`` object with the version. This object @@ -600,7 +600,7 @@ def satisfies(self, other): a common prefix. e.g., we want gcc@4.7.3 to satisfy a request for gcc@4.7 so that when a user asks to build with gcc@4.7, we can find a suitable compiler. In the case of two GitVersions we require the ref_versions - to satisify one another and the versions to be an exact match. + to satisfy one another and the versions to be an exact match. """ self_cmp = self._cmp(other.ref_lookup) From 02e4d4e546c63f5a158fae68117f7fe1830b7e00 Mon Sep 17 00:00:00 2001 From: iarspider Date: Sat, 24 Sep 2022 22:27:19 +0200 Subject: [PATCH 193/241] Add checksum for py-google-auth 2.11.0, py-cachetools 5.2.0 (#32791) * Add checksum for py-google-auth 2.11.0 * Swap when and type * Update package.py --- .../builtin/packages/py-cachetools/package.py | 6 ++++-- .../builtin/packages/py-google-auth/package.py | 15 ++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-cachetools/package.py b/var/spack/repos/builtin/packages/py-cachetools/package.py index c7123409731..4e74d8e2ab4 100644 --- a/var/spack/repos/builtin/packages/py-cachetools/package.py +++ b/var/spack/repos/builtin/packages/py-cachetools/package.py @@ -14,10 +14,12 @@ class PyCachetools(PythonPackage): homepage = "https://github.com/tkem/cachetools" pypi = "cachetools/cachetools-3.1.1.tar.gz" + version("5.2.0", sha256="6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757") version("4.2.4", sha256="89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693") version("4.2.2", sha256="61b5ed1e22a0924aed1d23b478f37e8d52549ff8a961de2909c69bf950020cff") version("3.1.1", sha256="8ea2d3ce97850f31e4a08b0e2b5e6c34997d7216a9d2c98e0f3978630d4da69a") depends_on("py-setuptools", type="build") - depends_on("py-setuptools@46.4.0:", type="build", when="@4.2.2:") - depends_on("python@3.5:3", type=("build", "run"), when="@4.2.2:") + depends_on("py-setuptools@46.4.0:", when="@4.2.2:", type="build") + depends_on("python@3.5:3", when="@4.2.2", type=("build", "run")) + depends_on("python@3.7:3", when="@5.2.0", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-google-auth/package.py b/var/spack/repos/builtin/packages/py-google-auth/package.py index fba72419f26..b8a1eada8eb 100644 --- a/var/spack/repos/builtin/packages/py-google-auth/package.py +++ b/var/spack/repos/builtin/packages/py-google-auth/package.py @@ -13,19 +13,20 @@ class PyGoogleAuth(PythonPackage): homepage = "https://github.com/GoogleCloudPlatform/google-auth-library-python" pypi = "google-auth/google-auth-1.6.3.tar.gz" + version("2.11.0", sha256="ed65ecf9f681832298e29328e1ef0a3676e3732b2e56f41532d45f70a22de0fb") version("2.3.2", sha256="2dc5218ee1192f9d67147cece18f47a929a9ef746cb69c50ab5ff5cfc983647b") version("1.6.3", sha256="0f7c6a64927d34c1a474da92cfc59e552a5d3b940d3266606c6a28b72888b9e4") depends_on("python@2.7:2.8,3.4:", type=("build", "run")) - depends_on("python@3.6:", type=("build", "run"), when="@1.35:") - depends_on("python@2.7:2.8,3.6:", type=("build", "run"), when="@1.24:") + depends_on("python@2.7:2.8,3.6:", when="@1.24:", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-setuptools@40.3.0:", type="build", when="@2.3.2:") + depends_on("py-setuptools@40.3.0:", when="@2.3.2:", type="build") depends_on("py-pyasn1-modules@0.2.1:", type=("build", "run")) depends_on("py-rsa@3.1.4:", type=("build", "run")) - depends_on("py-rsa@3.1.4:4", type=("build", "run"), when="@2.3.2 ^python@3.6:") - depends_on("py-rsa@:4.5", type=("build", "run"), when="@2.3.2 ^python@:3.5") + depends_on("py-rsa@3.1.4:4", when="@2.3.2: ^python@3.6:", type=("build", "run")) + depends_on("py-rsa@:4.5", when="@2.3.2: ^python@:3.5", type=("build", "run")) depends_on("py-six@1.9.0:", type=("build", "run")) depends_on("py-cachetools@2.0.0:", type=("build", "run")) - depends_on("py-cachetools@2.0.0:4", type=("build", "run"), when="@2.3.2:") - depends_on("py-enum34@1.1.10:", type=("build", "run"), when="@2.3.2: ^python@:3.3") + depends_on("py-cachetools@2.0.0:4", when="@2.3.2:2.3", type=("build", "run")) + depends_on("py-cachetools@2.0.0:5", when="@2.11.0:", type=("build", "run")) + depends_on("py-enum34@1.1.10:", when="@2.3.2: ^python@:3.3", type=("build", "run")) From 6ee7b5ad914aac801486f811e6a527ebb113c0d7 Mon Sep 17 00:00:00 2001 From: iarspider Date: Sat, 24 Sep 2022 22:41:18 +0200 Subject: [PATCH 194/241] Add checksum for py-hist 2.6.1, py-boost-histogram 1.3.1 (#32787) * Add checksum for py-hist 2.6.1 * Swap when and type --- .../builtin/packages/py-boost-histogram/package.py | 5 +++-- .../repos/builtin/packages/py-hist/package.py | 14 ++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-boost-histogram/package.py b/var/spack/repos/builtin/packages/py-boost-histogram/package.py index 5b6b8ffb585..c767e3bbd45 100644 --- a/var/spack/repos/builtin/packages/py-boost-histogram/package.py +++ b/var/spack/repos/builtin/packages/py-boost-histogram/package.py @@ -12,11 +12,12 @@ class PyBoostHistogram(PythonPackage): homepage = "https://github.com/scikit-hep/boost-histogram" pypi = "boost_histogram/boost_histogram-1.2.1.tar.gz" + version("1.3.1", sha256="31cd396656f3a37834e07d304cdb84d9906bc2172626a3d92fe577d08bcf410f") version("1.2.1", sha256="a27842b2f1cfecc509382da2b25b03056354696482b38ec3c0220af0fc9b7579") depends_on("python@3.6:", type=("build", "run")) depends_on("py-setuptools@45:", type="build") depends_on("py-setuptools-scm@4.1.2:+toml", type="build") depends_on("py-numpy@1.13.3:", type=("build", "run")) - depends_on("py-dataclasses", type=("build", "run"), when="^python@:3.6") - depends_on("py-typing-extensions", type=("build", "run"), when="^python@:3.7") + depends_on("py-dataclasses", when="^python@:3.6", type=("build", "run")) + depends_on("py-typing-extensions", when="^python@:3.7", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-hist/package.py b/var/spack/repos/builtin/packages/py-hist/package.py index edf827b2da4..f7212073fae 100644 --- a/var/spack/repos/builtin/packages/py-hist/package.py +++ b/var/spack/repos/builtin/packages/py-hist/package.py @@ -12,6 +12,7 @@ class PyHist(PythonPackage): homepage = "https://github.com/scikit-hep/hist" pypi = "hist/hist-2.5.2.tar.gz" + version("2.6.1", sha256="ee9034795fd2feefed923461aaccaf76f87c1f8d5414b1e704faa293ceb4fc27") version("2.5.2", sha256="0bafb8b956cc041f1b26e8f5663fb8d3b8f7673f56336facb84d8cfdc30ae2cf") variant("plot", default="False", description="Add support for drawing histograms") @@ -19,12 +20,13 @@ class PyHist(PythonPackage): depends_on("python@3.7:", type=("build", "run")) depends_on("py-setuptools@45:", type="build") depends_on("py-setuptools-scm@3.4:+toml", type="build") - depends_on("py-boost-histogram@1.2.0:1.2", type=("build", "run")) + depends_on("py-boost-histogram@1.2.0:1.2", when="@2.5.2", type=("build", "run")) + depends_on("py-boost-histogram@1.3.1:1.3", when="@2.6.1", type=("build", "run")) depends_on("py-histoprint@2.2.0:", type=("build", "run")) depends_on("py-numpy@1.14.5:", type=("build", "run")) - depends_on("py-typing-extensions@3.7:", type=("build", "run"), when="^python@:3.7") + depends_on("py-typing-extensions@3.7:", when="^python@:3.7", type=("build", "run")) - depends_on("py-matplotlib@3.0:", type=("build", "run"), when="+plot") - depends_on("py-scipy@1.4:", type=("build", "run"), when="+plot") - depends_on("py-iminuit@2:", type=("build", "run"), when="+plot") - depends_on("py-mplhep@0.2.16:", type=("build", "run"), when="+plot") + depends_on("py-matplotlib@3.0:", when="+plot", type=("build", "run")) + depends_on("py-scipy@1.4:", when="+plot", type=("build", "run")) + depends_on("py-iminuit@2:", when="+plot", type=("build", "run")) + depends_on("py-mplhep@0.2.16:", when="+plot", type=("build", "run")) From c2aab98920fd121ab2e118a8bc7435a60f39a1d1 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Sat, 24 Sep 2022 22:42:47 +0200 Subject: [PATCH 195/241] py-beautifulsoup4: add 4.11.1 (#32779) --- var/spack/repos/builtin/packages/py-beautifulsoup4/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py b/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py index f9fcc3dd86d..3bf6c91515d 100644 --- a/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py +++ b/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py @@ -14,6 +14,7 @@ class PyBeautifulsoup4(PythonPackage): homepage = "https://www.crummy.com/software/BeautifulSoup" pypi = "beautifulsoup4/beautifulsoup4-4.8.0.tar.gz" + version("4.11.1", sha256="ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693") version("4.10.0", sha256="c23ad23c521d818955a4151a67d81580319d4bf548d3d49f4223ae041ff98891") version("4.9.3", sha256="84729e322ad1d5b4d25f805bfa05b902dd96450f43842c4e99067d5e1369eb25") version("4.8.0", sha256="25288c9e176f354bf277c0a10aa96c782a6a18a17122dba2e8cec4a97e03343b") @@ -24,7 +25,8 @@ class PyBeautifulsoup4(PythonPackage): variant("lxml", default=False, description="Enable lxml parser") variant("html5lib", default=False, description="Enable html5lib parser") - depends_on("python@3:", type=("build", "run"), when="@4.10.0:") + depends_on("python@3.6:", when="@4.11.0:", type=("build", "run")) + depends_on("python@3:", when="@4.10.0:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-soupsieve@1.3:", when="@4.9.0: ^python@3:", type=("build", "run")) depends_on("py-soupsieve@1.3:1", when="@4.9.0: ^python@:2.8", type=("build", "run")) From 184af723e44cdf09f8feb1c912ccb95d3cb16793 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Sat, 24 Sep 2022 22:46:32 +0200 Subject: [PATCH 196/241] py-certifi: add 2022.9.14 (#32781) --- var/spack/repos/builtin/packages/py-certifi/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-certifi/package.py b/var/spack/repos/builtin/packages/py-certifi/package.py index 09c230722e9..028cbe54242 100644 --- a/var/spack/repos/builtin/packages/py-certifi/package.py +++ b/var/spack/repos/builtin/packages/py-certifi/package.py @@ -14,6 +14,7 @@ class PyCertifi(PythonPackage): homepage = "https://github.com/certifi/python-certifi" pypi = "certifi/certifi-2020.6.20.tar.gz" + version("2022.9.14", sha256="36973885b9542e6bd01dea287b2b4b3b21236307c56324fcc3f1160f2d655ed5") version("2021.10.8", sha256="78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872") version("2020.6.20", sha256="5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3") version( @@ -25,4 +26,5 @@ class PyCertifi(PythonPackage): version("2017.4.17", sha256="f7527ebf7461582ce95f7a9e03dd141ce810d40590834f4ec20cddd54234c10a") version("2017.1.23", sha256="81877fb7ac126e9215dfb15bfef7115fdc30e798e0013065158eed0707fd99ce") + depends_on("python@3.6:", when="@2022.05.18.1:", type=("build", "run")) depends_on("py-setuptools", type="build") From cd58ae23bef260a8c81289f4c9330d93fb9d5e52 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Sat, 24 Sep 2022 22:47:37 +0200 Subject: [PATCH 197/241] py-chardet: add 3.0.2 (#32783) --- var/spack/repos/builtin/packages/py-chardet/package.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-chardet/package.py b/var/spack/repos/builtin/packages/py-chardet/package.py index 02fb19743e0..62d7b5b4ba9 100644 --- a/var/spack/repos/builtin/packages/py-chardet/package.py +++ b/var/spack/repos/builtin/packages/py-chardet/package.py @@ -12,11 +12,13 @@ class PyChardet(PythonPackage): homepage = "https://github.com/chardet/chardet" pypi = "chardet/chardet-3.0.4.tar.gz" + version("5.0.0", sha256="0368df2bfd78b5fc20572bb4e9bb7fb53e2c094f60ae9993339e8671d0afb8aa") version("4.0.0", sha256="0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa") version("3.0.4", sha256="84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae") version("3.0.2", sha256="4f7832e7c583348a9eddd927ee8514b3bf717c061f57b21dbe7697211454d9bb") version("2.3.0", sha256="e53e38b3a4afe6d1132de62b7400a4ac363452dc5dfcf8d88e8e0cce663c68aa") - depends_on("py-setuptools", type=("build", "run")) - depends_on("py-pytest-runner", type="build", when="@3.0.2") + depends_on("python@3.6:", when="@5:", type=("build", "run")) depends_on("python@2.7:2.8,3.5:", when="@4:", type=("build", "run")) + depends_on("py-setuptools", type=("build", "run")) + depends_on("py-pytest-runner", when="@3", type="build") From 3e4bf1e400455ab53b7701ac4d4215dbe7b2fc43 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Sat, 24 Sep 2022 22:48:30 +0200 Subject: [PATCH 198/241] py-cfgv: add 3.3.1 (#32782) --- var/spack/repos/builtin/packages/py-cfgv/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-cfgv/package.py b/var/spack/repos/builtin/packages/py-cfgv/package.py index 1603be7caa6..73037c8beff 100644 --- a/var/spack/repos/builtin/packages/py-cfgv/package.py +++ b/var/spack/repos/builtin/packages/py-cfgv/package.py @@ -12,8 +12,10 @@ class PyCfgv(PythonPackage): homepage = "https://github.com/asottile/cfgv/" pypi = "cfgv/cfgv-2.0.1.tar.gz" + version("3.3.1", sha256="f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736") version("2.0.1", sha256="edb387943b665bf9c434f717bf630fa78aecd53d5900d2e05da6ad6048553144") + depends_on("python@3.6.1:", when="@3.1:", type=("build", "run")) 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-six", when="@:2", type=("build", "run")) From 08371954bb71e3946b0588246b0fad5013847bea Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Sat, 24 Sep 2022 22:49:16 +0200 Subject: [PATCH 199/241] py-charset-normalizer: add 2.1.1 (#32784) --- .../repos/builtin/packages/py-charset-normalizer/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-charset-normalizer/package.py b/var/spack/repos/builtin/packages/py-charset-normalizer/package.py index a3ce0521c6a..56d6d407d6a 100644 --- a/var/spack/repos/builtin/packages/py-charset-normalizer/package.py +++ b/var/spack/repos/builtin/packages/py-charset-normalizer/package.py @@ -13,8 +13,10 @@ class PyCharsetNormalizer(PythonPackage): homepage = "https://github.com/ousret/charset_normalizer" pypi = "charset-normalizer/charset-normalizer-2.0.7.tar.gz" + version("2.1.1", sha256="5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845") version("2.0.12", sha256="2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597") version("2.0.7", sha256="e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0") + depends_on("python@3.6:", when="@2.1:", type=("build", "run")) depends_on("python@3.5:", type=("build", "run")) depends_on("py-setuptools", type="build") From b721f8038f9c715aafbc6d8a98eef98cf3d9fa2f Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Sat, 24 Sep 2022 22:49:58 +0200 Subject: [PATCH 200/241] py-ci-info: add 0.3.0 (#32785) --- var/spack/repos/builtin/packages/py-ci-info/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-ci-info/package.py b/var/spack/repos/builtin/packages/py-ci-info/package.py index 38eb54be7cc..6a31ed97331 100644 --- a/var/spack/repos/builtin/packages/py-ci-info/package.py +++ b/var/spack/repos/builtin/packages/py-ci-info/package.py @@ -16,7 +16,9 @@ class PyCiInfo(PythonPackage): homepage = "https://github.com/mgxd/ci-info" pypi = "ci-info/ci-info-0.2.0.tar.gz" + version("0.3.0", sha256="1fd50cbd401f29adffeeb18b0489e232d16ac1a7458ac6bc316deab6ae535fb0") version("0.2.0", sha256="dd70632c977feb8797b1e633507166b64ad5f57183cebb2b0ea56934abba4616") + depends_on("python@3.7:", when="@0.3:", type=("build", "run")) depends_on("python@3.5:", type=("build", "run")) depends_on("py-setuptools", type="build") From 5573ccee5377e08a2ea7fbc26ba594cb9d516b78 Mon Sep 17 00:00:00 2001 From: Valentin Volkl Date: Sat, 24 Sep 2022 22:52:14 +0200 Subject: [PATCH 201/241] py-colorcet: add new package (#31597) * py-colorcet: add new package * style * py-colorcet: depend on python 2.7: * address pr review comments * address pr review comments * style --- .../builtin/packages/py-colorcet/package.py | 24 +++++++++++++++++++ .../repos/builtin/packages/py-pyct/package.py | 21 ++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-colorcet/package.py create mode 100644 var/spack/repos/builtin/packages/py-pyct/package.py diff --git a/var/spack/repos/builtin/packages/py-colorcet/package.py b/var/spack/repos/builtin/packages/py-colorcet/package.py new file mode 100644 index 00000000000..fe200c7efb0 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-colorcet/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack.package import * + + +class PyColorcet(PythonPackage): + """A collection of perceptually acccurate 256-color colormaps for use with + Python plotting programs like Bokeh, Matplotlib, HoloViews, and Datashader.""" + + homepage = "https://colorcet.holoviz.org/index.html" + pypi = "colorcet/colorcet-3.0.0.tar.gz" + + maintainers = ["vvolkl"] + + version("3.0.0", sha256="21c522346a7aa81a603729f2996c22ac3f7822f4c8c303c59761e27d2dfcf3db") + + depends_on("python@2.7:", type=("build", "run")) + depends_on("py-setuptools@30.3.0:", type="build") + depends_on("py-param@1.7.0:", type=("build", "run")) + depends_on("py-pyct@0.4.4:", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-pyct/package.py b/var/spack/repos/builtin/packages/py-pyct/package.py new file mode 100644 index 00000000000..b448d11bdd0 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyct/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack.package import * + + +class PyPyct(PythonPackage): + """Python package common tasks for users (e.g. copy examples, fetch data, ...)""" + + pypi = "pyct/pyct-0.4.8.tar.gz" + + maintainers = ["vvolkl"] + + version("0.4.8", sha256="23d7525b5a1567535c093aea4b9c33809415aa5f018dd77f6eb738b1226df6f7") + + depends_on("python@2.7:", type=("build", "run")) + depends_on("py-setuptools@30.3.0:", type="build") + depends_on("py-param@1.7.0:", type=("build", "run")) From 00753d49daa8e735cbf45e75e31bcd637e41ac95 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Sat, 24 Sep 2022 22:53:42 +0200 Subject: [PATCH 202/241] py-click: add 8.1.3 (#32788) --- var/spack/repos/builtin/packages/py-click/package.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-click/package.py b/var/spack/repos/builtin/packages/py-click/package.py index 894584b5001..9462c23f165 100644 --- a/var/spack/repos/builtin/packages/py-click/package.py +++ b/var/spack/repos/builtin/packages/py-click/package.py @@ -11,7 +11,9 @@ class PyClick(PythonPackage): homepage = "https://click.palletsprojects.com" pypi = "click/click-7.1.2.tar.gz" + git = "https://github.com/pallets/click/" + version("8.1.3", sha256="7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e") version("8.0.3", sha256="410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b") version("8.0.1", sha256="8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a") version("7.1.2", sha256="d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a") @@ -22,9 +24,10 @@ class PyClick(PythonPackage): ) version("6.6", sha256="cc6a19da8ebff6e7074f731447ef7e112bd23adf3de5c597cf9989f2fd8defe9") - depends_on("python@3.6:", type=("build", "run"), when="@8.0.0:") + depends_on("python@3.7:", when="@8.1:", type=("build", "run")) + depends_on("python@3.6:", when="@8:", type=("build", "run")) depends_on("python@2.7:2.8,3.5:", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-importlib-metadata", type=("build", "run"), when="@8.0.0: ^python@:3.7") - # depends_on('py-colorama', type=('build', 'run'), when='platform=windows') + depends_on("py-importlib-metadata", when="@8: ^python@:3.7", type=("build", "run")) + depends_on("py-colorama", when="@8: platform=windows", type=("build", "run")) From d9b7bedaaa0757b62195e37af4142a7108d0c1df Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Sat, 24 Sep 2022 22:57:55 +0200 Subject: [PATCH 203/241] py-cppy: add 1.2.1 (#32790) * py-cppy: add 1.2.1 * Update var/spack/repos/builtin/packages/py-cppy/package.py Co-authored-by: iarspider Co-authored-by: iarspider --- var/spack/repos/builtin/packages/py-cppy/package.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-cppy/package.py b/var/spack/repos/builtin/packages/py-cppy/package.py index 8d12bfde805..37e22872c16 100644 --- a/var/spack/repos/builtin/packages/py-cppy/package.py +++ b/var/spack/repos/builtin/packages/py-cppy/package.py @@ -14,7 +14,11 @@ class PyCppy(PythonPackage): maintainers = ["iarspider"] + version("1.2.1", sha256="83b43bf17b1085ac15c5debdb42154f138b928234b21447358981f69d0d6fe1b") version("1.1.0", sha256="4eda6f1952054a270f32dc11df7c5e24b259a09fddf7bfaa5f33df9fb4a29642") + depends_on("python@3.7:", when="@1.2:", type=("build", "run")) depends_on("python@3:", type=("build", "run")) + depends_on("py-setuptools@61.2:", when="@1.2:", type="build") depends_on("py-setuptools", type="build") + depends_on("py-setuptools-scm+toml@3.4.3:", when="@1.2:", type="build") From 5dc440ea92dbc1763f76c19b350c17355f96c5dc Mon Sep 17 00:00:00 2001 From: Sergey Kosukhin Date: Sat, 24 Sep 2022 23:00:45 +0200 Subject: [PATCH 204/241] py-eccodes: add version 1.5.0 (#32792) * py-eccodes: ensure the minimal recommended shared version of libeccodes * py-eccodes: set less general environment variables to enable location of libeccodes * py-eccodes: add version 1.5.0 * py-eccodes: make flake8 happy --- .../repos/builtin/packages/py-eccodes/package.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-eccodes/package.py b/var/spack/repos/builtin/packages/py-eccodes/package.py index 29bd48f06d1..3f1d35a3ee6 100644 --- a/var/spack/repos/builtin/packages/py-eccodes/package.py +++ b/var/spack/repos/builtin/packages/py-eccodes/package.py @@ -3,8 +3,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import sys - from spack.package import * @@ -14,6 +12,7 @@ class PyEccodes(PythonPackage): homepage = "https://github.com/ecmwf/eccodes-python" pypi = "eccodes/eccodes-1.3.2.tar.gz" + version("1.5.0", sha256="e70c8f159140c343c215fd608ddf533be652ff05ad2ff17243c7b66cf92127fa") version("1.3.2", sha256="f282adfdc1bc658356163c9cef1857d4b2bae99399660d3d4fcb145a52d3b2a6") depends_on("py-setuptools", type="build") @@ -21,13 +20,14 @@ class PyEccodes(PythonPackage): depends_on("py-attrs", type=("build", "run")) depends_on("py-cffi", type=("build", "run")) depends_on("py-findlibs", type=("build", "run")) - depends_on("eccodes", type="run") + depends_on("eccodes@2.21.0:+shared", type="run") def setup_build_environment(self, env): - if sys.platform == "darwin": - env.prepend_path("DYLD_LIBRARY_PATH", self.spec["eccodes"].libs.directories[0]) - else: - env.prepend_path("LD_LIBRARY_PATH", self.spec["eccodes"].libs.directories[0]) + eccodes_libs = self.spec["eccodes:c,shared"].libs + # ECCODES_HOME has the highest precedence when searching for the library with py-findlibs: + env.set("ECCODES_HOME", eccodes_libs.directories[0]) + # but not if ecmwflibs (https://pypi.org/project/ecmwflibs/) is in the PYTHONPATH: + env.set("ECMWFLIBS_ECCODES", eccodes_libs.files[0]) def setup_run_environment(self, env): self.setup_build_environment(env) From a5ea566bdfe066f5f41e9e19c636d32f4ed41810 Mon Sep 17 00:00:00 2001 From: iarspider Date: Sun, 25 Sep 2022 19:36:42 +0200 Subject: [PATCH 205/241] Update py-poetry to 1.2.1 (including new packages) (#32776) * Update py-poetry to 1.2.1 * Update py-xattr * Apply style from review * Apply suggestions from code review (part 1) Co-authored-by: Adam J. Stewart * Changes from review - 2 * Fix typo * Fix style * Add missing py-dulwich version * Update var/spack/repos/builtin/packages/py-poetry-core/package.py Co-authored-by: Adam J. Stewart * Update var/spack/repos/builtin/packages/py-poetry/package.py Co-authored-by: Adam J. Stewart * Update var/spack/repos/builtin/packages/py-poetry/package.py Co-authored-by: Adam J. Stewart * Apply changes from review * Add py-backports-cached-property and fix style * Apply suggestions from code review Co-authored-by: Adam J. Stewart * Update package.py Co-authored-by: Adam J. Stewart --- .../py-backports-cached-property/package.py | 21 +++++++ .../repos/builtin/packages/py-cleo/package.py | 13 +++- .../builtin/packages/py-dulwich/package.py | 6 +- .../builtin/packages/py-hatch-vcs/package.py | 19 ++++++ .../builtin/packages/py-jsonschema/package.py | 8 ++- .../py-pkgutil-resolve-name/package.py | 19 ++++++ .../packages/py-platformdirs/package.py | 7 ++- .../packages/py-poetry-core/package.py | 8 ++- .../py-poetry-plugin-export/package.py | 19 ++++++ .../builtin/packages/py-poetry/package.py | 59 +++++++++++++------ .../packages/py-shellingham/package.py | 2 + .../builtin/packages/py-tomlkit/package.py | 3 +- .../builtin/packages/py-xattr/package.py | 8 ++- 13 files changed, 164 insertions(+), 28 deletions(-) create mode 100644 var/spack/repos/builtin/packages/py-backports-cached-property/package.py create mode 100644 var/spack/repos/builtin/packages/py-hatch-vcs/package.py create mode 100644 var/spack/repos/builtin/packages/py-pkgutil-resolve-name/package.py create mode 100644 var/spack/repos/builtin/packages/py-poetry-plugin-export/package.py diff --git a/var/spack/repos/builtin/packages/py-backports-cached-property/package.py b/var/spack/repos/builtin/packages/py-backports-cached-property/package.py new file mode 100644 index 00000000000..e716cd5a2e5 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-backports-cached-property/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyBackportsCachedProperty(PythonPackage): + """cached_property() - computed once per instance, cached as attribute""" + + homepage = "https://github.com/penguinolog/backports.cached_property" + pypi = "backports.cached-property/backports.cached-property-1.0.2.tar.gz" + + version("1.0.2", sha256="9306f9eed6ec55fd156ace6bc1094e2c86fae5fb2bf07b6a9c00745c656e75dd") + + depends_on("python@3.6:", type=("build", "run")) + + depends_on("py-setuptools@42:", type="build") + depends_on("py-setuptools-scm@3.4:+toml", type="build") + depends_on("py-typing@3.6:", when="^python@:3.6", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-cleo/package.py b/var/spack/repos/builtin/packages/py-cleo/package.py index 6ce9aaa2b08..e47647f856e 100644 --- a/var/spack/repos/builtin/packages/py-cleo/package.py +++ b/var/spack/repos/builtin/packages/py-cleo/package.py @@ -12,8 +12,17 @@ class PyCleo(PythonPackage): homepage = "https://github.com/sdispater/cleo" pypi = "cleo/cleo-0.8.1.tar.gz" - version("0.8.1", sha256="3d0e22d30117851b45970b6c14aca4ab0b18b1b53c8af57bed13208147e4069f") + version("1.0.0a5", sha256="097c9d0e0332fd53cc89fc11eb0a6ba0309e6a3933c08f7b38558555486925d3") + version( + "0.8.1", + sha256="3d0e22d30117851b45970b6c14aca4ab0b18b1b53c8af57bed13208147e4069f", + preferred=True, + ) depends_on("python@2.7,3.4:3", type=("build", "run")) + depends_on("python@3.7:3", when="@1:", type=("build", "run")) depends_on("py-poetry-core@1:", type="build") - depends_on("py-clikit@0.6.0:0.6", type=("build", "run")) + depends_on("py-poetry-core@1", when="@1:", type="build") + depends_on("py-clikit@0.6.0:0.6", when="@0.8.1", type=("build", "run")) + depends_on("py-pylev@1.3:1", when="@1:", type=("build", "run")) + depends_on("py-crashtest@0.3.1:0.3", when="@1:", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-dulwich/package.py b/var/spack/repos/builtin/packages/py-dulwich/package.py index d1af3b63e8a..9ac019c64c6 100644 --- a/var/spack/repos/builtin/packages/py-dulwich/package.py +++ b/var/spack/repos/builtin/packages/py-dulwich/package.py @@ -15,11 +15,15 @@ class PyDulwich(PythonPackage): homepage = "https://www.dulwich.io" pypi = "dulwich/dulwich-0.20.15.tar.gz" + version("0.20.46", sha256="4f0e88ffff5db1523d93d92f1525fe5fa161318ffbaad502c1b9b3be7a067172") + version("0.20.44", sha256="10e8d73763dd30c86a99a15ade8bfcf3ab8fe96532cdf497e8cb1d11832352b8") version("0.20.21", sha256="ac764c9a9b80fa61afe3404d5270c5060aa57f7f087b11a95395d3b76f3b71fd") version("0.20.15", sha256="fb1773373ec2af896031f8312af6962a1b8b0176a2de3fb3d84a84ec04498888") version("0.20.14", sha256="21d6ee82708f7c67ce3fdcaf1f1407e524f7f4f7411a410a972faa2176baec0d") depends_on("python@3.5.0:", type=("build", "run")) + depends_on("python@3.6.0:", when="@0.20.44:", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-certifi", type=("build", "run")) + depends_on("py-certifi", when="@:0.20.44", type=("build", "run")) depends_on("py-urllib3@1.24.1:", type=("build", "run")) + depends_on("py-urllib3@1.25:", when="@0.20.46:", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-hatch-vcs/package.py b/var/spack/repos/builtin/packages/py-hatch-vcs/package.py new file mode 100644 index 00000000000..2252c3d5d01 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-hatch-vcs/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyHatchVcs(PythonPackage): + """Hatch plugin for versioning with your preferred VCS""" + + homepage = "https://github.com/ofek/hatch-vcs" + pypi = "hatch_vcs/hatch_vcs-0.2.0.tar.gz" + + version("0.2.0", sha256="9913d733b34eec9bb0345d0626ca32165a4ad2de15d1ce643c36d09ca908abff") + + depends_on("py-hatchling@0.21.0:", type=("build", "run")) + depends_on("py-setuptools-scm@6.4.0:", when="^python@3:", type=("build", "run")) + depends_on("py-setuptools-scm@:5", when="^python@:2", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-jsonschema/package.py b/var/spack/repos/builtin/packages/py-jsonschema/package.py index 5bea410e6dd..26b887a2565 100644 --- a/var/spack/repos/builtin/packages/py-jsonschema/package.py +++ b/var/spack/repos/builtin/packages/py-jsonschema/package.py @@ -12,6 +12,7 @@ class PyJsonschema(PythonPackage): homepage = "https://github.com/Julian/jsonschema" pypi = "jsonschema/jsonschema-3.2.0.tar.gz" + version("4.10.0", sha256="8ff7b44c6a99c6bfd55ca9ac45261c649cefd40aaba1124c29aaef1bcb378d84") version("4.4.0", sha256="636694eb41b3535ed608fe04129f26542b59ed99808b4f688aa32dcf55317a83") version("3.2.0", sha256="c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a") version("3.1.1", sha256="2fa0684276b6333ff3c0b1b27081f4b2305f0a36cf702a23db50edb141893c3f") @@ -24,11 +25,13 @@ class PyJsonschema(PythonPackage): depends_on("python@2.7:2.8,3.5:", when="@3:", type=("build", "run")) depends_on("python@2.6:2.8,3.4:", type=("build", "run")) - depends_on("py-setuptools@40.6.0:", when="@4:", type="build") + depends_on("py-hatchling", when="@4.10:", type="build") + depends_on("py-hatch-vcs", when="@4.10:", type="build") + depends_on("py-setuptools@40.6.0:", when="@4:4.4", type="build") depends_on("py-setuptools", when="@3", type=("build", "run")) depends_on("py-setuptools", when="@:2", type="build") depends_on("py-vcversioner", when="@:2", type="build") - depends_on("py-setuptools-scm+toml@3.4:", when="@4:", type="build") + depends_on("py-setuptools-scm+toml@3.4:", when="@4.4.0", type="build") depends_on("py-setuptools-scm", when="@3", type="build") depends_on("py-attrs@17.4:", when="@3:", type=("build", "run")) @@ -38,6 +41,7 @@ class PyJsonschema(PythonPackage): depends_on("py-pyrsistent@0.14:0.16,0.17.3:", when="@4:", type=("build", "run")) depends_on("py-pyrsistent@0.14:", when="@3", type=("build", "run")) depends_on("py-typing-extensions", when="@4.3: ^python@:3.7", type=("build", "run")) + depends_on("py-pkgutil-resolve-name@1.3.10:", when="@4.10.0: ^python@:3.8") depends_on("py-six@1.11:", when="@3", type=("build", "run")) depends_on("py-functools32", when="^python@:2", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-pkgutil-resolve-name/package.py b/var/spack/repos/builtin/packages/py-pkgutil-resolve-name/package.py new file mode 100644 index 00000000000..274e98828c8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pkgutil-resolve-name/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyPkgutilResolveName(PythonPackage): + """Resolve a name to an object. A backport of Python 3.9’s `pkgutil.resolve_name`""" + + homepage = "https://github.com/graingert/pkgutil-resolve-name" + pypi = "pkgutil_resolve_name/pkgutil_resolve_name-1.3.10.tar.gz" + + version("1.3.10", sha256="357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174") + + depends_on("python@3.6:", type=("build", "run")) + + depends_on("py-flit-core@2", type="build") diff --git a/var/spack/repos/builtin/packages/py-platformdirs/package.py b/var/spack/repos/builtin/packages/py-platformdirs/package.py index 8531128ab7d..d962b22c7a0 100644 --- a/var/spack/repos/builtin/packages/py-platformdirs/package.py +++ b/var/spack/repos/builtin/packages/py-platformdirs/package.py @@ -13,14 +13,17 @@ class PyPlatformdirs(PythonPackage): homepage = "https://github.com/platformdirs/platformdirs" pypi = "platformdirs/platformdirs-2.4.0.tar.gz" + version("2.5.2", sha256="58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19") version("2.4.1", sha256="440633ddfebcc36264232365d7840a970e75e1018d15b4327d11f91909045fda") version("2.4.0", sha256="367a5e80b3d04d2428ffa76d33f124cf11e8fff2acdaa9b43d545f5c7d661ef2") version("2.3.0", sha256="15b056538719b1c94bdaccb29e5f81879c7f7f0f4a153f46086d155dffcd4f0f") depends_on("python@3.7:", when="@2.4.1:", type=("build", "run")) depends_on("python@3.6:", type=("build", "run")) - depends_on("py-setuptools@44:", type="build") - depends_on("py-setuptools-scm@5:+toml", type="build") + depends_on("py-setuptools@44:", when="@:2.5.1", type="build") + depends_on("py-setuptools-scm@5:+toml", when="@:2.5.1", type="build") + depends_on("py-hatchling@0.22.0:", when="@2.5.2:", type="build") + depends_on("py-hatch-vcs", when="@2.5.2:", type="build") @when("^python@:3.6") def setup_build_environment(self, env): diff --git a/var/spack/repos/builtin/packages/py-poetry-core/package.py b/var/spack/repos/builtin/packages/py-poetry-core/package.py index efffca087b2..864427a005c 100644 --- a/var/spack/repos/builtin/packages/py-poetry-core/package.py +++ b/var/spack/repos/builtin/packages/py-poetry-core/package.py @@ -12,11 +12,17 @@ class PyPoetryCore(PythonPackage): homepage = "https://github.com/python-poetry/poetry-core" pypi = "poetry-core/poetry-core-1.0.7.tar.gz" + version("1.2.0", sha256="ceccec95487e46c63a41761fbac5211b809bca22658e25a049f4c7da96269f71") + version("1.1.0", sha256="d145ae121cf79118a8901b60f2c951c4edcc16f55eb8aaefc156aa33aa921f07") version("1.0.8", sha256="951fc7c1f8d710a94cb49019ee3742125039fc659675912ea614ac2aa405b118") version("1.0.7", sha256="98c11c755a16ef6c5673c22ca94a3802a7df4746a0853a70b6fae8b9f5cac206") depends_on("python@2.7,3.5:3", type=("build", "run")) - depends_on("py-importlib-metadata@1.7:1", when="^python@2.7,3.5:3.7", type=("build", "run")) + depends_on("python@3.7:3", when="@1.1.0:", type=("build", "run")) + depends_on( + "py-importlib-metadata@1.7:1", when="@:1.0 ^python@2.7,3.5:3.7", type=("build", "run") + ) + depends_on("py-importlib-metadata@1.7:", when="@1.1: ^python@:3.7", type=("build", "run")) depends_on("py-pathlib2@2.3.5:2", when="^python@2.7", type=("build", "run")) depends_on("py-typing@3.7.4.1:3", when="^python@2.7", type=("build", "run")) depends_on("py-enum34@1.1.10:1", when="^python@2.7", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-poetry-plugin-export/package.py b/var/spack/repos/builtin/packages/py-poetry-plugin-export/package.py new file mode 100644 index 00000000000..ba202f5bda5 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-poetry-plugin-export/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyPoetryPluginExport(PythonPackage): + """Poetry plugin to export the dependencies to various formats""" + + homepage = "https://python-poetry.org/" + pypi = "poetry-plugin-export/poetry-plugin-export-1.0.7.tar.gz" + + version("1.0.7", sha256="f6ac707ae227b06b2481249ed2678ff6b810b3487cac0fbb66eb0dc2bfd6ecf1") + + depends_on("python@3.7:3", type=("build", "run")) + depends_on("py-poetry@1.2:1", type=("build", "run")) + depends_on("py-poetry-core@1.1:1", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-poetry/package.py b/var/spack/repos/builtin/packages/py-poetry/package.py index 3fd302db90e..30b74ffcc1e 100644 --- a/var/spack/repos/builtin/packages/py-poetry/package.py +++ b/var/spack/repos/builtin/packages/py-poetry/package.py @@ -12,36 +12,61 @@ class PyPoetry(PythonPackage): homepage = "https://python-poetry.org/" pypi = "poetry/poetry-1.1.12.tar.gz" + version("1.2.1", sha256="2750bb2b636ef435d8beac51dde0b13d06199017a1d9b96cba899863d1e81024") + version("1.2.0", sha256="17c527d5d5505a5a7c5c14348d87f077d643cf1f186321530cde68e530bba59f") version("1.1.13", sha256="b905ed610085f568aa61574e0e09260c02bff9eae12ff672af39e9f399357ac4") version("1.1.12", sha256="5c66e2357fe37b552462a88b7d31bfa2ed8e84172208becd666933c776252567") depends_on("python@2.7,3.5:3", type=("build", "run")) - depends_on("py-poetry-core@1.0.7:1.0", type=("build", "run")) - depends_on("py-cleo@0.8.1:0.8", type=("build", "run")) - depends_on("py-clikit@0.6.2:0.6", type=("build", "run")) - depends_on("py-crashtest@0.3.0:0.3", when="^python@3.6:3", type=("build", "run")) - depends_on("py-requests@2.18:2", type=("build", "run")) - depends_on("py-cachy@0.3.0:0.3", type=("build", "run")) - depends_on("py-requests-toolbelt@0.9.1:0.9", type=("build", "run")) + depends_on("python@3.7:3", when="@1.2.0:", type=("build", "run")) + depends_on("py-poetry-core@1.0.7:1.0", when="@:1.1", type=("build", "run")) + depends_on("py-poetry-core@1.1.0", when="@1.2.0", type=("build", "run")) + depends_on("py-poetry-core@1.2.0", when="@1.2.1:", type=("build", "run")) + depends_on("py-poetry-plugin-export@1.0.6:1", when="@1.2.0:", type=("build", "run")) + depends_on("py-poetry-plugin-export@1.0.7:1", when="@1.2.1:", type=("build", "run")) + depends_on( + "py-backports-cached-property@1.0.2:1", when="@1.2.1: ^python@:3.7", type=("build", "run") + ) depends_on("py-cachecontrol@0.12.4:0.12+filecache", when="^python@:3.5", type=("build", "run")) + depends_on("py-cachecontrol@0.12.9:0.12+filecache", when="@1.2.1:", type=("build", "run")) depends_on( "py-cachecontrol@0.12.9:0.12+filecache", when="^python@3.6:3", type=("build", "run") ) - depends_on("py-pkginfo@1.4:1", type=("build", "run")) + depends_on("py-cachy@0.3.0:0.3", type=("build", "run")) + depends_on("py-cleo@0.8.1:0.8", when="@:1.1", type=("build", "run")) + depends_on("py-cleo@1", type=("build", "run"), when="@1.2.0:") + depends_on("py-clikit@0.6.2:0.6", when="@:1.1", type=("build", "run")) + depends_on("py-crashtest@0.3.0:0.3", when="^python@3.6:3", type=("build", "run")) depends_on("py-html5lib@1.0:1", type=("build", "run")) - depends_on("py-shellingham@1.1:1", type=("build", "run")) - depends_on("py-tomlkit@0.7:0", type=("build", "run")) + depends_on("py-importlib-metadata@1.6:1", when="@:1.1 ^python@:3.7", type=("build", "run")) + depends_on("py-importlib-metadata@4.4:", when="@1.2.0 ^python@:3.9", type=("build", "run")) + depends_on("py-importlib-metadata@4.4:4", when="@1.2.1: ^python@:3.9", type=("build", "run")) + depends_on("py-jsonschema@4.10.0:4", when="@1.2:", type=("build", "run")) + depends_on("py-keyring@18.0.1:18", when="^python@2.7", type=("build", "run")) + depends_on("py-keyring@20.0.1:20", when="@:1.11.1 ^python@3.5", type=("build", "run")) + depends_on("py-keyring@21.2.0:21", when="@1.1.12 ^python@3.6:3", type=("build", "run")) + depends_on("py-keyring@21.2.0:", when="@1.1.13:", type=("build", "run")) + depends_on("py-packaging@20.4:20", when="@:1.1", type=("build", "run")) + depends_on("py-packaging@20.4:", when="@1.2:", type=("build", "run")) depends_on("py-pexpect@4.7:4", type=("build", "run")) - depends_on("py-packaging@20.4:20", type=("build", "run")) - depends_on("py-virtualenv@20.0.26:20", type=("build", "run")) + depends_on("py-pkginfo@1.4:1", when="@:1.1", type=("build", "run")) + depends_on("py-pkginfo@1.5:1", when="@1.2:", type=("build", "run")) + depends_on("py-platformdirs@2.5.2:2", when="@1.2:", type=("build", "run")) + depends_on("py-requests@2.18:2", type=("build", "run")) + depends_on("py-requests-toolbelt@0.9.1:0.9", type=("build", "run")) + depends_on("py-shellingham@1.1:1", when="@:1.1", type=("build", "run")) + depends_on("py-shellingham@1.5:1", when="@1.2:", type=("build", "run")) + depends_on("py-tomlkit@0.7:0", when="@:1.1", type=("build", "run")) + depends_on("py-tomlkit@0.11.1,0.11.4:0", when="@1.2:", type=("build", "run")) + depends_on("py-virtualenv@20.0.26:20", when="@:1.1", type=("build", "run")) + depends_on("py-virtualenv@20.4.3:20.4.4,20.4.7:", when="@1.2:", type=("build", "run")) + depends_on("py-xattr@0.9.7:0.9", when="platform=darwin @1.2:") + depends_on("py-urllib3@1.26.0:1", when="@1.2:") + depends_on("py-dulwich@0.20.44:0.20", when="@1.2.0") + depends_on("py-dulwich@0.20.46:0.20", when="@1.2.1:") depends_on("py-typing@3.6:3", when="^python@2.7", type=("build", "run")) depends_on("py-pathlib2@2.3:2", when="^python@2.7", type=("build", "run")) depends_on("py-futures@3.3:3", when="^python@2.7", type=("build", "run")) depends_on("py-glob2@0.6.0:0.6", when="^python@2.7", type=("build", "run")) depends_on("py-functools32@3.2.3:3", when="^python@2.7", type=("build", "run")) - depends_on("py-keyring@18.0.1:18", when="^python@2.7", type=("build", "run")) - depends_on("py-keyring@20.0.1:20", when="^python@3.5", type=("build", "run")) - depends_on("py-keyring@21.2.0:21", when="@1.1.12 ^python@3.6:3", type=("build", "run")) - depends_on("py-keyring@21.2.0:", when="@1.1.13 ^python@3.6:3", type=("build", "run")) depends_on("py-subprocess32@3.5:3", when="^python@2.7", type=("build", "run")) - depends_on("py-importlib-metadata@1.6:1", when="^python@:3.7", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-shellingham/package.py b/var/spack/repos/builtin/packages/py-shellingham/package.py index cf525aa89ef..2fa8cc27846 100644 --- a/var/spack/repos/builtin/packages/py-shellingham/package.py +++ b/var/spack/repos/builtin/packages/py-shellingham/package.py @@ -12,7 +12,9 @@ class PyShellingham(PythonPackage): homepage = "https://github.com/sarugaku/shellingham" pypi = "shellingham/shellingham-1.4.0.tar.gz" + version("1.5.0", sha256="72fb7f5c63103ca2cb91b23dee0c71fe8ad6fbfd46418ef17dbe40db51592dad") version("1.4.0", sha256="4855c2458d6904829bd34c299f11fdeed7cfefbf8a2c522e4caea6cd76b3171e") depends_on("python@2.6:2.7,3.4:", type=("build", "run")) + depends_on("python@3.4:", when="@1.5.0:", type=("build", "run")) depends_on("py-setuptools", type="build") diff --git a/var/spack/repos/builtin/packages/py-tomlkit/package.py b/var/spack/repos/builtin/packages/py-tomlkit/package.py index ef8d3c2e902..d07fd913392 100644 --- a/var/spack/repos/builtin/packages/py-tomlkit/package.py +++ b/var/spack/repos/builtin/packages/py-tomlkit/package.py @@ -12,12 +12,13 @@ class PyTomlkit(PythonPackage): homepage = "https://github.com/sdispater/tomlkit" pypi = "tomlkit/tomlkit-0.7.0.tar.gz" + version("0.11.4", sha256="3235a9010fae54323e727c3ac06fb720752fe6635b3426e379daec60fbd44a83") version("0.11.0", sha256="71ceb10c0eefd8b8f11fe34e8a51ad07812cb1dc3de23247425fbc9ddc47b9dd") version("0.7.2", sha256="d7a454f319a7e9bd2e249f239168729327e4dd2d27b17dc68be264ad1ce36754") version("0.7.0", sha256="ac57f29693fab3e309ea789252fcce3061e19110085aa31af5446ca749325618") depends_on("python@2.7,3.5:", type=("build", "run")) - depends_on("python@3.6:", type=("build", "run"), when="@0.11.0:") + depends_on("python@3.6:3", when="@0.11.0:", type=("build", "run")) depends_on("py-poetry-core@1:", type="build") depends_on("py-enum34@1.1:1", when="^python@2.7", type=("build", "run")) depends_on("py-functools32@3.2.3:3", when="^python@2.7", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-xattr/package.py b/var/spack/repos/builtin/packages/py-xattr/package.py index e7d9658ceb2..dae761f778f 100644 --- a/var/spack/repos/builtin/packages/py-xattr/package.py +++ b/var/spack/repos/builtin/packages/py-xattr/package.py @@ -14,10 +14,14 @@ class PyXattr(PythonPackage): homepage = "https://pyxattr.k1024.org/" pypi = "xattr/xattr-0.9.6.tar.gz" - git = "https://github.com/iustin/pyxattr.git" + git = "https://github.com/xattr/xattr" version("master", branch="master") + version("0.9.9", sha256="09cb7e1efb3aa1b4991d6be4eb25b73dc518b4fe894f0915f5b0dcede972f346") + version("0.9.8", sha256="bf11c8c857215e3ef60b031e7807264f30af4348d7565a7e9b8dca70593753c7") + version("0.9.7", sha256="b0bbca828e04ef2d484a6522ae7b3a7ccad5e43fa1c6f54d78e24bb870f49d44") version("0.9.6", sha256="7cb1b28eeab4fe99cc4350e831434142fce658f7d03f173ff7722144e6a47458") - depends_on("python@2.7:") + depends_on("python@2.7:", type=("build", "run")) depends_on("py-setuptools", type="build") + depends_on("py-cffi@1.0.0:", type=("build", "run")) From 30f6fd8dc060a9b120e5c4ce94f80a60e7bf7e51 Mon Sep 17 00:00:00 2001 From: "John W. Parent" <45471568+johnwparent@users.noreply.github.com> Date: Mon, 26 Sep 2022 03:01:42 -0400 Subject: [PATCH 206/241] Fetching/decompressing: use magic numbers (#31589) Spack currently depends on parsing filenames of downloaded files to determine what type of archive they are and how to decompress them. This commit adds a preliminary check based on magic numbers to determine archive type (but falls back on name parsing if the extension type cannot be determined). As part of this work, this commit also enables decompression of .tar.xz-compressed archives on Windows. --- lib/spack/llnl/util/filesystem.py | 65 ++- lib/spack/spack/binary_distribution.py | 3 +- lib/spack/spack/fetch_strategy.py | 4 +- lib/spack/spack/relocate.py | 31 +- lib/spack/spack/test/data/compression/Foo.cxx | 0 lib/spack/spack/test/util/compression.py | 32 +- lib/spack/spack/url.py | 9 +- lib/spack/spack/util/compression.py | 510 +++++++++++++++--- lib/spack/spack/util/path.py | 9 + 9 files changed, 525 insertions(+), 138 deletions(-) create mode 100644 lib/spack/spack/test/data/compression/Foo.cxx diff --git a/lib/spack/llnl/util/filesystem.py b/lib/spack/llnl/util/filesystem.py index a5da826217e..ad91e7c8763 100644 --- a/lib/spack/llnl/util/filesystem.py +++ b/lib/spack/llnl/util/filesystem.py @@ -24,7 +24,7 @@ from llnl.util.lang import dedupe, memoized from llnl.util.symlink import islink, symlink -from spack.util.executable import Executable +from spack.util.executable import CommandNotFoundError, Executable, which from spack.util.path import path_to_os_path, system_path_filter is_windows = _platform == "win32" @@ -113,6 +113,69 @@ def path_contains_subdirectory(path, root): return norm_path.startswith(norm_root) +@memoized +def file_command(*args): + """Creates entry point to `file` system command with provided arguments""" + try: + file_cmd = which("file", required=True) + except CommandNotFoundError as e: + if is_windows: + raise CommandNotFoundError("`file` utility is not available on Windows") + else: + raise e + for arg in args: + file_cmd.add_default_arg(arg) + return file_cmd + + +@memoized +def _get_mime_type(): + """Generate method to call `file` system command to aquire mime type + for a specified path + """ + return file_command("-b", "-h", "--mime-type") + + +@memoized +def _get_mime_type_compressed(): + """Same as _get_mime_type but attempts to check for + compression first + """ + mime_uncompressed = _get_mime_type() + mime_uncompressed.add_default_arg("-Z") + return mime_uncompressed + + +def mime_type(filename): + """Returns the mime type and subtype of a file. + + Args: + filename: file to be analyzed + + Returns: + Tuple containing the MIME type and subtype + """ + output = _get_mime_type()(filename, output=str, error=str).strip() + tty.debug("==> " + output) + type, _, subtype = output.partition("/") + return type, subtype + + +def compressed_mime_type(filename): + """Same as mime_type but checks for type that has been compressed + + Args: + filename (str): file to be analyzed + + Returns: + Tuple containing the MIME type and subtype + """ + output = _get_mime_type_compressed()(filename, output=str, error=str).strip() + tty.debug("==> " + output) + type, _, subtype = output.partition("/") + return type, subtype + + #: This generates the library filenames that may appear on any OS. library_extensions = ["a", "la", "so", "tbd", "dylib"] diff --git a/lib/spack/spack/binary_distribution.py b/lib/spack/spack/binary_distribution.py index e51d7d4842b..c329287de8f 100644 --- a/lib/spack/spack/binary_distribution.py +++ b/lib/spack/spack/binary_distribution.py @@ -19,6 +19,7 @@ import ruamel.yaml as yaml from six.moves.urllib.error import HTTPError, URLError +import llnl.util.filesystem as fsys import llnl.util.lang import llnl.util.tty as tty from llnl.util.filesystem import mkdirp @@ -653,7 +654,7 @@ def get_buildfile_manifest(spec): for filename in files: path_name = os.path.join(root, filename) - m_type, m_subtype = relocate.mime_type(path_name) + m_type, m_subtype = fsys.mime_type(path_name) rel_path_name = os.path.relpath(path_name, spec.prefix) added = False diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py index 5ed46c3278d..ea85c6a6824 100644 --- a/lib/spack/spack/fetch_strategy.py +++ b/lib/spack/spack/fetch_strategy.py @@ -54,7 +54,7 @@ import spack.util.url as url_util import spack.util.web as web_util import spack.version -from spack.util.compression import decompressor_for, extension +from spack.util.compression import decompressor_for, extension_from_path from spack.util.executable import CommandNotFoundError, which from spack.util.string import comma_and, quote @@ -613,7 +613,7 @@ def expand(self): @_needs_stage def archive(self, destination, **kwargs): - assert extension(destination) == "tar.gz" + assert extension_from_path(destination) == "tar.gz" assert self.stage.source_path.startswith(self.stage.path) tar = which("tar", required=True) diff --git a/lib/spack/spack/relocate.py b/lib/spack/spack/relocate.py index 8212093a12d..3ef332c2049 100644 --- a/lib/spack/spack/relocate.py +++ b/lib/spack/spack/relocate.py @@ -11,6 +11,7 @@ import macholib.mach_o import macholib.MachO +import llnl.util.filesystem as fs import llnl.util.lang import llnl.util.tty as tty from llnl.util.lang import memoized @@ -887,7 +888,7 @@ def file_is_relocatable(filename, paths_to_relocate=None): # Remove the RPATHS from the strings in the executable set_of_strings = set(strings(filename, output=str).split()) - m_type, m_subtype = mime_type(filename) + m_type, m_subtype = fs.mime_type(filename) if m_type == "application": tty.debug("{0},{1}".format(m_type, m_subtype), level=2) @@ -923,7 +924,7 @@ def is_binary(filename): Returns: True or False """ - m_type, _ = mime_type(filename) + m_type, _ = fs.mime_type(filename) msg = "[{0}] -> ".format(filename) if m_type == "application": @@ -934,30 +935,6 @@ def is_binary(filename): return False -@llnl.util.lang.memoized -def _get_mime_type(): - file_cmd = executable.which("file") - for arg in ["-b", "-h", "--mime-type"]: - file_cmd.add_default_arg(arg) - return file_cmd - - -@llnl.util.lang.memoized -def mime_type(filename): - """Returns the mime type and subtype of a file. - - Args: - filename: file to be analyzed - - Returns: - Tuple containing the MIME type and subtype - """ - output = _get_mime_type()(filename, output=str, error=str).strip() - tty.debug("==> " + output, level=2) - type, _, subtype = output.partition("/") - return type, subtype - - # Memoize this due to repeated calls to libraries in the same directory. @llnl.util.lang.memoized def _exists_dir(dirname): @@ -975,7 +952,7 @@ def fixup_macos_rpath(root, filename): True if fixups were applied, else False """ abspath = os.path.join(root, filename) - if mime_type(abspath) != ("application", "x-mach-binary"): + if fs.mime_type(abspath) != ("application", "x-mach-binary"): return False # Get Mach-O header commands diff --git a/lib/spack/spack/test/data/compression/Foo.cxx b/lib/spack/spack/test/data/compression/Foo.cxx new file mode 100644 index 00000000000..e69de29bb2d diff --git a/lib/spack/spack/test/util/compression.py b/lib/spack/spack/test/util/compression.py index 13d1a44a73d..907b1946b82 100644 --- a/lib/spack/spack/test/util/compression.py +++ b/lib/spack/spack/test/util/compression.py @@ -22,6 +22,9 @@ for ext in scomp.ALLOWED_ARCHIVE_TYPES if "TAR" not in ext ] +# Spack does not use Python native handling for tarballs or zip +# Don't test tarballs or zip in native test +native_archive_list = [key for key in ext_archive.keys() if "tar" not in key and "zip" not in key] def support_stub(): @@ -30,10 +33,9 @@ def support_stub(): @pytest.fixture def compr_support_check(monkeypatch): - monkeypatch.setattr(scomp, "lzma_support", support_stub) - monkeypatch.setattr(scomp, "tar_support", support_stub) - monkeypatch.setattr(scomp, "gzip_support", support_stub) - monkeypatch.setattr(scomp, "bz2_support", support_stub) + monkeypatch.setattr(scomp, "is_lzma_supported", support_stub) + monkeypatch.setattr(scomp, "is_gzip_supported", support_stub) + monkeypatch.setattr(scomp, "is_bz2_supported", support_stub) @pytest.fixture @@ -46,10 +48,9 @@ def archive_file(tmpdir_factory, request): return os.path.join(str(tmpdir), "Foo.%s" % extension) -@pytest.mark.parametrize("archive_file", ext_archive.keys(), indirect=True) +@pytest.mark.parametrize("archive_file", native_archive_list, indirect=True) def test_native_unpacking(tmpdir_factory, archive_file): - extension = scomp.extension(archive_file) - util = scomp.decompressor_for(archive_file, extension) + util = scomp.decompressor_for(archive_file) tmpdir = tmpdir_factory.mktemp("comp_test") with working_dir(str(tmpdir)): assert not os.listdir(os.getcwd()) @@ -63,9 +64,8 @@ def test_native_unpacking(tmpdir_factory, archive_file): @pytest.mark.parametrize("archive_file", ext_archive.keys(), indirect=True) def test_system_unpacking(tmpdir_factory, archive_file, compr_support_check): - extension = scomp.extension(archive_file) # actually run test - util = scomp.decompressor_for(archive_file, extension) + util = scomp.decompressor_for(archive_file) tmpdir = tmpdir_factory.mktemp("system_comp_test") with working_dir(str(tmpdir)): assert not os.listdir(os.getcwd()) @@ -78,23 +78,25 @@ def test_system_unpacking(tmpdir_factory, archive_file, compr_support_check): def test_unallowed_extension(): - bad_ext_archive = "Foo.py" + # use a cxx file as python files included for the test + # are picked up by the linter and break style checks + bad_ext_archive = "Foo.cxx" with pytest.raises(CommandNotFoundError): - scomp.decompressor_for(bad_ext_archive, "py") + scomp.decompressor_for(bad_ext_archive) @pytest.mark.parametrize("archive", ext_archive.values()) def test_get_extension(archive): - ext = scomp.extension(archive) + ext = scomp.extension_from_path(archive) assert ext_archive[ext] == archive def test_get_bad_extension(): - archive = "Foo.py" - ext = scomp.extension(archive) + archive = "Foo.cxx" + ext = scomp.extension_from_path(archive) assert ext is None @pytest.mark.parametrize("path", ext_archive.values()) -def test_allowed_archvie(path): +def test_allowed_archive(path): assert scomp.allowed_archive(path) diff --git a/lib/spack/spack/url.py b/lib/spack/spack/url.py index 00c7d680632..08eef72e931 100644 --- a/lib/spack/spack/url.py +++ b/lib/spack/spack/url.py @@ -36,6 +36,7 @@ import spack.error import spack.util.compression as comp +import spack.util.path as spath import spack.version @@ -366,17 +367,15 @@ def split_url_extension(path): # Strip off sourceforge download suffix. # e.g. https://sourceforge.net/projects/glew/files/glew/2.0.0/glew-2.0.0.tgz/download - match = re.search(r"(.*(?:sourceforge\.net|sf\.net)/.*)(/download)$", path) - if match: - prefix, suffix = match.groups() + prefix, suffix = spath.find_sourceforge_suffix(path) - ext = comp.extension(prefix) + ext = comp.extension_from_path(prefix) if ext is not None: prefix = comp.strip_extension(prefix) else: prefix, suf = strip_query_and_fragment(prefix) - ext = comp.extension(prefix) + ext = comp.extension_from_path(prefix) prefix = comp.strip_extension(prefix) suffix = suf + suffix if ext is None: diff --git a/lib/spack/spack/util/compression.py b/lib/spack/spack/util/compression.py index d9c1f5bd18b..2411daa6adf 100644 --- a/lib/spack/spack/util/compression.py +++ b/lib/spack/spack/util/compression.py @@ -3,61 +3,67 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import inspect +import io import os import re import shutil import sys from itertools import product +from llnl.util import tty + +import spack.util.path as spath from spack.util.executable import CommandNotFoundError, which # Supported archive extensions. PRE_EXTS = ["tar", "TAR"] EXTS = ["gz", "bz2", "xz", "Z"] -NOTAR_EXTS = ["zip", "tgz", "tbz", "tbz2", "txz"] +NOTAR_EXTS = ["zip", "tgz", "tbz2", "tbz", "txz"] # Add PRE_EXTS and EXTS last so that .tar.gz is matched *before* .tar or .gz ALLOWED_ARCHIVE_TYPES = ( [".".join(ext) for ext in product(PRE_EXTS, EXTS)] + PRE_EXTS + EXTS + NOTAR_EXTS ) +ALLOWED_SINGLE_EXT_ARCHIVE_TYPES = PRE_EXTS + EXTS + NOTAR_EXTS + is_windows = sys.platform == "win32" +try: + import bz2 # noqa -def bz2_support(): - try: - import bz2 # noqa: F401 - - return True - except ImportError: - return False + _bz2_support = True +except ImportError: + _bz2_support = False -def gzip_support(): - try: - import gzip # noqa: F401 +try: + import gzip # noqa - return True - except ImportError: - return False + _gzip_support = True +except ImportError: + _gzip_support = False -def lzma_support(): - try: - import lzma # noqa: F401 # novm +try: + import lzma # noqa # novermin - return True - except ImportError: - return False + _lzma_support = True +except ImportError: + _lzma_support = False -def tar_support(): - try: - import tarfile # noqa: F401 +def is_lzma_supported(): + return _lzma_support - return True - except ImportError: - return False + +def is_gzip_supported(): + return _gzip_support + + +def is_bz2_supported(): + return _bz2_support def allowed_archive(path): @@ -75,8 +81,7 @@ def _untar(archive_file): archive_file (str): absolute path to the archive to be extracted. Can be one of .tar(.[gz|bz2|xz|Z]) or .(tgz|tbz|tbz2|txz). """ - _, ext = os.path.splitext(archive_file) - outfile = os.path.basename(archive_file.strip(ext)) + outfile = os.path.basename(strip_extension(archive_file, "tar")) tar = which("tar", required=True) tar.add_default_arg("-oxf") @@ -91,15 +96,12 @@ def _bunzip2(archive_file): Args: archive_file (str): absolute path to the bz2 archive to be decompressed """ - _, ext = os.path.splitext(archive_file) compressed_file_name = os.path.basename(archive_file) - decompressed_file = os.path.basename(archive_file.strip(ext)) + decompressed_file = os.path.basename(strip_extension(archive_file, "bz2")) working_dir = os.getcwd() archive_out = os.path.join(working_dir, decompressed_file) copy_path = os.path.join(working_dir, compressed_file_name) - if bz2_support(): - import bz2 - + if is_bz2_supported(): f_bz = bz2.BZ2File(archive_file, mode="rb") with open(archive_out, "wb") as ar: shutil.copyfileobj(f_bz, ar) @@ -121,13 +123,10 @@ def _gunzip(archive_file): Args: archive_file (str): absolute path of the file to be decompressed """ - _, ext = os.path.splitext(archive_file) - decompressed_file = os.path.basename(archive_file.strip(ext)) + decompressed_file = os.path.basename(strip_extension(archive_file, "gz")) working_dir = os.getcwd() destination_abspath = os.path.join(working_dir, decompressed_file) - if gzip_support(): - import gzip - + if is_gzip_supported(): f_in = gzip.open(archive_file, "rb") with open(destination_abspath, "wb") as f_out: shutil.copyfileobj(f_in, f_out) @@ -138,8 +137,7 @@ def _gunzip(archive_file): def _system_gunzip(archive_file): - _, ext = os.path.splitext(archive_file) - decompressed_file = os.path.basename(archive_file.strip(ext)) + decompressed_file = os.path.basename(strip_extension(archive_file, "gz")) working_dir = os.getcwd() destination_abspath = os.path.join(working_dir, decompressed_file) compressed_file = os.path.basename(archive_file) @@ -159,17 +157,16 @@ def _unzip(archive_file): Args: archive_file (str): absolute path of the file to be decompressed """ - - destination_abspath = os.getcwd() - exe = "unzip" - arg = "-q" + extracted_file = os.path.basename(strip_extension(archive_file, "zip")) if is_windows: - exe = "tar" - arg = "-xf" - unzip = which(exe, required=True) - unzip.add_default_arg(arg) - unzip(archive_file) - return destination_abspath + return _untar(archive_file) + else: + exe = "unzip" + arg = "-q" + unzip = which(exe, required=True) + unzip.add_default_arg(arg) + unzip(archive_file) + return extracted_file def _unZ(archive_file): @@ -185,11 +182,8 @@ def _lzma_decomp(archive_file): lzma module, but fall back on command line xz tooling to find available Python support. This is the xz command on Unix and 7z on Windows""" - if lzma_support(): - import lzma # novermin - - _, ext = os.path.splitext(archive_file) - decompressed_file = os.path.basename(archive_file.strip(ext)) + if is_lzma_supported(): + decompressed_file = os.path.basename(strip_extension(archive_file, "xz")) archive_out = os.path.join(os.getcwd(), decompressed_file) with open(archive_out, "wb") as ar: with lzma.open(archive_file) as lar: @@ -201,14 +195,41 @@ def _lzma_decomp(archive_file): return _xz(archive_file) +def _win_compressed_tarball_handler(archive_file): + """Decompress and extract compressed tarballs on Windows. + This method uses 7zip in conjunction with the tar utility + to perform decompression and extraction in a two step process + first using 7zip to decompress, and tar to extract. + + The motivation for this method is the inability of 7zip + to directly decompress and extract compressed archives + in a single shot without undocumented workarounds, and + the Windows tar utility's lack of access to the xz tool (unsupported on Windows) + """ + # perform intermediate extraction step + # record name of new archive so we can extract + # and later clean up + decomped_tarball = _7zip(archive_file) + # 7zip is able to one shot extract compressed archives + # that have been named .txz. If that is the case, there will + # be no intermediate archvie to extract. + if check_extension(decomped_tarball, "tar"): + # run tar on newly decomped archive + outfile = _untar(decomped_tarball) + # clean intermediate archive to mimic end result + # produced by one shot decomp/extraction + os.remove(decomped_tarball) + return outfile + return decomped_tarball + + def _xz(archive_file): """Decompress lzma compressed .xz files via xz command line tool. Available only on Unix """ if is_windows: raise RuntimeError("XZ tool unavailable on Windows") - _, ext = os.path.splitext(archive_file) - decompressed_file = os.path.basename(archive_file.strip(ext)) + decompressed_file = os.path.basename(strip_extension(archive_file, "xz")) working_dir = os.getcwd() destination_abspath = os.path.join(working_dir, decompressed_file) compressed_file = os.path.basename(archive_file) @@ -234,84 +255,399 @@ def _7zip(archive_file): Args: archive_file (str): absolute path of file to be unarchived """ - _, ext = os.path.splitext(archive_file) - outfile = os.path.basename(archive_file.strip(ext)) + outfile = os.path.basename(strip_last_extension(archive_file)) _7z = which("7z") if not _7z: raise CommandNotFoundError( "7z unavailable,\ unable to extract %s files. 7z can be installed via Spack" - % ext + % extension_from_path(archive_file) ) _7z.add_default_arg("e") _7z(archive_file) return outfile -def decompressor_for(path, ext): +def decompressor_for(path, extension=None): """Returns a function pointer to appropriate decompression algorithm based on extension type. Args: path (str): path of the archive file requiring decompression - ext (str): Extension of archive file """ - if not allowed_archive(ext): + if not extension: + extension = extension_from_file(path, decompress=True) + + if not allowed_archive(extension): raise CommandNotFoundError( "Cannot extract archive, \ unrecognized file extension: '%s'" - % ext + % extension ) - if re.match(r"\.?zip$", ext) or path.endswith(".zip"): + if re.match(r"\.?zip$", extension) or path.endswith(".zip"): return _unzip - if re.match(r"gz", ext): + if re.match(r"gz", extension): return _gunzip - if re.match(r"bz2", ext): + if re.match(r"bz2", extension): return _bunzip2 # Python does not have native support # of any kind for .Z files. In these cases, # we rely on external tools such as tar, # 7z, or uncompressZ - if re.match(r"Z$", ext): + if re.match(r"Z$", extension): return _unZ # Python and platform may not have support for lzma # compression. If no lzma support, use tools available on systems # 7zip on Windows and the xz tool on Unix systems. - if re.match(r"xz", ext): + if re.match(r"xz", extension): return _lzma_decomp - if ("xz" in ext or "Z" in ext) and is_windows: - return _7zip + # Catch tar.xz/tar.Z files here for Windows + # as the tar utility on Windows cannot handle such + # compression types directly + if ("xz" in extension or "Z" in extension) and is_windows: + return _win_compressed_tarball_handler return _untar -def strip_extension(path): - """Get the part of a path that does not include its compressed - type extension.""" - for type in ALLOWED_ARCHIVE_TYPES: - suffix = r"\.%s$" % type - if re.search(suffix, path): - return re.sub(suffix, "", path) - return path +class FileTypeInterface: + """ + Base interface class for describing and querying file type information. + FileType describes information about a single file type + such as extension, and byte header properties, and provides an interface + to check a given file against said type based on magic number. + + This class should be subclassed each time a new type is to be + described. + + Note: This class should not be used directly as it does not define any specific + file. Attempts to directly use this class will fail, as it does not define + a magic number or extension string. + + Subclasses should each describe a different + type of file. In order to do so, they must define + the extension string, magic number, and header offset (if non zero). + If a class has multiple magic numbers, it will need to + override the method describin that file types magic numbers and + the method that checks a types magic numbers against a given file's. + """ + + OFFSET = 0 + compressed = False + + @staticmethod + def name(): + raise NotImplementedError + + @classmethod + def magic_number(cls): + """Return a list of all potential magic numbers for a filetype""" + return [x[1] for x in inspect.getmembers(cls) if x[0].startswith("_MAGIC_NUMBER")] + + @classmethod + def header_size(cls): + """Return size of largest magic number associated with file type""" + return max([len(x) for x in cls.magic_number()]) + + @classmethod + def _bytes_check(cls, magic_bytes): + for magic in cls.magic_number(): + if magic_bytes.startswith(magic): + return True + return False + + @classmethod + def is_file_of_type(cls, iostream): + """Query byte stream for appropriate magic number + + Args: + iostream: file byte stream + + Returns: + Bool denoting whether file is of class file type + based on magic number + """ + if not iostream: + return False + # move to location of magic bytes + iostream.seek(cls.OFFSET) + magic_bytes = iostream.read(cls.header_size()) + # return to beginning of file + iostream.seek(0) + if cls._bytes_check(magic_bytes): + return True + return False -def extension(path): - """Get the archive extension for a path.""" +class CompressedFileTypeInterface(FileTypeInterface): + """Interface class for FileTypes that include compression information""" + + compressed = True + + @staticmethod + def decomp_in_memory(stream): + """This method decompresses and loads the first 200 or so bytes of a compressed file + to check for compressed archives. This does not decompress the entire file and should + not be used for direct expansion of archives/compressed files + """ + raise NotImplementedError("Implementation by compression subclass required") + + +class BZipFileType(CompressedFileTypeInterface): + _MAGIC_NUMBER = b"\x42\x5a\x68" + extension = "bz2" + + @staticmethod + def name(): + return "bzip2 compressed data" + + @staticmethod + def decomp_in_memory(stream): + if is_bz2_supported(): + # checking for underlying archive, only decomp as many bytes + # as is absolutely neccesary for largest archive header (tar) + comp_stream = stream.read(TarFileType.OFFSET + TarFileType.header_size()) + return io.BytesIO(initial_bytes=bz2.BZ2Decompressor().decompress(comp_stream)) + return None + + +class ZCompressedFileType(CompressedFileTypeInterface): + _MAGIC_NUMBER_LZW = b"\x1f\x9d" + _MAGIC_NUMBER_LZH = b"\x1f\xa0" + extension = "Z" + + @staticmethod + def name(): + return "compress'd data" + + @staticmethod + def decomp_in_memory(stream): + # python has no method of decompressing `.Z` files in memory + return None + + +class GZipFileType(CompressedFileTypeInterface): + _MAGIC_NUMBER = b"\x1f\x8b\x08" + extension = "gz" + + @staticmethod + def name(): + return "gzip compressed data" + + @staticmethod + def decomp_in_memory(stream): + if is_gzip_supported(): + # checking for underlying archive, only decomp as many bytes + # as is absolutely neccesary for largest archive header (tar) + return io.BytesIO( + initial_bytes=gzip.GzipFile(fileobj=stream).read( + TarFileType.OFFSET + TarFileType.header_size() + ) + ) + return None + + +class LzmaFileType(CompressedFileTypeInterface): + _MAGIC_NUMBER = b"\xfd7zXZ" + extension = "xz" + + @staticmethod + def name(): + return "xz compressed data" + + @staticmethod + def decomp_in_memory(stream): + if is_lzma_supported(): + # checking for underlying archive, only decomp as many bytes + # as is absolutely neccesary for largest archive header (tar) + max_size = TarFileType.OFFSET + TarFileType.header_size() + return io.BytesIO( + initial_bytes=lzma.LZMADecompressor().decompress( + stream.read(max_size), max_length=max_size + ) + ) + return None + + +class TarFileType(FileTypeInterface): + OFFSET = 257 + _MAGIC_NUMBER_GNU = b"ustar \0" + _MAGIC_NUMBER_POSIX = b"ustar\x0000" + extension = "tar" + + @staticmethod + def name(): + return "tar archive" + + +class ZipFleType(FileTypeInterface): + _MAGIC_NUMBER = b"PK\003\004" + extension = "zip" + + @staticmethod + def name(): + return "Zip archive data" + + +# collection of valid Spack recognized archive and compression +# file type identifier classes. +VALID_FILETYPES = [ + BZipFileType, + ZCompressedFileType, + GZipFileType, + LzmaFileType, + TarFileType, + ZipFleType, +] + + +def extension_from_stream(stream, decompress=False): + """Return extension represented by stream corresponding to archive file + If stream does not represent an archive type recongized by Spack + (see `spack.util.compression.ALLOWED_ARCHIVE_TYPES`) method will return None + + Extension type is derived by searching for identifying bytes + in file stream. + + Args: + stream : stream representing a file on system + decompress (bool) : if True, compressed files are checked + for archive types beneath compression i.e. tar.gz + default is False, otherwise, return top level type i.e. gz + + Return: + A string represting corresponding archive extension + or None as relevant. + + """ + for arc_type in VALID_FILETYPES: + if arc_type.is_file_of_type(stream): + suffix_ext = arc_type.extension + prefix_ext = "" + if arc_type.compressed and decompress: + # stream represents compressed file + # get decompressed stream (if possible) + decomp_stream = arc_type.decomp_in_memory(stream) + prefix_ext = extension_from_stream(decomp_stream, decompress=decompress) + if not prefix_ext: + # We were unable to decompress or unable to derive + # a nested extension from decompressed file. + # Try to use filename parsing to check for + # potential nested extensions if there are any + tty.debug( + "Cannot derive file extension from magic number;" + " falling back to regex path parsing." + ) + return extension_from_path(stream.name) + resultant_ext = suffix_ext if not prefix_ext else ".".join([prefix_ext, suffix_ext]) + tty.debug("File extension %s successfully derived by magic number." % resultant_ext) + return resultant_ext + return None + + +def extension_from_file(file, decompress=False): + """Return extension from archive file path + Extension is derived based on magic number parsing similar + to the `file` utility. Attempts to return abbreviated file extensions + whenever a file has an abbreviated extension such as `.tgz` or `.txz`. + This distinction in abbreivated extension names is accomplished + by string parsing. + + Args: + file (os.PathLike): path descibing file on system for which ext + will be determined. + decompress (bool): If True, method will peek into compressed + files to check for archive file types. default is False. + If false, method will be unable to distinguish `.tar.gz` from `.gz` + or similar. + Return: + Spack recognized archive file extension as determined by file's magic number and + file name. If file is not on system or is of an type not recognized by Spack as + an archive or compression type, None is returned. + """ + if os.path.exists(file): + with open(file, "rb") as f: + ext = extension_from_stream(f, decompress) + # based on magic number, file is compressed + # tar archive. Check to see if file is abbreviated as + # t[xz|gz|bz2|bz] + if ext and ext.startswith("tar."): + suf = ext.split(".")[1] + abbr = "t" + suf + if check_extension(file, abbr): + return abbr + if not ext: + # If unable to parse extension from stream, + # attempt to fall back to string parsing + ext = extension_from_path(file) + return ext + return None + + +def extension_from_path(path): + """Get the allowed archive extension for a path. + If path does not include a valid archive extension + (see`spack.util.compression.ALLOWED_ARCHIVE_TYPES`) return None + """ if path is None: raise ValueError("Can't call extension() on None") - # Strip sourceforge suffix. - if re.search(r"((?:sourceforge.net|sf.net)/.*)/download$", path): - path = os.path.dirname(path) - for t in ALLOWED_ARCHIVE_TYPES: - suffix = r"\.%s$" % t - if re.search(suffix, path): + if check_extension(path, t): return t return None + + +def strip_last_extension(path): + """Strips last supported archive extension from path""" + if path: + for ext in ALLOWED_SINGLE_EXT_ARCHIVE_TYPES: + mod_path = check_and_remove_ext(path, ext) + if mod_path != path: + return mod_path + return path + + +def strip_extension(path, ext=None): + """Get the part of a path that does not include its compressed + type extension.""" + if ext: + return check_and_remove_ext(path, ext) + for t in ALLOWED_ARCHIVE_TYPES: + mod_path = check_and_remove_ext(path, t) + if mod_path != path: + return mod_path + return path + + +def check_extension(path, ext): + """Check if extension is present in path""" + # Strip sourceforge suffix. + prefix, _ = spath.find_sourceforge_suffix(path) + if not ext.startswith(r"\."): + ext = r"\.%s$" % ext + if re.search(ext, prefix): + return True + return False + + +def reg_remove_ext(path, ext): + """Regex remove ext from path""" + if path and ext: + suffix = r"\.%s$" % ext + return re.sub(suffix, "", path) + return path + + +def check_and_remove_ext(path, ext): + """If given extension is present in path, remove and return, + otherwise just return path""" + if check_extension(path, ext): + return reg_remove_ext(path, ext) + return path diff --git a/lib/spack/spack/util/path.py b/lib/spack/spack/util/path.py index 981a6b672d9..fe455413218 100644 --- a/lib/spack/spack/util/path.py +++ b/lib/spack/spack/util/path.py @@ -71,6 +71,15 @@ def win_exe_ext(): return ".exe" +def find_sourceforge_suffix(path): + """find and match sourceforge filepath components + Return match object""" + match = re.search(r"(.*(?:sourceforge\.net|sf\.net)/.*)(/download)$", path) + if match: + return match.groups() + return path, "" + + def path_to_os_path(*pths): """ Takes an arbitrary number of positional parameters From ecce65750976c9ec8317c3f4dbadc6d2e421b1c8 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Mon, 26 Sep 2022 11:07:38 +0200 Subject: [PATCH 207/241] Remove "tut" from the "build-systems" pipeline PR #32615 deprecated Python versions up to 3.6.X. Since the "build-systems" pipeline requires Python 3.6.15 to build "tut", it will fail on the first rebuild that involves Python. The "tut" package is meant to perform an end-to-end test of the "Waf" build-system, which is scarcely used. The fix therefore is just to remove it from the pipeline. --- .../spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml index a633d10099c..700d32add8e 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml @@ -16,7 +16,6 @@ spack: - default_specs: - lz4 # MakefilePackage - mpich~fortran # AutotoolsPackage - - tut # WafPackage - py-setuptools # PythonPackage - openjpeg # CMakePackage - r-rcpp # RPackage From 93dc500f41f47c331f933f9efbf92b39d21cc3d8 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Mon, 26 Sep 2022 11:36:49 +0200 Subject: [PATCH 208/241] py-pkgutil-resolve-name: fix issue with UTF-8 character This modifications breaks `develop` since it doesn't pass audits with Python 2.7 It is to be investigated why audits pass in CI for the PR and the issue is revealed only when the package is pushed to develop. --- .../repos/builtin/packages/py-pkgutil-resolve-name/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-pkgutil-resolve-name/package.py b/var/spack/repos/builtin/packages/py-pkgutil-resolve-name/package.py index 274e98828c8..68c300636fa 100644 --- a/var/spack/repos/builtin/packages/py-pkgutil-resolve-name/package.py +++ b/var/spack/repos/builtin/packages/py-pkgutil-resolve-name/package.py @@ -7,7 +7,7 @@ class PyPkgutilResolveName(PythonPackage): - """Resolve a name to an object. A backport of Python 3.9’s `pkgutil.resolve_name`""" + """Resolve a name to an object. A backport of Python 3.9 `pkgutil.resolve_name`""" homepage = "https://github.com/graingert/pkgutil-resolve-name" pypi = "pkgutil_resolve_name/pkgutil_resolve_name-1.3.10.tar.gz" From 677a862fb925411b1341efb122dc6de9ad8771bf Mon Sep 17 00:00:00 2001 From: Auriane R <48684432+aurianer@users.noreply.github.com> Date: Mon, 26 Sep 2022 15:07:26 +0200 Subject: [PATCH 209/241] Adapt pika to use the p2300 spack package (#32667) * Adapt pika to use the p2300 spack package * Fix formatting with black --- var/spack/repos/builtin/packages/pika/package.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/var/spack/repos/builtin/packages/pika/package.py b/var/spack/repos/builtin/packages/pika/package.py index 5a713417fcd..c6d46024f0c 100644 --- a/var/spack/repos/builtin/packages/pika/package.py +++ b/var/spack/repos/builtin/packages/pika/package.py @@ -59,6 +59,12 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage): variant("mpi", default=False, description="Enable MPI support") variant("apex", default=False, description="Enable APEX support", when="@0.2:") variant("tracy", default=False, description="Enable Tracy support", when="@0.7:") + variant( + "p2300", + default=False, + description="Use P2300 reference implementation for sender/receiver functionality", + when="@main", + ) # Build dependencies depends_on("git", type="build") @@ -71,6 +77,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage): # Pika is requiring the std::filesystem support starting from version 0.2.0 conflicts("%gcc@:8", when="@0.2:") conflicts("%clang@:8", when="@0.2:") + conflicts("+p2300", when="cxxstd=17") # Other dependecies depends_on("hwloc@1.11.5:") @@ -89,6 +96,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage): depends_on("rocblas", when="+rocm") depends_on("hipblas", when="+rocm") depends_on("rocsolver", when="@0.5: +rocm") + depends_on("p2300", when="+p2300") for cxxstd in cxxstds: depends_on("boost cxxstd={0}".format(map_cxxstd(cxxstd)), when="cxxstd={0}".format(cxxstd)) @@ -128,6 +136,7 @@ def cmake_args(self): self.define_from_variant("PIKA_WITH_TRACY", "tracy"), self.define("PIKA_WITH_TESTS", self.run_tests), self.define_from_variant("PIKA_WITH_GENERIC_CONTEXT_COROUTINES", "generic_coroutines"), + self.define_from_variant("PIKA_WITH_P2300_REFERENCE_IMPLEMENTATION", "p2300"), self.define("BOOST_ROOT", spec["boost"].prefix), self.define("HWLOC_ROOT", spec["hwloc"].prefix), ] From 1f6545c1c72b1d33fad984669b827e3397a0e88c Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 26 Sep 2022 09:21:25 -0500 Subject: [PATCH 210/241] gcc: add Apple Silicon support for newer versions (#32702) --- .../repos/builtin/packages/gcc/package.py | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py index c7d0b0b0bf7..6cb0b063163 100644 --- a/var/spack/repos/builtin/packages/gcc/package.py +++ b/var/spack/repos/builtin/packages/gcc/package.py @@ -317,11 +317,11 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): # on XCode 12.5 conflicts("+bootstrap", when="@:11.1 %apple-clang@12.0.5") - # aarch64/M1 is supported in GCC 12+ + # aarch64/M1 is supported in GCC 11.3-12.2 conflicts( - "@:11.2,11.3.1:", + "@:11.2,12.3:", when="target=aarch64: platform=darwin", - msg="Only GCC 11.3.0 supports macOS M1 (aarch64)", + msg="Only GCC 11.3-12.2 support macOS M1 (aarch64)", ) # Newer binutils than RHEL's is required to run `as` on some instructions @@ -331,6 +331,9 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): # GCC 11 requires GCC 4.8 or later (https://gcc.gnu.org/gcc-11/changes.html) conflicts("%gcc@:4.7", when="@11:") + # https://github.com/iains/gcc-12-branch/issues/6 + conflicts("%apple-clang@14:") + if sys.platform == "darwin": # Fix parallel build on APFS filesystem # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797 @@ -371,6 +374,17 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): sha256="e02006b7ec917cc1390645d95735a6a866caed0dfe506d5bef742f7862cab218", when="@11.3.0 target=aarch64:", ) + # https://github.com/iains/gcc-12-branch + patch( + "https://raw.githubusercontent.com/Homebrew/formula-patches/76677f2b/gcc/gcc-12.1.0-arm.diff", + sha256="a000f1d9cb1dd98c7c4ef00df31435cd5d712d2f9d037ddc044f8bf82a16cf35", + when="@12.1.0 target=aarch64:", + ) + patch( + "https://raw.githubusercontent.com/Homebrew/formula-patches/1d184289/gcc/gcc-12.2.0-arm.diff", + sha256="a7843b5c6bf1401e40c20c72af69c8f6fc9754ae980bb4a5f0540220b3dcb62d", + when="@12.2.0 target=aarch64:", + ) conflicts("+bootstrap", when="@11.3.0 target=aarch64:") # Use -headerpad_max_install_names in the build, From b7926eb6c8ca699d2fcc6d63b755185c2c737323 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 26 Sep 2022 10:14:20 -0500 Subject: [PATCH 211/241] py-py2cairo: only supports Python 2 (#32818) --- var/spack/repos/builtin/packages/py-py2cairo/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-py2cairo/package.py b/var/spack/repos/builtin/packages/py-py2cairo/package.py index 50f05bfdc7d..c54865d7d40 100644 --- a/var/spack/repos/builtin/packages/py-py2cairo/package.py +++ b/var/spack/repos/builtin/packages/py-py2cairo/package.py @@ -16,7 +16,7 @@ class PyPy2cairo(WafPackage): extends("python") - depends_on("python", type=("build", "run")) + depends_on("python@2", type=("build", "run")) depends_on("cairo@1.10.0:") depends_on("pixman") depends_on("pkgconfig", type="build") From 3aa93ca79d532a4f2f3729f5d296268855f1b4f2 Mon Sep 17 00:00:00 2001 From: Laurent Aphecetche Date: Mon, 26 Sep 2022 17:30:24 +0200 Subject: [PATCH 212/241] arrow: add version 9 and more variants (#32701) * utf8proc: add version 2.7.0 and shared variant * xsimd: add version 8.1.0 * arrow: add version 9.0.0 and more variants --- .../repos/builtin/packages/arrow/package.py | 139 ++++++++++++------ .../builtin/packages/utf8proc/package.py | 8 + .../repos/builtin/packages/xsimd/package.py | 1 + 3 files changed, 105 insertions(+), 43 deletions(-) diff --git a/var/spack/repos/builtin/packages/arrow/package.py b/var/spack/repos/builtin/packages/arrow/package.py index 7870a7258a5..c9bc1b7b661 100644 --- a/var/spack/repos/builtin/packages/arrow/package.py +++ b/var/spack/repos/builtin/packages/arrow/package.py @@ -2,8 +2,8 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) + from spack.package import * -from spack.pkg.builtin.boost import Boost class Arrow(CMakePackage, CudaPackage): @@ -15,6 +15,7 @@ class Arrow(CMakePackage, CudaPackage): homepage = "https://arrow.apache.org" url = "https://github.com/apache/arrow/archive/apache-arrow-0.9.0.tar.gz" + version("9.0.0", sha256="bb187b4b0af8dcc027fffed3700a7b891c9f76c9b63ad8925b4afb8257a2bb1b") version("8.0.0", sha256="19ece12de48e51ce4287d2dee00dc358fbc5ff02f41629d16076f77b8579e272") version("7.0.0", sha256="57e13c62f27b710e1de54fd30faed612aefa22aa41fa2c0c3bacd204dd18a8f3") version("4.0.1", sha256="79d3e807df4a179cfab1e7a1ab5f79d95f7b72ac2c33aba030febd125d77eb3b") @@ -28,32 +29,67 @@ class Arrow(CMakePackage, CudaPackage): version("0.9.0", sha256="65f89a3910b6df02ac71e4d4283db9b02c5b3f1e627346c7b6a5982ae994af91") version("0.8.0", sha256="c61a60c298c30546fc0b418a35be66ef330fb81b06c49928acca7f1a34671d54") - depends_on("boost@1.60:") - - # TODO: replace this with an explicit list of components of Boost, - # for instance depends_on('boost +filesystem') - # See https://github.com/spack/spack/pull/22303 for reference - depends_on(Boost.with_default_variants) + depends_on("boost@1.60: +filesystem +system") depends_on("cmake@3.2.0:", type="build") - depends_on("flatbuffers build_type=Release") # only Release contains flatc - depends_on("python", when="+python") - depends_on("py-numpy", when="+python") - depends_on("rapidjson") - depends_on("snappy~shared") - depends_on("zlib+pic") - depends_on("zstd") - depends_on("thrift+pic", when="+parquet") + depends_on("flatbuffers") + depends_on("llvm@:11 +clang", when="+gandiva @:3", type="build") + depends_on("llvm@:12 +clang", when="+gandiva @:4", type="build") + depends_on("llvm@:13 +clang", when="+gandiva @:7", type="build") + depends_on("llvm@:14 +clang", when="+gandiva @8:", type="build") + depends_on("lz4", when="+lz4") + depends_on("ninja", type="build") + depends_on("openssl", when="+gandiva @6.0.0:") + depends_on("openssl", when="@4.0.0:") depends_on("orc", when="+orc") + depends_on("protobuf", when="+gandiva") + depends_on("py-numpy", when="+python") + depends_on("python", when="+python") + depends_on("rapidjson") + depends_on("re2+shared", when="+compute") + depends_on("re2+shared", when="+gandiva") + depends_on("snappy~shared", when="+snappy @9:") + depends_on("snappy~shared", when="@8:") + depends_on("thrift+pic", when="+parquet") + depends_on("utf8proc@2.7.0: +shared", when="+compute") + depends_on("utf8proc@2.7.0: +shared", when="+gandiva") + depends_on("xsimd@8.1.0:", when="@9.0.0:") + depends_on("zlib+pic", when="+zlib @9:") + depends_on("zlib+pic", when="@:8") + depends_on("zstd", when="+zstd @9:") + depends_on("zstd", when="@:8") + variant("brotli", default=False, description="Build support for Brotli compression") variant( "build_type", default="Release", description="CMake build type", values=("Debug", "FastDebug", "Release"), ) - variant("python", default=False, description="Build Python interface") + variant( + "compute", default=False, description="Computational kernel functions and other support" + ) + variant("gandiva", default=False, description="Build Gandiva support") + variant( + "glog", + default=False, + description="Build libraries with glog support for pluggable logging", + ) + variant( + "hdfs", + default=False, + description="Integration with libhdfs for accessing the Hadoop Filesystem", + ) + variant("ipc", default=True, description="Build the Arrow IPC extensions") + variant("jemalloc", default=False, description="Build the Arrow jemalloc-based allocator") + variant("lz4", default=False, description="Build support for lz4 compression") + variant("orc", default=False, description="Build integration with Apache ORC") variant("parquet", default=False, description="Build Parquet interface") - variant("orc", default=False, description="Build ORC support") + variant("python", default=False, description="Build Python interface") + variant("shared", default=True, description="Build shared libs") + variant("snappy", default=False, description="Build support for Snappy compression") + variant("tensorflow", default=False, description="Build Arrow with TensorFlow support enabled") + variant("zlib", default=False, description="Build support for zlib (gzip) compression") + variant("zstd", default=False, description="Build support for ZSTD compression") root_cmakelists_dir = "cpp" @@ -63,37 +99,54 @@ def patch(self): r"(include_directories\()SYSTEM ", r"\1", "cpp/cmake_modules/ThirdpartyToolchain.cmake" ) + filter_file( + r'set\(ARROW_LLVM_VERSIONS "10" "9" "8" "7"\)', + 'set(ARROW_LLVM_VERSIONS "11" "10" "9" "8" "7")', + "cpp/CMakeLists.txt", + when="@:2.0.0", + ) + + filter_file( + r"#include ", + r"#include " + "\n" + r"#include ", + "cpp/src/gandiva/engine.cc", + when="@2.0.0", + ) + def cmake_args(self): - args = [ - "-DARROW_USE_SSE=ON", - "-DARROW_BUILD_SHARED=ON", - "-DARROW_BUILD_STATIC=OFF", - "-DARROW_BUILD_TESTS=OFF", - "-DARROW_WITH_BROTLI=OFF", - "-DARROW_WITH_LZ4=OFF", - ] + args = ["-DARROW_DEPENDENCY_SOURCE=SYSTEM", "-DARROW_NO_DEPRECATED_API=ON"] - if self.spec.satisfies("+cuda"): - args.append("-DARROW_CUDA:BOOL=ON") + if self.spec.satisfies("+shared"): + args.append(self.define("BUILD_SHARED", "ON")) else: - args.append("-DARROW_CUDA:BOOL=OFF") + args.append(self.define("BUILD_SHARED", "OFF")) + args.append(self.define("BUILD_STATIC", "ON")) - if self.spec.satisfies("+python"): - args.append("-DARROW_PYTHON:BOOL=ON") - else: - args.append("-DARROW_PYTHON:BOOL=OFF") + if self.spec.satisfies("@:0.11.99"): + # ARROW_USE_SSE was removed in 0.12 + # see https://issues.apache.org/jira/browse/ARROW-3844 + args.append(self.define("ARROW_USE_SSE", "ON")) - if self.spec.satisfies("+parquet"): - args.append("-DARROW_PARQUET:BOOL=ON") - else: - args.append("-DARROW_PARQUET:BOOL=OFF") + args.append(self.define_from_variant("ARROW_COMPUTE", "compute")) + args.append(self.define_from_variant("ARROW_CUDA", "cuda")) + args.append(self.define_from_variant("ARROW_GANDIVA", "gandiva")) + args.append(self.define_from_variant("ARROW_GLOG", "glog")) + args.append(self.define_from_variant("ARROW_HDFS", "hdfs")) + args.append(self.define_from_variant("ARROW_IPC", "ipc")) + args.append(self.define_from_variant("ARROW_JEMALLOC", "jemalloc")) + args.append(self.define_from_variant("ARROW_ORC", "orc")) + args.append(self.define_from_variant("ARROW_PARQUET", "parquet")) + args.append(self.define_from_variant("ARROW_PYTHON", "python")) + args.append(self.define_from_variant("ARROW_TENSORFLOW", "tensorflow")) + args.append(self.define_from_variant("ARROW_WITH_BROTLI", "brotli")) + args.append(self.define_from_variant("ARROW_WITH_LZ4", "lz4")) + args.append(self.define_from_variant("ARROW_WITH_SNAPPY", "snappy")) + args.append(self.define_from_variant("ARROW_WITH_ZLIB", "zlib")) + args.append(self.define_from_variant("ARROW_WITH_ZSTD", "zstd")) - if self.spec.satisfies("+orc"): - args.append("-DARROW_ORC:BOOL=ON") - else: - args.append("-DARROW_ORC:BOOL=OFF") + with when("@:8"): + for dep in ("flatbuffers", "rapidjson", "snappy", "zlib", "zstd"): + args.append("-D{0}_HOME={1}".format(dep.upper(), self.spec[dep].prefix)) + args.append("-DZLIB_LIBRARIES={0}".format(self.spec["zlib"].libs)) - for dep in ("flatbuffers", "rapidjson", "snappy", "zlib", "zstd"): - args.append("-D{0}_HOME={1}".format(dep.upper(), self.spec[dep].prefix)) - args.append("-DZLIB_LIBRARIES={0}".format(self.spec["zlib"].libs)) return args diff --git a/var/spack/repos/builtin/packages/utf8proc/package.py b/var/spack/repos/builtin/packages/utf8proc/package.py index 24357dffb16..ae812893b68 100644 --- a/var/spack/repos/builtin/packages/utf8proc/package.py +++ b/var/spack/repos/builtin/packages/utf8proc/package.py @@ -13,9 +13,17 @@ class Utf8proc(CMakePackage): homepage = "https://juliastrings.github.io/utf8proc/" url = "https://github.com/JuliaStrings/utf8proc/archive/v2.4.0.tar.gz" + version("2.7.0", sha256="4bb121e297293c0fd55f08f83afab6d35d48f0af4ecc07523ad8ec99aa2b12a1") version("2.6.1", sha256="4c06a9dc4017e8a2438ef80ee371d45868bda2237a98b26554de7a95406b283b") version("2.6.0", sha256="b36ce1534b8035e7febd95c031215ed279ee9d31cf9b464e28b4c688133b22c5") version("2.5.0", sha256="d4e8dfc898cfd062493cb7f42d95d70ccdd3a4cd4d90bec0c71b47cca688f1be") version("2.4.0", sha256="b2e5d547c1d94762a6d03a7e05cea46092aab68636460ff8648f1295e2cdfbd7") + variant("shared", default=False, description="Build a shared version of the library") + + def cmake_args(self): + args = [] + args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared")) + return args + depends_on("cmake@2.8.12:", type="build") diff --git a/var/spack/repos/builtin/packages/xsimd/package.py b/var/spack/repos/builtin/packages/xsimd/package.py index 065e49884ad..a016cca0430 100644 --- a/var/spack/repos/builtin/packages/xsimd/package.py +++ b/var/spack/repos/builtin/packages/xsimd/package.py @@ -16,6 +16,7 @@ class Xsimd(CMakePackage): maintainers = ["ax3l"] version("develop", branch="master") + version("8.1.0", sha256="d52551360d37709675237d2a0418e28f70995b5b7cdad7c674626bcfbbf48328") version("8.0.5", sha256="0e1b5d973b63009f06a3885931a37452580dbc8d7ca8ad40d4b8c80d2a0f84d7") version("8.0.4", sha256="5197529e7ca715ddfcae7c5c4097879c86dae6ef85f3f67c402e2e6c5e803c41") version("8.0.3", sha256="d1d41253c4f82eaf2f369d7fcb4142e35076cf8675b9d94caa06ecf883024344") From 07157306b295c2aa99a1350a4a65217777ed1f66 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Mon, 26 Sep 2022 17:34:43 +0200 Subject: [PATCH 213/241] py-distro: add 1.7.0 (#32813) --- var/spack/repos/builtin/packages/py-distro/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-distro/package.py b/var/spack/repos/builtin/packages/py-distro/package.py index 5082753cc5d..7bb450e8c56 100644 --- a/var/spack/repos/builtin/packages/py-distro/package.py +++ b/var/spack/repos/builtin/packages/py-distro/package.py @@ -13,7 +13,9 @@ class PyDistro(PythonPackage): homepage = "https://github.com/nir0s/distro" pypi = "distro/distro-1.5.0.tar.gz" + version("1.7.0", sha256="151aeccf60c216402932b52e40ee477a939f8d58898927378a02abbe852c1c39") version("1.6.0", sha256="83f5e5a09f9c5f68f60173de572930effbcc0287bb84fdc4426cb4168c088424") version("1.5.0", sha256="0e58756ae38fbd8fc3020d54badb8eae17c5b9dcbed388b17bb55b8a5928df92") + depends_on("python@3.6:", when="@1.7:", type=("build", "run")) depends_on("py-setuptools", type="build") From b961cfa8d6d26263510f7d164d3d2e7c31fe1cb1 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Mon, 26 Sep 2022 17:35:59 +0200 Subject: [PATCH 214/241] py-debugpy: add 1.6.3 (#32812) --- var/spack/repos/builtin/packages/py-debugpy/package.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-debugpy/package.py b/var/spack/repos/builtin/packages/py-debugpy/package.py index ca6d837bd28..e34d8eeec0d 100644 --- a/var/spack/repos/builtin/packages/py-debugpy/package.py +++ b/var/spack/repos/builtin/packages/py-debugpy/package.py @@ -13,16 +13,12 @@ class PyDebugpy(PythonPackage): pypi = "debugpy/debugpy-1.4.1.zip" # 'debugpy._vendored' requires additional dependencies, Windows-specific - import_modules = [ - "debugpy", - "debugpy.adapter", - "debugpy.launcher", - "debugpy.server", - "debugpy.common", - ] + skip_modules = ["debugpy._vendored"] + version("1.6.3", sha256="e8922090514a890eec99cfb991bab872dd2e353ebb793164d5f01c362b9a40bf") version("1.5.1", sha256="d2b09e91fbd1efa4f4fda121d49af89501beda50c18ed7499712c71a4bf3452e") version("1.4.1", sha256="889316de0b8ff3732927cb058cfbd3371e4cd0002ecc170d34c755ad289c867c") + depends_on("python@3.7:", when="@1.6:", type=("build", "link", "run")) depends_on("python@2.7:2.8,3.5:", type=("build", "link", "run")) depends_on("py-setuptools", type="build") From a5bf7f458d6bad2f4875f4d5c5d427de22d8c8f6 Mon Sep 17 00:00:00 2001 From: Laurent Aphecetche Date: Mon, 26 Sep 2022 17:37:21 +0200 Subject: [PATCH 215/241] root: make X11 really optional on macOS (#32661) * root: make X11 really optional on macOS * Update var/spack/repos/builtin/packages/root/package.py * remove when clauses in provides Co-authored-by: Hadrien G. --- .../builtin/packages/apple-gl/package.py | 57 +++++++++++++++++++ .../builtin/packages/apple-glu/package.py | 57 +++++++++++++++++++ .../repos/builtin/packages/root/package.py | 20 ++++--- 3 files changed, 126 insertions(+), 8 deletions(-) create mode 100644 var/spack/repos/builtin/packages/apple-gl/package.py create mode 100644 var/spack/repos/builtin/packages/apple-glu/package.py diff --git a/var/spack/repos/builtin/packages/apple-gl/package.py b/var/spack/repos/builtin/packages/apple-gl/package.py new file mode 100644 index 00000000000..4f30d11b3d6 --- /dev/null +++ b/var/spack/repos/builtin/packages/apple-gl/package.py @@ -0,0 +1,57 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack.package import * + + +class AppleGl(Package): + """Shim package for the core OpenGL library from Apple""" + + homepage = "https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_intro/opengl_intro.html" + + maintainers = ["aphecetche"] + + has_code = False + + version("4.1.0") + + provides("gl@4.1") + + # Only supported on 'platform=darwin' and compiler=apple-clang + conflicts("platform=linux") + conflicts("platform=cray") + conflicts("%gcc") + conflicts("%clang") + + phases = [] + + sdk_base = ( + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/" + "Developer/SDKs/MacOSX" + ) + + def setup_dependent_build_environment(self, env, dependent_spec): + # we try to setup a build environment with enough hints + # for the build system to pick up on the Apple framework version + # of OpenGL. + # - for a cmake build we actually needs nothing at all as + # find_package(OpenGL) will do the right thing + # - for the rest of the build systems we'll assume that + # setting the C_INCLUDE_PATH will be enough for the compilation phase + # and *** for the link phase. + env.prepend_path("C_INCLUDE_PATH", self.sdk_base) + + @property + def headers(self): + return HeaderList( + "{}.sdk/System/Library/Frameworks/OpenGL.framework/Headers".format(self.sdk_base) + ) + + @property + def libs(self): + return LibraryList( + "{}.sdk/System/Library/Frameworks/OpenGL.framework".format(self.sdk_base) + ) diff --git a/var/spack/repos/builtin/packages/apple-glu/package.py b/var/spack/repos/builtin/packages/apple-glu/package.py new file mode 100644 index 00000000000..38f0527d212 --- /dev/null +++ b/var/spack/repos/builtin/packages/apple-glu/package.py @@ -0,0 +1,57 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack.package import * + + +class AppleGlu(Package): + """Shim package for Apple implementation of OpenGL Utility Libray (GLU)""" + + homepage = "" + + maintainers = ["aphecetche"] + + has_code = False + + version("1.3.0") + + provides("glu@1.3") + + # Only supported on 'platform=darwin' and compiler=apple-clang + conflicts("platform=linux") + conflicts("platform=cray") + conflicts("%gcc") + conflicts("%clang") + + phases = [] + + sdk_base = ( + "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/" + "Developer/SDKs/MacOSX" + ) + + def setup_dependent_build_environment(self, env, dependent_spec): + # we try to setup a build environment with enough hints + # for the build system to pick up on the Apple framework version + # of OpenGL. + # - for a cmake build we actually needs nothing at all as + # find_package(OpenGL) will do the right thing + # - for the rest of the build systems we'll assume that + # setting the C_INCLUDE_PATH will be enough for the compilation phase + # and *** for the link phase. + env.prepend_path("C_INCLUDE_PATH", self.sdk_base) + + @property + def headers(self): + return HeaderList( + "{}.sdk/System/Library/Frameworks/OpenGL.framework/Headers".format(self.sdk_base) + ) + + @property + def libs(self): + return LibraryList( + "{}.sdk/System/Library/Frameworks/OpenGL.framework".format(self.sdk_base) + ) diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py index 4b421b04f40..5de2917a642 100644 --- a/var/spack/repos/builtin/packages/root/package.py +++ b/var/spack/repos/builtin/packages/root/package.py @@ -211,11 +211,11 @@ class Root(CMakePackage): depends_on("libsm", when="+x") # OpenGL - depends_on("ftgl@2.4.0:", when="+x+opengl") - depends_on("glew", when="+x+opengl") - depends_on("gl", when="+x+opengl") - depends_on("glu", when="+x+opengl") - depends_on("gl2ps", when="+x+opengl") + depends_on("ftgl@2.4.0:", when="+opengl") + depends_on("glew", when="+opengl") + depends_on("gl2ps", when="+opengl") + depends_on("gl", when="+opengl") + depends_on("glu", when="+opengl") # Qt4 depends_on("qt@:4", when="+qt4") @@ -287,7 +287,8 @@ class Root(CMakePackage): conflicts("target=ppc64le:", when="@:6.24") # Incompatible variants - conflicts("+opengl", when="~x", msg="OpenGL requires X") + if sys.platform != "darwin": + conflicts("+opengl", when="~x", msg="OpenGL requires X") conflicts("+tmva", when="~gsl", msg="TVMA requires GSL") conflicts("+tmva", when="~mlp", msg="TVMA requires MLP") conflicts("cxxstd=11", when="+root7", msg="root7 requires at least C++14") @@ -430,8 +431,11 @@ def cmake_args(self): # Options related to ROOT's ability to download and build its own # dependencies. Per Spack convention, this should generally be avoided. + + afterimage_enabled = ("+x" in self.spec) if "platform=darwin" not in self.spec else True + options += [ - define_from_variant("builtin_afterimage", "x"), + define("builtin_afterimage", afterimage_enabled), define("builtin_cfitsio", False), define("builtin_davix", False), define("builtin_fftw3", False), @@ -604,7 +608,7 @@ def add_include_path(dep_name): add_include_path("fontconfig") add_include_path("libx11") add_include_path("xproto") - if "+opengl" in spec: + if "+opengl" in spec and "platform=darwin" not in spec: add_include_path("glew") add_include_path("mesa-glu") if "platform=darwin" in spec: From 100eb5014a31cbebd6cb77cb8a3e5b46352334ea Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Mon, 26 Sep 2022 17:42:25 +0200 Subject: [PATCH 216/241] py-datalad-container: add 1.1.7 (#32810) --- .../repos/builtin/packages/py-datalad-container/package.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-datalad-container/package.py b/var/spack/repos/builtin/packages/py-datalad-container/package.py index 4c6a4800196..a190316e865 100644 --- a/var/spack/repos/builtin/packages/py-datalad-container/package.py +++ b/var/spack/repos/builtin/packages/py-datalad-container/package.py @@ -12,8 +12,12 @@ class PyDataladContainer(PythonPackage): homepage = "https://github.com/datalad/datalad-container/" pypi = "datalad_container/datalad_container-1.1.5.tar.gz" + version("1.1.7", sha256="02574c1d3d1e83c8ef3ab75b6a3523ce5acc870b0b79af12ae433ac140c5cb16") version("1.1.5", sha256="f6099a0124ddb2f021531d5020a583eca3cd9243e4e609b0f58e3f72e779b601") + depends_on("python@3.7:", when="@1.1.6:", type="build") + depends_on("py-setuptools@43:", when="@1.1.6:", type="build") depends_on("py-setuptools", type="build") + depends_on("py-datalad@0.13:", type="run") depends_on("py-requests@1.2:", type="run") From beab39eb3c196e800bc8d511016c3106daa0eada Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Mon, 26 Sep 2022 17:46:23 +0200 Subject: [PATCH 217/241] py-coverage: add 6.4.4 (#32789) * py-coverage: add 6.4.4 * Fix python version in +toml variant --- var/spack/repos/builtin/packages/py-coverage/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-coverage/package.py b/var/spack/repos/builtin/packages/py-coverage/package.py index 8839fd57785..8bbf529607f 100644 --- a/var/spack/repos/builtin/packages/py-coverage/package.py +++ b/var/spack/repos/builtin/packages/py-coverage/package.py @@ -12,6 +12,7 @@ class PyCoverage(PythonPackage): homepage = "https://github.com/nedbat/coveragepy" pypi = "coverage/coverage-4.5.4.tar.gz" + version("6.4.4", sha256="e16c45b726acb780e1e6f88b286d3c10b3914ab03438f32117c4aa52d7f30d58") version("6.3.1", sha256="6c3f6158b02ac403868eea390930ae64e9a9a2a5bbfafefbb920d29258d9f2f8") version("6.1.2", sha256="d9a635114b88c0ab462e0355472d00a180a5fbfd8511e7f18e4ac32652e7d972") version("5.5", sha256="ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c") @@ -29,5 +30,5 @@ class PyCoverage(PythonPackage): depends_on("python@2.7:2.8,3.5:", when="@5:", type=("build", "run")) depends_on("python@2.6:2.8,3.3:", type=("build", "run")) depends_on("py-setuptools", type=("build", "run")) - depends_on("py-tomli", when="@6: +toml", type=("build", "run")) + depends_on("py-tomli", when="@6: +toml ^python@:3.10", type=("build", "run")) depends_on("py-toml", when="@:5 +toml", type=("build", "run")) From 7c5a417bb3ef4d2a06717071cc2a7af90d9a0007 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Mon, 26 Sep 2022 17:47:37 +0200 Subject: [PATCH 218/241] py-bottleneck: add 1.3.5 and py-versioneer: add 0.26 (#32780) * py-bottleneck: add 1.3.5 * Fix sha256 for version 0.18 * Fix python dependency --- .../repos/builtin/packages/py-bottleneck/package.py | 3 +++ .../repos/builtin/packages/py-versioneer/package.py | 11 +++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-bottleneck/package.py b/var/spack/repos/builtin/packages/py-bottleneck/package.py index 2f139e14662..95f86796d67 100644 --- a/var/spack/repos/builtin/packages/py-bottleneck/package.py +++ b/var/spack/repos/builtin/packages/py-bottleneck/package.py @@ -9,8 +9,10 @@ class PyBottleneck(PythonPackage): """A collection of fast NumPy array functions written in Cython.""" + homepage = "https://github.com/pydata/bottleneck" pypi = "Bottleneck/Bottleneck-1.0.0.tar.gz" + version("1.3.5", sha256="2c0d27afe45351f6f421893362621804fa7dea14fe29a78eaa52d4323f646de7") version("1.3.2", sha256="20179f0b66359792ea283b69aa16366419132f3b6cf3adadc0c48e2e8118e573") version("1.3.1", sha256="451586370462cb623d6ad604a545d1e97fb51d2ab5252b1ac57350a83e494a28") version("1.3.0", sha256="9d7814c61c31f42cfb4f26e050c2659c88a198f1398a9714174ae78347aad737") @@ -18,4 +20,5 @@ class PyBottleneck(PythonPackage): version("1.0.0", sha256="8d9b7ad4fadf9648acc924a6ee522c7cb5b474e75faaad9d90dfd55e2805b495") depends_on("py-setuptools", type="build") + depends_on("py-versioneer", when="@1.3.3:", type="build") depends_on("py-numpy", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-versioneer/package.py b/var/spack/repos/builtin/packages/py-versioneer/package.py index 9c532cee465..17243836622 100644 --- a/var/spack/repos/builtin/packages/py-versioneer/package.py +++ b/var/spack/repos/builtin/packages/py-versioneer/package.py @@ -10,12 +10,15 @@ class PyVersioneer(PythonPackage): """Versioneer is a tool to automatically update version strings by asking your version-control system about the current tree.""" - homepage = "https://github.com/warner/python-versioneer" - url = "https://github.com/warner/python-versioneer/archive/0.18.tar.gz" - git = "https://github.com/warner/python-versioneer.git" + homepage = "https://github.com/python-versioneer/python-versioneer" + pypi = "versioneer/versioneer-0.26.tar.gz" + git = "https://github.com/python-versioneer/python-versioneer.git" maintainers = ["scemama"] - version("0.18", sha256="cf895b67f5bc62d61c4837458069ded8f66b4e5764c19f7253c51ee27e8b3a99") + version("0.26", sha256="84fc729aa296d1d26645a8f62f178019885ff6f9a1073b29a4a228270ac5257b") + version("0.18", sha256="ead1f78168150011189521b479d3a0dd2f55c94f5b07747b484fd693c3fbf335") + depends_on("python@3.7:", when="@0.23:", type=("build", "run")) + depends_on("python@3.6:", when="@0.19:", type=("build", "run")) depends_on("py-setuptools", type="build") From 494946d020552cba18ad05008c6a732661203462 Mon Sep 17 00:00:00 2001 From: "Seth R. Johnson" Date: Mon, 26 Sep 2022 17:50:14 +0200 Subject: [PATCH 219/241] celeritas: new versions 0.1.2,3 (#32803) --- var/spack/repos/builtin/packages/celeritas/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/var/spack/repos/builtin/packages/celeritas/package.py b/var/spack/repos/builtin/packages/celeritas/package.py index dd9f0a6ec73..eeed758ed5d 100644 --- a/var/spack/repos/builtin/packages/celeritas/package.py +++ b/var/spack/repos/builtin/packages/celeritas/package.py @@ -17,6 +17,8 @@ class Celeritas(CMakePackage, CudaPackage, ROCmPackage): maintainers = ["sethrj"] + version("0.1.3", sha256="992c49a48adba884fe3933c9624da5bf480ef0694809430ae98903f2c28cc881") + version("0.1.2", sha256="d123ea2e34267adba387d46bae8c9a1146a2e047f87f2ea5f823878c1684678d") version("0.1.1", sha256="a1d58e29226e89a2330d69c40049d61e7c885cf991824e60ff8c9ccc95fc5ec6") version("0.1.0", sha256="46692977b9b31d73662252cc122d7f016f94139475788bca7fdcb97279b93af8") From 5fbbc5fa6862372c95de95055fa83b96be70e26d Mon Sep 17 00:00:00 2001 From: akhursev Date: Mon, 26 Sep 2022 09:01:59 -0700 Subject: [PATCH 220/241] 2022.3 oneAPI release promotion (#32786) In addition to the new release, made intel-oneapi-compilers-classic version number match the compiler version number, instead of the version of the package that contains it. Co-authored-by: Robert Cohn --- .../packages/intel-oneapi-advisor/package.py | 6 +++++ .../packages/intel-oneapi-ccl/package.py | 6 +++++ .../intel-oneapi-compilers-classic/package.py | 22 ++++++++++--------- .../intel-oneapi-compilers/package.py | 11 ++++++++++ .../packages/intel-oneapi-dal/package.py | 6 +++++ .../packages/intel-oneapi-dnn/package.py | 6 +++++ .../packages/intel-oneapi-dpct/package.py | 6 +++++ .../packages/intel-oneapi-dpl/package.py | 6 +++++ .../intel-oneapi-inspector/package.py | 6 +++++ .../packages/intel-oneapi-ipp/package.py | 6 +++++ .../packages/intel-oneapi-ippcp/package.py | 6 +++++ .../packages/intel-oneapi-itac/package.py | 6 +++++ .../packages/intel-oneapi-mkl/package.py | 6 +++++ .../packages/intel-oneapi-mpi/package.py | 6 +++++ .../packages/intel-oneapi-tbb/package.py | 6 +++++ .../packages/intel-oneapi-vpl/package.py | 6 +++++ .../packages/intel-oneapi-vtune/package.py | 6 +++++ 17 files changed, 113 insertions(+), 10 deletions(-) diff --git a/var/spack/repos/builtin/packages/intel-oneapi-advisor/package.py b/var/spack/repos/builtin/packages/intel-oneapi-advisor/package.py index 33ba3ed2773..e222ce638d1 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-advisor/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-advisor/package.py @@ -27,6 +27,12 @@ class IntelOneapiAdvisor(IntelOneApiPackage): ) if platform.system() == "Linux": + version( + "2022.3.0", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18872/l_oneapi_advisor_p_2022.3.0.8704_offline.sh", + sha256="ae1e542e6030b04f70f3b9831b5e92def97ce4692c974da44e7e9d802f25dfa7", + expand=False, + ) version( "2022.1.0", url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18730/l_oneapi_advisor_p_2022.1.0.171_offline.sh", diff --git a/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py index db319c8b821..f373af03c88 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py @@ -30,6 +30,12 @@ class IntelOneapiCcl(IntelOneApiLibraryPackage): depends_on("intel-oneapi-mpi") if platform.system() == "Linux": + version( + "2021.7.0", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18891/l_oneapi_ccl_p_2021.7.0.8733_offline.sh", + sha256="a0e64db03868081fe075afce8abf4cb94236effc6c52e5049118cfb2ef81a6c7", + expand=False, + ) version( "2021.6.0", url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18697/l_oneapi_ccl_p_2021.6.0.568.sh", diff --git a/var/spack/repos/builtin/packages/intel-oneapi-compilers-classic/package.py b/var/spack/repos/builtin/packages/intel-oneapi-compilers-classic/package.py index 9b1f585bc64..9e2fc383156 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-compilers-classic/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-compilers-classic/package.py @@ -21,17 +21,19 @@ class IntelOneapiCompilersClassic(Package): phases = [] - for ver in [ - "2022.1.0", - "2022.0.2", - "2022.0.1", - "2021.4.0", - "2021.3.0", - "2021.2.0", - "2021.1.2", - ]: + # Versions before 2021 are in the `intel` package + # intel-oneapi versions before 2022 use intel@19.0.4 + for ver, oneapi_ver in { + "2021.1.2": "2021.1.2", + "2021.2.0": "2021.2.0", + "2021.3.0": "2021.3.0", + "2021.4.0": "2021.4.0", + "2021.5.0": "2022.0.1:2022.0.2", + "2021.6.0": "2022.1.0", + "2021.7.0": "2022.2.0", + }.items(): version(ver) - depends_on("intel-oneapi-compilers@" + ver, when="@" + ver, type="run") + depends_on("intel-oneapi-compilers@" + oneapi_ver, when="@" + ver, type="run") def setup_run_environment(self, env): """Adds environment variables to the generated module file. diff --git a/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py b/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py index bcb410cf7d8..a4e85c77dec 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py @@ -9,6 +9,17 @@ from spack.package import * linux_versions = [ + { + "version": "2022.2.0", + "cpp": { + "url": "https://registrationcenter-download.intel.com/akdlm/irc_nas/18849/l_dpcpp-cpp-compiler_p_2022.2.0.8772_offline.sh", + "sha256": "8ca97f7ea8abf7876df6e10ce2789ea8cbc310c100ad7bf0b5ffccc4f3c7f2c9", + }, + "ftn": { + "url": "https://registrationcenter-download.intel.com/akdlm/irc_nas/18909/l_fortran-compiler_p_2022.2.0.8773_offline.sh", + "sha256": "4054e4bf5146d55638d21612396a19ea623d22cbb8ac63c0a7150773541e0311", + }, + }, { "version": "2022.1.0", "cpp": { diff --git a/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py b/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py index 9ee247749f0..7ed60a6be7b 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py @@ -29,6 +29,12 @@ class IntelOneapiDal(IntelOneApiLibraryPackage): ) if platform.system() == "Linux": + version( + "2021.7.0", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18895/l_daal_oneapi_p_2021.7.0.8746_offline.sh", + sha256="c18e68df120c2b1db17877cfcbb1b5c93a47b2f4756a3444c663d0f03be4eee3", + expand=False, + ) version( "2021.6.0", url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18698/l_daal_oneapi_p_2021.6.0.915_offline.sh", diff --git a/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py b/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py index 160c882af82..7d0602d3702 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py @@ -29,6 +29,12 @@ class IntelOneapiDnn(IntelOneApiLibraryPackage): ) if platform.system() == "Linux": + version( + "2022.2.0", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18933/l_onednn_p_2022.2.0.8750_offline.sh", + sha256="920833cd1f05f2fdafb942c96946c3925eb734d4458d52f22f2cc755133cb9e0", + expand=False, + ) version( "2022.1.0", url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18725/l_onednn_p_2022.1.0.132_offline.sh", diff --git a/var/spack/repos/builtin/packages/intel-oneapi-dpct/package.py b/var/spack/repos/builtin/packages/intel-oneapi-dpct/package.py index ff59ad18f6b..b35db040061 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-dpct/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-dpct/package.py @@ -22,6 +22,12 @@ class IntelOneapiDpct(IntelOneApiPackage): homepage = "https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compatibility-tool.html#gs.2p8km6" if platform.system() == "Linux": + version( + "2022.2.0", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18908/l_dpcpp-ct_p_2022.2.0.8701_offline.sh", + sha256="ca79b89ba4b97accb868578a1b7ba0e38dc5e4457d45c6c2552ba33d71b52128", + expand=False, + ) version( "2022.1.0", url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18746/l_dpcpp-ct_p_2022.1.0.172_offline.sh", diff --git a/var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py index 2ed5721f29d..41279fceed2 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py @@ -25,6 +25,12 @@ class IntelOneapiDpl(IntelOneApiLibraryPackage): homepage = "https://github.com/oneapi-src/oneDPL" if platform.system() == "Linux": + version( + "2021.7.1", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18846/l_oneDPL_p_2021.7.1.8713_offline.sh", + sha256="275c935427e3ad0eb995034b05ff2ffd13c55ee58069c3702aa383f68a1e5485", + expand=False, + ) version( "2021.7.0", url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18752/l_oneDPL_p_2021.7.0.631_offline.sh", diff --git a/var/spack/repos/builtin/packages/intel-oneapi-inspector/package.py b/var/spack/repos/builtin/packages/intel-oneapi-inspector/package.py index 36923e09fce..bd0d479099d 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-inspector/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-inspector/package.py @@ -27,6 +27,12 @@ class IntelOneapiInspector(IntelOneApiPackage): homepage = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/inspector.html" if platform.system() == "Linux": + version( + "2022.3.0", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18924/l_inspector_oneapi_p_2022.3.0.8706_offline.sh", + sha256="c239b93769afae0ef5f7d3b8584d739bf4a839051bd428f1e6be3e8ca5d4aefa", + expand=False, + ) version( "2022.1.0", url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18712/l_inspector_oneapi_p_2022.1.0.123_offline.sh", diff --git a/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py b/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py index 2342a236aab..971e0234c9a 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py @@ -30,6 +30,12 @@ class IntelOneapiIpp(IntelOneApiLibraryPackage): ) if platform.system() == "Linux": + version( + "2021.6.1", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18925/l_ipp_oneapi_p_2021.6.1.8749_offline.sh", + sha256="3f8705bf57c07b71d822295bfad49b531a38b6c3a4ca1119e4c52236cb664f57", + expand=False, + ) version( "2021.6.0", url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18748/l_ipp_oneapi_p_2021.6.0.626_offline.sh", diff --git a/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py b/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py index 1ac8c9dad88..f983abcdb26 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py @@ -31,6 +31,12 @@ class IntelOneapiIppcp(IntelOneApiLibraryPackage): ) if platform.system() == "Linux": + version( + "2021.6.1", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18923/l_ippcp_oneapi_p_2021.6.1.8714_offline.sh", + sha256="a83c2e74f78ea00aae877259df38baab31e78bc04c0a387a1de36fff712eb225", + expand=False, + ) version( "2021.6.0", url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18709/l_ippcp_oneapi_p_2021.6.0.536_offline.sh", diff --git a/var/spack/repos/builtin/packages/intel-oneapi-itac/package.py b/var/spack/repos/builtin/packages/intel-oneapi-itac/package.py index cbe8216c8c8..0110f05b169 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-itac/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-itac/package.py @@ -30,6 +30,12 @@ class IntelOneapiItac(IntelOneApiPackage): maintainers = ["rscohn2"] if platform.system() == "Linux": + version( + "2021.7.0", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18886/l_itac_oneapi_p_2021.7.0.8707_offline.sh", + sha256="719faeccfb1478f28110b72b1558187590a6f44cce067158f407ab335a7395bd", + expand=False, + ) version( "2021.6.0", url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18694/l_itac_oneapi_p_2021.6.0.434_offline.sh", diff --git a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py index 4d52e7347a1..0d227b39528 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py @@ -27,6 +27,12 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage): ) if platform.system() == "Linux": + version( + "2022.2.0", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18898/l_onemkl_p_2022.2.0.8748_offline.sh", + sha256="07d7caedd4b9f025c6fd439a0d2c2f279b18ecbbb63cadb864f6c63c1ed942db", + expand=False, + ) version( "2022.1.0", url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18721/l_onemkl_p_2022.1.0.223_offline.sh", diff --git a/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py b/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py index 08ef7fa3dcc..c58320d72e6 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py @@ -26,6 +26,12 @@ class IntelOneapiMpi(IntelOneApiLibraryPackage): homepage = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/mpi-library.html" if platform.system() == "Linux": + version( + "2021.7.0", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18926/l_mpi_oneapi_p_2021.7.0.8711_offline.sh", + sha256="4eb1e1487b67b98857bc9b7b37bcac4998e0aa6d1b892b2c87b003bf84fb38e9", + expand=False, + ) version( "2021.6.0", url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18714/l_mpi_oneapi_p_2021.6.0.602_offline.sh", diff --git a/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py b/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py index c558ef0c7eb..e8df02c63d0 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py @@ -25,6 +25,12 @@ class IntelOneapiTbb(IntelOneApiLibraryPackage): ) if platform.system() == "Linux": + version( + "2021.7.0", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18901/l_tbb_oneapi_p_2021.7.0.8712_offline.sh", + sha256="879bd2004b8e93bc12c53c43eab44cd843433e3da7a976baa8bf07a1069a87c5", + expand=False, + ) version( "2021.6.0", url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18728/l_tbb_oneapi_p_2021.6.0.835_offline.sh", diff --git a/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py index cf77f1c9c53..8951cac6c3a 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py @@ -28,6 +28,12 @@ class IntelOneapiVpl(IntelOneApiLibraryPackage): ) if platform.system() == "Linux": + version( + "2022.2.0", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18903/l_oneVPL_p_2022.2.0.8703_offline.sh", + sha256="cb8af222d194ebb4b1dafe12e0b70cbbdee204f9fcfe9eafb46b287ee33b3797", + expand=False, + ) version( "2022.1.0", url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18750/l_oneVPL_p_2022.1.0.154_offline.sh", diff --git a/var/spack/repos/builtin/packages/intel-oneapi-vtune/package.py b/var/spack/repos/builtin/packages/intel-oneapi-vtune/package.py index b20fc56389f..361c3f090d2 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-vtune/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-vtune/package.py @@ -28,6 +28,12 @@ class IntelOneapiVtune(IntelOneApiPackage): homepage = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/vtune-profiler.html" if platform.system() == "Linux": + version( + "2022.4.0", + url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18888/l_oneapi_vtune_p_2022.4.0.8705_offline.sh", + sha256="8c5a144ed61ef9addaa41abe7fbfceeedb6a8fe1c5392e3e265aada1f545b0fe", + expand=False, + ) version( "2022.3.0", url="https://registrationcenter-download.intel.com/akdlm/irc_nas/18656/l_oneapi_vtune_p_2022.3.0.195_offline.sh", From b1fda5dd649d7ce18f04a380601550716302b13c Mon Sep 17 00:00:00 2001 From: Alberto Invernizzi <9337627+albestro@users.noreply.github.com> Date: Mon, 26 Sep 2022 18:10:38 +0200 Subject: [PATCH 221/241] add neovim version 0.7.2 (#32815) --- var/spack/repos/builtin/packages/neovim/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/neovim/package.py b/var/spack/repos/builtin/packages/neovim/package.py index 63ddeb039e0..2d71b10de7b 100644 --- a/var/spack/repos/builtin/packages/neovim/package.py +++ b/var/spack/repos/builtin/packages/neovim/package.py @@ -17,6 +17,7 @@ class Neovim(CMakePackage): version("master", branch="master") version("stable", tag="stable") + version("0.7.2", sha256="ccab8ca02a0c292de9ea14b39f84f90b635a69282de38a6b4ccc8565bc65d096") version("0.7.0", sha256="792a9c55d5d5f4a5148d475847267df309d65fb20f05523f21c1319ea8a6c7df") version( "0.6.1", From f8e23b4fbee5d279e80cf83339a6a11583176f9c Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Mon, 26 Sep 2022 18:38:01 +0200 Subject: [PATCH 222/241] py-cryptography: add 38.0.1 (#32809) * py-cryptography: add 38.0.1 * Fix rust dependency --- .../repos/builtin/packages/py-cryptography/package.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-cryptography/package.py b/var/spack/repos/builtin/packages/py-cryptography/package.py index eb9e6e3ad66..a02210db210 100644 --- a/var/spack/repos/builtin/packages/py-cryptography/package.py +++ b/var/spack/repos/builtin/packages/py-cryptography/package.py @@ -13,6 +13,7 @@ class PyCryptography(PythonPackage): homepage = "https://github.com/pyca/cryptography" pypi = "cryptography/cryptography-1.8.1.tar.gz" + version("38.0.1", sha256="1db3d807a14931fa317f96435695d9ec386be7b84b618cc61cfa5d08b0ae33d7") version("36.0.1", sha256="53e5c1dc3d7a953de055d77bef2ff607ceef7a2aac0353b5d630ab67f7423638") version("35.0.0", sha256="9933f28f70d0517686bd7de36166dda42094eac49415459d9bdf5e7df3e0086d") version("3.4.8", sha256="94cc5ed4ceaefcbe5bf38c8fba6a21fc1d365bb8fb826ea1688e3370b2e24a1c") @@ -28,10 +29,14 @@ class PyCryptography(PythonPackage): depends_on("python@2.7:2.8,3.4:", when="@2.3.1:", type=("build", "run")) depends_on("python@2.6:2.8,3.4:", type=("build", "run")) - depends_on("py-setuptools@40.6:", when="@2.7:", type="build") + depends_on("py-setuptools@40.6:60.8,60.9.1:", when="@37:", type="build") + depends_on("py-setuptools@40.6:", when="@2.7:36", type="build") depends_on("py-setuptools@18.5:", when="@2.2:2.6", type="build") depends_on("py-setuptools@11.3:", when="@:2.1", type="build") depends_on("py-setuptools-rust@0.11.4:", when="@3.4:", type=("build", "run")) + depends_on("rust@1.48:", when="@38:", type="build") + depends_on("rust@1.41:", when="@3.4.5:", type="build") + depends_on("rust@1.45:", when="@3.4.3:3.4.4", type="build") depends_on("py-cffi@1.12:", when="@3.3:", type=("build", "run")) depends_on("py-cffi@1.8:1.11.2,1.11.4:", when="@2.5:3.2", type=("build", "run")) From 94435778ba821b5d91a8398b13f2df0302a1c102 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Mon, 26 Sep 2022 19:25:43 +0200 Subject: [PATCH 223/241] py-datalad-metalad: add 0.4.5 and new package py-datalad-metadata-model (#32811) * py-datalad-metalad: add 0.4.5 * Update var/spack/repos/builtin/packages/py-datalad-metalad/package.py Co-authored-by: Adam J. Stewart Co-authored-by: Adam J. Stewart --- .../py-datalad-metadata-model/package.py | 24 +++++++++++++++++++ .../packages/py-datalad-metalad/package.py | 8 +++++++ 2 files changed, 32 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-datalad-metadata-model/package.py diff --git a/var/spack/repos/builtin/packages/py-datalad-metadata-model/package.py b/var/spack/repos/builtin/packages/py-datalad-metadata-model/package.py new file mode 100644 index 00000000000..76a13252322 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-datalad-metadata-model/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class PyDataladMetadataModel(PythonPackage): + """This software implements the metadata model that datalad and + datalad-metalad will use in the future (datalad-metalad>=0.3.0) to handle + metadata.""" + + homepage = "https://github.com/datalad/metadata-model" + pypi = "datalad-metadata-model/datalad-metadata-model-0.3.5.tar.gz" + + version("0.3.5", sha256="992241adef6d36ad7f9a83d8c7762d887fbec7111e06a2bd12fd8816e6ee739a") + + depends_on("python@3.7:", type=("build", "run")) + depends_on("py-setuptools@42:", type=("build")) + + depends_on("py-appdirs", type=("build", "run")) + depends_on("py-click", type=("build", "run")) + depends_on("py-fasteners", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-datalad-metalad/package.py b/var/spack/repos/builtin/packages/py-datalad-metalad/package.py index 6dc4a75dda0..6b714d5601c 100644 --- a/var/spack/repos/builtin/packages/py-datalad-metalad/package.py +++ b/var/spack/repos/builtin/packages/py-datalad-metalad/package.py @@ -12,8 +12,16 @@ class PyDataladMetalad(PythonPackage): homepage = "https://github.com/datalad/datalad-metalad/" pypi = "datalad_metalad/datalad_metalad-0.2.1.tar.gz" + version("0.4.5", sha256="db1a0675e3c67fe2d9093e7098b142534f49588dea5ee048ee962422a9927fbf") version("0.2.1", sha256="70fe423136a168f7630b3e0ff1951e776d61e7d5f36670bddf24299ac0870285") + depends_on("python@3.5:", when="@0.3:", type=("build")) + depends_on("py-setuptools@30.3:", type=("build")) depends_on("py-setuptools", type=("build")) + + depends_on("py-six", when="@0.3.1:", type=("build", "run")) + depends_on("py-datalad@0.15.6:", when="@0.3:", type=("build", "run")) depends_on("py-datalad@0.12.3:", type=("build", "run")) + depends_on("py-datalad-metadata-model@0.3.5:0.3", type=("build", "run")) + depends_on("py-pyyaml", when="@0.3.1:", type=("build", "run")) depends_on("git-annex", type=("run")) From b6be1f352055303f8e730f906dbf60ff8d6fb873 Mon Sep 17 00:00:00 2001 From: Valentin Volkl Date: Mon, 26 Sep 2022 19:26:05 +0200 Subject: [PATCH 224/241] hoppet: fix typo in hep tag (#32820) --- var/spack/repos/builtin/packages/hoppet/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/hoppet/package.py b/var/spack/repos/builtin/packages/hoppet/package.py index ef63eb536e9..f16ff565b91 100644 --- a/var/spack/repos/builtin/packages/hoppet/package.py +++ b/var/spack/repos/builtin/packages/hoppet/package.py @@ -13,7 +13,7 @@ class Hoppet(AutotoolsPackage): homepage = "https://hoppet.hepforge.org/" url = "https://github.com/gavinsalam/hoppet/archive/refs/tags/hoppet-1.2.0.tar.gz" - tags = ["heps"] + tags = ["hep"] maintainers = ["haralmha"] version("1.2.0", sha256="6e00eb56a4f922d03dfceba7b389a3aaf51f277afa46d7b634d661e0797e8898") From a077b2b0ee55dd0679882ea17d39050008195bb0 Mon Sep 17 00:00:00 2001 From: Laurent Aphecetche Date: Mon, 26 Sep 2022 20:02:10 +0200 Subject: [PATCH 225/241] vmc: add versions 1-1-p1 and 2-0 (#32703) * vmc: add versions 1-1-p1 and 2-0 * Update var/spack/repos/builtin/packages/vmc/package.py Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> --- var/spack/repos/builtin/packages/vmc/package.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/var/spack/repos/builtin/packages/vmc/package.py b/var/spack/repos/builtin/packages/vmc/package.py index 06bdbcbf02b..00f47780c13 100644 --- a/var/spack/repos/builtin/packages/vmc/package.py +++ b/var/spack/repos/builtin/packages/vmc/package.py @@ -15,6 +15,8 @@ class Vmc(CMakePackage): maintainers = ["ChristianTackeGSI"] + version("2-0", sha256="9f4c31d93eeb0e10eca22d6450bb9a1070cbe25e99eaf7e74d4e191612102d9c") + version("1-1-p1", sha256="dc0d4d16c81899c0167bcd13b97e39d9ff2817d20552f61e1c0bce357ac69ee5") version("1-0-p3", sha256="46385776d7639fdf23df2a2a5426fb9a9a69836d237c1259b1a22bfb649cb47e") version("1-0-p2", sha256="46b4c82b0b7516502e88db920732fc78f06f0393ac740a17816f2eb53f80e75e") version("1-0-p1", sha256="4a20515f7de426797955cec4a271958b07afbaa330770eeefb5805c882ad9749") @@ -22,3 +24,7 @@ class Vmc(CMakePackage): patch("dict_fixes_101.patch", when="@1-0-p1") depends_on("root@6.18.04: ~vmc") + + def setup_build_environment(self, env): + if self.spec.satisfies("platform=darwin"): + env.unset("MACOSX_DEPLOYMENT_TARGET") From f64ca7bc6a0fd9ec4d4d317d1fbadbba50760d6f Mon Sep 17 00:00:00 2001 From: Jean Luca Bez Date: Mon, 26 Sep 2022 11:21:45 -0700 Subject: [PATCH 226/241] hdf5-vol-async: fix path needed for h5bench (#32805) * fix path needed for h5bench * Update var/spack/repos/builtin/packages/hdf5-vol-async/package.py Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> --- var/spack/repos/builtin/packages/hdf5-vol-async/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/hdf5-vol-async/package.py b/var/spack/repos/builtin/packages/hdf5-vol-async/package.py index 9ed03c225c2..ee682023d5b 100644 --- a/var/spack/repos/builtin/packages/hdf5-vol-async/package.py +++ b/var/spack/repos/builtin/packages/hdf5-vol-async/package.py @@ -27,7 +27,7 @@ class Hdf5VolAsync(CMakePackage): depends_on("hdf5@1.13: +mpi +threadsafe") def setup_run_environment(self, env): - env.set("HDF5_PLUGIN_PATH", self.spec.prefix) + env.set("HDF5_PLUGIN_PATH", self.spec.prefix.lib) vol_connector = "async under_vol=0;under_info=[]" env.set("HDF5_VOL_CONNECTOR", vol_connector) env.set("MPICH_MAX_THREAD_SAFETY", "multiple") From b192e3492c272e26ae43ec4d8ab0bff6123e1d28 Mon Sep 17 00:00:00 2001 From: iarspider Date: Mon, 26 Sep 2022 22:02:06 +0200 Subject: [PATCH 227/241] Add checksum for py-nbconvert 7.0.0, py-mistune 2.0.4 (#32817) --- .../builtin/packages/py-mistune/package.py | 1 + .../builtin/packages/py-nbconvert/package.py | 68 ++++++++++--------- 2 files changed, 37 insertions(+), 32 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-mistune/package.py b/var/spack/repos/builtin/packages/py-mistune/package.py index 089815e1d93..b67b90a3890 100644 --- a/var/spack/repos/builtin/packages/py-mistune/package.py +++ b/var/spack/repos/builtin/packages/py-mistune/package.py @@ -12,6 +12,7 @@ class PyMistune(PythonPackage): homepage = "https://github.com/lepture/mistune" pypi = "mistune/mistune-2.0.2.tar.gz" + version("2.0.4", sha256="9ee0a66053e2267aba772c71e06891fa8f1af6d4b01d5e84e267b4570d4d9808") version("2.0.2", sha256="6fc88c3cb49dba8b16687b41725e661cf85784c12e8974a29b9d336dd596c3a1") version("0.8.4", sha256="59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e") version("0.8.3", sha256="bc10c33bfdcaa4e749b779f62f60d6e12f8215c46a292d05e486b869ae306619") diff --git a/var/spack/repos/builtin/packages/py-nbconvert/package.py b/var/spack/repos/builtin/packages/py-nbconvert/package.py index 1d0a7c83832..50dac8c12ef 100644 --- a/var/spack/repos/builtin/packages/py-nbconvert/package.py +++ b/var/spack/repos/builtin/packages/py-nbconvert/package.py @@ -13,6 +13,7 @@ class PyNbconvert(PythonPackage): homepage = "https://github.com/jupyter/nbconvert" pypi = "nbconvert/nbconvert-6.0.1.tar.gz" + version("7.0.0", sha256="fd1e361da30e30e4c5a5ae89f7cae95ca2a4d4407389672473312249a7ba0060") version("6.5.1", sha256="2c01f3f518fee736c3d3f999dd20e0a16febba17a0d60a3b0fd28fbdec14115d") version("6.5.0", sha256="223e46e27abe8596b8aed54301fadbba433b7ffea8196a68fd7b1ff509eee99d") version("6.4.2", sha256="eb2803db18f6facce6bf3b01b684fe47907994bd156d15eaccdf011e3d7f8164") @@ -28,46 +29,49 @@ class PyNbconvert(PythonPackage): variant("serve", default=True, description="Include a webserver") depends_on("python@2.7:2.8,3.3:", type=("build", "run")) - depends_on("python@2.7:2.8,3.5:", type=("build", "run"), when="@5:") - depends_on("python@3.6:", type=("build", "run"), when="@6:") - depends_on("python@3.7:", type=("build", "run"), when="@6.2.0:") - depends_on("py-setuptools", type=("build", "run"), when="@5:") - depends_on("py-setuptools@60:", type=("build", "run"), when="@6.5:") - depends_on("py-beautifulsoup4", type=("build", "run"), when="@6.4.4:") - depends_on("py-bleach", type=("build", "run"), when="@5:") - depends_on("py-defusedxml", type=("build", "run"), when="@5:") - depends_on("py-entrypoints", type=("build", "run")) - depends_on("py-entrypoints@0.2.2:", type=("build", "run"), when="@5:") + depends_on("python@2.7:2.8,3.5:", when="@5:", type=("build", "run")) + depends_on("python@3.6:", when="@6:", type=("build", "run")) + depends_on("python@3.7:", when="@6.2.0:", type=("build", "run")) + depends_on("py-setuptools", when="@5:6", type=("build", "run")) + depends_on("py-setuptools@60:", when="@6.5:6", type=("build", "run")) + depends_on("py-hatchling@0.25:", when="@7:", type="build") + depends_on("py-lxml", when="@6.5.1:", type=("build", "run")) + depends_on("py-beautifulsoup4", when="@6.4.4:", type=("build", "run")) + depends_on("py-bleach", when="@5:", type=("build", "run")) + depends_on("py-defusedxml", when="@5:", type=("build", "run")) + depends_on("py-importlib-metadata@3.6:", when="@7: ^python@:3.9", type=("build", "run")) depends_on("py-jinja2", type=("build", "run")) - depends_on("py-jinja2@2.4:", type=("build", "run"), when="@5:") - depends_on("py-jinja2@3:", type=("build", "run"), when="@6.5:") + depends_on("py-jinja2@2.4:", when="@5:", type=("build", "run")) + depends_on("py-jinja2@3:", when="@6.5:", type=("build", "run")) depends_on("py-jupyter-core", type=("build", "run")) - depends_on("py-jupyter-core@4.7:", type=("build", "run"), when="@6.5:") - depends_on("py-jupyterlab-pygments", type=("build", "run"), when="@6:") - depends_on("py-markupsafe@2:", type=("build", "run"), when="@6.4.5:") - depends_on("py-mistune@0.8.1:1", type=("build", "run")) - depends_on("py-nbclient@0.5", type=("build", "run"), when="@6:6.4") - depends_on("py-nbclient@0.5:", type=("build", "run"), when="@6.5:") + depends_on("py-jupyter-core@4.7:", when="@6.5:", type=("build", "run")) + depends_on("py-jupyterlab-pygments", when="@6:", type=("build", "run")) + depends_on("py-markupsafe@2:", when="@6.4.5:", type=("build", "run")) + depends_on("py-mistune@0.8.1:1", when="@:6", type=("build", "run")) + depends_on("py-mistune@2.0.3:2", when="@7:", type=("build", "run")) + depends_on("py-nbclient@0.5", when="@6:6.4", type=("build", "run")) + depends_on("py-nbclient@0.5:", when="@6.5:", type=("build", "run")) depends_on("py-nbformat", type=("build", "run")) - depends_on("py-nbformat@4.4:", type=("build", "run"), when="@5:") - depends_on("py-nbformat@5.1:", type=("build", "run"), when="@6.5:") - depends_on("py-packaging", type=("build", "run"), when="@6.5:") - depends_on("py-pandocfilters@1.4.1:", type=("build", "run"), when="@5:") - depends_on("py-pycurl", type="build", when="^python@:2.7.8") + depends_on("py-nbformat@4.4:", when="@5:", type=("build", "run")) + depends_on("py-nbformat@5.1:", when="@6.5:", type=("build", "run")) + depends_on("py-packaging", when="@6.5:", type=("build", "run")) + depends_on("py-pandocfilters@1.4.1:", when="@5:", type=("build", "run")) depends_on("py-pygments", type=("build", "run")) - depends_on("py-pygments@2.4.1:", type=("build", "run"), when="@6:") - depends_on("py-testpath", type=("build", "run"), when="@5:6.4") - depends_on("py-tinycss2", type=("build", "run"), when="@6.5:") + depends_on("py-pygments@2.4.1:", when="@6:", type=("build", "run")) + depends_on("py-tinycss2", when="@6.5:", type=("build", "run")) depends_on("py-traitlets", type=("build", "run")) - depends_on("py-traitlets@4.2:", type=("build", "run"), when="@5:") - depends_on("py-traitlets@5:", type=("build", "run"), when="@6.2.0:") - depends_on("py-lxml", type=("build", "run"), when="@6.5.1:") + depends_on("py-traitlets@4.2:", when="@5:", type=("build", "run")) + depends_on("py-traitlets@5:", when="@6.2.0:", type=("build", "run")) + depends_on("py-entrypoints", when="@:6", type=("build", "run")) + depends_on("py-entrypoints@0.2.2:", when="@5:6", type=("build", "run")) + depends_on("py-pycurl", when="^python@:2.7.8", type="build") + depends_on("py-testpath", when="@5:6.4", type=("build", "run")) # https://bugs.gentoo.org/720870 # https://github.com/jupyter/nbconvert/pull/937 - depends_on("py-tornado@6.1:", type=("build", "run"), when="@6.5: +serve") - depends_on("py-tornado@4.0:", type=("build", "run"), when="@5.4.1: +serve") - depends_on("py-tornado@4.0:5", type=("build", "run"), when="@:5.4.0 +serve") + depends_on("py-tornado@6.1:", when="@6.5: +serve", type=("build", "run")) + depends_on("py-tornado@4.0:", when="@5.4.1: +serve", type=("build", "run")) + depends_on("py-tornado@4.0:5", when="@:5.4.0 +serve", type=("build", "run")) def patch(self): # We bundle this with the spack package so that the installer From de9fc038f7e2622f3b55b2fb1d9724058724eeca Mon Sep 17 00:00:00 2001 From: Pak Lui Date: Mon, 26 Sep 2022 14:26:58 -0700 Subject: [PATCH 228/241] add ROCmPackage to OSU Micro Benchmarks (#32806) --- .../builtin/packages/osu-micro-benchmarks/package.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py b/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py index ad0fc1d7941..6840dfe076e 100644 --- a/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py +++ b/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py @@ -8,7 +8,7 @@ from spack.package import * -class OsuMicroBenchmarks(AutotoolsPackage, CudaPackage): +class OsuMicroBenchmarks(AutotoolsPackage, CudaPackage, ROCmPackage): """The Ohio MicroBenchmark suite is a collection of independent MPI message passing performance microbenchmarks developed and written at The Ohio State University. It includes traditional benchmarks and @@ -48,6 +48,12 @@ def configure_args(self): if "none" not in cuda_arch: config_args.append("NVCCFLAGS=" + " ".join(self.cuda_flags(cuda_arch))) + if "+rocm" in spec: + config_args.extend(["--enable-rocm", "--with-rocm=%s" % spec["hip"].prefix]) + rocm_arch = spec.variants["amdgpu_target"].value + if "none" not in rocm_arch: + config_args.append("HCC_AMDGPU_TARGET=" + " ".join(self.hip_flags(rocm_arch))) + # librt not available on darwin (and not required) if not sys.platform == "darwin": config_args.append("LDFLAGS=-lrt") From 777271da18c0e2319dcfc653bc6c65254d7f5b4a Mon Sep 17 00:00:00 2001 From: Chris White Date: Mon, 26 Sep 2022 15:47:45 -0700 Subject: [PATCH 229/241] improve lexing error (#32832) --- lib/spack/spack/parse.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/spack/spack/parse.py b/lib/spack/spack/parse.py index 10f460e776d..61260bc8372 100644 --- a/lib/spack/spack/parse.py +++ b/lib/spack/spack/parse.py @@ -78,7 +78,9 @@ def lex_word(self, word): break if remainder and not remainder_used: - raise LexError("Invalid character", word, word.index(remainder)) + msg = "Invalid character, '{0}',".format(remainder[0]) + msg += " in '{0}' at index {1}".format(word, word.index(remainder)) + raise LexError(msg, word, word.index(remainder)) return tokens From 43ceff4193ebb5ab12594f1ace3d39b61e95393c Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 26 Sep 2022 18:21:52 -0500 Subject: [PATCH 230/241] py-libclang: add v14 (#32824) --- .../builtin/packages/py-libclang/package.py | 29 +++++-------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/var/spack/repos/builtin/packages/py-libclang/package.py b/var/spack/repos/builtin/packages/py-libclang/package.py index 2a7a921053b..76893e9b03f 100644 --- a/var/spack/repos/builtin/packages/py-libclang/package.py +++ b/var/spack/repos/builtin/packages/py-libclang/package.py @@ -14,32 +14,19 @@ class PyLibclang(PythonPackage): url = "https://github.com/sighingnow/libclang/archive/refs/tags/llvm-11.1.0.tar.gz" + version("14.0.6", sha256="3666679d9f23270a230a4d4dae49bc48fc2515c272ff5855b2618e23daa50100") + version("14.0.1", sha256="58a255381d6360aca8d4978c8bb2e6be55ac0bdd18bc10372da0febe0a7f9472") version("13.0.0", sha256="2638e81fe3976f4ad487dc6094dacf306dcb161e11b0830391d58d1ae1e05c80") - version( - "11.1.0", - sha256="0b53b3c237725e193c4d2bbbe096f1a1da0f0e5cd528f2892e4dfed3c8fe9506", - ) - version( - "11.0.1", - sha256="739ae984a4a4043ae4d3b4db74597a36a8e46b6f0cbd139c7d2703faf40c5390", - ) - version( - "11.0.0", - sha256="aec204414ea412e4d4e041b0bf48123881338ac723bbcfa948f2a1b92a2428b5", - ) - version( - "10.0.1", - sha256="c15d8f97c4d0f3d4501e8b2625b343569fd92690afebe6260a2c64463d713995", - ) - version( - "9.0.1", - sha256="fc84e7bf3b0eb4f11c496d6603f111e3d8cda97094d6c9c512361371f1b76f1c", - ) + version("11.1.0", sha256="0b53b3c237725e193c4d2bbbe096f1a1da0f0e5cd528f2892e4dfed3c8fe9506") + version("11.0.1", sha256="739ae984a4a4043ae4d3b4db74597a36a8e46b6f0cbd139c7d2703faf40c5390") + version("11.0.0", sha256="aec204414ea412e4d4e041b0bf48123881338ac723bbcfa948f2a1b92a2428b5") + version("10.0.1", sha256="c15d8f97c4d0f3d4501e8b2625b343569fd92690afebe6260a2c64463d713995") + version("9.0.1", sha256="fc84e7bf3b0eb4f11c496d6603f111e3d8cda97094d6c9c512361371f1b76f1c") depends_on("python@2.7:2.8,3.3:", type=("build", "run")) depends_on("py-setuptools", type="build") - for ver in ["9", "10", "11", "13"]: + for ver in ["9", "10", "11", "13", "14"]: depends_on("llvm+clang@" + ver, when="@" + ver, type="build") def patch(self): From 9f271fa38834b3e40daa9468024991aaaed0ba34 Mon Sep 17 00:00:00 2001 From: iarspider Date: Tue, 27 Sep 2022 13:53:57 +0200 Subject: [PATCH 231/241] hwloc: replace 'shared' variant with 'libs' (#32093) * hwloc: replace 'shared' variant with 'libs' * PEP-8 * Fix gpi-space --- var/spack/repos/builtin/packages/gpi-space/package.py | 2 +- var/spack/repos/builtin/packages/hwloc/package.py | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/var/spack/repos/builtin/packages/gpi-space/package.py b/var/spack/repos/builtin/packages/gpi-space/package.py index c5f9be68a51..97dc85159f1 100644 --- a/var/spack/repos/builtin/packages/gpi-space/package.py +++ b/var/spack/repos/builtin/packages/gpi-space/package.py @@ -58,7 +58,7 @@ class GpiSpace(CMakePackage): "+atomic +chrono +coroutine +context +date_time +filesystem +iostreams" " +program_options +random +regex +serialization +test +timer cxxstd=14" ) - depends_on("hwloc@1.10: +libudev ~shared ~libxml2") + depends_on("hwloc@1.10: +libudev ~libxml2 libs=static") depends_on("libssh2@1.7:") depends_on("openssl@0.9:") depends_on("gpi-2@1.3.2:1.3.3 fabrics=infiniband", when="network=infiniband") diff --git a/var/spack/repos/builtin/packages/hwloc/package.py b/var/spack/repos/builtin/packages/hwloc/package.py index 8f6b15308c1..b35daa20746 100644 --- a/var/spack/repos/builtin/packages/hwloc/package.py +++ b/var/spack/repos/builtin/packages/hwloc/package.py @@ -74,7 +74,13 @@ class Hwloc(AutotoolsPackage): default=(sys.platform != "darwin"), description="Support analyzing devices on PCI bus", ) - variant("shared", default=True, description="Build shared libraries") + variant( + "libs", + default="shared,static", + values=("shared", "static"), + multi=True, + description="Build shared libs, static libs or both", + ) variant( "cairo", default=False, description="Enable the Cairo back-end of hwloc's lstopo command" ) @@ -178,7 +184,7 @@ def configure_args(self): args.extend(self.enable_or_disable("libxml2")) args.extend(self.enable_or_disable("libudev")) args.extend(self.enable_or_disable("pci")) - args.extend(self.enable_or_disable("shared")) + args.extend(self.enable_or_disable("libs")) if "+cuda" in self.spec: args.append("--with-cuda={0}".format(self.spec["cuda"].prefix)) From ae627150b2f188efb867f256299397c68a8060b2 Mon Sep 17 00:00:00 2001 From: Stefano Bertone Date: Tue, 27 Sep 2022 11:32:16 -0400 Subject: [PATCH 232/241] cgal: depends on for older versions (#32802) * cgal: depends on for older versions * Update package.py Co-authored-by: steo85it --- var/spack/repos/builtin/packages/cgal/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/cgal/package.py b/var/spack/repos/builtin/packages/cgal/package.py index 0adcd6fe71b..c49b0d240e0 100644 --- a/var/spack/repos/builtin/packages/cgal/package.py +++ b/var/spack/repos/builtin/packages/cgal/package.py @@ -52,7 +52,8 @@ class Cgal(CMakePackage): depends_on("cmake@2.8.11:", type="build") # Essential Third Party Libraries - depends_on("boost+exception+math+random+container") + depends_on("boost+exception+math+random+container", when="@5.0:") + depends_on("boost+thread+system", when="@:5.0") depends_on("gmp") depends_on("mpfr") From b7a43bf5150dae4b0636d1755be39f8138404b2e Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Tue, 27 Sep 2022 17:38:02 +0200 Subject: [PATCH 233/241] py-fastjsonschema: add 2.16.2 (#32845) --- var/spack/repos/builtin/packages/py-fastjsonschema/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-fastjsonschema/package.py b/var/spack/repos/builtin/packages/py-fastjsonschema/package.py index b02fafeb811..7f48e6ecbd5 100644 --- a/var/spack/repos/builtin/packages/py-fastjsonschema/package.py +++ b/var/spack/repos/builtin/packages/py-fastjsonschema/package.py @@ -13,6 +13,7 @@ class PyFastjsonschema(PythonPackage): homepage = "https://github.com/horejsek/python-fastjsonschema" pypi = "fastjsonschema/fastjsonschema-2.15.1.tar.gz" + version("2.16.2", sha256="01e366f25d9047816fe3d288cbfc3e10541daf0af2044763f3d0ade42476da18") version("2.15.1", sha256="671f36d225b3493629b5e789428660109528f373cf4b8a22bac6fa2f8191c2d2") depends_on("py-setuptools", type="build") From 608d20446d5cbc285a1a74d571391adcacd73778 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Tue, 27 Sep 2022 17:39:08 +0200 Subject: [PATCH 234/241] py-fasteners: add 0.18 (#32843) --- var/spack/repos/builtin/packages/py-fasteners/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-fasteners/package.py b/var/spack/repos/builtin/packages/py-fasteners/package.py index 6b7e24429b4..3184dc93067 100644 --- a/var/spack/repos/builtin/packages/py-fasteners/package.py +++ b/var/spack/repos/builtin/packages/py-fasteners/package.py @@ -12,6 +12,7 @@ class PyFasteners(PythonPackage): homepage = "https://github.com/harlowja/fasteners" pypi = "fasteners/fasteners-0.14.1.tar.gz" + version("0.18", sha256="cb7c13ef91e0c7e4fe4af38ecaf6b904ec3f5ce0dda06d34924b6b74b869d953") version("0.17.3", sha256="a9a42a208573d4074c77d041447336cf4e3c1389a256fd3e113ef59cf29b7980") version("0.16.3", sha256="b1ab4e5adfbc28681ce44b3024421c4f567e705cc3963c732bf1cba3348307de") version("0.14.1", sha256="427c76773fe036ddfa41e57d89086ea03111bbac57c55fc55f3006d027107e18") From 086dc66653b3735ed023efd9134235959434de6f Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Tue, 27 Sep 2022 17:41:59 +0200 Subject: [PATCH 235/241] py-exifread: add 3.0.0 (#32841) --- var/spack/repos/builtin/packages/py-exifread/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-exifread/package.py b/var/spack/repos/builtin/packages/py-exifread/package.py index 7b4484b9f22..d5cbb86e1a7 100644 --- a/var/spack/repos/builtin/packages/py-exifread/package.py +++ b/var/spack/repos/builtin/packages/py-exifread/package.py @@ -12,6 +12,7 @@ class PyExifread(PythonPackage): homepage = "https://github.com/ianare/exif-py" pypi = "ExifRead/ExifRead-2.3.2.tar.gz" + version("3.0.0", sha256="0ac5a364169dbdf2bd62f94f5c073970ab6694a3166177f5e448b10c943e2ca4") version("2.3.2", sha256="a0f74af5040168d3883bbc980efe26d06c89f026dc86ba28eb34107662d51766") depends_on("py-setuptools", type="build") From 0c49ee939b25fe841abbaddabe72935c751d5f43 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Tue, 27 Sep 2022 17:42:58 +0200 Subject: [PATCH 236/241] py-executing: add 1.1.0 (#32840) --- var/spack/repos/builtin/packages/py-executing/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/py-executing/package.py b/var/spack/repos/builtin/packages/py-executing/package.py index 3e14ee972f1..9e4ab81c504 100644 --- a/var/spack/repos/builtin/packages/py-executing/package.py +++ b/var/spack/repos/builtin/packages/py-executing/package.py @@ -12,6 +12,7 @@ class PyExecuting(PythonPackage): homepage = "https://github.com/alexmojaki/executing" pypi = "executing/executing-0.8.2.tar.gz" + version("1.1.0", sha256="2c2c07d1ec4b2d8f9676b25170f1d8445c0ee2eb78901afb075a4b8d83608c6a") version("0.8.2", sha256="c23bf42e9a7b9b212f185b1b2c3c91feb895963378887bb10e64a2e612ec0023") depends_on("py-setuptools", type="build") From 9c1d6da1113304cdf83b77977a594504e617760b Mon Sep 17 00:00:00 2001 From: Michael Kuhn Date: Tue, 27 Sep 2022 17:45:28 +0200 Subject: [PATCH 237/241] strace: add 5.19 (#32844) --- var/spack/repos/builtin/packages/strace/package.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/strace/package.py b/var/spack/repos/builtin/packages/strace/package.py index 08e4c3afd4f..78fc4bd0f1f 100644 --- a/var/spack/repos/builtin/packages/strace/package.py +++ b/var/spack/repos/builtin/packages/strace/package.py @@ -15,8 +15,9 @@ class Strace(AutotoolsPackage): homepage = "https://strace.io" url = "https://github.com/strace/strace/releases/download/v5.2/strace-5.2.tar.xz" - conflicts("platform=darwin", msg="strace runs only on Linux.") + maintainers = ["michaelkuhn"] + version("5.19", sha256="aa3dc1c8e60e4f6ff3d396514aa247f3c7bf719d8a8dc4dd4fa793be786beca3") version("5.17", sha256="5fb298dbd1331fd1e1bc94c5c32395860d376101b87c6cd3d1ba9f9aa15c161f") version("5.12", sha256="29171edf9d252f89c988a4c340dfdec662f458cb8c63d85431d64bab5911e7c4") version("5.11", sha256="ffe340b10c145a0f85734271e9cce56457d23f21a7ea5931ab32f8cf4e793879") @@ -33,6 +34,8 @@ class Strace(AutotoolsPackage): version("5.0", sha256="3b7ad77eb2b81dc6078046a9cc56eed5242b67b63748e7fc28f7c2daf4e647da") version("4.21", sha256="5c7688db44073e94c59a5627744e5699454419824cc8166e8bcfd7ec58375c37") + conflicts("platform=darwin", msg="strace runs only on Linux.") + def configure_args(self): args = [] if self.spec.target.family == "aarch64": From 384ff70b0d3754f548c1cd241c6d49d03734f356 Mon Sep 17 00:00:00 2001 From: Laurent Aphecetche Date: Tue, 27 Sep 2022 18:26:22 +0200 Subject: [PATCH 238/241] root: add arrow variant (#32837) --- var/spack/repos/builtin/packages/root/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py index 5de2917a642..c2854a2363e 100644 --- a/var/spack/repos/builtin/packages/root/package.py +++ b/var/spack/repos/builtin/packages/root/package.py @@ -109,6 +109,7 @@ class Root(CMakePackage): # options are or are not supported, and why. variant("aqua", default=False, description="Enable Aqua interface") + variant("arrow", default=False, description="Enable Arrow interface") variant("davix", default=True, description="Compile with external Davix") variant("dcache", default=False, description="Enable support for dCache") variant("emacs", default=False, description="Enable Emacs support") @@ -229,6 +230,7 @@ class Root(CMakePackage): depends_on("py-numpy", type=("build", "run"), when="@6.20.00:6.20.05 +python") # Optional dependencies + depends_on("arrow", when="+arrow") depends_on("davix @0.7.1:", when="+davix") depends_on("dcap", when="+dcache") depends_on("cfitsio", when="+fits") @@ -465,7 +467,7 @@ def cmake_args(self): define("afdsmrgd", False), define("afs", False), define("alien", False), - define("arrow", False), + define_from_variant("arrow"), define("asimage", True), define("astiff", True), define("bonjour", False), From f0ec6a994c6047d0f134ce592b27c63a73aa54ed Mon Sep 17 00:00:00 2001 From: Philipp Edelmann Date: Tue, 27 Sep 2022 10:44:19 -0600 Subject: [PATCH 239/241] pgplot: install rbg.txt and change PGPLOT_DIR (#32775) The file rbg.txt is needed for many PGPLOT application, such as the MESA stellar evolution code. This change installs the file to the PGPLOT_DIR, where the library expects it. PGPLOT_DIR was previously set to the prefix itself, which is an odd place to install rgb.txt. This commit changes it to lib/pgplot5, following the convention used by Debian. Co-authored-by: Philipp Edelmann --- var/spack/repos/builtin/packages/pgplot/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/pgplot/package.py b/var/spack/repos/builtin/packages/pgplot/package.py index f62ffd74a74..9425aacba62 100644 --- a/var/spack/repos/builtin/packages/pgplot/package.py +++ b/var/spack/repos/builtin/packages/pgplot/package.py @@ -161,6 +161,8 @@ def install(self, spec, prefix): install("libpgplot.a", prefix.lib) install("libpgplot.so", prefix.lib) install("grfont.dat", prefix.include) + mkdirp(prefix.lib + "/pgplot5") + install("rgb.txt", prefix.lib + "/pgplot5") @property def libs(self): @@ -169,4 +171,4 @@ def libs(self): def setup_run_environment(self, env): env.set("PGPLOT_FONT", self.prefix.include + "/grfont.dat") - env.set("PGPLOT_DIR", self.prefix) + env.set("PGPLOT_DIR", self.prefix.lib + "/pgplot5") From cb9f174a7f663e259907bfdf57b3109c158b6614 Mon Sep 17 00:00:00 2001 From: snehring <7978778+snehring@users.noreply.github.com> Date: Tue, 27 Sep 2022 11:46:01 -0500 Subject: [PATCH 240/241] zziplib: adding some missing build deps (#32833) * zziplib: adding some missing build deps --- var/spack/repos/builtin/packages/zziplib/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/var/spack/repos/builtin/packages/zziplib/package.py b/var/spack/repos/builtin/packages/zziplib/package.py index ce98d4c3fc5..0238ed82d65 100644 --- a/var/spack/repos/builtin/packages/zziplib/package.py +++ b/var/spack/repos/builtin/packages/zziplib/package.py @@ -30,6 +30,8 @@ class Zziplib(AutotoolsPackage): # see zzip/CMakeLists.txt depends_on("coreutils", type="build", when="@0.13.71:") depends_on("pkgconfig", type="build", when="@0.13.71:") + depends_on("zip", type="build", when="@0.13.71:") + depends_on("unzip", type="build", when="@0.13.71:") @when("@0.13.71:") def autoreconf(self, spec, prefix): From 67717c569edd5ade22309e3f87dd2b550db237e6 Mon Sep 17 00:00:00 2001 From: Alex Hornburg Date: Tue, 27 Sep 2022 20:32:42 +0100 Subject: [PATCH 241/241] shell.py: fix undefined variable in csh deactivate (#32816) This commit fixes #27027. The root cause of the issue is that the `SPACK_OLD_PROMPT` variable was evaluated in string interpolation regardless of whether the guard condition above evaluates to true or false. This commit uses the `eval` keyword to defer evaluation until the command is executed. Co-authored-by: Alexander Hornburg --- lib/spack/spack/environment/shell.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/spack/spack/environment/shell.py b/lib/spack/spack/environment/shell.py index 42d997ec961..50a4bcf657b 100644 --- a/lib/spack/spack/environment/shell.py +++ b/lib/spack/spack/environment/shell.py @@ -65,8 +65,8 @@ def deactivate_header(shell): if shell == "csh": cmds += "unsetenv SPACK_ENV;\n" cmds += "if ( $?SPACK_OLD_PROMPT ) " - cmds += 'set prompt="$SPACK_OLD_PROMPT" && ' - cmds += "unsetenv SPACK_OLD_PROMPT;\n" + cmds += ' eval \'set prompt="$SPACK_OLD_PROMPT" &&' + cmds += " unsetenv SPACK_OLD_PROMPT';\n" cmds += "unalias despacktivate;\n" elif shell == "fish": cmds += "set -e SPACK_ENV;\n"