GNU bug report logs - #76458
[PATCH v2] gnu: Add flycast.

Previous Next

Package: guix-patches;

Reported by: Andrew Wong <wongandj <at> icloud.com>

Date: Fri, 21 Feb 2025 07:34:02 UTC

Severity: normal

Tags: patch

Done: Liliana Marie Prikler <liliana.prikler <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 76458 in the body.
You can then email your comments to 76458 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#76458; Package guix-patches. (Fri, 21 Feb 2025 07:34:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Andrew Wong <wongandj <at> icloud.com>:
New bug report received and forwarded. Copy sent to adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org. (Fri, 21 Feb 2025 07:34:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Andrew Wong <wongandj <at> icloud.com>
To: guix-patches <at> gnu.org
Cc: Andrew Wong <wongandj <at> icloud.com>
Subject: [PATCH v2] gnu: Add flycast.
Date: Fri, 21 Feb 2025 02:32:07 -0500
* gnu/packages/emulators.scm (flycast): New variable.

Change-Id: I358235492a3493c3126f7ca9f738ed2706e36105
---
I sent an earlier version of this patch, but it got mixed up in another thread(#75856). This version addresses the previous issues.
 gnu/packages/emulators.scm | 71 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 0eafc3df9e..579f1e1f0f 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -4072,6 +4072,77 @@ (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))
+             ;; There are many bundled packages here included as git
+             ;; submodules. Removing many of them would require patching the
+             ;; source code and repository layout.
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0ainy75gkrvilcm89hq6wq9md41w0mxgp6l27q5fzrxxykpjh6ym"))
+       (modules '((guix build utils)))
+       (snippet #~(begin
+                    (substitute* "CMakeLists.txt"
+                      (("add_subdirectory\\(core/deps/Vulkan-Headers\\)")
+                       "find_package(VulkanHeaders)"))
+                    (with-directory-excursion "core/deps"
+                      (for-each delete-file-recursively
+                                '("SDL"
+                                  "Spout"
+                                  "Syphon"
+                                  "Vulkan-Headers"
+                                  "breakpad"
+                                  "discord-rpc"
+                                  "libzip"
+                                  "oboe")))))))
+    (build-system cmake-build-system)
+    (inputs (list alsa-lib
+                  ao
+                  curl
+                  glslang
+                  libzip
+                  lua
+                  miniupnpc
+                  pulseaudio
+                  sdl2
+                  spirv-tools
+                  vulkan-headers
+                  pkg-config))
+    (arguments
+     (list
+      #:tests? #f
+      ;; There are no test targets. Instead, there are configuration options
+      ;; which turn the main target (bin/flymake) into a set of unit tests.
+      #:configure-flags
+      #~(list "-DUSE_ALSA=ON"
+              "-DUSE_BREAKPAD=OFF"
+              "-DUSE_DX11=OFF"
+              "-DUSE_DX9=OFF"
+              "-DUSE_HOST_GLSLANG=OFF"
+              ;; ^^ This option is not implemented correctly, but may be in
+              ;; the future. Review all of these options on the next update!
+              ;; (see: https://github.com/flyinghead/flycast/issues/1843)
+              "-DUSE_HOST_LIBZIP=ON"
+              "-DUSE_HOST_SDL=ON"
+              "-DUSE_LIBAO=ON"
+              "-DUSE_LUA=ON"
+              "-DUSE_PULSEAUDIO=ON"
+              "-DUSE_VULKAN=ON")))
+    (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: cd20619cfcb32c2631fb602729512740bc510550
-- 
2.48.1





Information forwarded to guix-patches <at> gnu.org:
bug#76458; Package guix-patches. (Fri, 21 Feb 2025 08:43:03 GMT) Full text and rfc822 format available.

Message #8 received at 76458 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: Andrew Wong <wongandj <at> icloud.com>, 76458 <at> debbugs.gnu.org
Cc: 宋文武 <iyzsong <at> envs.net>,
 Adam Faiz <adam.faiz <at> disroot.org>
Subject: Re: [bug#76458] [PATCH v2] gnu: Add flycast.
Date: Fri, 21 Feb 2025 09:43:01 +0100
Am Freitag, dem 21.02.2025 um 02:32 -0500 schrieb Andrew Wong:
> * gnu/packages/emulators.scm (flycast): New variable.
> 
> Change-Id: I358235492a3493c3126f7ca9f738ed2706e36105
> ---
> I sent an earlier version of this patch, but it got mixed up in
> another thread(#75856). This version addresses the previous issues.
>  gnu/packages/emulators.scm | 71
> ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 71 insertions(+)
> 
> diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
> index 0eafc3df9e..579f1e1f0f 100644
> --- a/gnu/packages/emulators.scm
> +++ b/gnu/packages/emulators.scm
> @@ -4072,6 +4072,77 @@ (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))
> +             ;; There are many bundled packages here included as git
> +             ;; submodules. Removing many of them would require
> patching the
> +             ;; source code and repository layout.
> +             (recursive? #t)))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32
> "0ainy75gkrvilcm89hq6wq9md41w0mxgp6l27q5fzrxxykpjh6ym"))
> +       (modules '((guix build utils)))
> +       (snippet #~(begin
> +                    (substitute* "CMakeLists.txt"
> +                      (("add_subdirectory\\(core/deps/Vulkan-
> Headers\\)")
> +                       "find_package(VulkanHeaders)"))
> +                    (with-directory-excursion "core/deps"
> +                      (for-each delete-file-recursively
> +                                '("SDL"
> +                                  "Spout"
> +                                  "Syphon"
> +                                  "Vulkan-Headers"
> +                                  "breakpad"
> +                                  "discord-rpc"
> +                                  "libzip"
> +                                  "oboe")))))))
The preferred way is to use a keep list.  Also review this in line with
the recursive checkout above.
> +    (build-system cmake-build-system)
> +    (inputs (list alsa-lib
> +                  ao
> +                  curl
> +                  glslang
> +                  libzip
> +                  lua
> +                  miniupnpc
> +                  pulseaudio
> +                  sdl2
> +                  spirv-tools
> +                  vulkan-headers
> +                  pkg-config))
> +    (arguments
> +     (list
> +      #:tests? #f
> +      ;; There are no test targets. Instead, there are configuration
> options
> +      ;; which turn the main target (bin/flymake) into a set of unit
> tests.
Interesting design.  Maybe we can make a patch that provides them as an
extra target instead?  Otherwise it's fine to say "; no test suite" or
use this comment as a prefix.
> +      #:configure-flags
> +      #~(list "-DUSE_ALSA=ON"
> +              "-DUSE_BREAKPAD=OFF"
> +              "-DUSE_DX11=OFF"
> +              "-DUSE_DX9=OFF"
> +              "-DUSE_HOST_GLSLANG=OFF"
> +              ;; ^^ This option is not implemented correctly, but
> may be in
> +              ;; the future. Review all of these options on the next
> update!
> +              ;; (see:
> https://github.com/flyinghead/flycast/issues/1843)
We prefer comments to be above a line of code or in the same line as
the code.  For the others you could add a line comment like
"; XXX: review when updating"
> +              "-DUSE_HOST_LIBZIP=ON"
> +              "-DUSE_HOST_SDL=ON"
> +              "-DUSE_LIBAO=ON"
> +              "-DUSE_LUA=ON"
> +              "-DUSE_PULSEAUDIO=ON"
> +              "-DUSE_VULKAN=ON")))
> +    (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: cd20619cfcb32c2631fb602729512740bc510550
Cheers

Information forwarded to guix-patches <at> gnu.org:
bug#76458; Package guix-patches. (Sat, 22 Feb 2025 07:42:02 GMT) Full text and rfc822 format available.

Message #11 received at 76458 <at> debbugs.gnu.org (full text, mbox):

From: Andrew Wong <wongandj <at> icloud.com>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Cc: 76458 <at> debbugs.gnu.org
Subject: Re: [bug#76458] [PATCH v2] gnu: Add flycast.
Date: Sat, 22 Feb 2025 02:41:25 -0500
> The preferred way is to use a keep list.
What do you mean by 'keep list'? If you mean defining (delete-all-but)
and naming only the kept directories*, the issue is that there are 37(!)
bundled directories in total, so this list would be shorter. So also,
yes, the recursive checkout is still necessary.
> Interesting design.  Maybe we can make a patch that provides them as
> an extra target instead?  Otherwise it's fine to say "; no test suite"
> or use this comment as a prefix.
I would do that if I knew how; unfortunately I don't have the CMake
chops to make such a fix, given how tangled this project's build system
is. What do you mean 'use this comment as a prefix'?
> We prefer comments to be above a line of code or in the same line as
> the code.  For the others you could add a line comment like
> "; XXX: review when updating"
Will do.

*Also, would the project appreciate a patch integrating that function
into (guix build utils) or other guix module? I count a total of 11
times delete-all-but is defined in gnu/packages.





Information forwarded to adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#76458; Package guix-patches. (Tue, 04 Mar 2025 19:01:01 GMT) Full text and rfc822 format available.

Message #14 received at 76458 <at> debbugs.gnu.org (full text, mbox):

From: Andrew Wong <wongandj <at> icloud.com>
To: 76458 <at> debbugs.gnu.org
Cc: Andrew Wong <wongandj <at> icloud.com>
Subject: [PATCH] gnu: Add flycast.
Date: Tue,  4 Mar 2025 13:57:49 -0500
* gnu/packages/emulators.scm (flycast): New variable.

Change-Id: I358235492a3493c3126f7ca9f738ed2706e36105
---
 gnu/packages/emulators.scm | 69 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)

diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 0eafc3df9e..70e5fad00c 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -23,6 +23,7 @@
 ;;; Copyright © 2023 Zheng Junjie <873216071 <at> qq.com>
 ;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom <at> gmail.com>
 ;;; Copyright © 2025 Ricardo Wurmus <rekado <at> elephly.net>
+;;; Copyright © 2025 Andrew Wong <wongandj <at> icloud.comg>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4072,6 +4073,74 @@ (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))
+             ;; There are many bundled packages here included as git
+             ;; submodules. Removing many of them would require patching the
+             ;; source code and repository layout.
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0ainy75gkrvilcm89hq6wq9md41w0mxgp6l27q5fzrxxykpjh6ym"))
+       (modules '((guix build utils)))
+       (snippet #~(begin
+                    (substitute* "CMakeLists.txt"
+                      (("add_subdirectory\\(core/deps/Vulkan-Headers\\)")
+                       "find_package(VulkanHeaders)"))
+                    (with-directory-excursion "core/deps"
+                      (for-each delete-file-recursively
+                                '("SDL"
+                                  "Spout"
+                                  "Syphon"
+                                  "Vulkan-Headers"
+                                  "breakpad"
+                                  "discord-rpc"
+                                  "libzip"
+                                  "oboe")))))))
+    (build-system cmake-build-system)
+    (inputs (list alsa-lib
+                  ao
+                  curl
+                  glslang
+                  libzip
+                  lua
+                  miniupnpc
+                  pulseaudio
+                  sdl2
+                  spirv-tools
+                  vulkan-headers
+                  pkg-config))
+    (arguments
+     (list
+      #:tests? #f ; no test suite
+      #:configure-flags
+      #~(list "-DUSE_ALSA=ON"
+              "-DUSE_BREAKPAD=OFF"
+              "-DUSE_DX11=OFF"
+              "-DUSE_DX9=OFF"
+              ;; The USE_HOST_GLSLANG option is not implemented correctly.
+              ;; (see: https://github.com/flyinghead/flycast/issues/1843)
+              "-DUSE_HOST_GLSLANG=OFF"
+              "-DUSE_HOST_LIBZIP=ON"
+              "-DUSE_HOST_SDL=ON"
+              "-DUSE_LIBAO=ON"
+              "-DUSE_LUA=ON"
+              "-DUSE_PULSEAUDIO=ON"
+              "-DUSE_VULKAN=ON")))
+    (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: cd20619cfcb32c2631fb602729512740bc510550
-- 
2.48.1





Information forwarded to adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#76458; Package guix-patches. (Tue, 04 Mar 2025 19:02:02 GMT) Full text and rfc822 format available.

Message #17 received at 76458 <at> debbugs.gnu.org (full text, mbox):

From: Andrew Wong <wongandj <at> icloud.com>
To: 76458 <at> debbugs.gnu.org
Cc: Andrew Wong <wongandj <at> icloud.com>
Subject: [PATCH v3] gnu: Add flycast.
Date: Tue,  4 Mar 2025 14:01:00 -0500
* gnu/packages/emulators.scm (flycast): New variable.

Change-Id: I358235492a3493c3126f7ca9f738ed2706e36105
---
 gnu/packages/emulators.scm | 69 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)

diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 0eafc3df9e..70e5fad00c 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -23,6 +23,7 @@
 ;;; Copyright © 2023 Zheng Junjie <873216071 <at> qq.com>
 ;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom <at> gmail.com>
 ;;; Copyright © 2025 Ricardo Wurmus <rekado <at> elephly.net>
+;;; Copyright © 2025 Andrew Wong <wongandj <at> icloud.comg>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4072,6 +4073,74 @@ (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))
+             ;; There are many bundled packages here included as git
+             ;; submodules. Removing many of them would require patching the
+             ;; source code and repository layout.
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0ainy75gkrvilcm89hq6wq9md41w0mxgp6l27q5fzrxxykpjh6ym"))
+       (modules '((guix build utils)))
+       (snippet #~(begin
+                    (substitute* "CMakeLists.txt"
+                      (("add_subdirectory\\(core/deps/Vulkan-Headers\\)")
+                       "find_package(VulkanHeaders)"))
+                    (with-directory-excursion "core/deps"
+                      (for-each delete-file-recursively
+                                '("SDL"
+                                  "Spout"
+                                  "Syphon"
+                                  "Vulkan-Headers"
+                                  "breakpad"
+                                  "discord-rpc"
+                                  "libzip"
+                                  "oboe")))))))
+    (build-system cmake-build-system)
+    (inputs (list alsa-lib
+                  ao
+                  curl
+                  glslang
+                  libzip
+                  lua
+                  miniupnpc
+                  pulseaudio
+                  sdl2
+                  spirv-tools
+                  vulkan-headers
+                  pkg-config))
+    (arguments
+     (list
+      #:tests? #f ; no test suite
+      #:configure-flags
+      #~(list "-DUSE_ALSA=ON"
+              "-DUSE_BREAKPAD=OFF"
+              "-DUSE_DX11=OFF"
+              "-DUSE_DX9=OFF"
+              ;; The USE_HOST_GLSLANG option is not implemented correctly.
+              ;; (see: https://github.com/flyinghead/flycast/issues/1843)
+              "-DUSE_HOST_GLSLANG=OFF"
+              "-DUSE_HOST_LIBZIP=ON"
+              "-DUSE_HOST_SDL=ON"
+              "-DUSE_LIBAO=ON"
+              "-DUSE_LUA=ON"
+              "-DUSE_PULSEAUDIO=ON"
+              "-DUSE_VULKAN=ON")))
+    (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: cd20619cfcb32c2631fb602729512740bc510550
-- 
2.48.1





Reply sent to Liliana Marie Prikler <liliana.prikler <at> gmail.com>:
You have taken responsibility. (Sun, 23 Mar 2025 14:46:04 GMT) Full text and rfc822 format available.

Notification sent to Andrew Wong <wongandj <at> icloud.com>:
bug acknowledged by developer. (Sun, 23 Mar 2025 14:46:04 GMT) Full text and rfc822 format available.

Message #22 received at 76458-done <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: Andrew Wong <wongandj <at> icloud.com>, 76458-done <at> debbugs.gnu.org
Cc: 宋文武 <iyzsong <at> envs.net>,
 Adam Faiz <adam.faiz <at> disroot.org>
Subject: Re: [bug#76458] [PATCH v3] gnu: Add flycast.
Date: Sun, 23 Mar 2025 15:44:50 +0100
Am Dienstag, dem 04.03.2025 um 14:01 -0500 schrieb Andrew Wong:
> * gnu/packages/emulators.scm (flycast): New variable.
> 
> Change-Id: I358235492a3493c3126f7ca9f738ed2706e36105
> ---
Pushed




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 21 Apr 2025 11:24:10 GMT) Full text and rfc822 format available.

This bug report was last modified 60 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.