Subject: [bug#75856] [PATCH v3] gnu: eureka: Update to 2.0.2.

From: Andrew Wong <[email-masked]>
Date: Tue, 4 Feb 2025 22:17:35 -0500

* gnu/packages/game-development.scm (eureka): Update to 2.0.2.
[source]: Switch source from tarballs to git.
[arguments] <configure-flags>: Disable unit tests.
<phases>: Revise 'prepare-install-directories for new build system.

Change-Id: I6114be8ef3b05ceb6b80efef29e20da9451b3dbc
---
Here's v3. Liliana: I tried to unbundle googletest by replacing the FetchContent block with find_package, but I ran into an issue with ld not finding certain symbols in the googletest package; it seems like it depends on the source itself, somehow.
 gnu/packages/game-development.scm | 75 +++++++++++++++----------------
 1 file changed, 35 insertions(+), 40 deletions(-)

diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index dc642bf052..149962a3e1 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -31,6 +31,7 @@
 ;;; Copyright © 2023, 2024 John Kehayias <[email-masked]>
 ;;; Copyright © 2024 Nicolas Graves <[email-masked]>
 ;;; Copyright © 2024 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2025 Andrew Wong <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2407,47 +2408,41 @@ (define-public entt
 (define-public eureka
   (package
     (name "eureka")
-    (version "1.24")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/eureka-editor/Eureka/"
-                                  version "/eureka-"
-                                  ;; version without dots e.g 1.21 => 121
-                                  (string-join (string-split version #\.) "")
-                                  "-source.tar.gz"))
-              (sha256
-               (base32
-                "1x4idjniz9sma3j9ss6ni7fafmz22zs2jnpsqw4my9rsnmra5d9v"))))
-    (build-system gnu-build-system)
+    (version "2.0.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ioan-chera/eureka-editor")
+             (commit (string-append "eureka-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "10bq7kr7vidrlw5l1mq35x83xsrzb9lhdzqdr07gkj40x0w493a0"))
+       (patches (search-patches "eureka-unbundle-googletest.patch"))))
+    (build-system cmake-build-system)
     (arguments
-     '(#:tests? #f
-       #:make-flags
-       (let ((out (assoc-ref %outputs "out")))
-         (list (string-append "PREFIX=" out)))
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (add-before 'build 'prepare-install-directories
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (mkdir-p (string-append out "/bin"))
-               (mkdir-p (string-append out "/share"))
-
-               (with-fluids ((%default-port-encoding #f))
-                 (substitute* "./src/main.cc"
-                   (("/usr/local") out)))
-
-               (substitute* "Makefile"
-                 (("-o root") ""))))))))
-    (inputs `(("mesa" ,mesa)
-              ("libxft" ,libxft)
-              ("libxinerama" ,libxinerama)
-              ("libfontconfig" ,fontconfig)
-              ("libjpeg" ,libjpeg-turbo)
-              ("libpng" ,libpng)
-              ("fltk" ,fltk)
-              ("zlib" ,zlib)))
-    (native-inputs (list pkg-config xdg-utils))
+     (list
+      #:tests? #f ;tests cause attempted download/build of googletests.
+      #:configure-flags #~(list "-DENABLE_UNIT_TESTS=OFF")
+      #:phases #~(modify-phases %standard-phases
+                   (add-after 'unpack 'prepare-install-directories
+                     (lambda* (#:key outputs #:allow-other-keys)
+                       (let ((out (assoc-ref outputs "out")))
+                         (with-fluids ((%default-port-encoding #f))
+                                      (substitute* "./src/main.cc"
+                                        (("/usr/local")
+                                         out)))))))))
+    (native-inputs (list xdg-utils))
+    (inputs
+     (list fltk
+           libxft
+           libxinerama
+           fontconfig
+           libjpeg-turbo
+           libpng
+           libxpm
+           glu
+           zlib))
     (synopsis "Doom map editor")
     (description "Eureka is a map editor for the classic DOOM games, and a few
 related games such as Heretic and Hexen.  It comes with a 3d preview mode and

base-commit: 5a897c5c95a81278b044c18d962d3bd83131ba06
-- 
2.48.1