From ac6b2c21e2aa3dce424c32f1e18faa6871a46b5b Mon Sep 17 00:00:00 2001 From: Ryan Honeyager Date: Wed, 1 Jul 2026 13:26:01 -0500 Subject: [PATCH 1/2] Macos build patches --- .../packages/ioda/ioda_yaml_root.patch | 13 +++++++ .../spack_stack/packages/ioda/package.py | 17 +++++----- .../spack_stack/packages/oops/package.py | 1 + .../oops/patch-1.10.0.atlas.mac.patch | 34 +++++++++++++++++++ 4 files changed, 57 insertions(+), 8 deletions(-) create mode 100644 repos/spack_stack/spack_repo/spack_stack/packages/ioda/ioda_yaml_root.patch create mode 100644 repos/spack_stack/spack_repo/spack_stack/packages/oops/patch-1.10.0.atlas.mac.patch diff --git a/repos/spack_stack/spack_repo/spack_stack/packages/ioda/ioda_yaml_root.patch b/repos/spack_stack/spack_repo/spack_stack/packages/ioda/ioda_yaml_root.patch new file mode 100644 index 000000000..e8cba60c9 --- /dev/null +++ b/repos/spack_stack/spack_repo/spack_stack/packages/ioda/ioda_yaml_root.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/ioda-import.cmake.in b/cmake/ioda-import.cmake.in +index 907fce15..0d7ae528 100644 +--- a/cmake/ioda-import.cmake.in ++++ b/cmake/ioda-import.cmake.in +@@ -96,7 +96,7 @@ else() + # in the ioda-post-import.cmake file, even if it is never again used. Some + # tools (like Spack) will complain about this path and may indicate that ioda + # is a non-relocatable package, even though it is completely relocatable. +- set( IODA_YAML_ROOT "@IODA_YAML_ROOT@" ) ++ set( IODA_YAML_ROOT "${CMAKE_CURRENT_LIST_FILE}/share/test/testinput/" ) + endif() + endif() + diff --git a/repos/spack_stack/spack_repo/spack_stack/packages/ioda/package.py b/repos/spack_stack/spack_repo/spack_stack/packages/ioda/package.py index b22856ae2..1c61359f1 100644 --- a/repos/spack_stack/spack_repo/spack_stack/packages/ioda/package.py +++ b/repos/spack_stack/spack_repo/spack_stack/packages/ioda/package.py @@ -20,6 +20,7 @@ class Ioda(CMakePackage): version("2.9.0.20250826", commit="6e76616001067384f7d0ca4341ad78e81527af8b") patch("ioda_cmake_import.patch", when="@2.9.0.20250826") + patch("ioda_yaml_root.patch", when="@2.9.0.20250826") variant("doc", default=False, description="Build IODA documentation") # Let's always assume IODA_BUILD_LANGUAGE_FORTRAN=on. @@ -101,11 +102,11 @@ def check(self): else: ctest("--timeout", "120") - @run_after("install") - def fix_ioda_yaml_root_path(self): - with when("@2.9.0.20250826"): - filter_file( - join_path(self.build_directory, "share/test/testinput/"), - join_path(self.prefix, "share/ioda/yaml"), - join_path(self.prefix, "lib64/cmake/ioda/ioda-import.cmake"), - ) + #@run_after("install") + #def fix_ioda_yaml_root_path(self): + # with when("@2.9.0.20250826"): + # filter_file( + # join_path(self.build_directory, "share/test/testinput/"), + # join_path(self.prefix, "share/ioda/yaml"), + # join_path(self.prefix, "lib64/cmake/ioda/ioda-import.cmake"), + # ) diff --git a/repos/spack_stack/spack_repo/spack_stack/packages/oops/package.py b/repos/spack_stack/spack_repo/spack_stack/packages/oops/package.py index ad1710471..ac522e46b 100644 --- a/repos/spack_stack/spack_repo/spack_stack/packages/oops/package.py +++ b/repos/spack_stack/spack_repo/spack_stack/packages/oops/package.py @@ -22,6 +22,7 @@ class Oops(CMakePackage): version("1.10.0.20250827", commit="91889ad09d3789f14a1184701dd80a4913d3ce3e") patch("include_algorithm.patch", when="@1.10.0.20250827") + patch("patch-1.10.0.atlas.mac.patch", when="@1.10.0.20250827") variant("l95", default=True, description="Build LORENZ95 toy model") variant("mkl", default=False, description="Use MKL for LAPACK implementation (if available)") diff --git a/repos/spack_stack/spack_repo/spack_stack/packages/oops/patch-1.10.0.atlas.mac.patch b/repos/spack_stack/spack_repo/spack_stack/packages/oops/patch-1.10.0.atlas.mac.patch new file mode 100644 index 000000000..7b54487ba --- /dev/null +++ b/repos/spack_stack/spack_repo/spack_stack/packages/oops/patch-1.10.0.atlas.mac.patch @@ -0,0 +1,34 @@ +diff --git a/src/oops/util/ParallelFieldSetIO.cc b/src/oops/util/ParallelFieldSetIO.cc +index 04e4c55c..0a07a9ba 100644 +--- a/src/oops/util/ParallelFieldSetIO.cc ++++ b/src/oops/util/ParallelFieldSetIO.cc +@@ -80,9 +80,6 @@ atlas::FieldSet ParallelFieldSetIO::ioFieldSet(const atlas::FieldSet& nativeFiel + case atlas::array::DataType::KIND_INT32: + ioFieldSet.add(functionSpace_.createField(fieldSetConfig)); + break; +- case atlas::array::DataType::KIND_INT64: +- ioFieldSet.add(functionSpace_.createField(fieldSetConfig)); +- break; + case atlas::array::DataType::KIND_REAL32: + ioFieldSet.add(functionSpace_.createField(fieldSetConfig)); + break; +@@ -105,9 +102,6 @@ void ParallelFieldSetIO::writeFieldByTypeAndRank(const atlas::Field& field, + case atlas::array::DataType::KIND_INT32: + dispatchWriteField(field, netcdfGeneralIDs, netcdfVarID); + break; +- case atlas::array::DataType::KIND_INT64: +- dispatchWriteField(field, netcdfGeneralIDs, netcdfVarID); +- break; + case atlas::array::DataType::KIND_REAL32: + dispatchWriteField(field, netcdfGeneralIDs, netcdfVarID); + break; +@@ -129,9 +123,6 @@ void ParallelFieldSetIO::readFieldByTypeAndRank(atlas::Field& field, + case atlas::array::DataType::KIND_INT32: + dispatchReadField(field, netcdfGeneralIDs, netcdfVarID); + break; +- case atlas::array::DataType::KIND_INT64: +- dispatchReadField(field, netcdfGeneralIDs, netcdfVarID); +- break; + case atlas::array::DataType::KIND_REAL32: + dispatchReadField(field, netcdfGeneralIDs, netcdfVarID); + break; From f169831f72285db60cd7c0fa525d676441af514b Mon Sep 17 00:00:00 2001 From: Ryan Honeyager Date: Wed, 1 Jul 2026 13:58:34 -0500 Subject: [PATCH 2/2] . --- .../spack_repo/spack_stack/packages/ioda/ioda_yaml_root.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_stack/spack_repo/spack_stack/packages/ioda/ioda_yaml_root.patch b/repos/spack_stack/spack_repo/spack_stack/packages/ioda/ioda_yaml_root.patch index e8cba60c9..ae3ed8a1c 100644 --- a/repos/spack_stack/spack_repo/spack_stack/packages/ioda/ioda_yaml_root.patch +++ b/repos/spack_stack/spack_repo/spack_stack/packages/ioda/ioda_yaml_root.patch @@ -7,7 +7,7 @@ index 907fce15..0d7ae528 100644 # tools (like Spack) will complain about this path and may indicate that ioda # is a non-relocatable package, even though it is completely relocatable. - set( IODA_YAML_ROOT "@IODA_YAML_ROOT@" ) -+ set( IODA_YAML_ROOT "${CMAKE_CURRENT_LIST_FILE}/share/test/testinput/" ) ++ set( IODA_YAML_ROOT "${CMAKE_CURRENT_LIST_DIR}/share/test/testinput/" ) endif() endif()