From 0437c5314e182f6378baa08ac617473cdef25843 Mon Sep 17 00:00:00 2001
From: Antonio Cervone <ant.cervone@gmail.com>
Date: Thu, 31 Oct 2024 16:52:00 +0100
Subject: salome,-med,-medcoupling: new versions, new/changed variants (#46576)

* boost: boost.python does not support numpy@2 yet
---
 var/spack/repos/builtin/packages/boost/package.py  |  2 +-
 .../packages/salome-configuration/package.py       |  8 ++-
 .../repos/builtin/packages/salome-med/package.py   | 27 +++++----
 .../builtin/packages/salome-medcoupling/package.py | 66 ++++++++++------------
 4 files changed, 53 insertions(+), 50 deletions(-)

(limited to 'var')

diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py
index 908ea40a89..75a6d543e4 100644
--- a/var/spack/repos/builtin/packages/boost/package.py
+++ b/var/spack/repos/builtin/packages/boost/package.py
@@ -258,7 +258,7 @@ class Boost(Package):
     depends_on("xz", when="+iostreams")
     depends_on("py-numpy", when="+numpy", type=("build", "run"))
     # https://github.com/boostorg/python/issues/431
-    depends_on("py-numpy@:1", when="@:1.85+numpy", type=("build", "run"))
+    depends_on("py-numpy@:1", when="@:1.86+numpy", type=("build", "run"))
 
     # Improve the error message when the context-impl variant is conflicting
     conflicts("context-impl=fcontext", when="@:1.65.0")
diff --git a/var/spack/repos/builtin/packages/salome-configuration/package.py b/var/spack/repos/builtin/packages/salome-configuration/package.py
index 13f15926ac..9abb0fe942 100644
--- a/var/spack/repos/builtin/packages/salome-configuration/package.py
+++ b/var/spack/repos/builtin/packages/salome-configuration/package.py
@@ -18,6 +18,12 @@ class SalomeConfiguration(Package):
     homepage = "https://www.salome-platform.org"
     git = "https://git.salome-platform.org/gitpub/tools/configuration.git"
 
+    version("9.13.0", tag="V9_13_0", commit="1c9b00436fc0e8264742460ebc102ae7d1970e97")
+    version("9.12.0", tag="V9_12_0", commit="61ed79521f31363ba4aeedcd59812a4838c076aa")
+    version("9.11.0", tag="V9_11_0", commit="33fc859a523e9f84cabaae2c55fdc64d1be11ec0")
+    version("9.10.0", tag="V9_10_0", commit="25f724f7a6c0000330a40c3851dcd8bc2493e1fa")
+    version("9.9.0", tag="V9_9_0", commit="5e61c7330cb2e0ff39e0bf4ba7b65d1d26c824ac")
+    version("9.8.0", tag="V9_8_0", commit="f1b2929d32953ac4d2056d564dab62e2e8d7c2a5")
     version("9.7.0", tag="V9_7_0", commit="b1430e72bc252867289b45de9a94041841fade06")
     version("9.6.0", tag="V9_6_0", commit="02e621fc9e24b4eab20f82ef921859013bf024b4")
     version("9.5.0", tag="V9_5_0", commit="96ecd4927604943dc80ead4aaf732a9d0215b70c")
@@ -25,7 +31,7 @@ class SalomeConfiguration(Package):
     version("9.3.0", tag="V9_3_0", commit="de7bac0ee58007a9501fffa7c1488de029b19cdc")
 
     patch("SalomeMacros.patch", working_dir="./cmake")
-    patch("FindSalomeHDF5.patch", working_dir="./cmake")
+    patch("FindSalomeHDF5.patch", working_dir="./cmake", when="@:9.7.0")
 
     def setup_dependent_build_environment(self, env, dependent_spec):
         env.set("CONFIGURATION_ROOT_DIR", self.prefix)
diff --git a/var/spack/repos/builtin/packages/salome-med/package.py b/var/spack/repos/builtin/packages/salome-med/package.py
index 08a7762cad..a96950b500 100644
--- a/var/spack/repos/builtin/packages/salome-med/package.py
+++ b/var/spack/repos/builtin/packages/salome-med/package.py
@@ -20,6 +20,12 @@ class SalomeMed(CMakePackage):
 
     license("LGPL-3.0-only")
 
+    version(
+        "5.0.0",
+        sha256="267e76d0c67ec51c10e3199484ec1508baa8d5ed845c628adf660529dce7a3d4",
+        url="ftp://ftp.cea.fr/pub/salome/prerequisites/med-5.0.0.tar.bz2",
+    )
+    version("4.1.1", sha256="a082b705d1aafe95d3a231d12c57f0b71df554c253e190acca8d26fc775fb1e6")
     version("4.1.0", sha256="847db5d6fbc9ce6924cb4aea86362812c9a5ef6b9684377e4dd6879627651fce")
     version("4.0.0", sha256="a474e90b5882ce69c5e9f66f6359c53b8b73eb448c5f631fa96e8cd2c14df004")
     version("3.3.1", sha256="856e9c4bb75eb0cceac3d5a5c65b1ce52fb3c46b9182920e1c9f34ae69bd2d5f")
@@ -32,20 +38,14 @@ class SalomeMed(CMakePackage):
     variant("mpi", default=False, description="Enable MPI")
     variant("static", default=False, description="Enable static library build")
     variant("fortran", default=False, description="Enable Fortran")
+    variant("int64", default=False, description="Use 64-bit integers as indices.")
 
     depends_on("mpi", when="+mpi")
 
-    depends_on("hdf5@1.10.3+mpi", when="@4.1.0+mpi")
-    depends_on("hdf5@1.10.3~mpi", when="@4.1.0~mpi")
-
-    depends_on("hdf5@1.10.3+mpi", when="@4.0.0+mpi")
-    depends_on("hdf5@1.10.3~mpi", when="@4.0.0~mpi")
-
-    depends_on("hdf5@1.8.14+mpi", when="@3.3.1+mpi")
-    depends_on("hdf5@1.8.14~mpi", when="@3.3.1~mpi")
-
-    depends_on("hdf5@1.8.14+mpi", when="@3.2.0+mpi")
-    depends_on("hdf5@1.8.14~mpi", when="@3.2.0~mpi")
+    for _mpi_variant in ("~mpi", "+mpi"):
+        depends_on(f"hdf5@1.12{_mpi_variant}", when=f"@5:{_mpi_variant}")
+        depends_on(f"hdf5@1.10{_mpi_variant}", when=f"@4{_mpi_variant}")
+        depends_on(f"hdf5@1.8{_mpi_variant}", when=f"@3{_mpi_variant}")
 
     patch("MAJ_400_410_champs.patch", when="@4.1.0+static", working_dir="./tools/medimport/4.0.0")
 
@@ -85,6 +85,11 @@ class SalomeMed(CMakePackage):
         else:
             options.extend(["-DCMAKE_Fortran_COMPILER="])
 
+        if "+int64" in spec:
+            options.append("-DMED_MEDINT_TYPE=long")
+        else:
+            options.append("-DMED_MEDINT_TYPE=int")
+
         options.extend(
             [
                 "-DMEDFILE_BUILD_PYTHON=OFF",
diff --git a/var/spack/repos/builtin/packages/salome-medcoupling/package.py b/var/spack/repos/builtin/packages/salome-medcoupling/package.py
index 89f681b200..2c24579706 100644
--- a/var/spack/repos/builtin/packages/salome-medcoupling/package.py
+++ b/var/spack/repos/builtin/packages/salome-medcoupling/package.py
@@ -20,6 +20,12 @@ class SalomeMedcoupling(CMakePackage):
 
     license("LGPL-2.1-or-later")
 
+    version("9.13.0", tag="V9_13_0", commit="8bea530c92cd907ae859ef11fd95b2db54b2894a")
+    version("9.12.0", tag="V9_12_0", commit="28e485bde1c26dc835ec7acf449b1d519997ddce")
+    version("9.11.0", tag="V9_11_0", commit="1b5fb5650409b0ad3a61da3215496f2adf2dae02")
+    version("9.10.0", tag="V9_10_0", commit="fe2e38d301902c626f644907e00e499552bb2fa5")
+    version("9.9.0", tag="V9_9_0", commit="5b2a9cc1cc18fffd5674a589aacf368008983b45")
+    version("9.8.0", tag="V9_8_0", commit="8a82259c9a9228c54efeddd52d4afe6c0e397c30")
     version("9.7.0", tag="V9_7_0", commit="773434a7f2a5cbacc2f50e93ea6d6a48a157acd9")
     version("9.6.0", tag="V9_6_0", commit="2c14a65b40252770b3503945405f5bdb2f29f8e2")
     version("9.5.0", tag="V9_5_0", commit="dd75474d950baf8ff862b03cb1685f2a2d562846")
@@ -31,7 +37,7 @@ class SalomeMedcoupling(CMakePackage):
 
     variant("static", default=False, description="Enable static library build")
     variant("mpi", default=False, description="Enable MPI")
-    variant("in64", default=False, description="Enable 64 bits indexes")
+    variant("int64", default=False, description="Use 64 bits indices")
     variant("partitioner", default=False, description="Enable partitioner")
     variant("metis", default=False, description="Enable Metis")
     variant("scotch", default=False, description="Enable Scotch")
@@ -49,35 +55,25 @@ class SalomeMedcoupling(CMakePackage):
     depends_on("scotch@6.0.4:", when="+scotch")
     depends_on("mpi", when="+mpi")
 
-    depends_on("salome-configuration@9.7.0", when="@9.7.0")
-    depends_on("salome-med@4.1.0+mpi+static", when="@9.7.0+mpi+static")
-    depends_on("salome-med@4.1.0+mpi", when="@9.7.0+mpi")
-    depends_on("salome-med@4.1.0+static", when="@9.7.0~mpi+static")
-    depends_on("salome-med@4.1.0", when="@9.7.0~mpi")
-
-    depends_on("salome-configuration@9.6.0", when="@9.6.0")
-    depends_on("salome-med@4.1.0+mpi+static", when="@9.6.0+mpi+static")
-    depends_on("salome-med@4.1.0+mpi", when="@9.6.0+mpi")
-    depends_on("salome-med@4.1.0+static", when="@9.6.0~mpi+static")
-    depends_on("salome-med@4.1.0", when="@9.6.0~mpi")
-
-    depends_on("salome-configuration@9.5.0", when="@9.5.0")
-    depends_on("salome-med@4.1.0+mpi+static", when="@9.5.0+mpi+static")
-    depends_on("salome-med@4.1.0+mpi", when="@9.5.0+mpi")
-    depends_on("salome-med@4.1.0+static", when="@9.5.0~mpi+static")
-    depends_on("salome-med@4.1.0", when="@9.5.0~mpi")
-
-    depends_on("salome-configuration@9.4.0", when="@9.4.0")
-    depends_on("salome-med@4.0.0+mpi+static", when="@9.4.0+mpi+static")
-    depends_on("salome-med@4.0.0+mpi", when="@9.4.0+mpi")
-    depends_on("salome-med@4.0.0+static", when="@9.4.0~mpi+static")
-    depends_on("salome-med@4.0.0", when="@9.4.0~mpi")
-
-    depends_on("salome-configuration@9.3.0", when="@9.3.0")
-    depends_on("salome-med@4.0.0+mpi+static", when="@9.3.0+mpi+static")
-    depends_on("salome-med@4.0.0+mpi", when="@9.3.0+mpi")
-    depends_on("salome-med@4.0.0+static", when="@9.3.0~mpi+static")
-    depends_on("salome-med@4.0.0", when="@9.3.0~mpi")
+    for _min_ver in range(3, 14):
+        _ver = f"9.{_min_ver}.0"
+        depends_on(f"salome-configuration@{_ver}", when=f"@{_ver}")
+
+    for _mpi_variant in ("~mpi", "+mpi"):
+        for _static_variant in ("~static", "+static"):
+            for _int64_variant in ("~int64", "+int64"):
+                depends_on(
+                    f"salome-med@4.1.1{_mpi_variant}{_static_variant}{_int64_variant}",
+                    when=f"@9.11.0:{_mpi_variant}{_static_variant}{_int64_variant}",
+                )
+                depends_on(
+                    f"salome-med@4.1.0{_mpi_variant}{_static_variant}{_int64_variant}",
+                    when=f"@9.5.0:9.10.0{_mpi_variant}{_static_variant}{_int64_variant}",
+                )
+                depends_on(
+                    f"salome-med@4.0.0{_mpi_variant}{_static_variant}{_int64_variant}",
+                    when=f"@9.3.0:9.4.0{_mpi_variant}{_static_variant}{_int64_variant}",
+                )
 
     def check(self):
         pass
@@ -90,13 +86,9 @@ class SalomeMedcoupling(CMakePackage):
             env.set("SCOTCH_ROOT_DIR", self.spec["scotch"].prefix)
 
     def setup_run_environment(self, env):
+        python_ver = self.spec["python"].version.up_to(2)
         env.prepend_path(
-            "PYTHONPATH",
-            join_path(
-                self.prefix.lib,
-                "python{0}".format(self.spec["python"].version.up_to(2)),
-                "site-packages",
-            ),
+            "PYTHONPATH", join_path(self.prefix.lib, f"python{python_ver}", "site-packages")
         )
 
     def cmake_args(self):
@@ -113,7 +105,7 @@ class SalomeMedcoupling(CMakePackage):
         else:
             options.extend(["-DMEDCOUPLING_USE_MPI=OFF", "-DSALOME_USE_MPI=OFF"])
 
-        if "+in64" in spec:
+        if "+int64" in spec:
             options.extend(["-DMEDCOUPLING_USE_64BIT_IDS=ON"])
         else:
             options.extend(["-DMEDCOUPLING_USE_64BIT_IDS=OFF"])
-- 
cgit v1.2.3-70-g09d2