From e00c0d1d25a21a6d08928f3bca3038f0266700fa Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 18 Aug 2023 10:51:20 -0600 Subject: [PATCH 01/57] Add met@11.1.0 and update patch logic --- var/spack/repos/builtin/packages/met/package.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/var/spack/repos/builtin/packages/met/package.py b/var/spack/repos/builtin/packages/met/package.py index 522f085db2c86c..b15cda0d4428e5 100644 --- a/var/spack/repos/builtin/packages/met/package.py +++ b/var/spack/repos/builtin/packages/met/package.py @@ -16,8 +16,9 @@ class Met(AutotoolsPackage): homepage = "https://dtcenter.org/community-code/model-evaluation-tools-met" url = "https://github.com/dtcenter/MET/archive/refs/tags/v11.0.1.tar.gz" - maintainers('AlexanderRichert-NOAA') + maintainers("AlexanderRichert-NOAA", "climbfuji") + version("11.1.0", sha256="e2e371ae1f49185ff8bf08201b1a3e90864a467aa3369b04132d231213c3c9e5") version("11.0.2", sha256="f720d15e1d6c235c9a41fd97dbeb0eb1082fb8ae99e1bcdcb5e51be9b50bdfbf") version('11.0.1', sha256='48d471ad4634f1b969d9358c51925ce36bf0a1cec5312a6755203a4794b81646') version('11.0.0', sha256='648ebb54d07ca099680f4fc23b7ef5095c1a8ac5537c0a5d0e8587bf15991cff') @@ -61,10 +62,8 @@ class Met(AutotoolsPackage): patch('openmp_shape_patch.patch', when='@10.1.0') # https://github.com/JCSDA/spack-stack/issues/615 - # TODO(srherbener) Apple clang 14.x is getting pickier! When these updates are - # merged into the MET code base, the following two patches can be removed. - patch("apple-clang-string-cast-operator.patch", when="@10.1.1: %apple-clang@14:") - patch("apple-clang-no-register.patch", when="@10.1.1: %apple-clang@14:") + patch("apple-clang-string-cast-operator.patch", when="@10.1.1:11.0.99 %apple-clang@14:") + patch("apple-clang-no-register.patch", when="@10.1.1:11.0.99 %apple-clang@14:") def url_for_version(self, version): From a98058509a64747a1b64b263cf5aa0006fd11482 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 18 Aug 2023 10:52:33 -0600 Subject: [PATCH 02/57] Add met@5.1.0 --- var/spack/repos/builtin/packages/metplus/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/metplus/package.py b/var/spack/repos/builtin/packages/metplus/package.py index 388444b280d068..efa2fdcdc68180 100644 --- a/var/spack/repos/builtin/packages/metplus/package.py +++ b/var/spack/repos/builtin/packages/metplus/package.py @@ -15,8 +15,9 @@ class Metplus(Package): homepage = "https://dtcenter.org/community-code/metplus" url = "https://github.com/dtcenter/METplus/archive/refs/tags/v4.1.0.tar.gz" - maintainers("AlexanderRichert-NOAA") + maintainers("AlexanderRichert-NOAA", "climbfuji") + version("5.1.0", sha256="e80df2d1059176a453b7991a9f123cb5a187cc7ba7f48a75313b92c7a0e68474") version("5.0.1", sha256="0e22b4f6791496551d99f68247d382b2af02c90b34c172a64c6f060e774bdced") version("5.0.0", sha256="59d519bd062559b4cece9f8672e2e282b200057bc77e2e0937414003d8f2dd50") version("4.1.4", sha256="6b8ac395f885807fcbeea07d814bbf97cec343566cb37bee088a3c5b65880ac7") From c0acdb18e8486b4b45c1429136a66640387f34d6 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 18 Aug 2023 11:26:19 -0600 Subject: [PATCH 03/57] Fix black style errors in var/spack/repos/builtin/packages/met/package.py --- .../repos/builtin/packages/met/package.py | 212 +++++++++--------- 1 file changed, 105 insertions(+), 107 deletions(-) diff --git a/var/spack/repos/builtin/packages/met/package.py b/var/spack/repos/builtin/packages/met/package.py index b15cda0d4428e5..3ca19f105504e1 100644 --- a/var/spack/repos/builtin/packages/met/package.py +++ b/var/spack/repos/builtin/packages/met/package.py @@ -14,66 +14,62 @@ class Met(AutotoolsPackage): configurable methods to compute statistics and diagnostics""" homepage = "https://dtcenter.org/community-code/model-evaluation-tools-met" - url = "https://github.com/dtcenter/MET/archive/refs/tags/v11.0.1.tar.gz" + url = "https://github.com/dtcenter/MET/archive/refs/tags/v11.0.1.tar.gz" maintainers("AlexanderRichert-NOAA", "climbfuji") version("11.1.0", sha256="e2e371ae1f49185ff8bf08201b1a3e90864a467aa3369b04132d231213c3c9e5") version("11.0.2", sha256="f720d15e1d6c235c9a41fd97dbeb0eb1082fb8ae99e1bcdcb5e51be9b50bdfbf") - version('11.0.1', sha256='48d471ad4634f1b969d9358c51925ce36bf0a1cec5312a6755203a4794b81646') - version('11.0.0', sha256='648ebb54d07ca099680f4fc23b7ef5095c1a8ac5537c0a5d0e8587bf15991cff') - version('10.1.1', sha256='9827e65fbd1c64e776525bae072bc2d37d14465e85a952778dcc32a26d8b5c9e') - version('10.1.0', sha256='8d4c1fb2311d8481ffd24e30e407a1b1bc72a6add9658d76b9c323f1733db336') - version('10.0.1', sha256='8e965bb0eb8353229a730af511c5fa62bad9744606ab6a218d741d29eb5f3acd') - version('10.0.0', sha256='92f37c8bd83c951d86026cce294a16e4d3aa6dd41905629d0a729fa1bebe668a') - version('9.1.3', sha256='7356a5ad79ca961fd965cadd93a7bf6c73b3aa5fb1a01a932580b94e66d0d0c8') - - variant('openmp', default=True, description='Use OpenMP multithreading') - variant('grib2', default=False, - description='Enable compilation of utilities using GRIB2') - variant('python', default=False, description='Enable python embedding') - variant('lidar2nc', default=False, - description='Enable compilation of lidar2nc') - variant('modis', default=False, description='Enable compilation of modis') - variant('graphics', default=False, - description='Enable compilation of mode_graphics') - - depends_on('gsl') - depends_on('bufr') - depends_on('zlib') - depends_on('netcdf-c') - depends_on('netcdf-cxx4') - depends_on('g2c', when='+grib2') - - depends_on('hdf-eos2', when='+modis') - depends_on('hdf-eos2', when='+lidar2nc') - depends_on('hdf', when='+modis') - depends_on('hdf', when='+lidar2nc') - - depends_on('cairo', when='+graphics') - depends_on('freetype', when='+graphics') - - depends_on('python@3.6.3:', when='+python', type=('build', 'run')) - depends_on('py-netcdf4', when='+python', type=('build', 'run')) - depends_on('py-numpy', when='+python', type=('build', 'run')) - depends_on('py-xarray', when='+python', type=('build', 'run')) - depends_on('py-pandas', when='+python', type=('build', 'run')) - - patch('openmp_shape_patch.patch', when='@10.1.0') + version("11.0.1", sha256="48d471ad4634f1b969d9358c51925ce36bf0a1cec5312a6755203a4794b81646") + version("11.0.0", sha256="648ebb54d07ca099680f4fc23b7ef5095c1a8ac5537c0a5d0e8587bf15991cff") + version("10.1.1", sha256="9827e65fbd1c64e776525bae072bc2d37d14465e85a952778dcc32a26d8b5c9e") + version("10.1.0", sha256="8d4c1fb2311d8481ffd24e30e407a1b1bc72a6add9658d76b9c323f1733db336") + version("10.0.1", sha256="8e965bb0eb8353229a730af511c5fa62bad9744606ab6a218d741d29eb5f3acd") + version("10.0.0", sha256="92f37c8bd83c951d86026cce294a16e4d3aa6dd41905629d0a729fa1bebe668a") + version("9.1.3", sha256="7356a5ad79ca961fd965cadd93a7bf6c73b3aa5fb1a01a932580b94e66d0d0c8") + + variant("openmp", default=True, description="Use OpenMP multithreading") + variant("grib2", default=False, description="Enable compilation of utilities using GRIB2") + variant("python", default=False, description="Enable python embedding") + variant("lidar2nc", default=False, description="Enable compilation of lidar2nc") + variant("modis", default=False, description="Enable compilation of modis") + variant("graphics", default=False, description="Enable compilation of mode_graphics") + + depends_on("gsl") + depends_on("bufr") + depends_on("zlib") + depends_on("netcdf-c") + depends_on("netcdf-cxx4") + depends_on("g2c", when="+grib2") + + depends_on("hdf-eos2", when="+modis") + depends_on("hdf-eos2", when="+lidar2nc") + depends_on("hdf", when="+modis") + depends_on("hdf", when="+lidar2nc") + + depends_on("cairo", when="+graphics") + depends_on("freetype", when="+graphics") + + depends_on("python@3.6.3:", when="+python", type=("build", "run")) + depends_on("py-netcdf4", when="+python", type=("build", "run")) + depends_on("py-numpy", when="+python", type=("build", "run")) + depends_on("py-xarray", when="+python", type=("build", "run")) + depends_on("py-pandas", when="+python", type=("build", "run")) + + patch("openmp_shape_patch.patch", when="@10.1.0") # https://github.com/JCSDA/spack-stack/issues/615 patch("apple-clang-string-cast-operator.patch", when="@10.1.1:11.0.99 %apple-clang@14:") patch("apple-clang-no-register.patch", when="@10.1.1:11.0.99 %apple-clang@14:") def url_for_version(self, version): - if version < Version("11"): release_date = { - '10.1.1': '20220419', - '10.1.0': '20220314', - '10.0.1': '20211201', - '10.0.0': '20210510', - '9.1.3': '20210319' + "10.1.1": "20220419", + "10.1.0": "20220314", + "10.0.1": "20211201", + "10.0.0": "20210510", + "9.1.3": "20210319", } url = "https://github.com/dtcenter/MET/releases/download/v{0}/met-{0}.{1}.tar.gz" return url.format(version, release_date[str(version)]) @@ -87,18 +83,18 @@ def setup_build_environment(self, env): ldflags = [] libs = [] - gsl = spec['gsl'] - env.set('MET_GSL', gsl.prefix) + gsl = spec["gsl"] + env.set("MET_GSL", gsl.prefix) - netcdfcxx = spec['netcdf-cxx4'] + netcdfcxx = spec["netcdf-cxx4"] cppflags.append(netcdfcxx.libs.search_flags) ldflags.append(netcdfcxx.libs.ld_flags) libs.append(netcdfcxx.libs.link_flags) - netcdfc = spec['netcdf-c'] + netcdfc = spec["netcdf-c"] if netcdfc.satisfies("+shared"): - cppflags.append('-I' + netcdfc.prefix.include) - ldflags.append('-L' + netcdfc.prefix.lib) + cppflags.append("-I" + netcdfc.prefix.include) + ldflags.append("-L" + netcdfc.prefix.lib) libs.append(netcdfc.libs.link_flags) else: nc_config = which(os.path.join(netcdfc.prefix.bin, "nc-config")) @@ -106,81 +102,83 @@ def setup_build_environment(self, env): ldflags.append(nc_config("--libs", "--static", output=str).strip()) libs.append(nc_config("--libs", "--static", output=str).strip()) - zlib = spec['zlib'] - cppflags.append('-D__64BIT__') - ldflags.append('-L' + zlib.prefix.lib) - libs.append('-lz') - - bufr = spec['bufr'] - shared_bufr = True if '+shared' in bufr else False - bufr_libdir = find_libraries('libbufr_4', root=bufr.prefix, - shared=shared_bufr, recursive=True).directories[0] - env.set('BUFRLIB_NAME', '-lbufr_4') - env.set('MET_BUFRLIB', bufr_libdir) - - if '+grib2' in spec: - g2c = spec['g2c'] - shared_g2c = True if '+shared' in g2c else False - g2c_libdir = find_libraries('libg2c', root=g2c.prefix, shared=shared_g2c, - recursive=True).directories[0] - env.set('MET_GRIB2CLIB', g2c_libdir) - env.set('MET_GRIB2CINC', g2c.prefix.include) - env.set('GRIB2CLIB_NAME', '-lg2c') - - if '+python' in spec: - python = spec['python'] - env.set('MET_PYTHON', python.command.path) - env.set('MET_PYTHON_CC', '-I' + python.headers.directories[0]) + zlib = spec["zlib"] + cppflags.append("-D__64BIT__") + ldflags.append("-L" + zlib.prefix.lib) + libs.append("-lz") + + bufr = spec["bufr"] + shared_bufr = True if "+shared" in bufr else False + bufr_libdir = find_libraries( + "libbufr_4", root=bufr.prefix, shared=shared_bufr, recursive=True + ).directories[0] + env.set("BUFRLIB_NAME", "-lbufr_4") + env.set("MET_BUFRLIB", bufr_libdir) + + if "+grib2" in spec: + g2c = spec["g2c"] + shared_g2c = True if "+shared" in g2c else False + g2c_libdir = find_libraries( + "libg2c", root=g2c.prefix, shared=shared_g2c, recursive=True + ).directories[0] + env.set("MET_GRIB2CLIB", g2c_libdir) + env.set("MET_GRIB2CINC", g2c.prefix.include) + env.set("GRIB2CLIB_NAME", "-lg2c") + + if "+python" in spec: + python = spec["python"] + env.set("MET_PYTHON", python.command.path) + env.set("MET_PYTHON_CC", "-I" + python.headers.directories[0]) py_ld = [python.libs.ld_flags] if spec["python"].satisfies("~shared"): py_ld.append(spec["gettext"].libs.ld_flags) py_ld.append(spec["gettext"].libs.ld_flags) py_ld.append(spec["libiconv"].libs.ld_flags) py_ld.append("-lutil") - env.set('MET_PYTHON_LD', " ".join(py_ld)) + env.set("MET_PYTHON_LD", " ".join(py_ld)) - if '+lidar2nc' in spec or '+modis' in spec: - hdf = spec['hdf'] - hdfeos = spec['hdf-eos2'] - env.set('MET_HDF5', hdf.prefix) - env.set('MET_HDFEOS', hdfeos.prefix) + if "+lidar2nc" in spec or "+modis" in spec: + hdf = spec["hdf"] + hdfeos = spec["hdf-eos2"] + env.set("MET_HDF5", hdf.prefix) + env.set("MET_HDFEOS", hdfeos.prefix) - if '+graphics' in spec: - cairo = spec['cairo'] - freetype = spec['freetype'] - env.set('MET_CAIRO', cairo.prefix) - cppflags.append('-I' + cairo.prefix.include.cairo) - env.set('MET_FREETYPE', freetype.prefix) + if "+graphics" in spec: + cairo = spec["cairo"] + freetype = spec["freetype"] + env.set("MET_CAIRO", cairo.prefix) + cppflags.append("-I" + cairo.prefix.include.cairo) + env.set("MET_FREETYPE", freetype.prefix) - env.set('CPPFLAGS', ' '.join(cppflags)) - env.set('LIBS', ' '.join(libs)) - env.set('LDFLAGS', ' '.join(ldflags)) + env.set("CPPFLAGS", " ".join(cppflags)) + env.set("LIBS", " ".join(libs)) + env.set("LDFLAGS", " ".join(ldflags)) def configure_args(self): args = [] spec = self.spec - if '+grib2' in spec: - args.append('--enable-grib2') + if "+grib2" in spec: + args.append("--enable-grib2") - if '+python' in spec: - args.append('--enable-python') + if "+python" in spec: + args.append("--enable-python") - if '~openmp' in spec: - args.append('--disable-openmp') + if "~openmp" in spec: + args.append("--disable-openmp") - if '+lidar2nc' in spec: - args.append('--enable-lidar2nc') + if "+lidar2nc" in spec: + args.append("--enable-lidar2nc") - if '+modis' in spec: - args.append('--enable-modis') + if "+modis" in spec: + args.append("--enable-modis") - if '+graphics' in spec: - args.append('--enable-mode_graphics') + if "+graphics" in spec: + args.append("--enable-mode_graphics") if self.spec.satisfies("%apple-clang@14:"): - args.append('CXXFLAGS=-std=gnu++17') + args.append("CXXFLAGS=-std=gnu++17") return args def setup_run_environment(self, env): - env.set('MET_BASE', self.prefix) + env.set("MET_BASE", self.prefix) From 177502b5037bb9aaca7d26d8e8c057ea93cf5e2e Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 18 Aug 2023 15:15:38 -0600 Subject: [PATCH 04/57] Add eckit@1.24.4 --- var/spack/repos/builtin/packages/eckit/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/eckit/package.py b/var/spack/repos/builtin/packages/eckit/package.py index 13737b77f5db40..ea561c8a732188 100644 --- a/var/spack/repos/builtin/packages/eckit/package.py +++ b/var/spack/repos/builtin/packages/eckit/package.py @@ -18,6 +18,7 @@ class Eckit(CMakePackage): maintainers("skosukhin", "climbfuji") + version("1.24.4", sha256="b6129eb4f7b8532aa6905033e4cf7d09aadc8547c225780fea3db196e34e4671") version("1.23.1", sha256="cd3c4b7a3a2de0f4a59f00f7bab3178dd59c0e27900d48eaeb357975e8ce2f15") version("1.23.0", sha256="3cac55ddf7036ecd32cb0974a1ec3a2d347de574ab3a2c0bb6c6f8982e5a7a09") version("1.22.1", sha256="a3463d07e47e3bd3e5efa13fdc03d7d3a30ada919ccec3259c6c9c7da4cfdfd9") From 644280dd9f96b68d355ec388877de91db008840f Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 18 Aug 2023 15:16:06 -0600 Subject: [PATCH 05/57] Add fckit@0.11.0 with correct eckit version dependencies --- var/spack/repos/builtin/packages/fckit/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/fckit/package.py b/var/spack/repos/builtin/packages/fckit/package.py index 6638e286c21631..452a79b4d213ad 100644 --- a/var/spack/repos/builtin/packages/fckit/package.py +++ b/var/spack/repos/builtin/packages/fckit/package.py @@ -20,6 +20,7 @@ class Fckit(CMakePackage): version('master', branch='master') version('develop', branch='develop') + version("0.11.0", sha256="846f5c369940c0a3d42cd12932f7d6155339e79218d149ebbfdd02e759dc86c5") version("0.10.1", sha256="9cde04fefa50624bf89068ab793cc2e9437c0cd1c271a41af7d54dbd37c306be") version("0.10.0", sha256="f16829f63a01cdef5e158ed2a51f6d4200b3fe6dce8f251af158141a1afe482b") version("0.9.5", sha256="183cd78e66d3283d9e6e8e9888d3145f453690a4509fb701b28d1ac6757db5de") @@ -33,7 +34,8 @@ class Fckit(CMakePackage): values=('Debug', 'Release', 'RelWithDebInfo')) variant('eckit', default=True) - depends_on('eckit+mpi', when='+eckit') + depends_on('eckit@:1.23 +mpi', when='@:0.10 +eckit') + depends_on('eckit@1.24: +mpi', when='@0.11: +eckit') variant('openmp', default=True, description='Use OpenMP?') depends_on("llvm-openmp", when="+openmp %apple-clang", type=("build", "run")) From 83de7e2c8a601fd2ceaa5ae33494de7b5ce41df4 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 18 Aug 2023 15:16:23 -0600 Subject: [PATCH 06/57] Add fiat@1.2.0 --- var/spack/repos/builtin/packages/fiat/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/fiat/package.py b/var/spack/repos/builtin/packages/fiat/package.py index 3deb0799bebdc5..16966b5d735383 100644 --- a/var/spack/repos/builtin/packages/fiat/package.py +++ b/var/spack/repos/builtin/packages/fiat/package.py @@ -17,6 +17,7 @@ class Fiat(CMakePackage): maintainers("climbfuji") version("main", branch="main", no_cache=True) + version("1.2.0", sha256="758147410a4a3c493290b87443b4091660b915fcf29f7c4d565c5168ac67745f") version("1.1.0", sha256="58354e60d29a1b710bfcea9b87a72c0d89c39182cb2c9523ead76a142c695f82") version("1.0.0", sha256="45afe86117142831fdd61771cf59f31131f2b97f52a2bd04ac5eae9b2ab746b8") From 47d3555d7627e3355c43864f5f4dac62e643b150 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 18 Aug 2023 15:16:55 -0600 Subject: [PATCH 07/57] Add ecmwf-atlas@0.34.0 with correct versions for dependencies eckit, fckit, boost --- .../repos/builtin/packages/ecmwf-atlas/package.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/var/spack/repos/builtin/packages/ecmwf-atlas/package.py b/var/spack/repos/builtin/packages/ecmwf-atlas/package.py index 20db8f009e6e7c..32a2ace274bb1e 100644 --- a/var/spack/repos/builtin/packages/ecmwf-atlas/package.py +++ b/var/spack/repos/builtin/packages/ecmwf-atlas/package.py @@ -20,16 +20,20 @@ class EcmwfAtlas(CMakePackage): version("master", branch="master") version("develop", branch="develop") + version("0.34.0", sha256="48536742cec0bc268695240843ac0e232e2b5142d06b19365688d9ea44dbd9ba") version("0.33.0", sha256="a91fffe9cecb51c6ee8549cbc20f8279e7b1f67dd90448e6c04c1889281b0600") version("0.32.1", sha256="3d1a46cb7f50e1a6ae9e7627c158760e132cc9f568152358e5f78460f1aaf01b") version("0.31.1", sha256="fa9274c74c40c2115b9c6120a7040e357b0c7f37b20b601b684d2a83a479cdfb") version("0.31.0", sha256="fa4ff8665544b8e19f79d171c540a9ca8bfc4127f52a3c4d4d618a2fe23354d7") depends_on("ecbuild", type=("build")) - depends_on("eckit") - depends_on("boost cxxstd=14 visibility=hidden", when="@0.26.0:", type=("build", "run")) + depends_on("eckit@:1.23", when="@:0.33") + depends_on("eckit@1.24:", when="@0.34:") + depends_on("boost cxxstd=14 visibility=hidden", when="@0.26.0:0.33.99", type=("build", "run")) + depends_on("boost cxxstd=17 visibility=hidden", when="@0.34.0:", type=("build", "run")) variant("fckit", default=True) - depends_on("fckit", when="+fckit") + depends_on("fckit@:0.10", when="@:0.33 +fckit") + depends_on("fckit@0.11:", when="@0.34: +fckit") depends_on("python") patch("clang_include_array.patch", when="%apple-clang") From 38c3b30881fe0f9553b0fcf64a6873b9be814569 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 18 Aug 2023 15:27:19 -0600 Subject: [PATCH 08/57] Fix style errors in var/spack/repos/builtin/packages/fckit/package.py --- .../repos/builtin/packages/fckit/package.py | 70 ++++++++++--------- 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/var/spack/repos/builtin/packages/fckit/package.py b/var/spack/repos/builtin/packages/fckit/package.py index 452a79b4d213ad..48447aa0882a4c 100644 --- a/var/spack/repos/builtin/packages/fckit/package.py +++ b/var/spack/repos/builtin/packages/fckit/package.py @@ -6,7 +6,7 @@ import glob import os -from spack import * +from spack.package import * class Fckit(CMakePackage): @@ -16,56 +16,62 @@ class Fckit(CMakePackage): git = "https://github.com/ecmwf/fckit.git" url = "https://github.com/ecmwf/fckit/archive/0.9.0.tar.gz" - maintainers('climbfuji') + maintainers("climbfuji") - version('master', branch='master') - version('develop', branch='develop') + version("master", branch="master") + version("develop", branch="develop") version("0.11.0", sha256="846f5c369940c0a3d42cd12932f7d6155339e79218d149ebbfdd02e759dc86c5") version("0.10.1", sha256="9cde04fefa50624bf89068ab793cc2e9437c0cd1c271a41af7d54dbd37c306be") version("0.10.0", sha256="f16829f63a01cdef5e158ed2a51f6d4200b3fe6dce8f251af158141a1afe482b") version("0.9.5", sha256="183cd78e66d3283d9e6e8e9888d3145f453690a4509fb701b28d1ac6757db5de") - depends_on('mpi') - depends_on('python') - depends_on('ecbuild', type=('build')) + depends_on("mpi") + depends_on("python") + depends_on("ecbuild", type=("build")) - variant('build_type', default='RelWithDebInfo', - description='CMake build type', - values=('Debug', 'Release', 'RelWithDebInfo')) + variant( + "build_type", + default="RelWithDebInfo", + description="CMake build type", + values=("Debug", "Release", "RelWithDebInfo"), + ) - variant('eckit', default=True) - depends_on('eckit@:1.23 +mpi', when='@:0.10 +eckit') - depends_on('eckit@1.24: +mpi', when='@0.11: +eckit') + variant("eckit", default=True) + depends_on("eckit@:1.23 +mpi", when="@:0.10 +eckit") + depends_on("eckit@1.24: +mpi", when="@0.11: +eckit") - variant('openmp', default=True, description='Use OpenMP?') + variant("openmp", default=True, description="Use OpenMP?") depends_on("llvm-openmp", when="+openmp %apple-clang", type=("build", "run")) - variant('shared', default=True) + variant("shared", default=True) variant("fismahigh", default=False, description="Apply patching for FISMA-high compliance") - variant("finalize_ddts", default="auto", - description="Enable / disable automatic finalization of derived types", - values=("auto", "no", "yes")) + variant( + "finalize_ddts", + default="auto", + description="Enable / disable automatic finalization of derived types", + values=("auto", "no", "yes"), + ) def cmake_args(self): args = [ - self.define_from_variant('ENABLE_ECKIT', 'eckit'), - self.define_from_variant('ENABLE_OMP', 'openmp'), - "-DPYTHON_EXECUTABLE:FILEPATH=" + self.spec['python'].command.path, - '-DFYPP_NO_LINE_NUMBERING=ON' + self.define_from_variant("ENABLE_ECKIT", "eckit"), + self.define_from_variant("ENABLE_OMP", "openmp"), + "-DPYTHON_EXECUTABLE:FILEPATH=" + self.spec["python"].command.path, + "-DFYPP_NO_LINE_NUMBERING=ON", ] - if '~shared' in self.spec: - args.append('-DBUILD_SHARED_LIBS=OFF') - - if 'finalize_ddts=auto' not in self.spec: - args.append(self.define_from_variant('ENABLE_FINAL', 'finalize_ddts')) + if "~shared" in self.spec: + args.append("-DBUILD_SHARED_LIBS=OFF") - if self.spec.satisfies('%intel') or self.spec.satisfies('%gcc'): - cxxlib = 'stdc++' - elif self.spec.satisfies('%clang') or self.spec.satisfies('%apple-clang'): - cxxlib = 'c++' + if "finalize_ddts=auto" not in self.spec: + args.append(self.define_from_variant("ENABLE_FINAL", "finalize_ddts")) + + if self.spec.satisfies("%intel") or self.spec.satisfies("%gcc"): + cxxlib = "stdc++" + elif self.spec.satisfies("%clang") or self.spec.satisfies("%apple-clang"): + cxxlib = "c++" else: raise InstallError("C++ library not configured for compiler") - args.append('-DECBUILD_CXX_IMPLICIT_LINK_LIBRARIES={}'.format(cxxlib)) + args.append("-DECBUILD_CXX_IMPLICIT_LINK_LIBRARIES={}".format(cxxlib)) return args From 06647e5421ce4ef498f96d5cd98cade7f763678d Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 18 Aug 2023 15:27:29 -0600 Subject: [PATCH 09/57] Fix style errors in var/spack/repos/builtin/packages/ecmwf-atlas/package.py --- var/spack/repos/builtin/packages/ecmwf-atlas/package.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/var/spack/repos/builtin/packages/ecmwf-atlas/package.py b/var/spack/repos/builtin/packages/ecmwf-atlas/package.py index 32a2ace274bb1e..982f14cf633571 100644 --- a/var/spack/repos/builtin/packages/ecmwf-atlas/package.py +++ b/var/spack/repos/builtin/packages/ecmwf-atlas/package.py @@ -47,7 +47,7 @@ class EcmwfAtlas(CMakePackage): values=("Debug", "Release", "RelWithDebInfo"), ) - variant('openmp', default=True, description='Use OpenMP?') + variant("openmp", default=True, description="Use OpenMP?") depends_on("llvm-openmp", when="+openmp %apple-clang", type=("build", "run")) variant("shared", default=True) @@ -65,7 +65,7 @@ class EcmwfAtlas(CMakePackage): def cmake_args(self): args = [ - self.define_from_variant('ENABLE_OMP', 'openmp'), + self.define_from_variant("ENABLE_OMP", "openmp"), self.define_from_variant("ENABLE_FCKIT", "fckit"), self.define_from_variant("ENABLE_TRANS", "trans"), self.define_from_variant("ENABLE_EIGEN", "eigen"), @@ -78,8 +78,8 @@ def cmake_args(self): @when("+fismahigh") def patch(self): - filter_file("http://www\.ecmwf\.int", "", "cmake/atlas-import.cmake.in") - filter_file("int\.ecmwf", "", "cmake/atlas-import.cmake.in") + filter_file("http://www\.ecmwf\.int", "", "cmake/atlas-import.cmake.in") # noqa: W605 + filter_file("int\.ecmwf", "", "cmake/atlas-import.cmake.in") # noqa: W605 filter_file('http[^"]+', "", "cmake/atlas_export.cmake") patterns = [".travis.yml", "tools/install*.sh", "tools/github-sha.sh"] for pattern in patterns: From 3b5a70d0d1e54fb9906fdd5ad64e3f5aa002f31f Mon Sep 17 00:00:00 2001 From: ashley314 Date: Thu, 17 Aug 2023 16:14:23 -0600 Subject: [PATCH 10/57] adding myst --- .../repos/jcsda-emc-bundles/packages/jedi-tools-env/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/jcsda-emc-bundles/packages/jedi-tools-env/package.py b/var/spack/repos/jcsda-emc-bundles/packages/jedi-tools-env/package.py index cc7df3ed634118..75b619b9f69ec8 100644 --- a/var/spack/repos/jcsda-emc-bundles/packages/jedi-tools-env/package.py +++ b/var/spack/repos/jcsda-emc-bundles/packages/jedi-tools-env/package.py @@ -29,7 +29,8 @@ class JediToolsEnv(BundlePackage): depends_on("py-pygithub", type="run") depends_on("py-scipy", type="run") depends_on("py-sphinx", type="run") - depends_on("py-sphinxcontrib-bibtex", when="+latex", type="run") + depends_on("py-myst-parser", type="run") + depends_on("py-sphinxcontrib-bibtex", type="run") depends_on("texlive", when="+latex", type="run") conflicts("%intel", msg="jedi-tools-env does not build with Intel") From 28fe0d6b23a1e443ce7c688813552f5b6f642846 Mon Sep 17 00:00:00 2001 From: ashley314 Date: Fri, 18 Aug 2023 11:10:04 -0600 Subject: [PATCH 11/57] style update --- .../jcsda-emc-bundles/packages/jedi-tools-env/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/jcsda-emc-bundles/packages/jedi-tools-env/package.py b/var/spack/repos/jcsda-emc-bundles/packages/jedi-tools-env/package.py index 75b619b9f69ec8..60a631f9093ed7 100644 --- a/var/spack/repos/jcsda-emc-bundles/packages/jedi-tools-env/package.py +++ b/var/spack/repos/jcsda-emc-bundles/packages/jedi-tools-env/package.py @@ -21,8 +21,8 @@ class JediToolsEnv(BundlePackage): # Don't install awscli and/or aws-parallelcluster via spack, # they are not well maintained packages and have terrible # dependencies. Use a venv on top of spack-stack instead. - #depends_on("awscli", type="run") - #depends_on("aws-parallelcluster", type="run") + # depends_on("awscli", type="run") + # depends_on("aws-parallelcluster", type="run") depends_on("py-click", type="run") depends_on("py-openpyxl", type="run") depends_on("py-pandas", type="run") From 29b13918f1364c0f8a7d6caaf4103e0c1cc25aa2 Mon Sep 17 00:00:00 2001 From: Alex Richert Date: Mon, 21 Aug 2023 10:03:55 -0700 Subject: [PATCH 12/57] Add scotch@7.0.4 --- var/spack/repos/builtin/packages/scotch/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/scotch/package.py b/var/spack/repos/builtin/packages/scotch/package.py index 1334a221776a29..5007bdf497b212 100644 --- a/var/spack/repos/builtin/packages/scotch/package.py +++ b/var/spack/repos/builtin/packages/scotch/package.py @@ -20,6 +20,7 @@ class Scotch(CMakePackage, MakefilePackage): maintainers("pghysels") + version("7.0.4", sha256="8ef4719d6a3356e9c4ca7fefd7e2ac40deb69779a5c116f44da75d13b3d2c2c3") version("7.0.3", sha256="5b5351f0ffd6fcae9ae7eafeccaa5a25602845b9ffd1afb104db932dd4d4f3c5") version("7.0.1", sha256="0618e9bc33c02172ea7351600fce4fccd32fe00b3359c4aabb5e415f17c06fed") version("6.1.3", sha256="4e54f056199e6c23d46581d448fcfe2285987e5554a0aa527f7931684ef2809e") From 79b2f23df6a7040f4648eab533444d90d2d4d03a Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 21 Aug 2023 13:32:59 -0600 Subject: [PATCH 13/57] Fix patch logic in var/spack/repos/builtin/packages/fiat/package.py; version 1.2.0 requires a differently formatted patch --- ...rnings.patch => intel_warnings_v110.patch} | 0 .../packages/fiat/intel_warnings_v120.patch | 42 +++++++++++++++++++ .../repos/builtin/packages/fiat/package.py | 3 +- 3 files changed, 44 insertions(+), 1 deletion(-) rename var/spack/repos/builtin/packages/fiat/{intel_warnings.patch => intel_warnings_v110.patch} (100%) create mode 100644 var/spack/repos/builtin/packages/fiat/intel_warnings_v120.patch diff --git a/var/spack/repos/builtin/packages/fiat/intel_warnings.patch b/var/spack/repos/builtin/packages/fiat/intel_warnings_v110.patch similarity index 100% rename from var/spack/repos/builtin/packages/fiat/intel_warnings.patch rename to var/spack/repos/builtin/packages/fiat/intel_warnings_v110.patch diff --git a/var/spack/repos/builtin/packages/fiat/intel_warnings_v120.patch b/var/spack/repos/builtin/packages/fiat/intel_warnings_v120.patch new file mode 100644 index 00000000000000..a1b2c5389e160d --- /dev/null +++ b/var/spack/repos/builtin/packages/fiat/intel_warnings_v120.patch @@ -0,0 +1,42 @@ +--- a/cmake/fiat_compiler_warnings.cmake 2023-08-21 08:29:06.000000000 -0600 ++++ b/cmake/fiat_compiler_warnings.cmake 2023-08-21 08:37:40.000000000 -0600 +@@ -5,15 +5,17 @@ + ecbuild_add_c_flags("-Wextra" NO_FAIL) + ecbuild_add_c_flags("-Wno-unused-parameter" NO_FAIL) + ecbuild_add_c_flags("-Wno-unused-variable" NO_FAIL) +- ecbuild_add_c_flags("-Wno-gnu-zero-variadic-macro-arguments" NO_FAIL) ++ if (CMAKE_C_COMPILER_ID MATCHES "Clang|GNU") ++ ecbuild_add_c_flags("-Wno-gnu-zero-variadic-macro-arguments" NO_FAIL) ++ endif() + endif() + + # Always disable some warnings + ecbuild_add_c_flags("-Wno-deprecated-declarations" NO_FAIL) +-if( CMAKE_C_COMPILER_ID MATCHES Intel ) +- ecbuild_add_c_flags("-diag-disable=279") # controlling expression is constant +- ecbuild_add_c_flags("-diag-disable=11076") # inline limits +-endif() ++#if( CMAKE_C_COMPILER_ID MATCHES Intel ) ++# ecbuild_add_c_flags("-diag-disable=279") # controlling expression is constant ++# ecbuild_add_c_flags("-diag-disable=11076") # inline limits ++#endif() + if( CMAKE_Fortran_COMPILER_ID MATCHES Cray ) + ecbuild_add_fortran_flags("-hnomessage=878") # A module named ... has already been directly or indirectly use associated into this scope + ecbuild_add_fortran_flags("-hnomessage=867") # Module ... has no public objects declared in the module, therefore nothing can be use associated from the module. +--- a/src/fiat/CMakeLists.txt ++++ b/src/fiat/CMakeLists.txt +@@ -26,10 +26,10 @@ endif() + + ### Compilation flags + +-if( CMAKE_Fortran_COMPILER_ID MATCHES "Intel" ) +- ## To disable checking of argument correctness of dummy mpi symbols +- ecbuild_add_fortran_flags( -nowarn nointerfaces ) +-endif() ++#if( CMAKE_Fortran_COMPILER_ID MATCHES "Intel" ) ++# ## To disable checking of argument correctness of dummy mpi symbols ++# ecbuild_add_fortran_flags( -nowarn nointerfaces ) ++#endif() + + if( CMAKE_Fortran_COMPILER_ID MATCHES "GNU" ) + ecbuild_add_fortran_flags( -ffree-line-length-none ) diff --git a/var/spack/repos/builtin/packages/fiat/package.py b/var/spack/repos/builtin/packages/fiat/package.py index 16966b5d735383..6bbb4af9856ae0 100644 --- a/var/spack/repos/builtin/packages/fiat/package.py +++ b/var/spack/repos/builtin/packages/fiat/package.py @@ -40,7 +40,8 @@ class Fiat(CMakePackage): depends_on("eckit", when="+fckit") depends_on("fckit", when="+fckit") - patch("intel_warnings.patch") + patch("intel_warnings_v110.patch", when="@:1.1.0") + patch("intel_warnings_v120.patch", when="@1.2.0:") def cmake_args(self): args = [ From 2a851316ca06c9b18942d4cb4da7e3c98962bbcf Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 21 Aug 2023 13:33:32 -0600 Subject: [PATCH 14/57] fckit: disable finalize_ddts for intel@2021.8.0 and newer --- var/spack/repos/builtin/packages/fckit/package.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/var/spack/repos/builtin/packages/fckit/package.py b/var/spack/repos/builtin/packages/fckit/package.py index 48447aa0882a4c..5ce0e2865458f2 100644 --- a/var/spack/repos/builtin/packages/fckit/package.py +++ b/var/spack/repos/builtin/packages/fckit/package.py @@ -51,6 +51,11 @@ class Fckit(CMakePackage): values=("auto", "no", "yes"), ) + # fckit fails to auto-detect/switch off finalization + # of derived types for latest Intel compilers. If set + # to auto, turn off in cmake_args. If set to yes, abort. + conflicts("%intel@2021.8:", when="finalize_ddts=yes") + def cmake_args(self): args = [ self.define_from_variant("ENABLE_ECKIT", "eckit"), @@ -64,6 +69,9 @@ def cmake_args(self): if "finalize_ddts=auto" not in self.spec: args.append(self.define_from_variant("ENABLE_FINAL", "finalize_ddts")) + elif "finalize_ddts=auto" in self.spec and self.spec.satisfies("%intel@2021.8:"): + # See comment above (conflicts for finalize_ddts) + args.append("-DENABLE_FINAL=OFF") if self.spec.satisfies("%intel") or self.spec.satisfies("%gcc"): cxxlib = "stdc++" From ba53e565bedc836fd50555d319ae5e43ba058357 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 21 Aug 2023 14:38:15 -0600 Subject: [PATCH 15/57] Version 0.34 of ecmwf-atlas requires a formatting update of the Intel vectorization patch --- ...rization.patch => intel_vectorization_v0p33.patch} | 0 .../ecmwf-atlas/intel_vectorization_v0p34.patch | 11 +++++++++++ .../repos/builtin/packages/ecmwf-atlas/package.py | 3 ++- 3 files changed, 13 insertions(+), 1 deletion(-) rename var/spack/repos/builtin/packages/ecmwf-atlas/{intel_vectorization.patch => intel_vectorization_v0p33.patch} (100%) create mode 100644 var/spack/repos/builtin/packages/ecmwf-atlas/intel_vectorization_v0p34.patch diff --git a/var/spack/repos/builtin/packages/ecmwf-atlas/intel_vectorization.patch b/var/spack/repos/builtin/packages/ecmwf-atlas/intel_vectorization_v0p33.patch similarity index 100% rename from var/spack/repos/builtin/packages/ecmwf-atlas/intel_vectorization.patch rename to var/spack/repos/builtin/packages/ecmwf-atlas/intel_vectorization_v0p33.patch diff --git a/var/spack/repos/builtin/packages/ecmwf-atlas/intel_vectorization_v0p34.patch b/var/spack/repos/builtin/packages/ecmwf-atlas/intel_vectorization_v0p34.patch new file mode 100644 index 00000000000000..6a4dc7cb807cc6 --- /dev/null +++ b/var/spack/repos/builtin/packages/ecmwf-atlas/intel_vectorization_v0p34.patch @@ -0,0 +1,11 @@ +--- a/cmake/atlas_compile_flags.cmake 2023-07-10 04:13:02.000000000 -0600 ++++ b/cmake/atlas_compile_flags.cmake 2023-08-21 14:29:10.000000000 -0600 +@@ -21,6 +21,8 @@ + + endif() + ++ecbuild_add_cxx_flags("-fp-speculation=safe") ++ + if( CMAKE_CXX_COMPILER_ID MATCHES NVHPC ) + ecbuild_add_cxx_flags("--diag_suppress declared_but_not_referenced --display_error_number" NAME atlas_cxx_disable_warnings ) + # For all the variables with side effects (constructor/dectructor functionality) diff --git a/var/spack/repos/builtin/packages/ecmwf-atlas/package.py b/var/spack/repos/builtin/packages/ecmwf-atlas/package.py index 982f14cf633571..a8f6281fb7f769 100644 --- a/var/spack/repos/builtin/packages/ecmwf-atlas/package.py +++ b/var/spack/repos/builtin/packages/ecmwf-atlas/package.py @@ -38,7 +38,8 @@ class EcmwfAtlas(CMakePackage): patch("clang_include_array.patch", when="%apple-clang") patch("clang_include_array.patch", when="%clang") - patch("intel_vectorization.patch", when="%intel") + patch("intel_vectorization_v0p33.patch", when="@:0.33 %intel") + patch("intel_vectorization_v0p34.patch", when="@0.34: %intel") variant( "build_type", From a3bd11807d28a566549037095ea71410e5de2aa9 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 21 Aug 2023 15:02:53 -0600 Subject: [PATCH 16/57] Update environment variables for met@11.1+ --- var/spack/repos/builtin/packages/met/package.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/met/package.py b/var/spack/repos/builtin/packages/met/package.py index 3ca19f105504e1..83dd1850786359 100644 --- a/var/spack/repos/builtin/packages/met/package.py +++ b/var/spack/repos/builtin/packages/met/package.py @@ -127,7 +127,11 @@ def setup_build_environment(self, env): if "+python" in spec: python = spec["python"] - env.set("MET_PYTHON", python.command.path) + # Syntax changed from 11.0.x to 11.1.y + with when("@:11.0"): + env.set("MET_PYTHON", python.command.path) + with when("@11.1:"): + env.set("MET_PYTHON_BIN_EXE", python.command.path) env.set("MET_PYTHON_CC", "-I" + python.headers.directories[0]) py_ld = [python.libs.ld_flags] if spec["python"].satisfies("~shared"): From 08b4566daead15834dc7fa8ad551be2fc2699715 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 24 Aug 2023 15:18:30 -0600 Subject: [PATCH 17/57] Fix darwin install paths for parallelio --- var/spack/repos/builtin/packages/parallelio/package.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/var/spack/repos/builtin/packages/parallelio/package.py b/var/spack/repos/builtin/packages/parallelio/package.py index f6bb375c1373f7..fa1761af113b4d 100644 --- a/var/spack/repos/builtin/packages/parallelio/package.py +++ b/var/spack/repos/builtin/packages/parallelio/package.py @@ -105,3 +105,9 @@ def setup_run_environment(self, env): if self.spec.satisfies("+pnetcdf"): valid_values += ",pnetcdf" env.set("PIO_TYPENAME_VALID_VALUES", valid_values) + + @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 583995630b866422ccebd1f7800dc28fba530653 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 24 Aug 2023 15:19:02 -0600 Subject: [PATCH 18/57] Add sfcio to jedi-ufs-env --- .../repos/jcsda-emc-bundles/packages/jedi-ufs-env/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/jcsda-emc-bundles/packages/jedi-ufs-env/package.py b/var/spack/repos/jcsda-emc-bundles/packages/jedi-ufs-env/package.py index 94e0b83ffcd099..d61bcf268928ec 100644 --- a/var/spack/repos/jcsda-emc-bundles/packages/jedi-ufs-env/package.py +++ b/var/spack/repos/jcsda-emc-bundles/packages/jedi-ufs-env/package.py @@ -24,6 +24,7 @@ class JediUfsEnv(BundlePackage): depends_on("g2tmpl", type="run") depends_on("ip", type="run") depends_on("nemsio", type="run") + depends_on("sfcio", type="run") depends_on("sigio", type="run") depends_on("w3emc", type="run") depends_on("w3nco", type="run") From 39030359b1e5603704e143b4666768cb43bb7e98 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 24 Aug 2023 15:51:44 -0600 Subject: [PATCH 19/57] Add gsibec@1.1.3, fix style errors --- var/spack/repos/builtin/packages/gsibec/package.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/var/spack/repos/builtin/packages/gsibec/package.py b/var/spack/repos/builtin/packages/gsibec/package.py index ce84b54a691fa1..35dd3c8b6a1486 100644 --- a/var/spack/repos/builtin/packages/gsibec/package.py +++ b/var/spack/repos/builtin/packages/gsibec/package.py @@ -18,6 +18,7 @@ class Gsibec(CMakePackage): maintainers("mathomp4", "danholdaway") version("develop", branch="develop") + version("1.1.3", sha256="9cac000562250487c16608e8245d97457cc1663b1793b3833be5a76ebccb4b47") version("1.1.2", sha256="8bdcdf1663e6071b6ad9e893a76307abc70a6de744fb75a13986e70242993ada") version("1.0.7", sha256="53912f1f19d46f4941b377803cc2fce89a2b50d2ece7562f8fd65215a8908158") version("1.0.6", sha256="10e2561685156bcfba35c7799732c77f9c05bd180888506a339540777db833dd") @@ -40,7 +41,5 @@ class Gsibec(CMakePackage): depends_on("sp", type=("build")) def cmake_args(self): - args = [ - self.define_from_variant("ENABLE_MKL", "mkl"), - ] + args = [self.define_from_variant("ENABLE_MKL", "mkl")] return args From 60aadc65295bb75ff65795779d51aaf97acd8142 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 25 Aug 2023 09:29:15 -0600 Subject: [PATCH 20/57] Add py-globus-sdk@3.25.0 --- var/spack/repos/builtin/packages/py-globus-sdk/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-globus-sdk/package.py b/var/spack/repos/builtin/packages/py-globus-sdk/package.py index bc1dec87a76261..9a90b038ba5e7c 100644 --- a/var/spack/repos/builtin/packages/py-globus-sdk/package.py +++ b/var/spack/repos/builtin/packages/py-globus-sdk/package.py @@ -15,8 +15,9 @@ class PyGlobusSdk(PythonPackage): homepage = "https://github.com/globus/globus-sdk-python" pypi = "globus-sdk/globus-sdk-3.0.2.tar.gz" - maintainers("hategan") + maintainers("hategan", "climbfuji") + version("3.25.0", sha256="d9be275d4ec18054db04732f75649c4227800c79b31fbcfb3f4f31eccfa5f4f7") version("3.10.1", sha256="c20fec55fc7e099f4d0c8224a36e194604577539445c5985cb465b23779baee8") version("3.10.0", sha256="7a7e7cd5cfbc40c6dc75bdb92b050c4191f992b5f7081cd08895bf119fd97bbf") version("3.9.0", sha256="456f707b25a8c502607134f1d699b5970ef1aa9d17877474db73fc6d87c711e9") @@ -30,3 +31,4 @@ class PyGlobusSdk(PythonPackage): depends_on("py-pyjwt@2.0.0:2+crypto", type=("build", "run")) depends_on("py-cryptography@3.3.1:3.3,3.4.1:", when="@3.7:", type=("build", "run")) depends_on("py-cryptography@2:3.3,3.4.1:3.6", when="@:3.0", type=("build", "run")) + depends_on("py-typing-extensions@4:", when="@3.25:", type=("build", "run")) From fdd47052d5c1c2005c949ffc07ab5baa4453fcc4 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 25 Aug 2023 09:29:27 -0600 Subject: [PATCH 21/57] Add package py-globus-cli --- .../builtin/packages/py-globus-cli/package.py | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-globus-cli/package.py diff --git a/var/spack/repos/builtin/packages/py-globus-cli/package.py b/var/spack/repos/builtin/packages/py-globus-cli/package.py new file mode 100644 index 00000000000000..a490c97008e675 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-globus-cli/package.py @@ -0,0 +1,33 @@ +# Copyright 2013-2023 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 PyGlobusCli(PythonPackage): + """Globus CLI is a standalone application that can be installed on the user’s machine and is used to access the Globus service. The CLI provides an interface to Globus services from the shell, and is suited to both interactive and simple scripting use cases.""" + + homepage = "https://docs.globus.org/cli" + git = "https://github.com/globus/globus-cli.git" + url = "https://github.com/globus/globus-cli/archive/refs/tags/3.16.0.zip" + + maintainers("climbfuji") + + version("3.16.0", sha256="0ef721060870d9346505e52b9bf30c7bed6ae136cc08762deb2f8893bd25d8c5") + + depends_on("python@3.7:3.10", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-globus-sdk@3.25.0", type=("build", "run")) + depends_on("py-click@8", type=("build", "run")) + depends_on("py-jmespath@1.0.1", type=("build", "run")) + depends_on("py-packaging@17:", type=("build", "run")) + # According to the developers, these requirements are implicit + # for py-globus-sdk, but they are listed explicitly "in case + # the underlying lib ever changes" + depends_on("py-requests@2.19.1:2", type=("build", "run")) + depends_on("py-pyjwt@2.0.0:2+crypto", type=("build", "run")) + depends_on("py-cryptography@3.3.1:", type=("build", "run")) + depends_on("py-typing-extensions@4:", type=("build", "run")) From 40b5db2a50b55edddffeb0c97c759a1d606e1c5b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 25 Aug 2023 09:30:11 -0600 Subject: [PATCH 22/57] Fix 'spack stack setup-meta-modules' when environment contains on MPI libraries --- lib/jcsda-emc/spack-stack/stack/meta_modules.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/jcsda-emc/spack-stack/stack/meta_modules.py b/lib/jcsda-emc/spack-stack/stack/meta_modules.py index 258f53f5822cb2..e85bad1d440aa9 100755 --- a/lib/jcsda-emc/spack-stack/stack/meta_modules.py +++ b/lib/jcsda-emc/spack-stack/stack/meta_modules.py @@ -297,8 +297,13 @@ def setup_meta_modules(): # Then, check for mpi providers - recursively for compilers mpi_dict = get_matched_dict(module_dir, mpi_candidate_list, compiler_candidate_list) if not mpi_dict: - raise Exception("No matching MPI providers found") - logging.info(" ... stack mpi providers: '{}'".format(mpi_dict)) + user_input = input( + "No matching MPI providers found, proceed without creating MPI module hierarchy? (yes/no): " + ) + if not user_input.lower() in ["yes", "y"]: + raise Exception("No matching MPI providers found") + else: + logging.info(" ... stack mpi providers: '{}'".format(mpi_dict)) # For some environments, there are only compiler+mpi-dependent modules, # and therefore the compiler itself is not recorded in compiler_dict. @@ -698,7 +703,10 @@ def setup_meta_modules(): f.write(module_content) logging.info(" ... writing {}".format(mpi_module_file)) - del package_name + try: + del package_name + except: + pass # Create python modules. Need to accommodate both external # Python distributions and spack-built Python distributions. # If there is no package config info for Python, then we are From 88c81dfbed61ac8f11bc3da0da6dc66b490b2c7b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 25 Aug 2023 09:55:49 -0600 Subject: [PATCH 23/57] Wrap long line in py-globus-cli package description --- var/spack/repos/builtin/packages/py-globus-cli/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-globus-cli/package.py b/var/spack/repos/builtin/packages/py-globus-cli/package.py index a490c97008e675..5798513c310ac3 100644 --- a/var/spack/repos/builtin/packages/py-globus-cli/package.py +++ b/var/spack/repos/builtin/packages/py-globus-cli/package.py @@ -8,7 +8,9 @@ class PyGlobusCli(PythonPackage): - """Globus CLI is a standalone application that can be installed on the user’s machine and is used to access the Globus service. The CLI provides an interface to Globus services from the shell, and is suited to both interactive and simple scripting use cases.""" + """Globus CLI is a standalone application that can be installed on the user’s machine + and is used to access the Globus service. The CLI provides an interface to Globus + services from the shell, and is suited to both interactive and simple scripting use cases.""" homepage = "https://docs.globus.org/cli" git = "https://github.com/globus/globus-cli.git" From 4a71ca7dcf77fc0047ab2bf162ee064600636e3f Mon Sep 17 00:00:00 2001 From: AlexanderRichert-NOAA Date: Fri, 25 Aug 2023 18:58:13 +0000 Subject: [PATCH 24/57] Fix BUFR_INC variables for bufr recipe --- var/spack/repos/builtin/packages/bufr/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/bufr/package.py b/var/spack/repos/builtin/packages/bufr/package.py index 00222a07f33db9..af90d7f6e047c5 100644 --- a/var/spack/repos/builtin/packages/bufr/package.py +++ b/var/spack/repos/builtin/packages/bufr/package.py @@ -90,7 +90,7 @@ def _setup_bufr_environment(self, env, suffix): lib = find_libraries(libname + append, root=self.prefix, shared=shared, recursive=True) lib_envname = "BUFR_LIB{0}".format(suffix) + append inc_envname = "BUFR_INC{0}".format(suffix) + append - include_dir = "include_{0}".format(suffix) + include_dir = "{0}{1}".format(self.prefix.include.bufr, suffix) env.set(lib_envname, lib[0]) env.set(inc_envname, include_dir) From 9cfd9780df8e52478241e8752b6fe72a32c1432c Mon Sep 17 00:00:00 2001 From: Alex Richert <82525672+AlexanderRichert-NOAA@users.noreply.github.com> Date: Fri, 25 Aug 2023 13:11:42 -0700 Subject: [PATCH 25/57] Update package.py --- var/spack/repos/builtin/packages/bufr/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/bufr/package.py b/var/spack/repos/builtin/packages/bufr/package.py index af90d7f6e047c5..0edee3fe87eca4 100644 --- a/var/spack/repos/builtin/packages/bufr/package.py +++ b/var/spack/repos/builtin/packages/bufr/package.py @@ -90,7 +90,7 @@ def _setup_bufr_environment(self, env, suffix): lib = find_libraries(libname + append, root=self.prefix, shared=shared, recursive=True) lib_envname = "BUFR_LIB{0}".format(suffix) + append inc_envname = "BUFR_INC{0}".format(suffix) + append - include_dir = "{0}{1}".format(self.prefix.include.bufr, suffix) + include_dir = "{0}_{1}".format(self.prefix.include.bufr, suffix) env.set(lib_envname, lib[0]) env.set(inc_envname, include_dir) From 4bd96c2a213250ec2d58ee73b2152ccfeb4576b1 Mon Sep 17 00:00:00 2001 From: AlexanderRichert-NOAA Date: Fri, 25 Aug 2023 22:31:25 +0000 Subject: [PATCH 26/57] Update madis recipe --- var/spack/repos/builtin/packages/madis/package.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/var/spack/repos/builtin/packages/madis/package.py b/var/spack/repos/builtin/packages/madis/package.py index 320a936abd99b6..ef2b2dc1350e06 100644 --- a/var/spack/repos/builtin/packages/madis/package.py +++ b/var/spack/repos/builtin/packages/madis/package.py @@ -21,6 +21,7 @@ class Madis(MakefilePackage): maintainers("AlexanderRichert-NOAA") + version("4.5", sha256="66376c72ade6b06a5392ad8b4b7a338efbf4d82ff6f7f33648ca316738808e6f") version("4.3", sha256="5d1ee9800c84e623dcf4271653aa66d17a744143e58354e70f8a0646cd6b246c") variant("pic", default=True, description="Build with position-independent code (PIC)") @@ -32,20 +33,21 @@ class Madis(MakefilePackage): def setup_build_environment(self, env): fflags = [] if self.spec.satisfies("%gcc@10:"): - fflags += ["-fallow-argument-mismatch"] + fflags.append("-fallow-argument-mismatch") if self.spec.satisfies("+pic"): - fflags += ["-fPIC"] + fflags.append("-fPIC") env.set("FFLAGS", " ".join(fflags)) ldflags = [] - libs = [] if self.spec.satisfies("+pnetcdf"): + libs = [] pnetcdf = self.spec["parallel-netcdf"] ldflags.append(pnetcdf.libs.ld_flags) libs.append(pnetcdf.libs.link_flags) + env.set("LIBS", " ".join(libs)) nfconfig = which(os.path.join(self.spec["netcdf-fortran"].prefix.bin, "nf-config")) ldflags.append(nfconfig("--flibs", output=str).strip()) @@ -53,7 +55,6 @@ def setup_build_environment(self, env): env.set("NETCDF_INC", netcdf_f.prefix.include) env.set("NETCDF_LIB", " ".join(ldflags)) - env.set("LIBS", " ".join(libs)) def build(self, spec, prefix): with working_dir("src"): From 4e87adae31624fad609c12ab73bf78786228b17f Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 25 Aug 2023 19:00:26 -0600 Subject: [PATCH 27/57] Add py-globus-cli to ewok-env --- var/spack/repos/jcsda-emc-bundles/packages/ewok-env/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/jcsda-emc-bundles/packages/ewok-env/package.py b/var/spack/repos/jcsda-emc-bundles/packages/ewok-env/package.py index 6252ac2f84d592..73b0bf6050673b 100644 --- a/var/spack/repos/jcsda-emc-bundles/packages/ewok-env/package.py +++ b/var/spack/repos/jcsda-emc-bundles/packages/ewok-env/package.py @@ -34,6 +34,7 @@ class EwokEnv(BundlePackage): depends_on("py-boto3", type="run") depends_on("py-cartopy", type="run") depends_on("py-gitpython", type="run") + depends_in("py-globus-cli", type="run") depends_on("py-jinja2", type="run") depends_on("py-ruamel-yaml", type="run") depends_on("py-ruamel-yaml-clib", type="run") From e38fb8c2e6840e392a5427efc7f6375906df39d7 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 25 Aug 2023 19:04:42 -0600 Subject: [PATCH 28/57] Fix style errors in var/spack/repos/jcsda-emc-bundles/packages/ewok-env/package.py --- .../repos/jcsda-emc-bundles/packages/ewok-env/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/jcsda-emc-bundles/packages/ewok-env/package.py b/var/spack/repos/jcsda-emc-bundles/packages/ewok-env/package.py index 73b0bf6050673b..1fa2dba07a9d4f 100644 --- a/var/spack/repos/jcsda-emc-bundles/packages/ewok-env/package.py +++ b/var/spack/repos/jcsda-emc-bundles/packages/ewok-env/package.py @@ -34,7 +34,7 @@ class EwokEnv(BundlePackage): depends_on("py-boto3", type="run") depends_on("py-cartopy", type="run") depends_on("py-gitpython", type="run") - depends_in("py-globus-cli", type="run") + depends_on("py-globus-cli", type="run") depends_on("py-jinja2", type="run") depends_on("py-ruamel-yaml", type="run") depends_on("py-ruamel-yaml-clib", type="run") @@ -46,7 +46,7 @@ class EwokEnv(BundlePackage): depends_on("mysql", type="run") # Comment out for now until build problems are solved # https://github.com/jcsda/spack-stack/issues/522 - #depends_on("py-mysql-connector-python", type="run") + # depends_on("py-mysql-connector-python", type="run") depends_on("solo", when="+solo", type="run") depends_on("r2d2", when="+r2d2", type="run") From fd8beff390060cb9770b0e97aa621234e260ab57 Mon Sep 17 00:00:00 2001 From: Alex Richert Date: Mon, 28 Aug 2023 11:25:19 -0700 Subject: [PATCH 29/57] madis: allow arg mismatch for apple-clang --- var/spack/repos/builtin/packages/madis/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/madis/package.py b/var/spack/repos/builtin/packages/madis/package.py index ef2b2dc1350e06..964ff8548933a7 100644 --- a/var/spack/repos/builtin/packages/madis/package.py +++ b/var/spack/repos/builtin/packages/madis/package.py @@ -32,7 +32,7 @@ class Madis(MakefilePackage): def setup_build_environment(self, env): fflags = [] - if self.spec.satisfies("%gcc@10:"): + if self.spec.satisfies("%gcc@10:") or self.spec.satisfies("%apple-clang"): fflags.append("-fallow-argument-mismatch") if self.spec.satisfies("+pic"): From f8cb1c1077b586a79331e2cca69749fdb65a42ba Mon Sep 17 00:00:00 2001 From: Alex Richert Date: Mon, 28 Aug 2023 11:54:01 -0700 Subject: [PATCH 30/57] madis: tweak arg mismatch logic --- var/spack/repos/builtin/packages/madis/package.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/madis/package.py b/var/spack/repos/builtin/packages/madis/package.py index 964ff8548933a7..0f860aa6921c40 100644 --- a/var/spack/repos/builtin/packages/madis/package.py +++ b/var/spack/repos/builtin/packages/madis/package.py @@ -32,8 +32,16 @@ class Madis(MakefilePackage): def setup_build_environment(self, env): fflags = [] - if self.spec.satisfies("%gcc@10:") or self.spec.satisfies("%apple-clang"): - fflags.append("-fallow-argument-mismatch") + + if self.compiler.name in ["gcc", "clang", "apple-clang"]: + with self.compiler.compiler_environment(): + gfortran_major_version = int( + spack.compiler.get_compiler_version_output( + self.compiler.fc, "-dumpversion" + ).split(".")[0] + ) + if gfortran_major_version >= 10: + fflags.append("-fallow-argument-mismatch") if self.spec.satisfies("+pic"): fflags.append("-fPIC") From b5fd4f0bbb659858a81bd060230d81a17ccd620f Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 28 Aug 2023 20:58:30 -0600 Subject: [PATCH 31/57] Add esmf@8.5.0 and mark 8.3.0b09 as deprecated --- var/spack/repos/builtin/packages/esmf/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/esmf/package.py b/var/spack/repos/builtin/packages/esmf/package.py index a2c4c2bd7445eb..16ffc8295c66a7 100644 --- a/var/spack/repos/builtin/packages/esmf/package.py +++ b/var/spack/repos/builtin/packages/esmf/package.py @@ -29,6 +29,7 @@ class Esmf(MakefilePackage): # Develop is a special name for spack and is always considered the newest version version("develop", branch="develop") # generate chksum with spack checksum esmf@x.y.z + version("8.5.0", sha256="acd0b2641587007cc3ca318427f47b9cae5bfd2da8d2a16ea778f637107c29c4") version("8.4.2", sha256="969304efa518c7859567fa6e65efd960df2b4f6d72dbf2c3f29e39e4ab5ae594") version("8.4.1", sha256="1b54cee91aacaa9df400bd284614cbb0257e175f6f3ec9977a2d991ed8aa1af6") version( @@ -42,7 +43,7 @@ class Esmf(MakefilePackage): sha256="0ff43ede83d1ac6beabd3d5e2a646f7574174b28a48d1b9f2c318a054ba268fd", deprecated=True, ) - version("8.3.0b09", commit="5b7e546c4b") + version("8.3.0b09", commit="5b7e546c4b", deprecated=True) version("8.2.0", sha256="27866c31fdb63c58e78211de970470ca02d274f5d4d6d97e94284d63b1c1d9e4") version("8.1.1", sha256="629690c7a488e84ac7252470349458d7aaa98b54c260f8b3911a2e2f3e713dd0") version( From 630dc72880f4d73939a323bef1cac49251fd26fb Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 28 Aug 2023 20:59:20 -0600 Subject: [PATCH 32/57] Cherry pick var/spack/repos/builtin/packages/mapl/package.py from spack/develop --- .../repos/builtin/packages/mapl/package.py | 114 +++++++++++++----- 1 file changed, 87 insertions(+), 27 deletions(-) diff --git a/var/spack/repos/builtin/packages/mapl/package.py b/var/spack/repos/builtin/packages/mapl/package.py index a68c4f8bb1fb6b..2ae3b557eae127 100644 --- a/var/spack/repos/builtin/packages/mapl/package.py +++ b/var/spack/repos/builtin/packages/mapl/package.py @@ -24,11 +24,26 @@ class Mapl(CMakePackage): list_url = "https://github.com/GEOS-ESM/MAPL/tags" git = "https://github.com/GEOS-ESM/MAPL.git" - maintainers("mathomp4", "tclune", "climbfuji", "edwardhartnett", "Hang-Lei-NOAA", "AlexanderRichert-NOAA") + maintainers( + "mathomp4", + "tclune", + "climbfuji", + "edwardhartnett", + "Hang-Lei-NOAA", + "AlexanderRichert-NOAA", + ) version("develop", branch="develop") version("main", branch="main") + version("2.40.3", sha256="4b82a314c88a035fc2b91395750aa7950d6bee838786178ed16a3f39a1e45519") + version("2.40.2", sha256="7327f6f5bce6e09e7f7b930013fba86ee7cbfe8ed4c7c087fc9ab5acbf6640fd") + version("2.40.1", sha256="6f40f946fabea6ba73b0764092e495505d220455b191b4e454736a0a25ee058c") + version("2.40.0", sha256="406bc63407ced3cd0cb147f203994fd4d14149fa3b909280ee1e0b2b549e732e") + version("2.39.7", sha256="f0b02bf3dc1c77dba636f95020e4b858da03214711d3a50bc233df277698755a") + version("2.39.6", sha256="3c1a838b445c5ae5c80d6912033495a9e696257c6113aead4a13755b6a242883") + version("2.39.5", sha256="42afac883793cb0f2f40ed2c51bfc9f116803299168cbf055a83b33934d3f6c2") + version("2.39.4", sha256="681842fda70f21e2b2743b3bf861ea2674862c322b885e69c6c2c926e0f5d09e") version("2.39.3", sha256="693310aea86bc3e00aaf3d7230eddee2ab0a994e6a55f857f780230e6b47c7d4") version("2.39.2", sha256="7a73a73b51852c988e89950a629201221261466d0b810c686423b7ced6ae491e") version("2.39.1", sha256="eef783622c8d69bcdcede427760d994906343c5b15a9f020ed45231e9a312192") @@ -63,21 +78,55 @@ class Mapl(CMakePackage): version("2.23.1", sha256="563f3e9f33adae298835e7de7a4a29452a2a584d191248c59494c49d3ee80d24") version("2.23.0", sha256="ae25ec63d0f288599c668f35fdbccc76abadbfc6d48f95b6eb4e7a2c0c69f241") version("2.22.0", sha256="3356b8d29813431d272c5464e265f3fe3ce1ac7f49ae6d41da34fe4b82aa691a") - version("2.12.3", sha256="e849eff291939509e74830f393cb2670c2cc96f6160d8060dbeb1742639c7d41") - version("2.11.0", sha256="76351e026c17e2044b89085db639e05ba0e7439a174d14181e01874f0f93db44") - version("2.8.1", sha256="a7657d4c52a66c3a6663e436d2c2dd4dbb81addd747e1ace68f59843665eb739") - version("2.8.0", sha256="6da60a21ab77ecebc80575f25b756c398ef48f635ab0b9c96932a1d4ebd8b4a0") - version("2.7.3", sha256="e8cdc0816471bb4c42673c2fa66d9d749f5a18944cd31580a2d6fd6d961ba163") - version("2.7.2", sha256="8f123352c665c434a18ff87304a71a61fb3342919adcccfea2a40729992d9f93") - version("2.7.1", sha256="8239fdbebd2caa47a232c24927f7a91196704e35c8b7909e1bbbefccf0647ea6") + version( + "2.12.3", + sha256="e849eff291939509e74830f393cb2670c2cc96f6160d8060dbeb1742639c7d41", + deprecated=True, + ) + version( + "2.11.0", + sha256="76351e026c17e2044b89085db639e05ba0e7439a174d14181e01874f0f93db44", + deprecated=True, + ) + version( + "2.8.1", + sha256="a7657d4c52a66c3a6663e436d2c2dd4dbb81addd747e1ace68f59843665eb739", + deprecated=True, + ) + version( + "2.8.0", + sha256="6da60a21ab77ecebc80575f25b756c398ef48f635ab0b9c96932a1d4ebd8b4a0", + deprecated=True, + ) + version( + "2.7.3", + sha256="e8cdc0816471bb4c42673c2fa66d9d749f5a18944cd31580a2d6fd6d961ba163", + deprecated=True, + ) + version( + "2.7.2", + sha256="8f123352c665c434a18ff87304a71a61fb3342919adcccfea2a40729992d9f93", + deprecated=True, + ) + version( + "2.7.1", + sha256="8239fdbebd2caa47a232c24927f7a91196704e35c8b7909e1bbbefccf0647ea6", + deprecated=True, + ) # Versions later than 3.14 remove FindESMF.cmake # from ESMA_CMake. + resource( + name="esma_cmake", + git="https://github.com/GEOS-ESM/ESMA_cmake.git", + tag="v3.31.0", + when="@2.40.0:", + ) resource( name="esma_cmake", git="https://github.com/GEOS-ESM/ESMA_cmake.git", tag="v3.28.0", - when="@2.36.0:", + when="@2.36.0:2.39", ) resource( name="esma_cmake", @@ -91,6 +140,8 @@ class Mapl(CMakePackage): tag="v3.21.0", when="@2.22.0:2.33", ) + # NOTE: Remove this resource(), the patch() commands below + # and the actual patches when MAPL 2.12 and older are deleted resource( name="esma_cmake", git="https://github.com/GEOS-ESM/ESMA_cmake.git", @@ -108,13 +159,12 @@ class Mapl(CMakePackage): # Patch to add missing MPI Fortran target to top-level CMakeLists.txt patch("mapl-2.12.3-mpi-fortran.patch", when="@:2.12.3") - variant("flap", default=False, description="Build with FLAP support") - variant("pflogger", default=False, description="Build with pFlogger support") - variant("fargparse", default=False, description="Build with fArgParse support") + variant("flap", default=False, description="Build with FLAP support", when="@:2.39") + variant("pflogger", default=True, description="Build with pFlogger support") + variant("fargparse", default=True, description="Build with fArgParse support") variant("shared", default=True, description="Build as shared library") variant("debug", default=False, description="Make a debuggable version of the library") - variant("extdata2g", default=False, description="Use ExtData2G") - variant("pnetcdf", default=True, description="Use parallel netCDF") + variant("extdata2g", default=True, description="Use ExtData2G") variant("pfunit", default=False, description="Build with pFUnit support") variant("f2py", default=False, description="Build with f2py support") @@ -130,28 +180,38 @@ class Mapl(CMakePackage): depends_on("hdf5") depends_on("netcdf-c") depends_on("netcdf-fortran") - depends_on("parallel-netcdf", when="+pnetcdf") - depends_on("esmf@8.4:", when="@2.34:") - depends_on("esmf@8.3:", when="@2.22:") + depends_on("esmf@8.5:", when="@2.40:") + depends_on("esmf@8.4", when="@2.34:2.39") + depends_on("esmf@8.3", when="@2.22:2.33") depends_on("esmf", when="@:2.12.99") depends_on("esmf~debug", when="~debug") depends_on("esmf+debug", when="+debug") - depends_on("gftl@1.5.5:") - depends_on("gftl-shared@1.3.1:") + depends_on("gftl@1.10.0:", when="@2.40:") + depends_on("gftl@1.5.5:1.9", when="@:2.39") + + # There was an interface change in gftl-shared, so we need to control versions + # MAPL 2.39 and older can use up to 1.6.0 but MAPL 2.40+ needs 1.6.1 or higher + depends_on("gftl-shared@1.6.1:", when="@2.40:") + depends_on("gftl-shared@1.3.1:1.6.0", when="@:2.39") # There was an interface change in yaFyaml, so we need to control versions # MAPL 2.22 and older uses older version, MAPL 2.23+ and higher uses newer + # Note that MAPL 2.40+ no longer require yafyaml as we get yaml support + # via esmf 8.5.0 depends_on("yafyaml@1.0-beta5", when="@:2.22+extdata2g") - depends_on("yafyaml@1.0.4:", when="@2.23:+extdata2g") + depends_on("yafyaml@1.0.4:", when="@2.23:2.39+extdata2g") # pFlogger depends on yaFyaml in the same way. MAPL 2.22 and below uses old # yaFyaml so we need to use old pFlogger, but MAPL 2.23+ uses new yaFyaml depends_on("pflogger@:1.6", when="@:2.22+pflogger") - depends_on("pflogger@1.9.1:", when="@2.23:+pflogger") + depends_on("pflogger@1.9.1:", when="@2.23:2.39+pflogger") + depends_on("pflogger@1.9.5:", when="@2.40:+pflogger") # fArgParse v1.4.1 is the first usable version with MAPL - depends_on("fargparse@1.4.1:", when="+fargparse") + # we now require 1.5.0 with MAPL 2.40+ + depends_on("fargparse@1.5.0:", when="@2.40:+fargparse") + depends_on("fargparse@1.4.1:1.4", when="@:2.39+fargparse") depends_on("pfunit@4.2: +mpi +fhamcrest", when="+pfunit") depends_on("flap", when="+flap") @@ -197,11 +257,11 @@ def cmake_args(self): def patch(self): if "~shared" in self.spec["netcdf-c"]: - nc_pc_cmd = ["nc-config","--static","--libs"] - nc_flags = \ - subprocess.check_output(nc_pc_cmd, encoding="utf8").strip() - filter_file("(target_link_libraries[^)]+PUBLIC )", \ - r'\1 %s '%nc_flags, "pfio/CMakeLists.txt") + nc_pc_cmd = ["nc-config", "--static", "--libs"] + nc_flags = subprocess.check_output(nc_pc_cmd, encoding="utf8").strip() + filter_file( + "(target_link_libraries[^)]+PUBLIC )", r"\1 %s " % nc_flags, "pfio/CMakeLists.txt" + ) def setup_build_environment(self, env): # esma_cmake, an internal dependency of mapl, is From 1a4893a92a11b4679432093b53dbdea67d4c4589 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Tue, 29 Aug 2023 14:22:52 -0400 Subject: [PATCH 33/57] mapl: Fix pflogger dependency (#39683) --- var/spack/repos/builtin/packages/mapl/package.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/var/spack/repos/builtin/packages/mapl/package.py b/var/spack/repos/builtin/packages/mapl/package.py index 2ae3b557eae127..54cef1e40e96da 100644 --- a/var/spack/repos/builtin/packages/mapl/package.py +++ b/var/spack/repos/builtin/packages/mapl/package.py @@ -204,9 +204,9 @@ class Mapl(CMakePackage): # pFlogger depends on yaFyaml in the same way. MAPL 2.22 and below uses old # yaFyaml so we need to use old pFlogger, but MAPL 2.23+ uses new yaFyaml - depends_on("pflogger@:1.6", when="@:2.22+pflogger") - depends_on("pflogger@1.9.1:", when="@2.23:2.39+pflogger") - depends_on("pflogger@1.9.5:", when="@2.40:+pflogger") + depends_on("pflogger@:1.6 +mpi", when="@:2.22+pflogger") + depends_on("pflogger@1.9.1: +mpi", when="@2.23:2.39+pflogger") + depends_on("pflogger@1.9.5: +mpi", when="@2.40:+pflogger") # fArgParse v1.4.1 is the first usable version with MAPL # we now require 1.5.0 with MAPL 2.40+ From b663c8143565067861ace64f6051eee63b81268b Mon Sep 17 00:00:00 2001 From: Alex Richert <82525672+AlexanderRichert-NOAA@users.noreply.github.com> Date: Fri, 1 Sep 2023 15:30:06 -0700 Subject: [PATCH 34/57] Update met package.py --- var/spack/repos/builtin/packages/met/package.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/var/spack/repos/builtin/packages/met/package.py b/var/spack/repos/builtin/packages/met/package.py index 83dd1850786359..c1646e3dcbab51 100644 --- a/var/spack/repos/builtin/packages/met/package.py +++ b/var/spack/repos/builtin/packages/met/package.py @@ -183,6 +183,3 @@ def configure_args(self): if self.spec.satisfies("%apple-clang@14:"): args.append("CXXFLAGS=-std=gnu++17") return args - - def setup_run_environment(self, env): - env.set("MET_BASE", self.prefix) From 2813cb52529333450210c958e1736a4542c87cad Mon Sep 17 00:00:00 2001 From: Alex Richert <82525672+AlexanderRichert-NOAA@users.noreply.github.com> Date: Tue, 5 Sep 2023 13:00:20 -0700 Subject: [PATCH 35/57] Update py-globus-cli package.py --- var/spack/repos/builtin/packages/py-globus-cli/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/py-globus-cli/package.py b/var/spack/repos/builtin/packages/py-globus-cli/package.py index 5798513c310ac3..beb2dc0bdea667 100644 --- a/var/spack/repos/builtin/packages/py-globus-cli/package.py +++ b/var/spack/repos/builtin/packages/py-globus-cli/package.py @@ -8,7 +8,7 @@ class PyGlobusCli(PythonPackage): - """Globus CLI is a standalone application that can be installed on the user’s machine + """Globus CLI is a standalone application that can be installed on the user's machine and is used to access the Globus service. The CLI provides an interface to Globus services from the shell, and is suited to both interactive and simple scripting use cases.""" From c05d6d871c57cc438edc01123eb7ef54708096a8 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 5 Sep 2023 09:57:24 -0600 Subject: [PATCH 36/57] Fix permissions for configure file in var/spack/repos/builtin/packages/hdf-eos2/package.py, fix dependencies to match what hdf provides --- .../repos/builtin/packages/hdf-eos2/package.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/hdf-eos2/package.py b/var/spack/repos/builtin/packages/hdf-eos2/package.py index 4f9b782afceadf..f37d530c9c7012 100644 --- a/var/spack/repos/builtin/packages/hdf-eos2/package.py +++ b/var/spack/repos/builtin/packages/hdf-eos2/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import sys +from os import chmod from spack.package import * @@ -54,6 +55,11 @@ class HdfEos2(AutotoolsPackage): # Build dependencies depends_on("hdf") + # Because hdf always depends on zlib and jpeg in spack, the tests below in configure_args + # (if "jpeg" in self.spec:) always returns true and hdf-eos2 wants zlib and jpeg, too. + depends_on("zlib") + depends_on("jpeg") + depends_on("szip", when="^hdf +szip") # The standard Makefile.am, etc. add a --single_module flag to LDFLAGS # to pass to the linker. @@ -75,6 +81,11 @@ def url_for_version(self, version): "version/checksum not found in version_list".format(version) ) + @run_before("configure") + def fix_permissions(self): + if not self.force_autoreconf: + chmod(join_path(self.stage.source_path, "configure"), 0o755) + def flag_handler(self, name, flags): if self.spec.compiler.name == "apple-clang": if name == "cflags": @@ -100,8 +111,8 @@ def configure_args(self): extra_args.append("--with-hdf4={0}".format(self.spec["hdf"].prefix)) if "jpeg" in self.spec: extra_args.append("--with-jpeg={0}".format(self.spec["jpeg"].prefix)) - if "libszip" in self.spec: - extra_args.append("--with-szlib={0}".format(self.spec["libszip"].prefix)) + if "szip" in self.spec: + extra_args.append("--with-szlib={0}".format(self.spec["szip"].prefix)) if "zlib" in self.spec: extra_args.append("--with-zlib={0}".format(self.spec["zlib"].prefix)) From ede3bbc60608cdb5e36cc22548a3b45407261ee4 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 5 Sep 2023 13:18:49 -0600 Subject: [PATCH 37/57] Filter spack compiler wrappers for h4cc in var/spack/repos/builtin/packages/hdf/package.py --- var/spack/repos/builtin/packages/hdf/package.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/var/spack/repos/builtin/packages/hdf/package.py b/var/spack/repos/builtin/packages/hdf/package.py index b0168db3cf30fd..d42b03fbb7bc86 100644 --- a/var/spack/repos/builtin/packages/hdf/package.py +++ b/var/spack/repos/builtin/packages/hdf/package.py @@ -197,6 +197,10 @@ def check(self): extra_install_tests = join_path("hdf", "util", "testfiles") + # Filter h4cc compiler wrapper to substitute the Spack compiler + # wrappers with the path of the underlying compilers. + filter_compiler_wrappers("h4cc", relative_root="bin") + @property def cached_tests_work_dir(self): """The working directory for cached test sources.""" From ed76b50cc1cdc90f1c6c652a4d203c97a31a9dee Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 5 Sep 2023 15:55:22 -0600 Subject: [PATCH 38/57] Fix Darwin lib install name in var/spack/repos/builtin/packages/libjpeg-turbo/package.py --- var/spack/repos/builtin/packages/libjpeg-turbo/package.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py index ae9659c73cdaae..cc50ea1ff1ffe2 100644 --- a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py +++ b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py @@ -92,3 +92,9 @@ def cmake_args(self): ] return args + + @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 28dd9d39975f8337cb79bc413229b345282ba268 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 5 Sep 2023 19:40:12 -0600 Subject: [PATCH 39/57] Update var/spack/repos/builtin/packages/libjpeg-turbo/package.py Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> --- var/spack/repos/builtin/packages/libjpeg-turbo/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py index cc50ea1ff1ffe2..66f856f299e7b3 100644 --- a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py +++ b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py @@ -96,5 +96,5 @@ def cmake_args(self): @run_after("install") def darwin_fix(self): # The shared library is not installed correctly on Darwin; fix this - if self.spec.satisfies("platform=darwin"): + if self.spec.satisfies("platform=darwin") and ("+shared" in self.spec): fix_darwin_install_name(self.prefix.lib) From 44d77ac76e19074da3161d1caa36fc24a68cc51f Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 6 Sep 2023 06:30:06 -0600 Subject: [PATCH 40/57] Test for both LMOD_VERSION_MAJOR and LMOD_VERSION in tcl modulefile template share/spack/templates/modules/modulefile.tcl --- share/spack/templates/modules/modulefile.tcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/spack/templates/modules/modulefile.tcl b/share/spack/templates/modules/modulefile.tcl index 52d987da61b136..76195df2e5e69e 100644 --- a/share/spack/templates/modules/modulefile.tcl +++ b/share/spack/templates/modules/modulefile.tcl @@ -27,7 +27,7 @@ proc ModulesHelp { } { {% block autoloads %} {% if autoload|length > 0 %} -if {![info exists ::env(LMOD_VERSION_MAJOR)]} { +if {![info exists ::env(LMOD_VERSION_MAJOR)] && ![info exists ::env(LMOD_VERSION)]} { {% for module in autoload %} module load {{ module }} {% endfor %} From c58074520d5adebafe19c7c855c1a13307324bca Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 6 Sep 2023 06:35:30 -0600 Subject: [PATCH 41/57] Simplify modulefile logic in lib/jcsda-emc/spack-stack/stack/meta_modules.py, enable use of tcl modules on macOS --- .../spack-stack/stack/meta_modules.py | 88 +++++++++---------- 1 file changed, 41 insertions(+), 47 deletions(-) diff --git a/lib/jcsda-emc/spack-stack/stack/meta_modules.py b/lib/jcsda-emc/spack-stack/stack/meta_modules.py index e85bad1d440aa9..8cdeb06a4be496 100755 --- a/lib/jcsda-emc/spack-stack/stack/meta_modules.py +++ b/lib/jcsda-emc/spack-stack/stack/meta_modules.py @@ -259,9 +259,14 @@ def setup_meta_modules(): module_choice = module_config["default"]["enable"][0] logging.info(" ... configured to use {} modules".format(module_choice)) - # Prevent the use of tcl modules on macOS because sed syntax is different - if module_choice == "tcl" and sys.platform == "darwin": - raise Exception("Use of tcl modules on macOS not supported - sed syntax differs") + # Need to set a few variables when tcl modules are used + if module_choice == "tcl": + module_replace_patterns = ["is-loaded", "module load", "depends-on"] + # sed syntax differs on macOS + if sys.platform == "darwin": + sed_syntax_fix = "''" + else: + sed_syntax_fix = "" # Top-level module directory module_dir = substitute_config_vars(module_config["default"]["roots"][module_choice]) @@ -427,18 +432,13 @@ def setup_meta_modules(): logging.debug( " ... ... ... removing compiler prefices in {}".format(filepath) ) - cmd = "sed -i 's#is-loaded {}/{}/#is-loaded #g' {}".format( - compiler_name, compiler_version, filepath - ) - status = os.system(cmd) - if not status == 0: - raise Exception("Error while calling '{}'".format(cmd)) - cmd = "sed -i 's#load {}/{}/#load #g' {}".format( - compiler_name, compiler_version, filepath - ) - status = os.system(cmd) - if not status == 0: - raise Exception("Error while calling '{}'".format(cmd)) + for pattern in module_replace_patterns: + cmd = "sed -i {4} 's#{0} {1}/{2}/#{0} #g' {3}".format( + pattern, compiler_name, compiler_version, filepath, sed_syntax_fix + ) + status = os.system(cmd) + if not status == 0: + raise Exception("Error while calling '{}'".format(cmd)) # Read compiler template into module_content string with open(COMPILER_TEMPLATES[module_choice]) as f: @@ -651,40 +651,34 @@ def setup_meta_modules(): filepath ) ) + # Search patterns + patterns = ["is-loaded", "module load", "depends-on"] # First, compiler-only dependent modules - cmd = "sed -i 's#is-loaded {}/{}/#is-loaded #g' {}".format( - compiler_name, compiler_version, filepath - ) - status = os.system(cmd) - if not status == 0: - raise Exception("Error while calling '{}'".format(cmd)) - cmd = "sed -i 's#load {}/{}/#load #g' {}".format( - compiler_name, compiler_version, filepath - ) - status = os.system(cmd) - if not status == 0: - raise Exception("Error while calling '{}'".format(cmd)) + for pattern in module_replace_patterns: + cmd = "sed -i {4} 's#{0} {1}/{2}/#{0} #g' {3}".format( + pattern, + compiler_name, + compiler_version, + filepath, + sed_syntax_fix, + ) + status = os.system(cmd) + if not status == 0: + raise Exception("Error while calling '{}'".format(cmd)) # Then, compiler+mpi-dependent modules - cmd = "sed -i 's#is-loaded {}/{}/{}/{}/#is-loaded #g' {}".format( - mpi_name, - mpi_version, - compiler_name, - compiler_version, - filepath, - ) - status = os.system(cmd) - if not status == 0: - raise Exception("Error while calling '{}'".format(cmd)) - cmd = "sed -i 's#load {}/{}/{}/{}/#load #g' {}".format( - mpi_name, - mpi_version, - compiler_name, - compiler_version, - filepath, - ) - status = os.system(cmd) - if not status == 0: - raise Exception("Error while calling '{}'".format(cmd)) + for pattern in module_replace_patterns: + cmd = "sed -i {6} 's#{0} {1}/{2}/{3}/{4}/#{0} #g' {5}".format( + pattern, + mpi_name, + mpi_version, + compiler_name, + compiler_version, + filepath, + sed_syntax_fix, + ) + status = os.system(cmd) + if not status == 0: + raise Exception("Error while calling '{}'".format(cmd)) # Read compiler lua template into module_content string with open(MPI_TEMPLATES[module_choice]) as f: From e7d46da7047936ef961de4b914f75e2325bab586 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 6 Sep 2023 07:20:08 -0600 Subject: [PATCH 42/57] Update lib/spack/spack/test/modules/tcl.py to match syntax change in tcl modulefile template --- lib/spack/spack/test/modules/tcl.py | 45 +++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/lib/spack/spack/test/modules/tcl.py b/lib/spack/spack/test/modules/tcl.py index af511f72e9ad98..1c3bd562b665cb 100644 --- a/lib/spack/spack/test/modules/tcl.py +++ b/lib/spack/spack/test/modules/tcl.py @@ -38,7 +38,14 @@ def test_autoload_direct(self, modulefile_content, module_configuration): content = modulefile_content(mpileaks_spec_string) assert ( - len([x for x in content if "if {![info exists ::env(LMOD_VERSION_MAJOR)]} {" in x]) + len( + [ + x + for x in content + if "if {![info exists ::env(LMOD_VERSION_MAJOR)] && ![info exists ::env(LMOD_VERSION)]} {" # noqa: E501 + in x + ] + ) == 1 ) assert len([x for x in content if "depends-on " in x]) == 2 @@ -52,7 +59,14 @@ def test_autoload_direct(self, modulefile_content, module_configuration): content = modulefile_content("dtbuild1") assert ( - len([x for x in content if "if {![info exists ::env(LMOD_VERSION_MAJOR)]} {" in x]) + len( + [ + x + for x in content + if "if {![info exists ::env(LMOD_VERSION_MAJOR)] && ![info exists ::env(LMOD_VERSION)]} {" # noqa: E501 + in x + ] + ) == 1 ) assert len([x for x in content if "depends-on " in x]) == 2 @@ -69,7 +83,14 @@ def test_autoload_all(self, modulefile_content, module_configuration): content = modulefile_content(mpileaks_spec_string) assert ( - len([x for x in content if "if {![info exists ::env(LMOD_VERSION_MAJOR)]} {" in x]) + len( + [ + x + for x in content + if "if {![info exists ::env(LMOD_VERSION_MAJOR)] && ![info exists ::env(LMOD_VERSION)]} {" # noqa: E501 + in x + ] + ) == 1 ) assert len([x for x in content if "depends-on " in x]) == 5 @@ -83,7 +104,14 @@ def test_autoload_all(self, modulefile_content, module_configuration): content = modulefile_content("dtbuild1") assert ( - len([x for x in content if "if {![info exists ::env(LMOD_VERSION_MAJOR)]} {" in x]) + len( + [ + x + for x in content + if "if {![info exists ::env(LMOD_VERSION_MAJOR)] && ![info exists ::env(LMOD_VERSION)]} {" # noqa: E501 + in x + ] + ) == 1 ) assert len([x for x in content if "depends-on " in x]) == 2 @@ -476,7 +504,14 @@ def test_autoload_with_constraints(self, modulefile_content, module_configuratio # Test the mpileaks that should NOT have the autoloaded dependencies content = modulefile_content("mpileaks ^mpich") assert ( - len([x for x in content if "if {![info exists ::env(LMOD_VERSION_MAJOR)]} {" in x]) + len( + [ + x + for x in content + if "if {![info exists ::env(LMOD_VERSION_MAJOR)] && ![info exists ::env(LMOD_VERSION)]} {" # noqa: E501 + in x + ] + ) == 0 ) assert len([x for x in content if "depends-on " in x]) == 0 From 916c8e42443254bb2025512e6be37bbeb15e1c9e Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 6 Sep 2023 08:56:32 -0600 Subject: [PATCH 43/57] Add awscli@1.29.41 and its dependency py-botocore@1.31.41 --- var/spack/repos/builtin/packages/awscli/package.py | 11 +++++++---- .../repos/builtin/packages/py-botocore/package.py | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/var/spack/repos/builtin/packages/awscli/package.py b/var/spack/repos/builtin/packages/awscli/package.py index df00ac055849d7..3a667f19c4ad54 100644 --- a/var/spack/repos/builtin/packages/awscli/package.py +++ b/var/spack/repos/builtin/packages/awscli/package.py @@ -13,6 +13,7 @@ class Awscli(PythonPackage): pypi = "awscli/awscli-1.16.308.tar.gz" + version("1.29.41", sha256="c029edd2c0bd72fb49cefe1a8f83ce2b46ba31ab45769677f7ba0771461078cb") version("1.27.84", sha256="a27a7d1f3efa9dd2acf9d8bd72b939337d53da4ac71721cde6d5dff94aa446f7") version("1.27.56", sha256="58fd7122547db71646c053c914bd4f9b673356dd8c9520ae6d35560a8aec208b") version("1.16.308", sha256="3632fb1db2538128509a7b5e89f2a2c4ea3426bec139944247bddc4d79bf7603") @@ -22,22 +23,24 @@ class Awscli(PythonPackage): depends_on("python@3.7:", when="@1.25:", type=("build", "run")) # py-botocore is pinned to the patch version number + depends_on("py-botocore@1.31.41", when="@1.29.41", type=("build", "run")) depends_on("py-botocore@1.29.84", when="@1.27.84", type=("build", "run")) depends_on("py-botocore@1.29.56", when="@1.27.56", type=("build", "run")) depends_on("py-botocore@1.13.44", when="@1.16.308", type=("build", "run")) depends_on("py-botocore@1.12.169", when="@1.16.179", type=("build", "run")) - depends_on("py-colorama@0.2.5:0.4.4", when="@1.27", type=("build", "run")) + depends_on("py-colorama@0.2.5:0.4.4", when="@1.27:", type=("build", "run")) depends_on("py-colorama@0.2.5:0.3.9", when="@1.16", type=("build", "run")) - depends_on("py-docutils@0.10:0.16", when="@1.27", type=("build", "run")) + depends_on("py-docutils@0.10:0.16", when="@1.27:", type=("build", "run")) depends_on("py-docutils@0.10:0.15", when="@1.16", type=("build", "run")) + depends_on("py-pyyaml@3.10:6.0", when="@1.29", type=("build", "run")) depends_on("py-pyyaml@3.10:5.4", when="@1.27", type=("build", "run")) depends_on("py-pyyaml@3.10:5.2", when="@1.16", type=("build", "run")) - depends_on("py-rsa@3.1.2:4.7", when="@1.27", type=("build", "run")) + depends_on("py-rsa@3.1.2:4.7", when="@1.27:", type=("build", "run")) depends_on("py-rsa@3.1.2:3.5.0", when="@1.16", type=("build", "run")) - depends_on("py-s3transfer@0.6.0:0.6", when="@1.27", type=("build", "run")) + depends_on("py-s3transfer@0.6.0:0.6", when="@1.27:", type=("build", "run")) depends_on("py-s3transfer@0.2.0:0.2", when="@1.16", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-botocore/package.py b/var/spack/repos/builtin/packages/py-botocore/package.py index f7eec29a9bf71a..460aa11b37eeab 100644 --- a/var/spack/repos/builtin/packages/py-botocore/package.py +++ b/var/spack/repos/builtin/packages/py-botocore/package.py @@ -12,6 +12,7 @@ class PyBotocore(PythonPackage): homepage = "https://github.com/boto/botocore" pypi = "botocore/botocore-1.13.44.tar.gz" + version("1.31.41", sha256="4dad7c5a5e70940de54ebf8de3955450c1f092f43cacff8103819d1e7d5374fa") version("1.29.84", sha256="a36f7f6f8eae5dbd4a1cc8cb6fc747f6315500541181eff2093ee0529fc8e4bc") version("1.29.76", sha256="c2f67b6b3f8acf2968eafca06526f07b9fb0d27bac4c68a635d51abb675134a7") version("1.29.56", sha256="ca4d6403d745218270a20d9ca3ca9a33e3ad2fabb59a96ed8d6e1a824b274c86") From f9256a2a3548b3fc0cd9326dbbb54879c5060055 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 6 Sep 2023 08:57:33 -0600 Subject: [PATCH 44/57] Add awscli to ewok-env --- var/spack/repos/jcsda-emc-bundles/packages/ewok-env/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/jcsda-emc-bundles/packages/ewok-env/package.py b/var/spack/repos/jcsda-emc-bundles/packages/ewok-env/package.py index 1fa2dba07a9d4f..ebafa2e520242f 100644 --- a/var/spack/repos/jcsda-emc-bundles/packages/ewok-env/package.py +++ b/var/spack/repos/jcsda-emc-bundles/packages/ewok-env/package.py @@ -31,6 +31,7 @@ class EwokEnv(BundlePackage): ) depends_on("jedi-base-env +python", type="run") + depends_on("awscli", type="run") depends_on("py-boto3", type="run") depends_on("py-cartopy", type="run") depends_on("py-gitpython", type="run") From ab25de725063f0875f85f381251bbcf2c18f228f Mon Sep 17 00:00:00 2001 From: ulmononian Date: Wed, 6 Sep 2023 12:49:44 -0500 Subject: [PATCH 45/57] Update srw app env w/ met and metplus. --- .../repos/jcsda-emc-bundles/packages/ufs-srw-app-env/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/var/spack/repos/jcsda-emc-bundles/packages/ufs-srw-app-env/package.py b/var/spack/repos/jcsda-emc-bundles/packages/ufs-srw-app-env/package.py index ac3d3cfa227581..fdedac912f3512 100644 --- a/var/spack/repos/jcsda-emc-bundles/packages/ufs-srw-app-env/package.py +++ b/var/spack/repos/jcsda-emc-bundles/packages/ufs-srw-app-env/package.py @@ -44,5 +44,7 @@ class UfsSrwAppEnv(BundlePackage): depends_on("w3emc") depends_on("wgrib2") depends_on("gsi-ncdiag") + depends_on("met") + depends_on("metplus") # There is no need for install() since there is no code. From 3db6c5326605e291b8b52fd7565520513756684a Mon Sep 17 00:00:00 2001 From: ulmononian Date: Wed, 6 Sep 2023 13:23:01 -0500 Subject: [PATCH 46/57] Add mapl as dependency for srw-app-env package. --- .../repos/jcsda-emc-bundles/packages/ufs-srw-app-env/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/jcsda-emc-bundles/packages/ufs-srw-app-env/package.py b/var/spack/repos/jcsda-emc-bundles/packages/ufs-srw-app-env/package.py index fdedac912f3512..9c2e4a7a9f71d2 100644 --- a/var/spack/repos/jcsda-emc-bundles/packages/ufs-srw-app-env/package.py +++ b/var/spack/repos/jcsda-emc-bundles/packages/ufs-srw-app-env/package.py @@ -46,5 +46,6 @@ class UfsSrwAppEnv(BundlePackage): depends_on("gsi-ncdiag") depends_on("met") depends_on("metplus") + depends_on("mapl") # There is no need for install() since there is no code. From 42337f6c0c9952244f060917423955bb35c90fdc Mon Sep 17 00:00:00 2001 From: ulmononian Date: Wed, 6 Sep 2023 13:34:16 -0500 Subject: [PATCH 47/57] Add ncio to srw-app-env. --- .../repos/jcsda-emc-bundles/packages/ufs-srw-app-env/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/jcsda-emc-bundles/packages/ufs-srw-app-env/package.py b/var/spack/repos/jcsda-emc-bundles/packages/ufs-srw-app-env/package.py index 9c2e4a7a9f71d2..e500ff906aaf14 100644 --- a/var/spack/repos/jcsda-emc-bundles/packages/ufs-srw-app-env/package.py +++ b/var/spack/repos/jcsda-emc-bundles/packages/ufs-srw-app-env/package.py @@ -47,5 +47,6 @@ class UfsSrwAppEnv(BundlePackage): depends_on("met") depends_on("metplus") depends_on("mapl") + depends_on("ncio") # There is no need for install() since there is no code. From 9b2f487a114f792a63d6bf90bc7dc036628cd66b Mon Sep 17 00:00:00 2001 From: Alex Richert Date: Fri, 8 Sep 2023 13:48:36 -0700 Subject: [PATCH 48/57] Add grib_util 1.3.0 (using commit) and update deps --- var/spack/repos/builtin/packages/grib-util/package.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/grib-util/package.py b/var/spack/repos/builtin/packages/grib-util/package.py index ee4371b1b8cca7..16c327332d9e42 100644 --- a/var/spack/repos/builtin/packages/grib-util/package.py +++ b/var/spack/repos/builtin/packages/grib-util/package.py @@ -13,9 +13,11 @@ class GribUtil(CMakePackage): homepage = "https://github.com/NOAA-EMC/NCEPLIBS-grib_util" url = "https://github.com/NOAA-EMC/NCEPLIBS-grib_util/archive/refs/tags/v1.2.3.tar.gz" + git = "https://github.com/NOAA-EMC/NCEPLIBS-grib_util" maintainers("AlexanderRichert-NOAA", "Hang-Lei-NOAA", "edwardhartnett") + version("1.3.0", commit="9d3c68a") version("1.2.4", sha256="f021d6df3186890b0b1781616dabf953581d71db63e7c2913360336985ccaec7") version("1.2.3", sha256="b17b08e12360bb8ad01298e615f1b4198e304b0443b6db35fe990a817e648ad5") @@ -28,7 +30,8 @@ class GribUtil(CMakePackage): depends_on("w3nco", when="@:1.2.3") depends_on("g2") depends_on("bacio") - depends_on("ip@:3.3.3") + depends_on("ip") + depends_on("ip@:3.3.3", when="@:1.2") depends_on("sp") def cmake_args(self): From c1600e52b14155d5baa2bb71cfe82788a5395efb Mon Sep 17 00:00:00 2001 From: Alex Richert Date: Fri, 8 Sep 2023 14:14:59 -0700 Subject: [PATCH 49/57] Update w3emc dependency for grib-util --- var/spack/repos/builtin/packages/grib-util/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/grib-util/package.py b/var/spack/repos/builtin/packages/grib-util/package.py index 16c327332d9e42..53d8c504d1101e 100644 --- a/var/spack/repos/builtin/packages/grib-util/package.py +++ b/var/spack/repos/builtin/packages/grib-util/package.py @@ -27,6 +27,7 @@ class GribUtil(CMakePackage): depends_on("libpng") depends_on("zlib") depends_on("w3emc", when="@1.2.4:") + depends_on("w3emc@2.10:", when="@1.3:") depends_on("w3nco", when="@:1.2.3") depends_on("g2") depends_on("bacio") From 23b350c9feaa379f452fa20706f893ab6381e1e7 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Sun, 10 Sep 2023 19:00:06 -0600 Subject: [PATCH 50/57] Rename var/spack/repos/builtin/packages/python/cray-rpath-3.1.patch as var/spack/repos/builtin/packages/python/rpath-non-gcc.patch and apply unconditionally --- var/spack/repos/builtin/packages/python/package.py | 4 ++-- .../python/{cray-rpath-3.1.patch => rpath-non-gcc.patch} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename var/spack/repos/builtin/packages/python/{cray-rpath-3.1.patch => rpath-non-gcc.patch} (100%) diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py index 7e25714a88fc7c..0cf74cfba6b437 100644 --- a/var/spack/repos/builtin/packages/python/package.py +++ b/var/spack/repos/builtin/packages/python/package.py @@ -286,8 +286,8 @@ class Python(Package): patch("tkinter-3.10.patch", when="@3.10.0:3.10 ~tkinter") patch("tkinter-3.11.patch", when="@3.11.0:3.11 ~tkinter") - # Ensure that distutils chooses correct compiler option for RPATH on cray: - patch("cray-rpath-3.1.patch", when="@3 platform=cray") + # Ensure that distutils chooses correct compiler option for RPATH: + patch("rpath-non-gcc.patch") # Ensure that distutils chooses correct compiler option for RPATH on fj: patch("fj-rpath-3.1.patch", when="@:3.9.7,3.10.0 %fj") diff --git a/var/spack/repos/builtin/packages/python/cray-rpath-3.1.patch b/var/spack/repos/builtin/packages/python/rpath-non-gcc.patch similarity index 100% rename from var/spack/repos/builtin/packages/python/cray-rpath-3.1.patch rename to var/spack/repos/builtin/packages/python/rpath-non-gcc.patch From 5d9f1c7b46d2ba45a4c1acfa9cf2641eef5318f3 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Sun, 10 Sep 2023 19:58:51 -0600 Subject: [PATCH 51/57] Add missing dependencies blas and lapack to gsi-env virtual package --- var/spack/repos/jcsda-emc-bundles/packages/gsi-env/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/var/spack/repos/jcsda-emc-bundles/packages/gsi-env/package.py b/var/spack/repos/jcsda-emc-bundles/packages/gsi-env/package.py index 01500d65c7c7d4..58c9f4bd8f52b9 100644 --- a/var/spack/repos/jcsda-emc-bundles/packages/gsi-env/package.py +++ b/var/spack/repos/jcsda-emc-bundles/packages/gsi-env/package.py @@ -16,6 +16,8 @@ class GsiEnv(BundlePackage): version("1.0.0") + depends_on("blas") + depends_on("lapack") depends_on("netcdf-c") depends_on("netcdf-fortran") depends_on("bufr") From 79fd79d79c748b2891cfc35fcfb676cb43234fd6 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 11 Sep 2023 08:52:55 -0600 Subject: [PATCH 52/57] Add conflict statements for mapl variants pflogger and extdata2g with intel@2021.7 and later --- var/spack/repos/builtin/packages/mapl/package.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/var/spack/repos/builtin/packages/mapl/package.py b/var/spack/repos/builtin/packages/mapl/package.py index 54cef1e40e96da..2eb2eda6126d18 100644 --- a/var/spack/repos/builtin/packages/mapl/package.py +++ b/var/spack/repos/builtin/packages/mapl/package.py @@ -175,6 +175,10 @@ class Mapl(CMakePackage): values=("Debug", "Release", "Aggressive"), ) + # https://github.com/JCSDA/spack-stack/issues/769 + conflicts("+pflogger", when="@:2.40.3 %intel@2021.7:") + conflicts("+extdata2g", when="@:2.40.3 %intel@2021.7:") + depends_on("cmake@3.17:", type="build") depends_on("mpi") depends_on("hdf5") From 2b150c8718c8b012881d8606d571e13c33f67498 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 11 Sep 2023 14:43:31 -0600 Subject: [PATCH 53/57] Revert previous change for tcl modulefiles to test for both LMOD_VERSION and LMOD_VERSION_MAJOR --- lib/spack/spack/test/modules/tcl.py | 45 +++----------------- share/spack/templates/modules/modulefile.tcl | 2 +- 2 files changed, 6 insertions(+), 41 deletions(-) diff --git a/lib/spack/spack/test/modules/tcl.py b/lib/spack/spack/test/modules/tcl.py index 1c3bd562b665cb..af511f72e9ad98 100644 --- a/lib/spack/spack/test/modules/tcl.py +++ b/lib/spack/spack/test/modules/tcl.py @@ -38,14 +38,7 @@ def test_autoload_direct(self, modulefile_content, module_configuration): content = modulefile_content(mpileaks_spec_string) assert ( - len( - [ - x - for x in content - if "if {![info exists ::env(LMOD_VERSION_MAJOR)] && ![info exists ::env(LMOD_VERSION)]} {" # noqa: E501 - in x - ] - ) + len([x for x in content if "if {![info exists ::env(LMOD_VERSION_MAJOR)]} {" in x]) == 1 ) assert len([x for x in content if "depends-on " in x]) == 2 @@ -59,14 +52,7 @@ def test_autoload_direct(self, modulefile_content, module_configuration): content = modulefile_content("dtbuild1") assert ( - len( - [ - x - for x in content - if "if {![info exists ::env(LMOD_VERSION_MAJOR)] && ![info exists ::env(LMOD_VERSION)]} {" # noqa: E501 - in x - ] - ) + len([x for x in content if "if {![info exists ::env(LMOD_VERSION_MAJOR)]} {" in x]) == 1 ) assert len([x for x in content if "depends-on " in x]) == 2 @@ -83,14 +69,7 @@ def test_autoload_all(self, modulefile_content, module_configuration): content = modulefile_content(mpileaks_spec_string) assert ( - len( - [ - x - for x in content - if "if {![info exists ::env(LMOD_VERSION_MAJOR)] && ![info exists ::env(LMOD_VERSION)]} {" # noqa: E501 - in x - ] - ) + len([x for x in content if "if {![info exists ::env(LMOD_VERSION_MAJOR)]} {" in x]) == 1 ) assert len([x for x in content if "depends-on " in x]) == 5 @@ -104,14 +83,7 @@ def test_autoload_all(self, modulefile_content, module_configuration): content = modulefile_content("dtbuild1") assert ( - len( - [ - x - for x in content - if "if {![info exists ::env(LMOD_VERSION_MAJOR)] && ![info exists ::env(LMOD_VERSION)]} {" # noqa: E501 - in x - ] - ) + len([x for x in content if "if {![info exists ::env(LMOD_VERSION_MAJOR)]} {" in x]) == 1 ) assert len([x for x in content if "depends-on " in x]) == 2 @@ -504,14 +476,7 @@ def test_autoload_with_constraints(self, modulefile_content, module_configuratio # Test the mpileaks that should NOT have the autoloaded dependencies content = modulefile_content("mpileaks ^mpich") assert ( - len( - [ - x - for x in content - if "if {![info exists ::env(LMOD_VERSION_MAJOR)] && ![info exists ::env(LMOD_VERSION)]} {" # noqa: E501 - in x - ] - ) + len([x for x in content if "if {![info exists ::env(LMOD_VERSION_MAJOR)]} {" in x]) == 0 ) assert len([x for x in content if "depends-on " in x]) == 0 diff --git a/share/spack/templates/modules/modulefile.tcl b/share/spack/templates/modules/modulefile.tcl index 76195df2e5e69e..52d987da61b136 100644 --- a/share/spack/templates/modules/modulefile.tcl +++ b/share/spack/templates/modules/modulefile.tcl @@ -27,7 +27,7 @@ proc ModulesHelp { } { {% block autoloads %} {% if autoload|length > 0 %} -if {![info exists ::env(LMOD_VERSION_MAJOR)] && ![info exists ::env(LMOD_VERSION)]} { +if {![info exists ::env(LMOD_VERSION_MAJOR)]} { {% for module in autoload %} module load {{ module }} {% endfor %} From 1fb4b581dee4f033d62e804f68b3a6202c85a157 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 12 Sep 2023 08:54:36 -0600 Subject: [PATCH 54/57] Bug fix for spack stack setup-meta-modules extension: proceed without Python after checking with user --- lib/jcsda-emc/spack-stack/stack/meta_modules.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/jcsda-emc/spack-stack/stack/meta_modules.py b/lib/jcsda-emc/spack-stack/stack/meta_modules.py index 8cdeb06a4be496..f5cc260ef9b4f2 100755 --- a/lib/jcsda-emc/spack-stack/stack/meta_modules.py +++ b/lib/jcsda-emc/spack-stack/stack/meta_modules.py @@ -750,10 +750,21 @@ def setup_meta_modules(): python_dict = get_matched_dict(compiler_install_dir, python_candidate_list) logging.info(" ... stack python providers: '{}'".format(python_dict)) if not python_dict: - raise Exception( - """No matching Python version found. Make sure that the -Python version in the package config matches what spack installed.""" + user_input = input( + "No matching Python version found found, proceed without creating Python modules? (yes/no): " ) + if not user_input.lower() in ["yes", "y"]: + raise Exception( + """"No matching Python version found. Make sure that the +Python version in the package config matches what spack installed.""" + ) + else: + logging.info( + "Metamodule generation completed successfully in {}".format( + meta_module_dir + ) + ) + return for compiler_name in compiler_dict.keys(): for compiler_version in compiler_dict[compiler_name]: From 0dd0e36b63946221130e1628701653eb8ff27f8a Mon Sep 17 00:00:00 2001 From: Alex Richert Date: Wed, 13 Sep 2023 17:21:15 -0700 Subject: [PATCH 55/57] Add ip 4.3.0 for constants_mod issue --- var/spack/repos/builtin/packages/ip/package.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/var/spack/repos/builtin/packages/ip/package.py b/var/spack/repos/builtin/packages/ip/package.py index d34dc2abd810e1..efee167d087cf8 100644 --- a/var/spack/repos/builtin/packages/ip/package.py +++ b/var/spack/repos/builtin/packages/ip/package.py @@ -16,6 +16,9 @@ class Ip(CMakePackage): maintainers("t-brown", "AlexanderRichert-NOAA", "edwardhartnett", "Hang-Lei-NOAA") + version("4.3.0", sha256="799308a868dea889d2527d96a0405af7b376869581410fe4cff681205e9212b4") + # Note that versions 4.0-4.2 contain constants_mod module, and should not be used when + # also compiling with packages containing Fortran modules of the same name, namely, FMS. version("4.1.0", sha256="b83ca037d9a5ad3eb0fb1acfe665c38b51e01f6bd73ce9fb8bb2a14f5f63cdbe") version("4.0.0", sha256="a2ef0cc4e4012f9cb0389fab6097407f4c623eb49772d96eb80c44f804aa86b8") version( From e44027b38820a6ae224bbd7a37f34466ab055049 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 19 Sep 2023 20:15:13 -0600 Subject: [PATCH 56/57] Bug fix for ESMF: turn off OpenMP with both versions of clang compilers to avoid having to add clang OpenMP libraries to the Fortran linker command --- var/spack/repos/builtin/packages/esmf/package.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/var/spack/repos/builtin/packages/esmf/package.py b/var/spack/repos/builtin/packages/esmf/package.py index 16ffc8295c66a7..77cdb222ca4ed4 100644 --- a/var/spack/repos/builtin/packages/esmf/package.py +++ b/var/spack/repos/builtin/packages/esmf/package.py @@ -222,6 +222,11 @@ def setup_build_environment(self, env): elif self.compiler.name == "intel" or self.compiler.name == "oneapi": env.set("ESMF_COMPILER", "intel") elif self.compiler.name in ["clang", "apple-clang"]: + # Turn off OpenMP with both versions of clang compilers + # to avoid having to add clang OpenMP libraries to the + # Fortran linker command. + env.set("ESMF_OPENMP", "OFF") + # env.set("ESMF_COMPILER", "gfortranclang") with self.compiler.compiler_environment(): gfortran_major_version = int( From 5810aeed6496bccafb42642a451f12290f20ce2c Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 20 Sep 2023 15:35:51 -0600 Subject: [PATCH 57/57] Add shared variant for platform=cray to var/spack/repos/builtin/packages/openssl/package.py --- var/spack/repos/builtin/packages/openssl/package.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/var/spack/repos/builtin/packages/openssl/package.py b/var/spack/repos/builtin/packages/openssl/package.py index 25a654d9a87e9a..e0c46ce6428e2e 100644 --- a/var/spack/repos/builtin/packages/openssl/package.py +++ b/var/spack/repos/builtin/packages/openssl/package.py @@ -350,6 +350,9 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package variant( "shared", default=True, description="Build shared library version", when="platform=darwin" ) + variant( + "shared", default=True, description="Build shared library version", when="platform=cray" + ) variant( "shared", default=False,