summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Thompson <matthew.thompson@nasa.gov>2024-08-05 17:00:23 -0400
committerGitHub <noreply@github.com>2024-08-05 14:00:23 -0700
commit54d17ae0443e0684dd41cc7dceedb81f2d2edc3b (patch)
tree88d78bc0088d68097523467780877ecb1736735d
parent9ea103f94e10ae568875f8cb857226a59cf9b90c (diff)
downloadspack-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
-rw-r--r--var/spack/repos/builtin/packages/fargparse/package.py3
-rw-r--r--var/spack/repos/builtin/packages/gftl-shared/package.py3
-rw-r--r--var/spack/repos/builtin/packages/gftl/package.py3
-rw-r--r--var/spack/repos/builtin/packages/pflogger/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pfunit/package.py6
-rw-r--r--var/spack/repos/builtin/packages/yafyaml/package.py33
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",