[PATCH] gnu: eureka: Update to 2.0.2.

  • Open
  • quality assurance status badge
Details
4 participants
  • James Smith
  • Liliana Marie Prikler
  • Maxim Cournoyer
  • Andrew Wong
Owner
unassigned
Submitted by
Andrew Wong
Severity
normal

Debbugs page

Andrew Wong wrote 2 months ago
(address . guix-patches@gnu.org)(name . Andrew Wong)(address . wongandj@icloud.com)
5a5f68827149799b9b1de94da6d6d14b324ed967.1737887816.git.wongandj@icloud.com
* gnu/packages/game-development.scm (eureka): Update to 2.0.2.

Change-Id: I3ec6694cfd66056cc0b31e23bb6b237c1e591925
---
gnu/packages/game-development.scm | 67 +++++++++++++------------------
1 file changed, 28 insertions(+), 39 deletions(-)

Toggle diff (84 lines)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 899b72d741..e38b0723ec 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -2407,47 +2407,36 @@ (define-public entt
(define-public eureka
(package
(name "eureka")
- (version "1.24")
+ (version "2.0.2")
(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"))
+ (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
- "1x4idjniz9sma3j9ss6ni7fafmz22zs2jnpsqw4my9rsnmra5d9v"))))
- (build-system gnu-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))
+ (base32 "10bq7kr7vidrlw5l1mq35x83xsrzb9lhdzqdr07gkj40x0w493a0"))
+ ))
+ (build-system cmake-build-system)
+ (arguments '(#:tests? #f
+ #: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: 87045f0982bd7aebb07b380cbf322651227546f4
--
2.47.1
James Smith wrote 2 months ago
(name . Andrew Wong via Guix-patches via)(address . guix-patches@gnu.org)(name . 宋文武)(address . iyzsong@envs.net)(name . Adam Faiz)(address . adam.faiz@disroot.org)(name . Andrew Wong)(address . wongandj@icloud.com)(address . 75856@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
867c6h4hua.fsf@disroot.org
Andrew Wong via Guix-patches via <guix-patches@gnu.org> writes:
Hi,

Toggle quote (2 lines)
> * gnu/packages/game-development.scm (eureka): Update to 2.0.2.
>
Changes made below should be documented here.
Toggle quote (16 lines)
> Change-Id: I3ec6694cfd66056cc0b31e23bb6b237c1e591925
> ---
> gnu/packages/game-development.scm | 67 +++++++++++++------------------
> 1 file changed, 28 insertions(+), 39 deletions(-)
>
> diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
> index 899b72d741..e38b0723ec 100644
> --- a/gnu/packages/game-development.scm
> +++ b/gnu/packages/game-development.scm
> @@ -2407,47 +2407,36 @@ (define-public entt
> (define-public eureka
> (package
> (name "eureka")
> - (version "1.24")
> + (version "2.0.2")
> (source (origin
^
Nitpick: Should probably add an indention here.
Toggle quote (11 lines)
> - (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"))
> + (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))
Should document switching source from tarballs to git.
Toggle quote (35 lines)
> (sha256
> - (base32
> - "1x4idjniz9sma3j9ss6ni7fafmz22zs2jnpsqw4my9rsnmra5d9v"))))
> - (build-system gnu-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))
> + (base32 "10bq7kr7vidrlw5l1mq35x83xsrzb9lhdzqdr07gkj40x0w493a0"))
> + ))
^
Please don't leave parenthesises hanging.
Toggle quote (3 lines)
> + (build-system cmake-build-system)
> + (arguments '(#:tests? #f
> + #:configure-flags (list "-DENABLE_UNIT_TESTS=OFF")
Question: Can tests be enabled?
Toggle quote (7 lines)
> + #: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)))))))))
If you're reformatting the arguments field, you should go ahead and
switch to G-Exps while you're at it.
Toggle quote (2 lines)
> + (native-inputs (list xdg-utils))
> + (inputs (list fltk
^
Nitpick: Quite a bit of whitespace, maybe add an indention after inputs?
Toggle quote (13 lines)
> + 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: 87045f0982bd7aebb07b380cbf322651227546f4
Overall, looking good. Can you send a v2?

James Smith
Andrew Wong wrote 2 months ago
[PATCH v2] gnu: eureka: Update to 2.0.2.
(address . 75856@debbugs.gnu.org)(name . Andrew Wong)(address . wongandj@icloud.com)
7279866f03a01133e840eb59dbe798d7a614172d.1737945373.git.wongandj@icloud.com
* gnu/packages/game-development.scm (eureka): Update to 2.0.2.
[source]: Switch source from obsolete tarballs to git.
[arguments] <configure-flags>: Disable unit tests.
<phases>: Revise 'prepare-install-directories for new build system.

Change-Id: I3ec6694cfd66056cc0b31e23bb6b237c1e591925
---
Here is v2. James: I cannot enable tests because doing so causes an attempt to
download and compile googletests, even if it's already present in native-inputs.
gnu/packages/game-development.scm | 76 ++++++++++++++-----------------
1 file changed, 35 insertions(+), 41 deletions(-)

Toggle diff (93 lines)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 899b72d741..95816c03d4 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -2407,49 +2407,43 @@ (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"))))
+ (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
+ (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
a 2D editor view.")
(home-page "https://eureka-editor.sourceforge.net/")

base-commit: 87045f0982bd7aebb07b380cbf322651227546f4
--
2.47.1
Liliana Marie Prikler wrote 2 months ago
(name . Andrew Wong)(address . wongandj@icloud.com)(address . 75856@debbugs.gnu.org)(name . 宋文武)(address . iyzsong@envs.net)(name . Adam Faiz)(address . adam.faiz@disroot.org)
e2ff24cc6b83bc1855eacb9abffeea6a245a791d.camel@gmail.com
Am Sonntag, dem 26.01.2025 um 21:36 -0500 schrieb Andrew Wong:
Toggle quote (2 lines)
> * gnu/packages/game-development.scm (eureka): Update to 2.0.2.
> [source]: Switch source from obsolete tarballs to git.
Prefer less loaded language. "Switch from tarballs to git." suffices.
Toggle quote (8 lines)
> [arguments] <configure-flags>: Disable unit tests.
> <phases>: Revise 'prepare-install-directories for new build system.
>
> Change-Id: I3ec6694cfd66056cc0b31e23bb6b237c1e591925
> ---
> Here is v2. James: I cannot enable tests because doing so causes an
> attempt to download and compile googletests, even if it's already
> present in native-inputs.
In other words: there's some unbundling to do :)
Andrew Wong wrote 2 months ago
(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)(name . guix-patches)(address . guix-patches@gnu.org)
1bad3c35-64e6-48d1-98f9-97ddf2483517@icloud.com
Toggle quote (1 lines)
> Prefer less loaded language. "Switch from tarballs to git." suffices.
Sorry, I meant to convey that the switch was made from tarballs because
the project doesn't use them for source distribution anymore :)
Toggle quote (1 lines)
> In other words: there's some unbundling to do :)
noted, will work on that for v3.
Andrew Wong wrote 1 months ago
[PATCH v3] gnu: eureka: Update to 2.0.2.
(address . 75856@debbugs.gnu.org)(name . Andrew Wong)(address . wongandj@icloud.com)
032738d899af131ba2d82f03aff6d12d3b1d5779.1738725455.git.wongandj@icloud.com
* 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(-)

Toggle diff (98 lines)
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 <john.kehayias@protonmail.com>
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2025 Andrew Wong <wongandj@icloud.com>
;;;
;;; 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
Andrew Wong wrote 1 months ago
[PATCH] gnu: Add flycast.
(address . 75856@debbugs.gnu.org)(name . Andrew Wong)(address . wongandj@icloud.com)
67872a1b512abe6753930841bced4e34edf03639.1739307113.git.wongandj@icloud.com
* gnu/packages/emulators.scm (flycast): New variable.

Change-Id: I358235492a3493c3126f7ca9f738ed2706e36105
---
Flycast has a libretro core too, but I haven't gotten it working yet. I am also working directly with the developer to try to un-bundle some of the deps.
gnu/packages/emulators.scm | 56 ++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)

Toggle diff (71 lines)
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index f20b6da79b..c6ff685948 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -4072,6 +4072,62 @@ (define-public exomizer
;; zlib license with an (non-)advertising clause.
(license license:zlib)))
+(define-public flycast
+ (package
+ (name "flycast")
+ (version "2.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/flyinghead/flycast")
+ (commit (string-append "v" version))
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ainy75gkrvilcm89hq6wq9md41w0mxgp6l27q5fzrxxykpjh6ym"))
+ (modules '((guix build utils)
+ (guile)))
+ (snippet
+ #~(begin
+ (substitute* "CMakeLists.txt"
+ (("add_subdirectory\\(core/deps/Vulkan-Headers\\)")
+ "find_package(VulkanHeaders)"))))))
+ (build-system cmake-build-system)
+ (inputs (list pkg-config
+ sdl2
+ vulkan-headers
+ glslang
+ libzip
+ curl
+ alsa-lib
+ lua
+ ao
+ pulseaudio
+ miniupnpc
+ ;; vv needed for vulkan
+ spirv-tools))
+ (arguments
+ (list #:tests? #f ;no target 'test'
+ #:configure-flags
+ #~(list "-DUSE_HOST_GLSLANG=OFF"
+ ;; https://github.com/flyinghead/flycast/issues/1843
+ "-DUSE_HOST_LIBZIP=ON"
+ "-DUSE_HOST_SDL=ON"
+ "-DUSE_ALSA=ON"
+ "-DUSE_LUA=ON"
+ "-DUSE_LIBAO=ON"
+ "-DUSE_PULSEAUDIO=ON"
+ "-DUSE_BREAKPAD=OFF"
+ "-DUSE_VULKAN=ON"
+ "-DUSE_DX9=OFF"
+ "-DUSE_DX11=OFF")))
+ (home-page "https://github.com/flyinghead/flycast")
+ (synopsis "Sega Dreamcast, Naomi, Naomi 2, and Atomiswave emulator")
+ (description "Flycast is a multi-platform Sega Dreamcast, Naomi, Naomi 2,
+and Atomiswave emulator derived from reicast.")
+ (license license:gpl2+)))
+
(define-public freedisksysrom
;; There is no release; use the latest commit.
(let ((commit "0d5f95f109bb3aadf2bb9510bfda13879bbd5266")

base-commit: 5a897c5c95a81278b044c18d962d3bd83131ba06
--
2.48.1
Maxim Cournoyer wrote 1 months ago
Re: bug#75856: [PATCH] gnu: eureka: Update to 2.0.2.
(name . Andrew Wong)(address . wongandj@icloud.com)(name . 宋文武)(address . iyzsong@envs.net)(name . Adam Faiz)(address . adam.faiz@disroot.org)(address . 75856@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
878qqao9s6.fsf_-_@gmail.com
Hi Andrew,

Andrew Wong <wongandj@icloud.com> writes:

Toggle quote (5 lines)
> * 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.

It looks like yo forgot to mention newly added inputs like libxpm and
glu in the above change log.

Toggle quote (7 lines)
> 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.

FetchContent doesn't need to be patched out; CMake has some variables
you can set to tell it to prefer a system version. See
"-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS" in the jami package
definition for an example, and

Toggle snippet (3 lines)
info --index-search FETCHCONTENT_TRY_FIND_PACKAGE_MODE cmake

for its documentation.

Toggle quote (43 lines)
> 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 <john.kehayias@protonmail.com>
> ;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
> ;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
> +;;; Copyright © 2025 Andrew Wong <wongandj@icloud.com>
> ;;;
> ;;; 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"))))

I don't see a patch; you must have forgotten to remove it above?

Toggle quote (34 lines)
> + (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")

If my above suggestion to use the
-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=always configure flag works, adjust
the above accordingly.

Toggle quote (9 lines)
> + #: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)))))))))

Nitpick: the modern way to access outputs is via the gexp variables like
#$output.

Toggle quote (12 lines)
> + (native-inputs (list xdg-utils))
> + (inputs
> + (list fltk
> + libxft
> + libxinerama
> + fontconfig
> + libjpeg-turbo
> + libpng
> + libxpm
> + glu
> + zlib))

Please keep the inputs sorted lexicographically.

--
Thanks,
Maxim
Maxim Cournoyer wrote 1 months ago
(name . Andrew Wong)(address . wongandj@icloud.com)(name . 宋文武)(address . iyzsong@envs.net)(name . Adam Faiz)(address . adam.faiz@disroot.org)(address . 75856@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
874j0yo92w.fsf_-_@gmail.com
Hello,

Andrew Wong <wongandj@icloud.com> writes:

Toggle quote (29 lines)
> * gnu/packages/emulators.scm (flycast): New variable.
>
> Change-Id: I358235492a3493c3126f7ca9f738ed2706e36105
> ---
> Flycast has a libretro core too, but I haven't gotten it working
> yet. I am also working directly with the developer to try to un-bundle
> some of the deps.
> gnu/packages/emulators.scm | 56 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 56 insertions(+)
>
> diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
> index f20b6da79b..c6ff685948 100644
> --- a/gnu/packages/emulators.scm
> +++ b/gnu/packages/emulators.scm
> @@ -4072,6 +4072,62 @@ (define-public exomizer
> ;; zlib license with an (non-)advertising clause.
> (license license:zlib)))
>
> +(define-public flycast
> + (package
> + (name "flycast")
> + (version "2.4")
> + (source
> + (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/flyinghead/flycast")
> + (commit (string-append "v" version))

Please add a comment as to why recursive? is needed; typically, that's
to pull bundled sources that should be pruned as much as possible,
e.g. at least those being used from the system should be removed in the
origin snippet below. I've used a local 'delete-all-but' definition in
the past, for example in the turbovnc package, that may be useful here.

Toggle quote (7 lines)
> + (recursive? #t)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32 "0ainy75gkrvilcm89hq6wq9md41w0mxgp6l27q5fzrxxykpjh6ym"))
> + (modules '((guix build utils)
> + (guile)))

You don't ever need to import the (guile) module; it's always loaded
(except pehaps in pure R7RS mode, but that's not used in Guix) :-).

Toggle quote (22 lines)
> + (snippet
> + #~(begin
> + (substitute* "CMakeLists.txt"
> + (("add_subdirectory\\(core/deps/Vulkan-Headers\\)")
> + "find_package(VulkanHeaders)"))))))
> + (build-system cmake-build-system)
> + (inputs (list pkg-config
> + sdl2
> + vulkan-headers
> + glslang
> + libzip
> + curl
> + alsa-lib
> + lua
> + ao
> + pulseaudio
> + miniupnpc
> + ;; vv needed for vulkan
> + spirv-tools))
> + (arguments
> + (list #:tests? #f ;no target 'test'

I'd research a bit more and write ';no test suite', if that's truly the
case. The test target is sometimes named differently.

Toggle quote (4 lines)
> + #:configure-flags
> + #~(list "-DUSE_HOST_GLSLANG=OFF"
> + ;; https://github.com/flyinghead/flycast/issues/1843

I'd write a full fledge comment briefly mentioning what's the error we
get otherwise, with a (see: $url) reference at the end. Use complete
(including punctuation) sentences for line comments. Margin comments
can be incomplete and unpunctuate sentences.

Toggle quote (17 lines)
> + "-DUSE_HOST_LIBZIP=ON"
> + "-DUSE_HOST_SDL=ON"
> + "-DUSE_ALSA=ON"
> + "-DUSE_LUA=ON"
> + "-DUSE_LIBAO=ON"
> + "-DUSE_PULSEAUDIO=ON"
> + "-DUSE_BREAKPAD=OFF"
> + "-DUSE_VULKAN=ON"
> + "-DUSE_DX9=OFF"
> + "-DUSE_DX11=OFF")))
> + (home-page "https://github.com/flyinghead/flycast")
> + (synopsis "Sega Dreamcast, Naomi, Naomi 2, and Atomiswave emulator")
> + (description "Flycast is a multi-platform Sega Dreamcast, Naomi, Naomi 2,
> +and Atomiswave emulator derived from reicast.")
> + (license license:gpl2+)))
> +

With the above addressed, it LGTM. Could you please send a new revision?

--
Thanks,
Maxim
Maxim Cournoyer wrote 1 months ago
(name . Andrew Wong)(address . wongandj@icloud.com)(name . 宋文武)(address . iyzsong@envs.net)(name . Adam Faiz)(address . adam.faiz@disroot.org)(address . 75856@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
87zfiqmue2.fsf_-_@gmail.com
Hi Andrew,

Another particularity of Debbugs, is that currently you must ensure to
keep every participant in CC, which the system doesn't attempt to do.
If you use 'mumi send-email *.patch' to send your 'git format-patch'
produced patches, it will take care of that for you, otherwise you have
to manually ensure that.

In this thread, there's James and myself not part of the games team
you'll want CC'd.

--
Thanks,
Maxim
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 75856@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 75856
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help