From 1a1f0aa07baeec3eecbdac000fb837af1e238468 Mon Sep 17 00:00:00 2001
From: Laurent Chardon <35169165+LaurentChardon@users.noreply.github.com>
Date: Tue, 18 Feb 2025 10:04:06 -0500
Subject: [PATCH] xios: update to v2.6 (#48680)

* xios: update to v2.6

- xios: update to v2.6
- xios: patch remap earcut.hpp for missing include file
- xios: address C++11 requirement
- xios: instruct to use external boost and blitz libraries

* xios: bump revision to 2714

- Bump revision to changeset 2714
- Deprecate older versions that I can't manage to compile
- Confirm clang workaround is still needed
---
 .../xios/earcut_missing_include_2.6.patch     | 11 +++++++
 .../repos/builtin/packages/xios/package.py    | 32 +++++++++++++++----
 2 files changed, 36 insertions(+), 7 deletions(-)
 create mode 100644 var/spack/repos/builtin/packages/xios/earcut_missing_include_2.6.patch

diff --git a/var/spack/repos/builtin/packages/xios/earcut_missing_include_2.6.patch b/var/spack/repos/builtin/packages/xios/earcut_missing_include_2.6.patch
new file mode 100644
index 00000000000..766c38c2c69
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xios/earcut_missing_include_2.6.patch
@@ -0,0 +1,11 @@
+--- a/extern/remap/src/earcut.hpp 2025-01-22 11:42:31.097755822 -0500
++++ b/extern/remap/src/earcut.hpp 2025-01-22 11:44:00.022637783 -0500
+@@ -7,7 +7,7 @@
+ #include <vector>
+ #include <limits>
+ //#include <tuple>
+-//#include <cstdint> 
++#include <cstdint>
+ //#include <cstddef>
+
+ namespace mapbox {
diff --git a/var/spack/repos/builtin/packages/xios/package.py b/var/spack/repos/builtin/packages/xios/package.py
index f9683d8bfb2..1fb036e5d7b 100644
--- a/var/spack/repos/builtin/packages/xios/package.py
+++ b/var/spack/repos/builtin/packages/xios/package.py
@@ -12,16 +12,28 @@ class Xios(Package):
     """XML-IO-SERVER library for IO management of climate models."""
 
     homepage = "https://forge.ipsl.jussieu.fr/ioserver/wiki"
-
-    version("develop", svn="http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/trunk")
     version(
-        "2.5", revision=1860, svn="http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/branchs/xios-2.5"
+        "2.6",
+        revision=2714,
+        svn="https://forge.ipsl.jussieu.fr/ioserver/svn/XIOS2/branches/xios-2.6",
+    )
+    version(
+        "2.5",
+        revision=1860,
+        svn="https://forge.ipsl.jussieu.fr/ioserver/svn/XIOS2/branches/xios-2.5",
+        deprecated=True,
     )
     version(
-        "2.0", revision=1627, svn="http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/branchs/xios-2.0"
+        "2.0",
+        revision=1627,
+        svn="https://forge.ipsl.jussieu.fr/ioserver/svn/XIOS2/branches/xios-2.0",
+        deprecated=True,
     )
     version(
-        "1.0", revision=910, svn="http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/branchs/xios-1.0"
+        "1.0",
+        revision=910,
+        svn="http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/branchs/xios-1.0",
+        deprecated=True,
     )
 
     variant(
@@ -37,10 +49,14 @@ class Xios(Package):
     patch("bld_extern_1.0.patch", when="@:1.0")
 
     # Workaround bug #17782 in llvm, where reading a double
-    # followed by a character is broken (e.g. duration '1d'):
+    # followed by a character is broken (e.g. duration '1d')
+    # https://bugs.llvm.org/show_bug.cgi?id=17782
+    # Verified and still needed 2025-02-18
     patch("llvm_bug_17782.patch", when="@1.1: %apple-clang")
     patch("llvm_bug_17782.patch", when="@1.1: %clang")
 
+    patch("earcut_missing_include_2.6.patch", when="@2.6:")
+
     depends_on("netcdf-c+mpi")
     depends_on("netcdf-fortran")
     depends_on("hdf5+mpi")
@@ -131,7 +147,7 @@ def xios_fcm(self):
 %FCOMPILER      {MPIFC}
 %LINKER         {MPIFC}
 
-%BASE_CFLAGS    -ansi -w -D_GLIBCXX_USE_CXX11_ABI=0 \
+%BASE_CFLAGS    -std=c++11 -w -D_GLIBCXX_USE_CXX11_ABI=0 \
                 -I{BOOST_INC_DIR} -I{BLITZ_INC_DIR}
 %PROD_CFLAGS    -O3 -DBOOST_DISABLE_ASSERTS
 %DEV_CFLAGS     -g -O2
@@ -202,6 +218,8 @@ def install(self, spec, prefix):
             "--%s" % spec.variants["mode"].value,
             "--arch",
             "SPACK",
+            "--use_extern_boost",
+            "--use_extern_blitz",
             "--netcdf_lib",
             "netcdf4_par",
             "--job",
-- 
GitLab