summaryrefslogtreecommitdiff
path: root/gnu/packages/emulators.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2024-10-03 12:50:32 +0900
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2024-10-07 01:20:21 +0900
commit0aa36db19850abaf985bebd5a13296c1f1af56d1 (patch)
treeddcf0d123fbf1087b80b6684a23b7ddfe37412b3 /gnu/packages/emulators.scm
parentbd3799098481881f341f0694623eef6941669232 (diff)
gnu: retroarch: Update to 1.19.1-1.48b71d5.
* gnu/packages/emulators.scm (retroarch): Update to 1.19.1-1.48b71d5. Change-Id: Icb4c3c8d80be97cf604aec0db2d86f340e31f01e
Diffstat (limited to 'gnu/packages/emulators.scm')
-rw-r--r--gnu/packages/emulators.scm316
1 files changed, 159 insertions, 157 deletions
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 2b21cc6116d..594a6e1a993 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -1579,167 +1579,169 @@ physical device and the RetroPad virtual controller.")
1579 (license license:expat))) 1579 (license license:expat)))
1580 1580
1581(define-public retroarch-minimal 1581(define-public retroarch-minimal
1582 (package 1582 (let ((commit "48b71d5cf8a070e785e2302d8fe241a7c2180fdd")
1583 (name "retroarch-minimal") 1583 (revision "1"))
1584 (version "1.19.1") 1584 (package
1585 (source 1585 (name "retroarch-minimal")
1586 (origin 1586 (version "1.19.1")
1587 (method git-fetch) 1587 (source
1588 (uri (git-reference 1588 (origin
1589 (url "https://github.com/libretro/RetroArch") 1589 (method git-fetch)
1590 (commit (string-append "v" version)))) 1590 (uri (git-reference
1591 (snippet 1591 (url "https://github.com/libretro/RetroArch")
1592 #~(begin 1592 (commit commit)))
1593 (use-modules (guix build utils) 1593 (snippet
1594 (ice-9 ftw) 1594 #~(begin
1595 (srfi srfi-26)) 1595 (use-modules (guix build utils)
1596 ;; XXX: 'delete-all-but' is copied from the turbovnc package. 1596 (ice-9 ftw)
1597 (define (delete-all-but directory . preserve) 1597 (srfi srfi-26))
1598 (define (directory? x) 1598 ;; XXX: 'delete-all-but' is copied from the turbovnc package.
1599 (and=> (stat x #f) 1599 (define (delete-all-but directory . preserve)
1600 (compose (cut eq? 'directory <>) stat:type))) 1600 (define (directory? x)
1601 (with-directory-excursion directory 1601 (and=> (stat x #f)
1602 (let* ((pred 1602 (compose (cut eq? 'directory <>) stat:type)))
1603 (negate (cut member <> (append '("." "..") preserve)))) 1603 (with-directory-excursion directory
1604 (items (scandir "." pred))) 1604 (let* ((pred
1605 (for-each (lambda (item) 1605 (negate (cut member <> (append '("." "..") preserve))))
1606 (if (directory? item) 1606 (items (scandir "." pred)))
1607 (delete-file-recursively item) 1607 (for-each (lambda (item)
1608 (delete-file item))) 1608 (if (directory? item)
1609 items)))) 1609 (delete-file-recursively item)
1610 ;; Remove as much bundled sources as possible, shaving off about 1610 (delete-file item)))
1611 ;; 65 MiB. 1611 items))))
1612 (delete-all-but "deps" 1612 ;; Remove as much bundled sources as possible, shaving off about
1613 "feralgamemode" ;used in platform_unix.c 1613 ;; 65 MiB.
1614 "mbedtls" ;further refined below 1614 (delete-all-but "deps"
1615 "yxml") ;used in rxml.c 1615 "feralgamemode" ;used in platform_unix.c
1616 ;; This is an old root certificate used in net_socket_ssl_mbed.c, 1616 "mbedtls" ;further refined below
1617 ;; not actually from mbedtls. 1617 "yxml") ;used in rxml.c
1618 (delete-all-but "deps/mbedtls" "cacert.h"))) 1618 ;; This is an old root certificate used in net_socket_ssl_mbed.c,
1619 (file-name (git-file-name name version)) 1619 ;; not actually from mbedtls.
1620 (sha256 1620 (delete-all-but "deps/mbedtls" "cacert.h")))
1621 (base32 "15nh4y4vpf4n1ryhiy4fwvzn5xz5idzfzn9fsi5v9hzp25vbjmrm")) 1621 (patches (search-patches "retroarch-improved-search-paths.patch"
1622 (patches (search-patches "retroarch-improved-search-paths.patch" 1622 "retroarch-unbundle-spirv-cross.patch"))
1623 "retroarch-unbundle-spirv-cross.patch")))) 1623 (file-name (git-file-name name version))
1624 (build-system gnu-build-system) 1624 (sha256
1625 (arguments 1625 (base32 "13hgg4pxkpwlcmmyp9npr9k9cb94waqiyjpy2jzs8m9rc7xl2ap9"))))
1626 (list 1626 (build-system gnu-build-system)
1627 #:tests? #f ; no tests 1627 (arguments
1628 #:phases 1628 (list
1629 #~(modify-phases %standard-phases 1629 #:tests? #f ; no tests
1630 (replace 'configure 1630 #:phases
1631 (lambda* (#:key inputs #:allow-other-keys) 1631 #~(modify-phases %standard-phases
1632 ;; Hard-code some store file names. 1632 (replace 'configure
1633 (substitute* "gfx/common/vulkan_common.c" 1633 (lambda* (#:key inputs #:allow-other-keys)
1634 (("libvulkan.so") 1634 ;; Hard-code some store file names.
1635 (search-input-file inputs "lib/libvulkan.so"))) 1635 (substitute* "gfx/common/vulkan_common.c"
1636 (substitute* "gfx/common/wayland/generate_wayland_protos.sh" 1636 (("libvulkan.so")
1637 (("/usr/local/share/wayland-protocols") 1637 (search-input-file inputs "lib/libvulkan.so")))
1638 (search-input-directory inputs "share/wayland-protocols"))) 1638 (substitute* "gfx/common/wayland/generate_wayland_protos.sh"
1639 1639 (("/usr/local/share/wayland-protocols")
1640 ;; Without HLSL, we can still enable GLSLANG and Vulkan support. 1640 (search-input-directory inputs "share/wayland-protocols")))
1641 (substitute* "qb/config.libs.sh" 1641
1642 (("[$]HAVE_GLSLANG_HLSL") "notcare")) 1642 ;; Without HLSL, we can still enable GLSLANG and Vulkan support.
1643 1643 (substitute* "qb/config.libs.sh"
1644 ;; The configure script does not yet accept the extra arguments 1644 (("[$]HAVE_GLSLANG_HLSL") "notcare"))
1645 ;; (like ‘CONFIG_SHELL=’) passed by the default configure phase. 1645
1646 (invoke 1646 ;; The configure script does not yet accept the extra arguments
1647 "./configure" 1647 ;; (like ‘CONFIG_SHELL=’) passed by the default configure phase.
1648 #$@(if (string-prefix? "armhf" (or (%current-target-system) 1648 (invoke
1649 (%current-system))) 1649 "./configure"
1650 '("--enable-neon" "--enable-floathard") 1650 #$@(if (string-prefix? "armhf" (or (%current-target-system)
1651 '()) 1651 (%current-system)))
1652 (string-append "--prefix=" #$output) 1652 '("--enable-neon" "--enable-floathard")
1653 ;; Non-free software are available through the core updater, 1653 '())
1654 ;; disable it. See <https://issues.guix.gnu.org/38360>. 1654 (string-append "--prefix=" #$output)
1655 "--disable-update_cores" 1655 ;; Non-free software are available through the core updater,
1656 "--disable-update_core_info" 1656 ;; disable it. See <https://issues.guix.gnu.org/38360>.
1657 "--disable-online_updater" 1657 "--disable-update_cores"
1658 ;; The assets are provided via the `retroarch-assets' package. 1658 "--disable-update_core_info"
1659 "--disable-update_assets" 1659 "--disable-online_updater"
1660 "--disable-builtinmbedtls" 1660 ;; The assets are provided via the `retroarch-assets' package.
1661 "--disable-builtinbearssl" 1661 "--disable-update_assets"
1662 "--disable-builtinzlib" 1662 "--disable-builtinmbedtls"
1663 "--disable-builtinflac" 1663 "--disable-builtinbearssl"
1664 "--disable-builtinglslang" 1664 "--disable-builtinzlib"
1665 "--disable-builtinspirv_cross" 1665 "--disable-builtinflac"
1666 ;; These are disabled to avoid requiring the bundled 1666 "--disable-builtinglslang"
1667 ;; dependencies. 1667 "--disable-builtinspirv_cross"
1668 "--disable-7zip" 1668 ;; These are disabled to avoid requiring the bundled
1669 "--disable-cheevos" 1669 ;; dependencies.
1670 "--disable-crtswitchres" 1670 "--disable-7zip"
1671 "--disable-discord" 1671 "--disable-cheevos"
1672 "--disable-dr_mp3" 1672 "--disable-crtswitchres"
1673 "--disable-ibxm" 1673 "--disable-discord"
1674 "--disable-stb_font" 1674 "--disable-dr_mp3"
1675 "--disable-stb_image" 1675 "--disable-ibxm"
1676 "--disable-stb_vorbis" 1676 "--disable-stb_font"
1677 "--disable-xdelta")))))) 1677 "--disable-stb_image"
1678 (native-inputs 1678 "--disable-stb_vorbis"
1679 (list pkg-config 1679 "--disable-xdelta"))))))
1680 wayland-protocols 1680 (native-inputs
1681 which)) 1681 (list pkg-config
1682 (inputs 1682 wayland-protocols
1683 (list alsa-lib 1683 which))
1684 eudev 1684 (inputs
1685 ffmpeg 1685 (list alsa-lib
1686 flac 1686 eudev
1687 fontconfig 1687 ffmpeg
1688 freetype 1688 flac
1689 glslang 1689 fontconfig
1690 libxinerama 1690 freetype
1691 libxkbcommon 1691 glslang
1692 libxml2 1692 libxinerama
1693 libxrandr 1693 libxkbcommon
1694 libxv 1694 libxml2
1695 mbedtls-lts 1695 libxrandr
1696 mesa 1696 libxv
1697 openal 1697 mbedtls-lts
1698 openssl 1698 mesa
1699 pulseaudio 1699 openal
1700 python 1700 openssl
1701 qtbase-5 1701 pulseaudio
1702 sdl2 1702 python
1703 spirv-cross 1703 qtbase-5
1704 spirv-headers 1704 sdl2
1705 spirv-tools 1705 spirv-cross
1706 v4l-utils 1706 spirv-headers
1707 vulkan-loader 1707 spirv-tools
1708 wayland 1708 v4l-utils
1709 zlib)) 1709 vulkan-loader
1710 (native-search-paths 1710 wayland
1711 (list (search-path-specification 1711 zlib))
1712 (variable "LIBRETRO_DIRECTORY") 1712 (native-search-paths
1713 (separator #f) ;single entry 1713 (list (search-path-specification
1714 (files '("lib/libretro"))) 1714 (variable "LIBRETRO_DIRECTORY")
1715 (search-path-specification 1715 (separator #f) ;single entry
1716 (variable "LIBRETRO_ASSETS_DIRECTORY") 1716 (files '("lib/libretro")))
1717 (separator #f) ;single entry 1717 (search-path-specification
1718 (files '("share/libretro/assets"))) 1718 (variable "LIBRETRO_ASSETS_DIRECTORY")
1719 (search-path-specification 1719 (separator #f) ;single entry
1720 (variable "LIBRETRO_AUTOCONFIG_DIRECTORY") 1720 (files '("share/libretro/assets")))
1721 (separator #f) ;single entry 1721 (search-path-specification
1722 (files '("share/libretro/autoconfig"))) 1722 (variable "LIBRETRO_AUTOCONFIG_DIRECTORY")
1723 (search-path-specification 1723 (separator #f) ;single entry
1724 (variable "LIBRETRO_VIDEO_FILTER_DIRECTORY") 1724 (files '("share/libretro/autoconfig")))
1725 (separator #f) ;single entry 1725 (search-path-specification
1726 (files '("share/libretro/filters/video"))) 1726 (variable "LIBRETRO_VIDEO_FILTER_DIRECTORY")
1727 (search-path-specification 1727 (separator #f) ;single entry
1728 (variable "LIBRETRO_VIDEO_SHADER_DIRECTORY") 1728 (files '("share/libretro/filters/video")))
1729 (separator #f) ;single entry 1729 (search-path-specification
1730 (files '("share/libretro/shaders"))))) 1730 (variable "LIBRETRO_VIDEO_SHADER_DIRECTORY")
1731 (home-page "https://www.libretro.com/") 1731 (separator #f) ;single entry
1732 (synopsis "Reference frontend for the libretro API") 1732 (files '("share/libretro/shaders")))))
1733 (description 1733 (home-page "https://www.libretro.com/")
1734 "Libretro is a simple but powerful development interface that allows for 1734 (synopsis "Reference frontend for the libretro API")
1735 (description
1736 "Libretro is a simple but powerful development interface that allows for
1735the easy creation of emulators, games and multimedia applications that can plug 1737the easy creation of emulators, games and multimedia applications that can plug
1736straight into any libretro-compatible frontend. RetroArch is the official 1738straight into any libretro-compatible frontend. RetroArch is the official
1737reference frontend for the libretro API, currently used by most as a modular 1739reference frontend for the libretro API, currently used by most as a modular
1738multi-system game/emulator system.") 1740multi-system game/emulator system.")
1739 (license (list license:gpl3+ ;for RetroArch itself 1741 (license (list license:gpl3+ ;for RetroArch itself
1740 license:asl2.0 ;SPIRV-Cross 1742 license:asl2.0 ;SPIRV-Cross
1741 license:expat ;yxml 1743 license:expat ;yxml
1742 license:bsd-3)))) ;feragamemode 1744 license:bsd-3))))) ;feragamemode
1743 1745
1744(define-public retroarch 1746(define-public retroarch
1745 (package 1747 (package