diff --git a/recipes/fdb/5.19/compilers.yaml b/recipes/fdb/5.19/compilers.yaml index 4c4d99c..2d4078f 100644 --- a/recipes/fdb/5.19/compilers.yaml +++ b/recipes/fdb/5.19/compilers.yaml @@ -1,5 +1,2 @@ -bootstrap: - spec: gcc@11.3 gcc: - specs: - - gcc@13.3 + version: "13.4" diff --git a/recipes/fdb/5.19/config.yaml b/recipes/fdb/5.19/config.yaml index d4e523e..b9cd9dc 100644 --- a/recipes/fdb/5.19/config.yaml +++ b/recipes/fdb/5.19/config.yaml @@ -1,6 +1,10 @@ name: fdb store: /user-environment spack: - commit: releases/v0.23 repo: https://github.com/spack/spack.git -description: MCH FDB uenv + commit: releases/v1.1 + packages: + repo: https://github.com/spack/spack-packages.git + commit: releases/v2025.11 +description: MCH FDB uenv +version: 2 diff --git a/recipes/fdb/5.19/environments.yaml b/recipes/fdb/5.19/environments.yaml index 3d6b70f..c6ad1f7 100644 --- a/recipes/fdb/5.19/environments.yaml +++ b/recipes/fdb/5.19/environments.yaml @@ -1,9 +1,6 @@ fdb: - compiler: - - toolchain: gcc - spec: gcc@13.3 + compiler: [gcc] unify: when_possible - mpi: null packages: [] specs: - fdb@=5.19.2 backends=lustre diff --git a/recipes/fdb/5.19/packages.yaml b/recipes/fdb/5.19/packages.yaml index ecfb121..19be468 100644 --- a/recipes/fdb/5.19/packages.yaml +++ b/recipes/fdb/5.19/packages.yaml @@ -3,4 +3,8 @@ packages: buildable: false externals: - spec: lustre@2.15 - prefix: /usr \ No newline at end of file + prefix: /usr + gmp: + require: '@6.2.1' + autoconf: + require: '@2.69' diff --git a/recipes/fdb/5.19/repo/packages/ecbuild/package.py b/recipes/fdb/5.19/repo/packages/ecbuild/package.py index 4b80d5e..11bab7c 100644 --- a/recipes/fdb/5.19/repo/packages/ecbuild/package.py +++ b/recipes/fdb/5.19/repo/packages/ecbuild/package.py @@ -1,8 +1,9 @@ -# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. +# Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.cmake import CMakePackage + from spack.package import * @@ -14,7 +15,7 @@ class Ecbuild(CMakePackage): url = "https://github.com/ecmwf/ecbuild/archive/refs/tags/3.6.1.tar.gz" list_url = "https://github.com/ecmwf/ecbuild/tags" - maintainers("skosukhin", "climbfuji", "victoria-cherkas", "dominichofer") + maintainers("climbfuji", "victoria-cherkas") license("Apache-2.0") @@ -22,8 +23,10 @@ class Ecbuild(CMakePackage): version("3.13.0", sha256="7be83510e7209c61273121bcf817780597c3afa41a5129bfccc281f0df1ffda1") version("3.12.0", sha256="70c7fc9b17f736a3312167c2c36d13b3b5833a255fe2b168b2886ad7c743ffdf") version("3.11.0", sha256="38a96bdeb38feb65446b6f95b35492232abd188c41b8a28fd128f9f88e00b05d") - version("3.10.0", sha256="7065e1725584b507517cbfc456299ff588e20adf37bc6210ce89fb65a1ad08d0") - version("3.9.0", sha256="8ad20169a7d917d6ac81a7ca0d1b11616e2aeb82c7782f6ae5b768603a3e000a") + version("3.10.0", sha256="7065e1725584b507517cbfc456299ff588e20adf37bc6210ce89fb65a1ad08d0") + version("3.9.1", sha256="48c2dbd342865049cc39afd7fe886fce9ce162105ca72b8aef9a09c21d9655ba") + version("3.9.0", sha256="8ad20169a7d917d6ac81a7ca0d1b11616e2aeb82c7782f6ae5b768603a3e000a") + version("3.8.5", sha256="aa0c44cab0fffec4c0b3542e91ebcc736b3d41b68a068d30c023ec0df5f93425") version("3.7.2", sha256="7a2d192cef1e53dc5431a688b2e316251b017d25808190faed485903594a3fb9") version("3.6.5", sha256="98bff3d3c269f973f4bfbe29b4de834cd1d43f15b1c8d1941ee2bfe15e3d4f7f") version("3.6.1", sha256="796ccceeb7af01938c2f74eab0724b228e9bf1978e32484aa3e227510f69ac59") @@ -33,6 +36,7 @@ class Ecbuild(CMakePackage): depends_on("fortran", type="build") # generated depends_on("cmake@3.11:", type=("build", "run")) + depends_on("cmake@3.18:", type=("build", "run"), when="@3.11:") # See https://github.com/ecmwf/ecbuild/issues/35 depends_on("cmake@:3.19", type=("build", "run"), when="@:3.6.1") diff --git a/recipes/fdb/5.19/repo/packages/eccodes/package.py b/recipes/fdb/5.19/repo/packages/eccodes/package.py index 96eb14a..423b030 100644 --- a/recipes/fdb/5.19/repo/packages/eccodes/package.py +++ b/recipes/fdb/5.19/repo/packages/eccodes/package.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.cmake import CMakePackage from spack.package import * @@ -51,12 +52,20 @@ class Eccodes(CMakePackage): version("develop", branch="develop") version("2.46.0", sha256="7d959253d5e34aeb16caa14d4889ac06486d19821216743142733a32ee7b4935") + version("2.45.0", sha256="6c84b39d7cc5e3b8330eeabe880f3e337f9b2ee1ebce20ea03eecd785f6c39a1") version("2.42.0", sha256="60371b357cb011dee546db2eabace5b7e27f0f87d3ea4a5adde7891371b3c128") - version("2.39.5", git="https://github.com/ecmwf/eccodes.git", tag="2.39.5") + version("2.41.0", sha256="a1467842e11ed7f62a2f5cc1982e04eec62398f4962e6ba03ace7646f32cf270") + version("2.40.0", sha256="f58d5d7390fce86c62b26d76b9bc3c4d7d9a6cf2e5f8145d1d598089195e51ff") + version( + "2.39.5", + git="https://github.com/ecmwf/eccodes.git", + tag="2.39.5", + commit="ccfac25b50894b9929a100fad2e967e5c15e50bc", + ) version("2.39.0", sha256="0c4d746700acc49af9c878925f1b26bdd42443ff7c2d7c676deb2babb6847afb") version("2.38.3", sha256="fa7b7ffb22973ed1dfbeb208c042a67a805ab070f1288a0f1f0707a1020d1c81") - version("2.38.2", sha256="b4ce8bd144ac957c7650e7013d3502573120502158cd03b8915bab83d3c52e9d") version("2.38.0", sha256="96a21fbe8ca3aa4c31bb71bbd378b7fd130cbc0f7a477567d70e66a000ff68d9") + version("2.36.4", sha256="adec6188dfd1d6ef71d86736d66f6b26486c188c3f37e8dcc016dc713ae482e6") version("2.34.0", sha256="3cd208c8ddad132789662cf8f67a9405514bfefcacac403c0d8c84507f303aba") version("2.33.0", sha256="bdcec8ce63654ec6803400c507f01220a9aa403a45fa6b5bdff7fdcc44fd7daf") version("2.32.1", sha256="ad2ac1bf36577b1d35c4a771b4d174a06f522a1e5ef6c1f5e53a795fb624863e") @@ -102,9 +111,9 @@ class Eccodes(CMakePackage): variant("geo", default=False, description="Enable eckit::geo") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", when="+fortran", type="build") depends_on("netcdf-c", when="+netcdf") # Cannot be built with openjpeg@2.0.x. @@ -134,13 +143,13 @@ class Eccodes(CMakePackage): conflicts( "+netcdf", when="~tools", - msg="Cannot enable the NetCDF conversion tool " "when the command line tools are disabled", + msg="Cannot enable the NetCDF conversion tool when the command line tools are disabled", ) conflicts( "~tools", when="@:2.18.0", - msg="The command line tools can be disabled " "only starting version 2.19.0", + msg="The command line tools can be disabled only starting version 2.19.0", ) for center, definitions in _definitions.items(): diff --git a/recipes/fdb/5.19/repo/packages/eckit/package.py b/recipes/fdb/5.19/repo/packages/eckit/package.py index 2be4198..cf433a1 100644 --- a/recipes/fdb/5.19/repo/packages/eckit/package.py +++ b/recipes/fdb/5.19/repo/packages/eckit/package.py @@ -1,10 +1,11 @@ -# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. +# Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os +from spack_repo.builtin.build_systems.cmake import CMakePackage + from spack.package import * @@ -17,7 +18,7 @@ class Eckit(CMakePackage): url = "https://github.com/ecmwf/eckit/archive/refs/tags/1.16.0.tar.gz" list_url = "https://github.com/ecmwf/eckit/tags" - maintainers("skosukhin", "climbfuji", "victoria-cherkas", "dominichofer") + maintainers("climbfuji", "victoria-cherkas") license("Apache-2.0") @@ -27,8 +28,10 @@ class Eckit(CMakePackage): version("1.32.2", sha256="f2940e99f1550119497418221e4c5073eb9c3ea776b15a4f56236ef4438a1210") version("1.31.4", sha256="045ebd9aaecf2773dc8c82f4226022776576cb0d911a76f8d1d069c97e9530c8") version("1.30.0", sha256="1f58360dedfaa285a6b8087916768e6d12406e9fda2b6ba0a5c875f7a3db5398") + version("1.29.3", sha256="5afb6ac5bd95d68b7b0fdf42bdfe21370515b8e9ef7b3db91a89e021aa9133f2") version("1.28.8", sha256="4bd4fbb971ec9b53a64d47f40336c130b37349850ae82114d5c04f393ea70d23") version("1.28.3", sha256="24b2b8d9869849a646aa3fd9d95e4181a92358cd837d95b22e25d718a6ad7738") + version("1.28.2", sha256="d122db8bb5bcaadf3256a24f0f90d9bcedad35ef8f25e7eccd8c93c506dbdd24") version("1.27.0", sha256="499f3f8c9aec8d3f42369e3ceedc98b2b09ac04993cfd38dfdf7d38931703fe7") version("1.25.2", sha256="a611d26d50a9f2133b75100567a890eb0e0a48a96669b8c8475baf9d6f359397") version("1.24.5", sha256="2fd74e04c20a59f9e13635828d9da880e18f8a2cb7fd3bfd0201e07071d6ec41") @@ -41,9 +44,6 @@ class Eckit(CMakePackage): version("1.16.3", sha256="d2aae7d8030e2ce39e5d04e36dd6aa739f3c8dfffe32c61c2a3127c36b573485") version("1.16.0", sha256="9e09161ea6955df693d3c9ac70131985eaf7cf24a9fa4d6263661c6814ebbaf1") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - variant( "build_type", default="RelWithDebInfo", @@ -61,10 +61,19 @@ class Eckit(CMakePackage): values=any_combination_of("eigen", "armadillo", "mkl", "lapack"), description="List of supported linear algebra backends", ) + # There is probably a more elegant way to handle the differences + # in valid compression backends, but this works ... variant( "compression", values=any_combination_of("bzip2", "snappy", "lz4", "aec"), description="List of supported compression backends", + when="@:1.31", + ) + variant( + "compression", + values=any_combination_of("bzip2", "snappy", "lz4", "aec", "zip"), + description="List of supported compression backends", + when="@1.32:", ) variant("xxhash", default=True, description="Enable xxHash support for hashing") variant("ssl", default=False, description="Enable MD4 and SHA1 support with OpenSSL") @@ -73,11 +82,14 @@ class Eckit(CMakePackage): variant( "unicode", default=True, - description="Enable support for Unicode characters in Yaml/JSON" "parsers", + description="Enable support for Unicode characters in Yaml/JSON parsers", ) variant("aio", default=True, description="Enable asynchronous IO") variant("fismahigh", default=False, description="Apply patching for FISMA-high compliance") + depends_on("c", type="build") + depends_on("cxx", type="build") + # Build issues with cmake 3.20, not sure about 3.21 depends_on("cmake@3.12:3.19,3.22:", type="build") depends_on("ecbuild@3.5:", when="@:1.20.99", type="build") @@ -102,6 +114,7 @@ class Eckit(CMakePackage): depends_on("snappy", when="compression=snappy") depends_on("lz4", when="compression=lz4") depends_on("libaec", when="compression=aec") + depends_on("libzip", when="compression=zip") depends_on("openssl", when="+ssl") @@ -117,8 +130,7 @@ class Eckit(CMakePackage): conflicts( "linalg=lapack", when="linalg=mkl", - msg='"linalg=lapack" is implied when "linalg=mkl" and ' - "must not be specified additionally", + msg='"linalg=lapack" is implied when "linalg=mkl" and must not be specified additionally', ) def cmake_args(self): @@ -146,6 +158,7 @@ def cmake_args(self): self.define("ENABLE_SNAPPY", "compression=snappy" in self.spec), self.define("ENABLE_LZ4", "compression=lz4" in self.spec), self.define("ENABLE_AEC", "compression=aec" in self.spec), + self.define("ENABLE_ZIP", "compression=zip" in self.spec), self.define_from_variant("ENABLE_XXHASH", "xxhash"), self.define_from_variant("ENABLE_SSL", "ssl"), self.define_from_variant("ENABLE_CURL", "curl"), @@ -191,7 +204,7 @@ def cmake_args(self): return args - def setup_build_environment(self, env): + def setup_build_environment(self, env: EnvironmentModifications) -> None: # Bug fix for macOS - cmake's find_package doesn't add "libtinfo.dylib" to the # ncurses libraries, but the ncurses pkgconfig explicitly sets it. We need to # add the correct spec['ncurses'].libs.ld_flags to LDFLAGS to compile eckit diff --git a/recipes/fdb/5.19/repo/packages/fdb/package.py b/recipes/fdb/5.19/repo/packages/fdb/package.py index deeb462..b579a9a 100644 --- a/recipes/fdb/5.19/repo/packages/fdb/package.py +++ b/recipes/fdb/5.19/repo/packages/fdb/package.py @@ -1,8 +1,9 @@ -# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. +# Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.cmake import CMakePackage + from spack.package import * @@ -15,7 +16,7 @@ class Fdb(CMakePackage): git = "https://github.com/ecmwf/fdb.git" list_url = "https://github.com/ecmwf/fdb/tags" - maintainers("skosukhin", "victoria-cherkas", "dominichofer") + maintainers("victoria-cherkas") license("Apache-2.0") @@ -34,9 +35,6 @@ class Fdb(CMakePackage): version("5.10.8", sha256="6a0db8f98e13c035098dd6ea2d7559f883664cbf9cba8143749539122ac46099") version("5.7.8", sha256="6adac23c0d1de54aafb3c663d077b85d0f804724596623b381ff15ea4a835f60") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - variant("tools", default=True, description="Build the command line tools") variant( "backends", @@ -53,6 +51,9 @@ class Fdb(CMakePackage): description="List of supported backends", ) + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("cmake@3.12:", type="build") depends_on("ecbuild@3.4:", type="build") depends_on("ecbuild@3.7:", type="build", when="@5.11.6:") diff --git a/recipes/fdb/5.19/repo/packages/gribjump/package.py b/recipes/fdb/5.19/repo/packages/gribjump/package.py index 51609eb..948bbd8 100644 --- a/recipes/fdb/5.19/repo/packages/gribjump/package.py +++ b/recipes/fdb/5.19/repo/packages/gribjump/package.py @@ -1,13 +1,14 @@ -# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. +# Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.cmake import CMakePackage + from spack.package import * class Gribjump(CMakePackage): - """GribJump is a C++ library for extracting subsets of data from GRIB files, + """GribJump is a C++ library for extracting subsets of data from GRIB files, particularly data archived in the FDB """ @@ -19,13 +20,13 @@ class Gribjump(CMakePackage): maintainers("cosunae") license("Apache-2.0") - + version("0.10.3", sha256="8001f8a0e4b03664134ea42612d22d6499e098d2063b12182030986895689f6c") version("0.10.2", sha256="c1635c1f902daa244592b60c9b1a81375b467409635bd2cbfc6993d32554bd3d") version("0.10.0", sha256="04a6c7322e585acb7e432e74d68f073ab584a42af9dcb2b4b97f17aebf17d07f") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("cmake@3.12:", type="build") depends_on("ecbuild", type="build") diff --git a/recipes/fdb/5.19/repo/packages/libaec/package.py b/recipes/fdb/5.19/repo/packages/libaec/package.py index d06555b..da94cf8 100644 --- a/recipes/fdb/5.19/repo/packages/libaec/package.py +++ b/recipes/fdb/5.19/repo/packages/libaec/package.py @@ -1,8 +1,9 @@ -# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. +# Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.cmake import CMakePackage + from spack.package import * diff --git a/recipes/fdb/5.19/repo/packages/metkit/package.py b/recipes/fdb/5.19/repo/packages/metkit/package.py index 3ebfd80..cb8857e 100644 --- a/recipes/fdb/5.19/repo/packages/metkit/package.py +++ b/recipes/fdb/5.19/repo/packages/metkit/package.py @@ -1,8 +1,9 @@ -# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. +# Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.cmake import CMakePackage + from spack.package import * @@ -15,12 +16,15 @@ class Metkit(CMakePackage): url = "https://github.com/ecmwf/metkit/archive/refs/tags/1.7.0.tar.gz" list_url = "https://github.com/ecmwf/metkit/tags" - maintainers("skosukhin", "victoria-cherkas", "dominichofer") + maintainers("victoria-cherkas") license("Apache-2.0") version("1.17.0", sha256="0fb4cae8cf440f6589b426cbddf8fd37434bc59e178b34df6b7633bfdbb47de3") - version("1.16.3-levelist", sha256="90bd8ca8be1c954f8d6af44b5a416c7357a37bcc9247fa3cdec8ec5cb7c411d0") + version( + "1.16.3-levelist", + sha256="90bd8ca8be1c954f8d6af44b5a416c7357a37bcc9247fa3cdec8ec5cb7c411d0", + ) version("1.16.3", sha256="b2da2ce50aac68365506c7fb8661889df61a01e53ca7e8f699fe9d3015d44974") version("1.16.2", sha256="30a65a2cc14942e7ce64ea5539a1b6b85ecce336811014aba70e1f4f9e651f68") version("1.16.1", sha256="0520cba65afeaede6553c8b62941e67c0f88123602e19d0898538a52e2b0f522") @@ -30,11 +34,6 @@ class Metkit(CMakePackage): "1.15.2-levelist", sha256="25cebe7610949848671131ee3681e3e7e01d376e7b74e1a269872b9fba15ab54", ) - version( - "9999.99", - sha256="d63181aecd6e3128609145e381b214b81b79072b414313351e7d3914377eda13", - url="https://github.com/ecmwf/metkit/archive/refs/tags/levelist-double.tar.gz", - ) version("1.14.1", sha256="996cc1d4b569c73b20490bfccbd8ee09d78a94dd9c15e643528d7d9a360f3d2e") version("1.11.22", sha256="e2a2ea1532f9e187e37b807dbf35cd09325b2aef29bd5117203d57ba2e65a0d6") version("1.11.5", sha256="717e0d92499d7a1b49338c3762d829aa83c75f8095dc9e7cdc7f49c209bb847b") @@ -43,14 +42,13 @@ class Metkit(CMakePackage): version("1.9.2", sha256="35d5f67196197cc06e5c2afc6d1354981e7c85a441df79a2fbd774e0c343b0b4") version("1.7.0", sha256="8c34f6d8ea5381bd1bcfb22462349d03e1592e67d8137e76b3cecf134a9d338c") - - depends_on("c", type="build") - depends_on("cxx", type="build") # generated - variant("tools", default=True, description="Build the command line tools") variant("grib", default=True, description="Enable support for GRIB format") variant("odb", default=False, description="Enable support for ODB data") + depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cmake@3.12:", type="build") depends_on("ecbuild@3.4:", type="build")