diff options
author | Matt Thompson <matthew.thompson@nasa.gov> | 2024-08-05 17:00:23 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-05 14:00:23 -0700 |
commit | 54d17ae0443e0684dd41cc7dceedb81f2d2edc3b (patch) | |
tree | 88d78bc0088d68097523467780877ecb1736735d | |
parent | 9ea103f94e10ae568875f8cb857226a59cf9b90c (diff) | |
download | spack-54d17ae0443e0684dd41cc7dceedb81f2d2edc3b.tar.gz spack-54d17ae0443e0684dd41cc7dceedb81f2d2edc3b.tar.bz2 spack-54d17ae0443e0684dd41cc7dceedb81f2d2edc3b.tar.xz spack-54d17ae0443e0684dd41cc7dceedb81f2d2edc3b.zip |
Update GFE packages (#45194)
* Update GFE packages
* Approve compiler depends_on
6 files changed, 43 insertions, 7 deletions
diff --git a/var/spack/repos/builtin/packages/fargparse/package.py b/var/spack/repos/builtin/packages/fargparse/package.py index 09b1ee0ca1..bd1e3d5906 100644 --- a/var/spack/repos/builtin/packages/fargparse/package.py +++ b/var/spack/repos/builtin/packages/fargparse/package.py @@ -20,6 +20,7 @@ class Fargparse(CMakePackage): version("develop", branch="develop") version("main", branch="main") + version("1.8.0", sha256="37108bd3c65d892d8c24611ce4d8e5451767e4afe81445fde67eab652178dd01") version("1.7.0", sha256="9889e7eca9c020b742787fba2be0ba16edcc3fcf52929261ccb7d09996a35f89") version("1.6.0", sha256="055a0af44f50c302f8f20a8bcf3d26c5bbeacf5222cdbaa5b19da4cff56eb9c0") version("1.5.0", sha256="1c16ead5f1bacb9c2f33aab99a0889c68c1a1ece754ddc3fd340f10a0d5da2f7") @@ -30,7 +31,7 @@ class Fargparse(CMakePackage): version("1.2.0", sha256="4d14584d2bd5406267e3eacd35b50548dd9e408526465e89514690774217da70") version("1.1.2", sha256="89f63f181ccf183ca6212aee7ed7e39d510e3df938b0b16d487897ac9a61647f") - depends_on("fortran", type="build") # generated + depends_on("fortran", type="build") depends_on("gftl-shared") depends_on("gftl") diff --git a/var/spack/repos/builtin/packages/gftl-shared/package.py b/var/spack/repos/builtin/packages/gftl-shared/package.py index d03d0dac26..6933b97ec5 100644 --- a/var/spack/repos/builtin/packages/gftl-shared/package.py +++ b/var/spack/repos/builtin/packages/gftl-shared/package.py @@ -25,6 +25,7 @@ class GftlShared(CMakePackage): version("main", branch="main") + version("1.9.0", sha256="a3291ce61b512fe88628cc074b02363c2ba3081e7b453371089121988482dd6f") version("1.8.0", sha256="3450161508c573ea053b2a23cdbf2a1d6fd6fdb78c162d31fc0019da0f8dd03c") version("1.7.0", sha256="8ba567133fcee6b93bc71f61b3bb2053b4b07c6d78f6ad98a04dfc40aa478de7") version("1.6.1", sha256="0e3e1e0c7e0c3f1576e296b3b199dcae4bbaad055fc8fe929c34e52d4b07b02c") @@ -41,7 +42,7 @@ class GftlShared(CMakePackage): version("1.3.1", sha256="a71e164108847f32f37da505f604fc2a50f392a4fcdf9a7cfe8eaf775bed64d4") version("1.3.0", sha256="979b00c4d531e701bf4346f662e3e4cc865124a97ca958637a53201d66d4ee43") - depends_on("fortran", type="build") # generated + depends_on("fortran", type="build") depends_on("m4", type=("build", "run")) depends_on("cmake@3.12:", type="build") diff --git a/var/spack/repos/builtin/packages/gftl/package.py b/var/spack/repos/builtin/packages/gftl/package.py index 888b39094c..207b297126 100644 --- a/var/spack/repos/builtin/packages/gftl/package.py +++ b/var/spack/repos/builtin/packages/gftl/package.py @@ -39,6 +39,7 @@ class Gftl(CMakePackage): version("develop", branch="develop") version("main", branch="main") + version("1.14.0", sha256="bf8e3ba3f708ea327c7eb1a5bd1afdce41358c6df1a323aba0f73575c25d5fc8") version("1.13.0", sha256="d8ef4bca5fb67e63dcd69e5377a0cef8336b00178a97450e79010552000d0a52") version("1.12.0", sha256="b50e17cb2109372819b3ee676e6e61fd3a517dc4c1ea293937c8a83f03b0cbd6") version("1.11.0", sha256="b28935bc077749823b1505ad8c1208360a5ba7e961d7593c17a33b11455a32a4") @@ -56,7 +57,7 @@ class Gftl(CMakePackage): version("1.5.5", sha256="67ff8210f08e9f2ee6ba23c8c26336f948420db5db7fc054c3a662e9017f18a3") version("1.5.4", sha256="4c53e932ba8d82616b65500f403a33a14957b9266b5e931e2448f1f005990750") - depends_on("fortran", type="build") # generated + depends_on("fortran", type="build") depends_on("cmake@3.12:", type="build") depends_on("m4", type="build") diff --git a/var/spack/repos/builtin/packages/pflogger/package.py b/var/spack/repos/builtin/packages/pflogger/package.py index 1bd3660660..7271a1b946 100644 --- a/var/spack/repos/builtin/packages/pflogger/package.py +++ b/var/spack/repos/builtin/packages/pflogger/package.py @@ -38,7 +38,7 @@ class Pflogger(CMakePackage): version("1.8.0", sha256="28ce9ac8af374253b6dfd8f53f8fd271c787d432645ec9bc6a5a01601dc56e19") version("1.6.1", sha256="114a15daa7994ab7d4eea463c3a9b8fe7df3da7d07a0004b5c40cf155e374916") - depends_on("fortran", type="build") # generated + depends_on("fortran", type="build") variant( "build_type", diff --git a/var/spack/repos/builtin/packages/pfunit/package.py b/var/spack/repos/builtin/packages/pfunit/package.py index 679788bffc..0ad50d8a48 100644 --- a/var/spack/repos/builtin/packages/pfunit/package.py +++ b/var/spack/repos/builtin/packages/pfunit/package.py @@ -19,6 +19,7 @@ class Pfunit(CMakePackage): maintainers("mathomp4", "tclune") + version("4.10.0", sha256="ee5e899dfb786bac46e3629b272d120920bafdb7f6a677980fc345f6acda0f99") version("4.9.0", sha256="caea019f623d4e02dd3e8442cee88e6087b4c431a2628e9ec2de55b527b51ab6") version("4.8.0", sha256="b5c66ab949fd23bee5c3b4d93069254f7ea40decb8d21f622fd6aa45ee68ef10") version("4.7.4", sha256="ac850e33ea99c283f503f75293bf238b4b601885d7adba333066e6185dad5c04") @@ -77,8 +78,8 @@ class Pfunit(CMakePackage): deprecated=True, ) - depends_on("c", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type="build") + depends_on("fortran", type="build") variant("mpi", default=False, description="Enable MPI") variant( @@ -116,6 +117,7 @@ class Pfunit(CMakePackage): depends_on("mpi", when="+mpi") depends_on("esmf", when="+esmf") depends_on("m4", when="@4.1.5:", type="build") + depends_on("fargparse@1.8.0:", when="@4.10.0:") depends_on("fargparse", when="@4:") depends_on("cmake@3.12:", type="build") diff --git a/var/spack/repos/builtin/packages/yafyaml/package.py b/var/spack/repos/builtin/packages/yafyaml/package.py index 5d2f4e3ff2..996b57fa1e 100644 --- a/var/spack/repos/builtin/packages/yafyaml/package.py +++ b/var/spack/repos/builtin/packages/yafyaml/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os +import re from spack.package import * @@ -30,6 +31,7 @@ class Yafyaml(CMakePackage): version("main", branch="main") + version("1.4.0", sha256="2a415087eb26d291ff40da4430d668c702d22601ed52a72d001140d97372bc7d") version("1.3.0", sha256="a3882210b2620485471e3337d995edc1e653b49d9caaa902a43293826a61a635") version("1.2.0", sha256="912a4248bbf2e2e84cf3e36f2ae8483bee6b32d2eaa4406dd2100ad660c9bfc6") version("1.1.0", sha256="f0be81afe643adc2452055e5485f09cdb509a8fdd5a4ec5547b0c31dd22b4830") @@ -49,7 +51,7 @@ class Yafyaml(CMakePackage): version("0.5.1", sha256="7019460314e388b2d556db75d5eb734237a18494f79b921613addb96b7b7ce2f") version("0.5.0", sha256="8ac5d41b1020e9311ac87f50dbd61b9f3e3188f3599ce463ad59650208fdb8ad") - depends_on("fortran", type="build") # generated + depends_on("fortran", type="build") depends_on("gftl-shared") depends_on("gftl") @@ -62,6 +64,35 @@ class Yafyaml(CMakePackage): msg="yaFyaml only works with the Fujitsu compiler from 1.3.0 onwards", ) + # GCC 13.3 and higher only work with yafyaml 1.4.0 onwards + # First we can check if the spec is gcc@13.3... + conflicts("%gcc@13.3:", when="@:1.3.0", msg="GCC 13.3+ only works with yafyaml 1.4.0 onwards") + + # ...but if it is not (say apple-clang with gfortran as a fc), there is + # no easy way to check this. So we hijack flag_handler to raise an + # exception if we detect gfortran 13.3 or 14. + # NOTE: This will only error out at install time, so `spack spec` will + # not catch this. + def flag_handler(self, name, flags): + # We need to match any compiler that has a name of gfortran or gfortran-* + pattern = re.compile(r"gfortran(-\d+)?$") + + if pattern.search(self.compiler.fc): + gfortran_version = spack.compiler.get_compiler_version_output( + self.compiler.fc, "-dumpfullversion" + ).strip() + + # gfortran_version is now a string like "13.3.0". We now need to just capture + # the major and minor version numbers + gfortran_version = ".".join(gfortran_version.split(".")[:2]) + + if self.spec.satisfies("@:1.3.0") and (float(gfortran_version) >= 13.3): + raise InstallError( + f"Your gfortran version {gfortran_version} is not compatible with " + f"yafyaml 1.3.0 and below. Use yafyaml 1.4.0 or higher." + ) + return None, None, None + variant( "build_type", default="Release", |