summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2025-01-17 11:48:24 +0900
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2025-01-26 22:59:59 +0900
commitcab1bff5f1f7a4e6d4907a299017004a2c2cf7b5 (patch)
treedba7ba7dba57b6e691a55ebe0d507fe8e05d8811 /gnu/packages
parent8d5ae4b0c869a8bad3f1b0bc8d3542969c0fc788 (diff)
gnu: retroarch-minimal: Update to 1.20.0.
* gnu/packages/emulators.scm (retroarch-minimal): Update to 1.20.0. Reviewed-by: Sou Bunnbu (宋文武) <iyzsong@member.fsf.org> Change-Id: I3b4121d2520ee08a9d8454f2666ed30c140ced5b
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/emulators.scm344
1 files changed, 171 insertions, 173 deletions
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index aa03f0550ca..bb73d216a5a 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -2537,185 +2537,183 @@ GLSL (@file{.slang}) shaders for use with RetroArch.")
2537 license:unlicense))))) 2537 license:unlicense)))))
2538 2538
2539(define-public retroarch-minimal 2539(define-public retroarch-minimal
2540 (let ((commit "48b71d5cf8a070e785e2302d8fe241a7c2180fdd") 2540 (package
2541 (revision "1")) 2541 (name "retroarch-minimal")
2542 (package 2542 (version "1.20.0")
2543 (name "retroarch-minimal") 2543 (source
2544 (version "1.19.1") 2544 (origin
2545 (source 2545 (method git-fetch)
2546 (origin 2546 (uri (git-reference
2547 (method git-fetch) 2547 (url "https://github.com/libretro/RetroArch")
2548 (uri (git-reference 2548 (commit (string-append "v" version))))
2549 (url "https://github.com/libretro/RetroArch") 2549 (snippet
2550 (commit commit))) 2550 #~(begin
2551 (snippet 2551 (use-modules (guix build utils)
2552 #~(begin 2552 (ice-9 ftw)
2553 (use-modules (guix build utils) 2553 (srfi srfi-26))
2554 (ice-9 ftw) 2554 ;; XXX: 'delete-all-but' is copied from the turbovnc package.
2555 (srfi srfi-26)) 2555 (define (delete-all-but directory . preserve)
2556 ;; XXX: 'delete-all-but' is copied from the turbovnc package. 2556 (define (directory? x)
2557 (define (delete-all-but directory . preserve) 2557 (and=> (stat x #f)
2558 (define (directory? x) 2558 (compose (cut eq? 'directory <>) stat:type)))
2559 (and=> (stat x #f) 2559 (with-directory-excursion directory
2560 (compose (cut eq? 'directory <>) stat:type))) 2560 (let* ((pred
2561 (with-directory-excursion directory 2561 (negate (cut member <> (append '("." "..") preserve))))
2562 (let* ((pred 2562 (items (scandir "." pred)))
2563 (negate (cut member <> (append '("." "..") preserve)))) 2563 (for-each (lambda (item)
2564 (items (scandir "." pred))) 2564 (if (directory? item)
2565 (for-each (lambda (item) 2565 (delete-file-recursively item)
2566 (if (directory? item) 2566 (delete-file item)))
2567 (delete-file-recursively item) 2567 items))))
2568 (delete-file item))) 2568 ;; Remove as much bundled sources as possible, shaving off about
2569 items)))) 2569 ;; 65 MiB.
2570 ;; Remove as much bundled sources as possible, shaving off about 2570 (delete-all-but "deps"
2571 ;; 65 MiB. 2571 "feralgamemode" ;used in platform_unix.c
2572 (delete-all-but "deps" 2572 "mbedtls" ;further refined below
2573 "feralgamemode" ;used in platform_unix.c 2573 "yxml") ;used in rxml.c
2574 "mbedtls" ;further refined below 2574 ;; This is an old root certificate used in net_socket_ssl_mbed.c,
2575 "yxml") ;used in rxml.c 2575 ;; not actually from mbedtls.
2576 ;; This is an old root certificate used in net_socket_ssl_mbed.c, 2576 (delete-all-but "deps/mbedtls" "cacert.h")))
2577 ;; not actually from mbedtls. 2577 (patches (search-patches "retroarch-improved-search-paths.patch"
2578 (delete-all-but "deps/mbedtls" "cacert.h"))) 2578 "retroarch-unbundle-spirv-cross.patch"))
2579 (patches (search-patches "retroarch-improved-search-paths.patch" 2579 (file-name (git-file-name name version))
2580 "retroarch-unbundle-spirv-cross.patch")) 2580 (sha256
2581 (file-name (git-file-name name version)) 2581 (base32 "0yc16j3g2g0if64xqd7qr4dza8rw10x0zypwbl92y735825p87qi"))))
2582 (sha256 2582 (build-system gnu-build-system)
2583 (base32 "13hgg4pxkpwlcmmyp9npr9k9cb94waqiyjpy2jzs8m9rc7xl2ap9")))) 2583 (arguments
2584 (build-system gnu-build-system) 2584 (list
2585 (arguments 2585 #:tests? #f ; no tests
2586 (list 2586 #:phases
2587 #:tests? #f ; no tests 2587 #~(modify-phases %standard-phases
2588 #:phases 2588 (replace 'configure
2589 #~(modify-phases %standard-phases 2589 (lambda* (#:key inputs #:allow-other-keys)
2590 (replace 'configure 2590 ;; Hard-code some store file names.
2591 (lambda* (#:key inputs #:allow-other-keys) 2591 (substitute* "gfx/common/vulkan_common.c"
2592 ;; Hard-code some store file names. 2592 (("libvulkan.so")
2593 (substitute* "gfx/common/vulkan_common.c" 2593 (search-input-file inputs "lib/libvulkan.so")))
2594 (("libvulkan.so") 2594 (substitute* "gfx/common/wayland/generate_wayland_protos.sh"
2595 (search-input-file inputs "lib/libvulkan.so"))) 2595 (("/usr/local/share/wayland-protocols")
2596 (substitute* "gfx/common/wayland/generate_wayland_protos.sh" 2596 (search-input-directory inputs "share/wayland-protocols")))
2597 (("/usr/local/share/wayland-protocols")
2598 (search-input-directory inputs "share/wayland-protocols")))
2599 2597
2600 ;; Without HLSL, we can still enable GLSLANG and Vulkan support. 2598 ;; Without HLSL, we can still enable GLSLANG and Vulkan support.
2601 (substitute* "qb/config.libs.sh" 2599 (substitute* "qb/config.libs.sh"
2602 (("[$]HAVE_GLSLANG_HLSL") "notcare")) 2600 (("[$]HAVE_GLSLANG_HLSL") "notcare"))
2603 2601
2604 ;; The configure script does not yet accept the extra arguments 2602 ;; The configure script does not yet accept the extra arguments
2605 ;; (like ‘CONFIG_SHELL=’) passed by the default configure phase. 2603 ;; (like ‘CONFIG_SHELL=’) passed by the default configure phase.
2606 (invoke 2604 (invoke
2607 "./configure" 2605 "./configure"
2608 #$@(if (string-prefix? "armhf" (or (%current-target-system) 2606 #$@(if (string-prefix? "armhf" (or (%current-target-system)
2609 (%current-system))) 2607 (%current-system)))
2610 '("--enable-neon" "--enable-floathard") 2608 '("--enable-neon" "--enable-floathard")
2611 '()) 2609 '())
2612 (string-append "--prefix=" #$output) 2610 (string-append "--prefix=" #$output)
2613 ;; D-Bus support is required for 'suspend screensaver' option 2611 ;; D-Bus support is required for 'suspend screensaver' option
2614 ;; to work. 2612 ;; to work.
2615 "--enable-dbus" 2613 "--enable-dbus"
2616 ;; Non-free software are available through the core updater, 2614 ;; Non-free software are available through the core updater,
2617 ;; disable it. See <https://issues.guix.gnu.org/38360>. 2615 ;; disable it. See <https://issues.guix.gnu.org/38360>.
2618 "--disable-update_cores" 2616 "--disable-update_cores"
2619 "--disable-update_core_info" 2617 "--disable-update_core_info"
2620 "--disable-online_updater" 2618 "--disable-online_updater"
2621 ;; The assets are provided via the `retroarch-assets' package. 2619 ;; The assets are provided via the `retroarch-assets' package.
2622 "--disable-update_assets" 2620 "--disable-update_assets"
2623 "--disable-builtinmbedtls" 2621 "--disable-builtinmbedtls"
2624 "--disable-builtinbearssl" 2622 "--disable-builtinbearssl"
2625 "--disable-builtinzlib" 2623 "--disable-builtinzlib"
2626 "--disable-builtinflac" 2624 "--disable-builtinflac"
2627 "--disable-builtinglslang" 2625 "--disable-builtinglslang"
2628 "--disable-builtinspirv_cross" 2626 "--disable-builtinspirv_cross"
2629 ;; These are disabled to avoid requiring the bundled 2627 ;; These are disabled to avoid requiring the bundled
2630 ;; dependencies. 2628 ;; dependencies.
2631 "--disable-7zip" 2629 "--disable-7zip"
2632 "--disable-cheevos" 2630 "--disable-cheevos"
2633 "--disable-crtswitchres" 2631 "--disable-crtswitchres"
2634 "--disable-discord" 2632 "--disable-discord"
2635 "--disable-dr_mp3" 2633 "--disable-dr_mp3"
2636 "--disable-ibxm" 2634 "--disable-ibxm"
2637 "--disable-stb_font" 2635 "--disable-stb_font"
2638 "--disable-stb_image" 2636 "--disable-stb_image"
2639 "--disable-stb_vorbis" 2637 "--disable-stb_vorbis"
2640 "--disable-xdelta")))))) 2638 "--disable-xdelta"))))))
2641 (native-inputs 2639 (native-inputs
2642 (list pkg-config 2640 (list pkg-config
2643 wayland-protocols 2641 wayland-protocols
2644 which)) 2642 which))
2645 (inputs 2643 (inputs
2646 (list alsa-lib 2644 (list alsa-lib
2647 dbus 2645 dbus
2648 eudev 2646 eudev
2649 ffmpeg 2647 ffmpeg
2650 flac 2648 flac
2651 fontconfig 2649 fontconfig
2652 freetype 2650 freetype
2653 glslang 2651 glslang
2654 libxinerama 2652 libxinerama
2655 libxkbcommon 2653 libxkbcommon
2656 libxml2 2654 libxml2
2657 libxrandr 2655 libxrandr
2658 libxv 2656 libxv
2659 mbedtls-lts 2657 mbedtls-lts
2660 mesa 2658 mesa
2661 openal 2659 openal
2662 openssl 2660 openssl
2663 pulseaudio 2661 pulseaudio
2664 python 2662 python
2665 qtbase-5 2663 qtbase-5
2666 sdl2 2664 sdl2
2667 spirv-cross 2665 spirv-cross
2668 spirv-headers 2666 spirv-headers
2669 spirv-tools 2667 spirv-tools
2670 v4l-utils 2668 v4l-utils
2671 vulkan-loader 2669 vulkan-loader
2672 wayland 2670 wayland
2673 zlib)) 2671 zlib))
2674 (native-search-paths 2672 (native-search-paths
2675 (list (search-path-specification 2673 (list (search-path-specification
2676 (variable "LIBRETRO_DIRECTORY") 2674 (variable "LIBRETRO_DIRECTORY")
2677 (separator #f) ;single entry 2675 (separator #f) ;single entry
2678 (files '("lib/libretro"))) 2676 (files '("lib/libretro")))
2679 (search-path-specification 2677 (search-path-specification
2680 (variable "LIBRETRO_ASSETS_DIRECTORY") 2678 (variable "LIBRETRO_ASSETS_DIRECTORY")
2681 (separator #f) ;single entry 2679 (separator #f) ;single entry
2682 (files '("share/libretro/assets"))) 2680 (files '("share/libretro/assets")))
2683 (search-path-specification 2681 (search-path-specification
2684 (variable "LIBRETRO_AUTOCONFIG_DIRECTORY") 2682 (variable "LIBRETRO_AUTOCONFIG_DIRECTORY")
2685 (separator #f) ;single entry 2683 (separator #f) ;single entry
2686 (files '("share/libretro/autoconfig"))) 2684 (files '("share/libretro/autoconfig")))
2687 (search-path-specification 2685 (search-path-specification
2688 (variable "LIBRETRO_CHEATS_DIRECTORY") 2686 (variable "LIBRETRO_CHEATS_DIRECTORY")
2689 (separator #f) ;single entry 2687 (separator #f) ;single entry
2690 (files '("share/libretro/database/cht"))) 2688 (files '("share/libretro/database/cht")))
2691 (search-path-specification 2689 (search-path-specification
2692 (variable "LIBRETRO_DATABASE_DIRECTORY") 2690 (variable "LIBRETRO_DATABASE_DIRECTORY")
2693 (separator #f) ;single entry 2691 (separator #f) ;single entry
2694 (files '("share/libretro/database/rdb"))) 2692 (files '("share/libretro/database/rdb")))
2695 (search-path-specification 2693 (search-path-specification
2696 (variable "LIBRETRO_SYSTEM_DIRECTORY") 2694 (variable "LIBRETRO_SYSTEM_DIRECTORY")
2697 (separator #f) ;single entry 2695 (separator #f) ;single entry
2698 (files '("share/libretro/system"))) 2696 (files '("share/libretro/system")))
2699 (search-path-specification 2697 (search-path-specification
2700 (variable "LIBRETRO_VIDEO_FILTER_DIRECTORY") 2698 (variable "LIBRETRO_VIDEO_FILTER_DIRECTORY")
2701 (separator #f) ;single entry 2699 (separator #f) ;single entry
2702 (files '("share/libretro/filters/video"))) 2700 (files '("share/libretro/filters/video")))
2703 (search-path-specification 2701 (search-path-specification
2704 (variable "LIBRETRO_VIDEO_SHADER_DIRECTORY") 2702 (variable "LIBRETRO_VIDEO_SHADER_DIRECTORY")
2705 (separator #f) ;single entry 2703 (separator #f) ;single entry
2706 (files '("share/libretro/shaders"))))) 2704 (files '("share/libretro/shaders")))))
2707 (home-page "https://www.libretro.com/") 2705 (home-page "https://www.libretro.com/")
2708 (synopsis "Reference frontend for the libretro API") 2706 (synopsis "Reference frontend for the libretro API")
2709 (description 2707 (description
2710 "Libretro is a simple but powerful development interface that allows for 2708 "Libretro is a simple but powerful development interface that allows for
2711the easy creation of emulators, games and multimedia applications that can plug 2709the easy creation of emulators, games and multimedia applications that can plug
2712straight into any libretro-compatible frontend. RetroArch is the official 2710straight into any libretro-compatible frontend. RetroArch is the official
2713reference frontend for the libretro API, currently used by most as a modular 2711reference frontend for the libretro API, currently used by most as a modular
2714multi-system game/emulator system.") 2712multi-system game/emulator system.")
2715 (license (list license:gpl3+ ;for RetroArch itself 2713 (license (list license:gpl3+ ;for RetroArch itself
2716 license:asl2.0 ;SPIRV-Cross 2714 license:asl2.0 ;SPIRV-Cross
2717 license:expat ;yxml 2715 license:expat ;yxml
2718 license:bsd-3))))) ;feragamemode 2716 license:bsd-3)))) ;feragamemode
2719 2717
2720(define-public retroarch 2718(define-public retroarch
2721 (package 2719 (package