From a5367dca7f336247630f45dcd98366e117d4d786 Mon Sep 17 00:00:00 2001 From: Randolph Settgast Date: Mon, 18 May 2026 10:53:37 -0700 Subject: [PATCH 1/7] update to fmt12 to avoid issues with c++20 --- scripts/spack_packages/packages/geosx/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/spack_packages/packages/geosx/package.py b/scripts/spack_packages/packages/geosx/package.py index 91c3c7df..c6034cb6 100644 --- a/scripts/spack_packages/packages/geosx/package.py +++ b/scripts/spack_packages/packages/geosx/package.py @@ -152,9 +152,9 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): depends_on('pugixml@1.13 ~shared') - depends_on('fmt@11') + depends_on('fmt@12.1.0') for _fmt_cxxstd in ('14', '17', '20'): - depends_on(f'fmt@11 cxxstd={_fmt_cxxstd}', when=f'cxxstd={_fmt_cxxstd}') + depends_on(f'fmt@12.1.0 cxxstd={_fmt_cxxstd}', when=f'cxxstd={_fmt_cxxstd}') depends_on('vtk@9.4.2', when='+vtk') # From 9df8b29eb5302cf26bbb740202877093dc42ad2a Mon Sep 17 00:00:00 2001 From: Randolph Settgast Date: Mon, 18 May 2026 15:58:17 -0700 Subject: [PATCH 2/7] bump raja/umpire/camp to avoid c++20 issues --- scripts/spack_packages/packages/camp/package.py | 10 ++++++++++ scripts/spack_packages/packages/geosx/package.py | 13 ++++++++----- scripts/spack_packages/packages/raja/package.py | 10 ++++++++++ scripts/spack_packages/packages/umpire/package.py | 12 ++++++++++++ 4 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 scripts/spack_packages/packages/camp/package.py create mode 100644 scripts/spack_packages/packages/raja/package.py create mode 100644 scripts/spack_packages/packages/umpire/package.py diff --git a/scripts/spack_packages/packages/camp/package.py b/scripts/spack_packages/packages/camp/package.py new file mode 100644 index 00000000..f3cbe01e --- /dev/null +++ b/scripts/spack_packages/packages/camp/package.py @@ -0,0 +1,10 @@ +from spack.package import * +from spack_repo.builtin.packages.camp.package import Camp as BuiltinCamp + + +class Camp(BuiltinCamp): + version( + "2026.05.18", + commit="47a3682c3d5ff43b542ad7e29569eb5e157f918e", + submodules=False, + ) diff --git a/scripts/spack_packages/packages/geosx/package.py b/scripts/spack_packages/packages/geosx/package.py index c6034cb6..5a1aee23 100644 --- a/scripts/spack_packages/packages/geosx/package.py +++ b/scripts/spack_packages/packages/geosx/package.py @@ -112,11 +112,14 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): # # Performance portability # - raja_suite_version="2025.12.0" - depends_on(f"raja @{raja_suite_version} ~examples~exercises~shared") - depends_on(f"chai @{raja_suite_version} +raja~examples~shared") - depends_on(f"camp @{raja_suite_version}") - depends_on(f"umpire @{raja_suite_version} +c~examples+fortran~device_alloc~shared") + raja_version = "2026.04.14" + chai_version = "2025.12.0" + camp_version = "2026.05.18" + umpire_version = "2026.03.31" + depends_on(f"raja @{raja_version} ~examples~exercises~shared") + depends_on(f"chai @{chai_version} +raja~examples~shared") + depends_on(f"camp @{camp_version}") + depends_on(f"umpire @{umpire_version} +c~examples+fortran~device_alloc~shared") with when('+openmp'): for pkg in ('raja', 'chai', 'umpire'): depends_on(f"{pkg}+openmp", when="+openmp") diff --git a/scripts/spack_packages/packages/raja/package.py b/scripts/spack_packages/packages/raja/package.py new file mode 100644 index 00000000..a4148175 --- /dev/null +++ b/scripts/spack_packages/packages/raja/package.py @@ -0,0 +1,10 @@ +from spack.package import * +from spack_repo.builtin.packages.raja.package import Raja as BuiltinRaja + + +class Raja(BuiltinRaja): + version( + "2026.04.14", + commit="11dbea102ed609f1319d8990e28e47bc4f4d7f2b", + submodules=False, + ) diff --git a/scripts/spack_packages/packages/umpire/package.py b/scripts/spack_packages/packages/umpire/package.py new file mode 100644 index 00000000..f6308409 --- /dev/null +++ b/scripts/spack_packages/packages/umpire/package.py @@ -0,0 +1,12 @@ +from spack.package import * +from spack_repo.builtin.packages.umpire.package import Umpire as BuiltinUmpire + + +class Umpire(BuiltinUmpire): + version( + "2026.03.31", + commit="5ff0d696d84f1048faf72085743630fcf33c0928", + submodules=False, + ) + + depends_on("fmt@12.1.0", when="@2026.03.31") From dee7a5a08b183191ff4f2f6eb73459205d5acc92 Mon Sep 17 00:00:00 2001 From: Randolph Settgast Date: Mon, 18 May 2026 21:18:20 -0700 Subject: [PATCH 3/7] hardcode to c++20 --- scripts/spack_packages/packages/camp/package.py | 5 +++++ scripts/spack_packages/packages/geosx/package.py | 11 ++++++----- scripts/spack_packages/packages/raja/package.py | 2 ++ scripts/spack_packages/packages/umpire/package.py | 5 +++++ 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/scripts/spack_packages/packages/camp/package.py b/scripts/spack_packages/packages/camp/package.py index f3cbe01e..512ffb75 100644 --- a/scripts/spack_packages/packages/camp/package.py +++ b/scripts/spack_packages/packages/camp/package.py @@ -8,3 +8,8 @@ class Camp(BuiltinCamp): commit="47a3682c3d5ff43b542ad7e29569eb5e157f918e", submodules=False, ) + + def cmake_args(self): + args = super().cmake_args() + args.append(self.define("CMAKE_CXX_STANDARD", 20)) + return args diff --git a/scripts/spack_packages/packages/geosx/package.py b/scripts/spack_packages/packages/geosx/package.py index 5a1aee23..fd416260 100644 --- a/scripts/spack_packages/packages/geosx/package.py +++ b/scripts/spack_packages/packages/geosx/package.py @@ -77,7 +77,8 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): multi=False) variant('grpc', default=False, description='Enable gRPC.') variant('pygeosx', default=True, description='Enable pygeosx.') - variant('cxxstd', default='17', description='CXX standard.') + variant('cxxstd', default='20', values=('20',), multi=False, + description='CXX standard.') # SPHINX_END_VARIANTS @@ -93,6 +94,8 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): variant('cuda_stack_size', default="0", description="Defines the adjusted cuda stack \ size limit if required. Zero or negative keep default behavior") + requires('cxxstd=20', msg='GEOS.AI TPL snapshots require C++20.') + # SPHINX_BEGIN_DEPENDS depends_on("c", type="build") depends_on("cxx", type="build") @@ -116,8 +119,8 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): chai_version = "2025.12.0" camp_version = "2026.05.18" umpire_version = "2026.03.31" - depends_on(f"raja @{raja_version} ~examples~exercises~shared") depends_on(f"chai @{chai_version} +raja~examples~shared") + depends_on(f"raja @{raja_version} cxxstd=20 ~examples~exercises~shared") depends_on(f"camp @{camp_version}") depends_on(f"umpire @{umpire_version} +c~examples+fortran~device_alloc~shared") with when('+openmp'): @@ -155,9 +158,7 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): depends_on('pugixml@1.13 ~shared') - depends_on('fmt@12.1.0') - for _fmt_cxxstd in ('14', '17', '20'): - depends_on(f'fmt@12.1.0 cxxstd={_fmt_cxxstd}', when=f'cxxstd={_fmt_cxxstd}') + depends_on('fmt@12.1.0 cxxstd=20') depends_on('vtk@9.4.2', when='+vtk') # diff --git a/scripts/spack_packages/packages/raja/package.py b/scripts/spack_packages/packages/raja/package.py index a4148175..ccea97c4 100644 --- a/scripts/spack_packages/packages/raja/package.py +++ b/scripts/spack_packages/packages/raja/package.py @@ -8,3 +8,5 @@ class Raja(BuiltinRaja): commit="11dbea102ed609f1319d8990e28e47bc4f4d7f2b", submodules=False, ) + + requires("cxxstd=20", when="@2026.04.14") diff --git a/scripts/spack_packages/packages/umpire/package.py b/scripts/spack_packages/packages/umpire/package.py index f6308409..483b5efa 100644 --- a/scripts/spack_packages/packages/umpire/package.py +++ b/scripts/spack_packages/packages/umpire/package.py @@ -10,3 +10,8 @@ class Umpire(BuiltinUmpire): ) depends_on("fmt@12.1.0", when="@2026.03.31") + + def cmake_args(self): + args = super().cmake_args() + args.append(self.define("CMAKE_CXX_STANDARD", 20)) + return args From 305be44b55534fce6bbb897075ed40760a82daa1 Mon Sep 17 00:00:00 2001 From: Randolph Settgast Date: Mon, 18 May 2026 22:47:13 -0700 Subject: [PATCH 4/7] fix raja/camp mismatch --- scripts/spack_packages/packages/geosx/package.py | 2 +- scripts/spack_packages/packages/raja/package.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/spack_packages/packages/geosx/package.py b/scripts/spack_packages/packages/geosx/package.py index fd416260..c03193ef 100644 --- a/scripts/spack_packages/packages/geosx/package.py +++ b/scripts/spack_packages/packages/geosx/package.py @@ -115,7 +115,7 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): # # Performance portability # - raja_version = "2026.04.14" + raja_version = "2026.05.19" chai_version = "2025.12.0" camp_version = "2026.05.18" umpire_version = "2026.03.31" diff --git a/scripts/spack_packages/packages/raja/package.py b/scripts/spack_packages/packages/raja/package.py index ccea97c4..47f72186 100644 --- a/scripts/spack_packages/packages/raja/package.py +++ b/scripts/spack_packages/packages/raja/package.py @@ -4,9 +4,9 @@ class Raja(BuiltinRaja): version( - "2026.04.14", - commit="11dbea102ed609f1319d8990e28e47bc4f4d7f2b", + "2026.05.19", + commit="d9a03fd56f7fb81540aeacbf082eb35dbb840b9c", submodules=False, ) - requires("cxxstd=20", when="@2026.04.14") + requires("cxxstd=20", when="@2026.05.19") From 8178ed53d08d233748e5a0399ff9132cfd5cfe88 Mon Sep 17 00:00:00 2001 From: Randolph Settgast Date: Mon, 18 May 2026 23:36:11 -0700 Subject: [PATCH 5/7] patch raja c++ std issue --- scripts/spack_packages/packages/geosx/package.py | 2 +- scripts/spack_packages/packages/raja/package.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/spack_packages/packages/geosx/package.py b/scripts/spack_packages/packages/geosx/package.py index c03193ef..cfeff876 100644 --- a/scripts/spack_packages/packages/geosx/package.py +++ b/scripts/spack_packages/packages/geosx/package.py @@ -120,7 +120,7 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): camp_version = "2026.05.18" umpire_version = "2026.03.31" depends_on(f"chai @{chai_version} +raja~examples~shared") - depends_on(f"raja @{raja_version} cxxstd=20 ~examples~exercises~shared") + depends_on(f"raja @{raja_version} ~examples~exercises~shared") depends_on(f"camp @{camp_version}") depends_on(f"umpire @{umpire_version} +c~examples+fortran~device_alloc~shared") with when('+openmp'): diff --git a/scripts/spack_packages/packages/raja/package.py b/scripts/spack_packages/packages/raja/package.py index 47f72186..5a73fa69 100644 --- a/scripts/spack_packages/packages/raja/package.py +++ b/scripts/spack_packages/packages/raja/package.py @@ -9,4 +9,8 @@ class Raja(BuiltinRaja): submodules=False, ) - requires("cxxstd=20", when="@2026.05.19") + def cmake_args(self): + args = super().cmake_args() + args.append(self.define("BLT_CXX_STD", "c++20")) + args.append(self.define("CMAKE_CXX_STANDARD", 20)) + return args From 6eaff0d0c91ca2b5d429afe5a005fe4104a53f25 Mon Sep 17 00:00:00 2001 From: Randolph Settgast Date: Tue, 19 May 2026 00:49:40 -0700 Subject: [PATCH 6/7] more attempted fixes --- scripts/spack_packages/packages/camp/package.py | 3 +++ scripts/spack_packages/packages/chai/package.py | 13 +++++++++++++ scripts/spack_packages/packages/geosx/package.py | 2 +- scripts/spack_packages/packages/raja/package.py | 2 ++ scripts/spack_packages/packages/umpire/package.py | 3 +++ 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/scripts/spack_packages/packages/camp/package.py b/scripts/spack_packages/packages/camp/package.py index 512ffb75..3049a2d8 100644 --- a/scripts/spack_packages/packages/camp/package.py +++ b/scripts/spack_packages/packages/camp/package.py @@ -11,5 +11,8 @@ class Camp(BuiltinCamp): def cmake_args(self): args = super().cmake_args() + args.append(self.define("BLT_CXX_STD", "c++20")) args.append(self.define("CMAKE_CXX_STANDARD", 20)) + args.append(self.define("CMAKE_CUDA_STANDARD", 20)) + args.append(self.define("CMAKE_HIP_STANDARD", 20)) return args diff --git a/scripts/spack_packages/packages/chai/package.py b/scripts/spack_packages/packages/chai/package.py index 16b68a56..96d19945 100644 --- a/scripts/spack_packages/packages/chai/package.py +++ b/scripts/spack_packages/packages/chai/package.py @@ -4,6 +4,19 @@ from spack_repo.builtin.packages.chai.package import Chai as BuiltinChai class Chai(BuiltinChai): + version( + "2026.04.13", + commit="c4de793a61596a6787afb07ed0dd1dfee349f34f", + submodules=False, + ) + # Bypass llnl_link_helpers failure depends_on("fortran") + def cmake_args(self): + args = super().cmake_args() + args.append(self.define("BLT_CXX_STD", "c++20")) + args.append(self.define("CMAKE_CXX_STANDARD", 20)) + args.append(self.define("CMAKE_CUDA_STANDARD", 20)) + args.append(self.define("CMAKE_HIP_STANDARD", 20)) + return args diff --git a/scripts/spack_packages/packages/geosx/package.py b/scripts/spack_packages/packages/geosx/package.py index cfeff876..db692745 100644 --- a/scripts/spack_packages/packages/geosx/package.py +++ b/scripts/spack_packages/packages/geosx/package.py @@ -116,7 +116,7 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): # Performance portability # raja_version = "2026.05.19" - chai_version = "2025.12.0" + chai_version = "2026.04.13" camp_version = "2026.05.18" umpire_version = "2026.03.31" depends_on(f"chai @{chai_version} +raja~examples~shared") diff --git a/scripts/spack_packages/packages/raja/package.py b/scripts/spack_packages/packages/raja/package.py index 5a73fa69..1db6ba26 100644 --- a/scripts/spack_packages/packages/raja/package.py +++ b/scripts/spack_packages/packages/raja/package.py @@ -13,4 +13,6 @@ def cmake_args(self): args = super().cmake_args() args.append(self.define("BLT_CXX_STD", "c++20")) args.append(self.define("CMAKE_CXX_STANDARD", 20)) + args.append(self.define("CMAKE_CUDA_STANDARD", 20)) + args.append(self.define("CMAKE_HIP_STANDARD", 20)) return args diff --git a/scripts/spack_packages/packages/umpire/package.py b/scripts/spack_packages/packages/umpire/package.py index 483b5efa..9429d2e1 100644 --- a/scripts/spack_packages/packages/umpire/package.py +++ b/scripts/spack_packages/packages/umpire/package.py @@ -13,5 +13,8 @@ class Umpire(BuiltinUmpire): def cmake_args(self): args = super().cmake_args() + args.append(self.define("BLT_CXX_STD", "c++20")) args.append(self.define("CMAKE_CXX_STANDARD", 20)) + args.append(self.define("CMAKE_CUDA_STANDARD", 20)) + args.append(self.define("CMAKE_HIP_STANDARD", 20)) return args From 0d2a8f6ed242eb18698e4e6d5ce3b95eea25eb4e Mon Sep 17 00:00:00 2001 From: Randolph Settgast Date: Tue, 19 May 2026 18:26:43 -0700 Subject: [PATCH 7/7] Use BLT 0.7.2 for CUDA TPL builds --- scripts/spack_packages/packages/blt/package.py | 9 +++++++++ scripts/spack_packages/packages/geosx/package.py | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 scripts/spack_packages/packages/blt/package.py diff --git a/scripts/spack_packages/packages/blt/package.py b/scripts/spack_packages/packages/blt/package.py new file mode 100644 index 00000000..536bb020 --- /dev/null +++ b/scripts/spack_packages/packages/blt/package.py @@ -0,0 +1,9 @@ +from spack.package import * +from spack_repo.builtin.packages.blt.package import Blt as BuiltinBlt + + +class Blt(BuiltinBlt): + version( + "0.7.2", + sha256="107f2c1d616bcfc629a11d887f0bb1b602aef1fe5e4580db65e592f23925e23f", + ) diff --git a/scripts/spack_packages/packages/geosx/package.py b/scripts/spack_packages/packages/geosx/package.py index db692745..d96f31d0 100644 --- a/scripts/spack_packages/packages/geosx/package.py +++ b/scripts/spack_packages/packages/geosx/package.py @@ -103,7 +103,8 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): depends_on('cmake@3.24:', type='build') - depends_on('blt@0.7.1') + depends_on('blt@0.7.1', when='~cuda') + depends_on('blt@0.7.2', when='+cuda') # # Virtual packages