diff --git a/var/spack/repos/builtin/packages/gaudi/package.py b/var/spack/repos/builtin/packages/gaudi/package.py
index d94496ae9e3c563dd135c9027753f5d246c5756d..b95438ff7ff1da4999db508b91756a12e4d508e3 100644
--- a/var/spack/repos/builtin/packages/gaudi/package.py
+++ b/var/spack/repos/builtin/packages/gaudi/package.py
@@ -7,7 +7,7 @@
 from spack.package import *
 
 
-class Gaudi(CMakePackage):
+class Gaudi(CMakePackage, CudaPackage):
     """An experiment-independent HEP event data processing framework"""
 
     homepage = "https://gaudi.web.cern.ch/gaudi/"
@@ -17,6 +17,7 @@ class Gaudi(CMakePackage):
     tags = ["hep"]
 
     version("master", branch="master")
+    version("39.2", sha256="9697f5092df49187e3d30256c821a4400534e77ddaa2d976ba4bb22745c904d6")
     version("39.1", sha256="acdeddcc2383a127b1ad4b0bdaf9f1c6699b64105e0c1d8095c560c96c157885")
     version("39.0", sha256="faa3653e2e6c769292c0592e3fc35cd98a2820bd6fc0c967cac565808b927262")
     version("38.3", sha256="47e8c65ea446656d2dae54a32205525e08257778cf80f9f029cd244d6650486e")
@@ -46,6 +47,11 @@ class Gaudi(CMakePackage):
     depends_on("cxx", type="build")
 
     conflicts("%gcc@:10", when="@39:", msg="Gaudi needs a c++20 capable compiler for this version")
+    conflicts("+cuda", when="@:39.1", msg="Gaudi CUDA is only available in version 39.2 and later")
+
+    # Require %gcc@13 for <format> header
+    conflicts("%gcc@:12", when="+cuda @39.2:", msg="GaudiCUDA requires gcc-13.1 or later")
+    conflicts("%gcc@:12", when="+unwind @39.2:", msg="GaudiProfiling requires gcc-13.1 or later")
 
     maintainers("drbenmorgan", "vvolkl", "jmcarcell")
 
@@ -143,6 +149,10 @@ def patch(self):
         # accidentally in a higher directory than the stage directory
         touch("pytest.ini")
 
+        # ensure <fmt/format.h> is included instead of <format> for 39.2
+        if self.spec.satisfies("@39.2"):
+            filter_file("<format>", "<fmt/format.h>", "GaudiSvc/src/THistSvc/THistSvc.cpp")
+
     def cmake_args(self):
         args = [
             # Note: gaudi only builds examples when testing enabled
@@ -150,6 +160,7 @@ def cmake_args(self):
             self.define_from_variant("GAUDI_BUILD_EXAMPLES", "examples"),
             self.define_from_variant("GAUDI_USE_AIDA", "aida"),
             self.define_from_variant("GAUDI_USE_CPPUNIT", "cppunit"),
+            self.define_from_variant("GAUDI_USE_CUDA", "cuda"),
             self.define_from_variant("GAUDI_ENABLE_GAUDIALG", "gaudialg"),
             self.define_from_variant("GAUDI_USE_GPERFTOOLS", "gperftools"),
             self.define_from_variant("GAUDI_USE_HEPPDT", "heppdt"),