From 241b4624bc23aad0f9f0ae5377f6219bf2acbb88 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Mon, 3 Oct 2022 21:49:04 +0200 Subject: FEniCSx: Updates for 0.5.1 (#32665) * Updates for DOLFINx 0.5.1 and associated packages * xtensor needed on anything less than main * Switch back to Python 3.7 minimum. * Might be good to point out in our README how to fix Python version? * Fix basix, xtensor dep * Add numba feature * Fix checksum * Make slepc optional Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> --- .../repos/builtin/packages/fenics-basix/package.py | 38 ++++++++++++------ .../builtin/packages/fenics-dolfinx/package.py | 46 ++++++++++++++++------ .../repos/builtin/packages/fenics-ufcx/package.py | 14 ++++--- .../builtin/packages/py-fenics-basix/package.py | 30 +++++++++----- .../builtin/packages/py-fenics-dolfinx/package.py | 36 +++++++++++------ .../builtin/packages/py-fenics-ffcx/package.py | 31 ++++++++++----- .../builtin/packages/py-fenics-ufl/package.py | 3 +- 7 files changed, 136 insertions(+), 62 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/fenics-basix/package.py b/var/spack/repos/builtin/packages/fenics-basix/package.py index f47dcb361e..9e8d64944b 100644 --- a/var/spack/repos/builtin/packages/fenics-basix/package.py +++ b/var/spack/repos/builtin/packages/fenics-basix/package.py @@ -7,19 +7,39 @@ from spack.package import * class FenicsBasix(CMakePackage): - """FEniCS element and quadrature runtime""" + """Basix is a finite element definition and tabulation runtime library""" homepage = "https://github.com/FEniCS/basix" url = "https://github.com/FEniCS/basix/archive/v0.1.0.tar.gz" git = "https://github.com/FEniCS/basix.git" - maintainers = ["mscroggs", "chrisrichardson", "garth-wells"] + maintainers = ["mscroggs", "chrisrichardson", "garth-wells", "jhale"] 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") + version( + "0.3.0", + sha256="9b148fd2a5485c94011fc6ca977ebdef0e51782a62b3654fc044f35b60e2bd07", + deprecated=True, + ) + version( + "0.2.0", + sha256="e1ec537737adb283717060221635092474e3f2b5b5ba79dfac74aa496bec2fcb", + deprecated=True, + ) + version( + "0.1.0", + sha256="2ab41fe6ad4f6c42f01b17a6e7c39debb4e0ae61c334d1caebee78b741bca4e7", + deprecated=True, + ) + + depends_on("cmake@3.19:", type="build") + depends_on("blas") + depends_on("lapack") + + depends_on("xtensor@0.23.10:", when="@:0.4") + depends_on("xtl@0.7.2:", when="@:0.4") + depends_on("xtensor-blas@0.19.1:", when="@:0.3") conflicts( "%gcc@:9.10", when="@0.5.0:", msg="fenics-basix requires GCC-10 or newer for C++20 support" @@ -30,14 +50,6 @@ class FenicsBasix(CMakePackage): msg="fenics-basix requires Clang-10 or newer for C++20 support", ) - depends_on("cmake@3.18:", type="build") - 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 ee821d18ae..a5cd62edc1 100644 --- a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py +++ b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py @@ -12,14 +12,27 @@ class FenicsDolfinx(CMakePackage): homepage = "https://github.com/FEniCS/dolfinx" git = "https://github.com/FEniCS/dolfinx.git" url = "https://github.com/FEniCS/dolfinx/archive/v0.1.0.tar.gz" - maintainers = ["chrisrichardson", "garth-wells", "nate-sime"] + maintainers = ["chrisrichardson", "garth-wells", "nate-sime", "jhale"] version("main", branch="main") + version("0.5.1", sha256="a570e3f6ed8e7c570e7e61d0e6fd44fa9dad2c5f8f1f48a6dc9ad22bacfbc973") 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") + version( + "0.3.0", + sha256="4857d0fcb44a4e9bf9eb298ba5377abdee17a7ad0327448bdd06cce73d109bed", + deprecated=True, + ) + version( + "0.2.0", + sha256="e6462fc3b9653d335c28096f9b0393f966c55a64c77ed64cc6c949406cb1f2c3", + deprecated=True, + ) + version( + "0.1.0", + sha256="0269379769b5b6d4d1864ded64402ecaea08054c2a5793c8685ea15a59af5e33", + deprecated=True, + ) conflicts( "%gcc@:9.10", @@ -45,7 +58,7 @@ class FenicsDolfinx(CMakePackage): variant("parmetis", default=False, when="@0.1.0:0.3.0", description="parmetis support") # Graph partitioner dependencies for @0.4.0: - depends_on("kahip@3.12:", when="partitioners=kahip @main") + depends_on("kahip@3.12:", when="partitioners=kahip @0.5.0:") depends_on("kahip@3.11", when="partitioners=kahip @:0.4.1") depends_on("parmetis", when="partitioners=parmetis") depends_on("scotch+mpi", when="partitioners=scotch") @@ -55,10 +68,10 @@ class FenicsDolfinx(CMakePackage): depends_on("parmetis", when="+parmetis") depends_on("scotch+mpi", when="@0.1.0:0.3.0") - variant("slepc", default=True, description="slepc support") + variant("slepc", default=False, description="slepc support") variant("adios2", default=False, description="adios2 support") - depends_on("cmake@3.18:", type="build") + depends_on("cmake@3.19:", type="build") depends_on("pkgconfig", type="build") depends_on("mpi") depends_on("hdf5+mpi") @@ -67,17 +80,18 @@ class FenicsDolfinx(CMakePackage): depends_on("petsc+mpi+shared") depends_on("petsc+mpi+shared@3.15.0:", when="@0.1.0") - depends_on("xtl@0.7.2:") - depends_on("xtensor@0.23.10:") + depends_on("xtensor@0.23.10:", when="@:0.5") + depends_on("xtl@0.7.2:", when="@:0.5") depends_on("slepc", when="+slepc") depends_on("adios2+mpi", when="+adios2") 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.5.0", when="@0.5.1:0.5") 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.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") @@ -88,7 +102,17 @@ class FenicsDolfinx(CMakePackage): depends_on("fenics-basix@0.2.0", when="@0.2.0") depends_on("fenics-basix@0.1.0", when="@0.1.0") - conflicts("%gcc@:8", msg="Improved C++17 support required") + 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", + ) + conflicts("%gcc@:8", msg="fenics-dolfinx requires GCC-9 or newer for improved C++17 support") root_cmakelists_dir = "cpp" diff --git a/var/spack/repos/builtin/packages/fenics-ufcx/package.py b/var/spack/repos/builtin/packages/fenics-ufcx/package.py index d376ea8115..ebf01405ee 100644 --- a/var/spack/repos/builtin/packages/fenics-ufcx/package.py +++ b/var/spack/repos/builtin/packages/fenics-ufcx/package.py @@ -7,18 +7,22 @@ from spack.package import * class FenicsUfcx(CMakePackage): - """FFCx provides the ufcx.h interface header for finite element kernels, - used by DOLFINx. ufcx.h can be installed from the FFCx repo without - making it dependent on Python. - """ + """FFCx provides the ufcx.h interface header for generated finite element + kernels, used by DOLFINx. ufcx.h can be installed from the FFCx repo + without a Python build or runtime dependancy.""" homepage = "https://github.com/FEniCS/ffcx" git = "https://github.com/FEniCS/ffcx.git" url = "https://github.com/FEniCS/ffcx/archive/v0.4.2.tar.gz" - maintainers = ["ma595"] + maintainers = ["ma595", "jhale"] version("main", branch="main") + version( + "0.5.0.post0", sha256="039908c9998b51ba53e5deb3a97016062c262f0a4285218644304f7d3cd35882" + ) version("0.5.0", sha256="3413409e5885e41e220f99e0f95cc817e94c4931143d1f700c6e0c5e1bfad1f6") version("0.4.2", sha256="3be6eef064d6ef907245db5b6cc15d4e603762e68b76e53e099935ca91ef1ee4") + depends_on("cmake@3.19:", type="build") + 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 4699a779c5..454d921b53 100644 --- a/var/spack/repos/builtin/packages/py-fenics-basix/package.py +++ b/var/spack/repos/builtin/packages/py-fenics-basix/package.py @@ -7,20 +7,31 @@ from spack.package import * class PyFenicsBasix(PythonPackage): - """Python basis evaluation library for Next generation FEniCS problem solving - environment""" + """Python interface to Basix, a finite element definition and tabulation runtime library""" homepage = "https://github.com/FEniCS/basix" url = "https://github.com/FEniCS/basix/archive/v0.1.0.tar.gz" git = "https://github.com/FEniCS/basix.git" - maintainers = ["chrisrichardson", "mscroggs", "garth-wells"] + maintainers = ["chrisrichardson", "mscroggs", "garth-wells", "jhale"] 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") + version( + "0.3.0", + sha256="9b148fd2a5485c94011fc6ca977ebdef0e51782a62b3654fc044f35b60e2bd07", + deprecated=True, + ) + version( + "0.2.0", + sha256="e1ec537737adb283717060221635092474e3f2b5b5ba79dfac74aa496bec2fcb", + deprecated=True, + ) + version( + "0.1.0", + sha256="2ab41fe6ad4f6c42f01b17a6e7c39debb4e0ae61c334d1caebee78b741bca4e7", + deprecated=True, + ) depends_on("fenics-basix@main", type=("build", "run"), when="@main") depends_on("fenics-basix@0.5.1", type=("build", "run"), when="@0.5.1") @@ -29,12 +40,11 @@ class PyFenicsBasix(PythonPackage): depends_on("fenics-basix@0.2.0", type=("build", "run"), when="@0.2.0") depends_on("fenics-basix@0.1.0", type=("build", "run"), when="@0.1.0") + depends_on("cmake@3.19:", type="build") depends_on("python@3.7:", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("cmake@3.18:", type="build") + depends_on("py-numpy", type=("build", "run")) 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") + depends_on("xtensor@0.23.10:", type="build", when="@:0.4") 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 3ac1b1d4a5..34b2224036 100644 --- a/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py +++ b/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py @@ -7,28 +7,41 @@ from spack.package import * class PyFenicsDolfinx(PythonPackage): - """Python interface library to Next generation FEniCS problem solving + """Python interface to the next generation FEniCS problem solving environment""" homepage = "https://github.com/FEniCS/dolfinx" url = "https://github.com/FEniCS/dolfinx/archive/v0.1.0.tar.gz" git = "https://github.com/FEniCS/dolfinx.git" - maintainers = ["chrisrichardson", "garth-wells", "nate-sime"] + maintainers = ["chrisrichardson", "garth-wells", "nate-sime", "jhale"] version("main", branch="main") + version("0.5.1", sha256="a570e3f6ed8e7c570e7e61d0e6fd44fa9dad2c5f8f1f48a6dc9ad22bacfbc973") 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") + version( + "0.3.0", + sha256="4857d0fcb44a4e9bf9eb298ba5377abdee17a7ad0327448bdd06cce73d109bed", + deprecated=True, + ) + version( + "0.2.0", + sha256="e6462fc3b9653d335c28096f9b0393f966c55a64c77ed64cc6c949406cb1f2c3", + deprecated=True, + ) + version( + "0.1.0", + sha256="0269379769b5b6d4d1864ded64402ecaea08054c2a5793c8685ea15a59af5e33", + deprecated=True, + ) - depends_on("cmake@3.18:", type="build") + depends_on("cmake@3.19:", type="build") depends_on("hdf5", type="build") depends_on("pkgconfig", type=("build", "run")) depends_on("python@3.7:", type=("build", "run")) - depends_on("py-setuptools", type="build") depends_on("fenics-dolfinx@main", when="@main") + depends_on("fenics-dolfinx@0.5.1", when="@0.5.1") 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") @@ -43,23 +56,24 @@ class PyFenicsDolfinx(PythonPackage): 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.5.0.post0", type="run", when="@0.5.0:0.5") 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.2.0", type="run", when="@0.5.0:0.5") 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") - depends_on("py-numpy@1.21:", type=("build", "run"), when="@main") + depends_on("py-numpy@1.21:", type=("build", "run"), when="@0.5.0:") depends_on("py-numpy", type=("build", "run")) depends_on("py-mpi4py", type=("build", "run")) depends_on("py-petsc4py", type=("build", "run")) depends_on("py-pybind11@2.6.2:", type=("build", "run")) - depends_on("xtensor@0.23.10:", type="build") + depends_on("xtensor@0.23.10:", type="build", when="@:0.5") depends_on("py-cffi", type="run") 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 7c0db9b5e2..413bc6bf9d 100644 --- a/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py +++ b/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py @@ -12,24 +12,37 @@ class PyFenicsFfcx(PythonPackage): homepage = "https://github.com/FEniCS/ffcx" url = "https://github.com/FEniCS/ffcx/archive/v0.1.0.tar.gz" git = "https://github.com/FEniCS/ffcx.git" - maintainers = ["chrisrichardson", "garth-wells"] + maintainers = ["chrisrichardson", "garth-wells", "jhale"] version("main", branch="main") - version("0.5.0", sha256="3413409e5885e41e220f99e0f95cc817e94c4931143d1f700c6e0c5e1bfad1f6") + version( + "0.5.0.post0", sha256="039908c9998b51ba53e5deb3a97016062c262f0a4285218644304f7d3cd35882" + ) version("0.4.2", sha256="3be6eef064d6ef907245db5b6cc15d4e603762e68b76e53e099935ca91ef1ee4") - version("0.3.0", sha256="33fa1a0cc5762f360033c25a99ec9462be933f8ba413279e35cd2c3b5c3e6096") - version("0.2.0", sha256="562a704163a6427e0341d267e69b8bf55d8f53d673829170b443191577e8d9b6") - version("0.1.0", sha256="98a47906146ac892fb4a358e04cbfd04066f12d0a4cdb505a6b08ff0b1a17e89") + version( + "0.3.0", + sha256="33fa1a0cc5762f360033c25a99ec9462be933f8ba413279e35cd2c3b5c3e6096", + deprecated=True, + ) + version( + "0.2.0", + sha256="f1dcd0973980706aba145274aeddeb771d2d730efcdb9b4be10adbe964f40d90", + deprecated=True, + ) + version( + "0.1.0", + sha256="98a47906146ac892fb4a358e04cbfd04066f12d0a4cdb505a6b08ff0b1a17e89", + deprecated=True, + ) depends_on("python@3.7:", type=("build", "run")) depends_on("py-setuptools@58:", type="build", when="@0.4:") - depends_on("py-setuptools", type="build") - depends_on("py-wheel", type="build", when="@0.4:") depends_on("py-cffi", type="run") + depends_on("py-numpy", 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.2.0", type="run", when="@0.5.0:0.5") 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") @@ -39,5 +52,3 @@ class PyFenicsFfcx(PythonPackage): depends_on("py-fenics-basix@0.3.0", type="run", when="@0.3.0") depends_on("py-fenics-basix@0.2.0", type="run", when="@0.2.0") depends_on("py-fenics-basix@0.1.0", type="run", when="@0.1.0") - - depends_on("py-numpy", type="run") diff --git a/var/spack/repos/builtin/packages/py-fenics-ufl/package.py b/var/spack/repos/builtin/packages/py-fenics-ufl/package.py index 799ac0405b..2fb581e308 100644 --- a/var/spack/repos/builtin/packages/py-fenics-ufl/package.py +++ b/var/spack/repos/builtin/packages/py-fenics-ufl/package.py @@ -16,7 +16,7 @@ class PyFenicsUfl(PythonPackage): homepage = "https://fenicsproject.org/" url = "https://github.com/FEniCS/ufl/archive/2019.1.0.tar.gz" git = "https://github.com/FEniCS/ufl.git" - maintainers = ["chrisrichardson", "garth-wells"] + maintainers = ["chrisrichardson", "garth-wells", "jhale"] version("main", branch="main") version("2022.2.0", sha256="d6e18e06df5d7a626c3138d49a543914d68186afb6159c4d1a7cd72b2a199b02") @@ -34,5 +34,4 @@ class PyFenicsUfl(PythonPackage): version("2016.2.0", tag="ufl-2016.2.0") depends_on("python@3.7:", type=("build", "run")) - depends_on("py-setuptools", type="build") depends_on("py-numpy", type=("build", "run")) -- cgit v1.2.3-60-g2f50