From eb57d96ea94b0543a8d5ba943444e77e414cc82e Mon Sep 17 00:00:00 2001 From: Felix Werner Date: Mon, 11 Dec 2023 14:21:25 +0100 Subject: geant4/geant4-data: add v10.0.4 (#41478) * geant4/geant4-data: add builtin_clhep variant and v10.0.4. * geant4: revert addition of builtin_clhep variant. * geant4: fix vecgeom variant only being available for v10.3 and above. --- var/spack/repos/builtin/packages/clhep/package.py | 1 + .../repos/builtin/packages/g4emlow/package.py | 1 + .../repos/builtin/packages/g4ensdfstate/package.py | 1 + var/spack/repos/builtin/packages/g4ndl/package.py | 1 + .../packages/g4photonevaporation/package.py | 1 + .../builtin/packages/g4radioactivedecay/package.py | 1 + .../repos/builtin/packages/geant4-data/package.py | 13 +++++++++ .../builtin/packages/geant4/geant4-10.0.4.patch | 31 ++++++++++++++++++++++ var/spack/repos/builtin/packages/geant4/package.py | 19 +++++++++---- 9 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 var/spack/repos/builtin/packages/geant4/geant4-10.0.4.patch diff --git a/var/spack/repos/builtin/packages/clhep/package.py b/var/spack/repos/builtin/packages/clhep/package.py index 3241df9fb6..76fb9c6373 100644 --- a/var/spack/repos/builtin/packages/clhep/package.py +++ b/var/spack/repos/builtin/packages/clhep/package.py @@ -51,6 +51,7 @@ class Clhep(CMakePackage): version("2.2.0.8", sha256="f735e236b1f023ba7399269733b2e84eaed4de615081555b1ab3af25a1e92112") version("2.2.0.5", sha256="92e8b5d32ae96154edd27d0c641ba048ad33cb69dd4f1cfb72fc578770a34818") version("2.2.0.4", sha256="9bf7fcd9892313c8d1436bc4a4a285a016c4f8e81e1fc65bdf6783207ae57550") + version("2.1.2.3", sha256="4353231be09c134507092161cd3ced27a065ca0ebb31ee0256e60a8163c47c3b") variant( "cxxstd", diff --git a/var/spack/repos/builtin/packages/g4emlow/package.py b/var/spack/repos/builtin/packages/g4emlow/package.py index 0601cfca29..e4335eecf9 100644 --- a/var/spack/repos/builtin/packages/g4emlow/package.py +++ b/var/spack/repos/builtin/packages/g4emlow/package.py @@ -26,6 +26,7 @@ class G4emlow(Package): version("7.7", sha256="16dec6adda6477a97424d749688d73e9bd7d0b84d0137a67cf341f1960984663") version("7.3", sha256="583aa7f34f67b09db7d566f904c54b21e95a9ac05b60e2bfb794efb569dba14e") version("6.50", sha256="c97be73fece5fb4f73c43e11c146b43f651c6991edd0edf8619c9452f8ab1236") + version("6.35", sha256="1564045a0acad344c8d432cd48c2c3bb2e051a81ab3099a84e0f56ba0fe82cec") def install(self, spec, prefix): mkdirp(join_path(prefix.share, "data")) diff --git a/var/spack/repos/builtin/packages/g4ensdfstate/package.py b/var/spack/repos/builtin/packages/g4ensdfstate/package.py index 09fd398e3d..9c46d9a7f4 100644 --- a/var/spack/repos/builtin/packages/g4ensdfstate/package.py +++ b/var/spack/repos/builtin/packages/g4ensdfstate/package.py @@ -21,6 +21,7 @@ class G4ensdfstate(Package): version("2.3", sha256="9444c5e0820791abd3ccaace105b0e47790fadce286e11149834e79c4a8e9203") version("2.2", sha256="dd7e27ef62070734a4a709601f5b3bada6641b111eb7069344e4f99a01d6e0a6") version("2.1", sha256="933e7f99b1c70f24694d12d517dfca36d82f4e95b084c15d86756ace2a2790d9") + version("1.0", sha256="4562e7476aa2df7204a1a77263e9d2331e9ffcdb591d11814dcc2d6b605021dd") def install(self, spec, prefix): mkdirp(join_path(prefix.share, "data")) diff --git a/var/spack/repos/builtin/packages/g4ndl/package.py b/var/spack/repos/builtin/packages/g4ndl/package.py index e91a682496..2d0570a5ed 100644 --- a/var/spack/repos/builtin/packages/g4ndl/package.py +++ b/var/spack/repos/builtin/packages/g4ndl/package.py @@ -20,6 +20,7 @@ class G4ndl(Package): version("4.7", sha256="7e7d3d2621102dc614f753ad928730a290d19660eed96304a9d24b453d670309") version("4.6", sha256="9d287cf2ae0fb887a2adce801ee74fb9be21b0d166dab49bcbee9408a5145408") version("4.5", sha256="cba928a520a788f2bc8229c7ef57f83d0934bb0c6a18c31ef05ef4865edcdf8e") + version("4.4", sha256="e9fe8800566a83ccaf9b5229a1fa1d2cd24530bbd2e9fcb96eb6b5b117233071") def install(self, spec, prefix): mkdirp(join_path(prefix.share, "data")) diff --git a/var/spack/repos/builtin/packages/g4photonevaporation/package.py b/var/spack/repos/builtin/packages/g4photonevaporation/package.py index c0e160bd14..885ceccf67 100644 --- a/var/spack/repos/builtin/packages/g4photonevaporation/package.py +++ b/var/spack/repos/builtin/packages/g4photonevaporation/package.py @@ -23,6 +23,7 @@ class G4photonevaporation(Package): version("5.3", sha256="d47ababc8cbe548065ef644e9bd88266869e75e2f9e577ebc36bc55bf7a92ec8") version("5.2", sha256="83607f8d36827b2a7fca19c9c336caffbebf61a359d0ef7cee44a8bcf3fc2d1f") version("4.3.2", sha256="d4641a6fe1c645ab2a7ecee09c34e5ea584fb10d63d2838248bfc487d34207c7") + version("3.0", sha256="c76a843672eca21110e97a274a6b5cd9a58b66f35235301c8e1b162926e0e7cb") def install(self, spec, prefix): mkdirp(join_path(prefix.share, "data")) diff --git a/var/spack/repos/builtin/packages/g4radioactivedecay/package.py b/var/spack/repos/builtin/packages/g4radioactivedecay/package.py index df758bc2c5..bb3a66fbcd 100644 --- a/var/spack/repos/builtin/packages/g4radioactivedecay/package.py +++ b/var/spack/repos/builtin/packages/g4radioactivedecay/package.py @@ -23,6 +23,7 @@ class G4radioactivedecay(Package): version("5.3", sha256="5c8992ac57ae56e66b064d3f5cdfe7c2fee76567520ad34a625bfb187119f8c1") version("5.2", sha256="99c038d89d70281316be15c3c98a66c5d0ca01ef575127b6a094063003e2af5d") version("5.1.1", sha256="f7a9a0cc998f0d946359f2cb18d30dff1eabb7f3c578891111fc3641833870ae") + version("4.0", sha256="ed2053bddee507920a29a27db4364fbef255b951597686b0410d5458e9b38cb5") def install(self, spec, prefix): mkdirp(join_path(prefix.share, "data")) diff --git a/var/spack/repos/builtin/packages/geant4-data/package.py b/var/spack/repos/builtin/packages/geant4-data/package.py index 7953ba2d45..cadf70180f 100644 --- a/var/spack/repos/builtin/packages/geant4-data/package.py +++ b/var/spack/repos/builtin/packages/geant4-data/package.py @@ -33,6 +33,7 @@ class Geant4Data(BundlePackage): version("10.4.3") version("10.4.0") version("10.3.3") + version("10.0.4") # Add install phase so we can create the data "view" phases = ["install"] @@ -132,6 +133,18 @@ class Geant4Data(BundlePackage): ], "10.3.1:10.3": ["g4photonevaporation@4.3.2", "g4radioactivedecay@5.1.1"], "10.3.0": ["g4photonevaporation@4.3", "g4radioactivedecay@5.1"], + "10.0.4": [ + "g4ndl@4.4", + "g4emlow@6.35", + "g4photonevaporation@3.0", + "g4radioactivedecay@4.0", + "g4neutronxs@1.4", + "g4pii@1.3", + "g4realsurface@1.0", + "g4saiddata@1.1", + "g4abla@3.0", + "g4ensdfstate@1.0", + ], } for _vers, _dsets in _datasets.items(): diff --git a/var/spack/repos/builtin/packages/geant4/geant4-10.0.4.patch b/var/spack/repos/builtin/packages/geant4/geant4-10.0.4.patch new file mode 100644 index 0000000000..b09c205882 --- /dev/null +++ b/var/spack/repos/builtin/packages/geant4/geant4-10.0.4.patch @@ -0,0 +1,31 @@ +diff -Naur a/cmake/Modules/Geant4MakeRules_cxx.cmake b/cmake/Modules/Geant4MakeRules_cxx.cmake +--- a/cmake/Modules/Geant4MakeRules_cxx.cmake 2016-06-10 12:04:27 ++++ b/cmake/Modules/Geant4MakeRules_cxx.cmake 2023-12-04 16:49:28 +@@ -51,7 +51,7 @@ + elseif(_gnucxx_version VERSION_LESS 4.7) + set(_CXXSTDS "c++98" "c++0x") + else() +- set(_CXXSTDS "c++98" "c++0x" "c++11") ++ set(_CXXSTDS "c++98" "c++0x" "c++11" "c++14") + endif() + + set(CXXSTD_IS_AVAILABLE ${_CXXSTDS} PARENT_SCOPE) +diff -Naur a/source/visualization/HepRep/sources.cmake b/source/visualization/HepRep/sources.cmake +--- a/source/visualization/HepRep/sources.cmake 2016-06-10 12:04:27 ++++ b/source/visualization/HepRep/sources.cmake 2023-12-04 16:12:32 +@@ -71,13 +71,13 @@ + G4HepRepMessenger.cc + G4HepRepSceneHandler.cc + G4HepRepViewer.cc +- GZIPOutputStream.cc ++ gzipoutputstream.cc + GZIPOutputStreamBuffer.cc + IndentPrintWriter.cc + XMLHepRepFactory.cc + XMLHepRepWriter.cc + XMLWriter.cc +- ZipOutputStream.cc ++ zipoutputstream.cc + ZipOutputStreamBuffer.cc + GRANULAR_DEPENDENCIES + G4csg diff --git a/var/spack/repos/builtin/packages/geant4/package.py b/var/spack/repos/builtin/packages/geant4/package.py index 6f7605fcca..a8eac9c18b 100644 --- a/var/spack/repos/builtin/packages/geant4/package.py +++ b/var/spack/repos/builtin/packages/geant4/package.py @@ -44,6 +44,7 @@ class Geant4(CMakePackage): version("10.4.3", sha256="67f3bb6405a2c77e573936c2b933f5a4a33915aa379626a2eb3012009b91e1da") version("10.4.0", sha256="e919b9b0a88476e00c0b18ab65d40e6a714b55ee4778f66bac32a5396c22aa74") version("10.3.3", sha256="bcd36a453da44de9368d1d61b0144031a58e4b43a6d2d875e19085f2700a89d8") + version("10.0.4", sha256="97f3744366b00143d1eed52f8786823034bbe523f45998106f798af61d83f863") _cxxstd_values = ( conditional("11", "14", when="@:10"), @@ -59,7 +60,7 @@ class Geant4(CMakePackage): ) variant("threads", default=True, description="Build with multithreading") - variant("vecgeom", default=False, description="Enable vecgeom support") + variant("vecgeom", default=False, description="Enable vecgeom support", when="@10.3:") variant("opengl", default=False, description="Optional OpenGL support") variant("x11", default=False, description="Optional X11 support") variant("motif", default=False, description="Optional motif support") @@ -73,6 +74,7 @@ class Geant4(CMakePackage): depends_on("cmake@3.5:", type="build") for _vers in [ + "10.0.4", "10.3.3", "10.4.0", "10.4.3", @@ -105,7 +107,8 @@ class Geant4(CMakePackage): depends_on("clhep@2.4.6.0:", when="@11.1:") depends_on("clhep@2.4.5.1:", when="@11.0.0:") depends_on("clhep@2.4.4.0:", when="@10.7.0:") - depends_on("clhep@2.3.3.0:", when="@10.3.3:10.6") + depends_on("clhep@2.3.3.0:", when="@10.3:10.6") + depends_on("clhep@2.1.2.3", when="@:10.2") # Vecgeom specific versions for each Geant4 version with when("+vecgeom"): @@ -144,11 +147,14 @@ class Geant4(CMakePackage): depends_on("motif", when="+motif") depends_on("qt@5: +opengl", when="+qt") + # As released, 10.0.4 has inconsistently capitalised filenames + # in the cmake files; this patch also enables cxxstd 14 + patch("geant4-10.0.4.patch", when="@10.0.4") # As released, 10.03.03 has issues with respect to using external # CLHEP. - patch("CLHEP-10.03.03.patch", level=1, when="@10.3.3") + patch("CLHEP-10.03.03.patch", level=1, when="@10.3") # These patches can be applied independent of the cxxstd value? - patch("cxx17.patch", when="@:10.3 cxxstd=17") + patch("cxx17.patch", when="@10.3 cxxstd=17") patch("cxx17_geant4_10_0.patch", level=1, when="@10.4.0 cxxstd=17") patch("geant4-10.4.3-cxx17-removed-features.patch", level=1, when="@10.4.3 cxxstd=17") @@ -231,8 +237,11 @@ class Geant4(CMakePackage): # Use the correct C++ standard option for the requested version if spec.version >= Version("11.0"): options.append(self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd")) - else: + elif spec.version >= Version("10.3"): options.append(self.define_from_variant("GEANT4_BUILD_CXXSTD", "cxxstd")) + else: + cxxstd = spec.variants["cxxstd"].value + options.append(self.define("GEANT4_BUILD_CXXSTD", f"c++{cxxstd}")) if spec.version >= Version("10.6"): # When building a downstream library/app outside of Spack, make -- cgit v1.2.3-70-g09d2