diff mbox series

[bug#73522,games-team,09/14] gnu: retroarch: Propagate core assets.

Message ID 115d96622d4fe66f8152d6581307c13b2293d508.1728192708.git.maxim.cournoyer@gmail.com
State New
Headers show
Series Package and use RetroArch assets, plus other improvements. | expand

Commit Message

Maxim Cournoyer Oct. 6, 2024, 5:32 a.m. UTC
The RetroArch menus will not correctly render without its assets, the
plugins won't be usable without the core info files, and controllers won't be
usable without joypad-autoconfig files.  Hence...

* gnu/packages/emulators.scm (retroarch-minimal): New variable, renamed from
previous retroarch.
(retroarch) [propagated-inputs]: New field.

Change-Id: I9dccf89da1f35acfa705de9ae02ae5f72a0b1825
---

 gnu/packages/emulators.scm | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 63c2594f94..4baebbdbd0 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -118,7 +118,8 @@  (define-module (gnu packages emulators)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix build-system pyproject)
-  #:use-module (guix build-system qt))
+  #:use-module (guix build-system qt)
+  #:use-module (guix build-system trivial))
 
 (define-public vice
   (package
@@ -1577,9 +1578,9 @@  (define-public retroarch-joypad-autoconfig
 physical device and the RetroPad virtual controller.")
     (license license:expat)))
 
-(define-public retroarch
+(define-public retroarch-minimal
   (package
-    (name "retroarch")
+    (name "retroarch-minimal")
     (version "1.19.1")
     (source
      (origin
@@ -1737,6 +1738,23 @@  (define-public retroarch
                    license:bsd-3         ;feragamemode, ibxm
                    license:gpl2+))))    ;switchres
 
+(define-public retroarch
+  (package
+    (inherit retroarch-minimal)
+    (name "retroarch")
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list retroarch-minimal
+           ;; We cannot simply hard-code the resource paths, as they'd written
+           ;; to ~/.config/retroarch.cfg and never updated (going stale),
+           ;; which is problematic.  The environment variables overrides the
+           ;; configuration file values.
+           retroarch-assets
+           retroarch-core-info
+           retroarch-joypad-autoconfig))))
+
 (define-public wasm4
   (package
     (name "wasm4")