X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/c8b2fd2866c0d68d62c4ce990e0b41a422bd7030..225157a0b21f023fe41f76818a6b30641094ebdc:/gnu/packages/emulators.scm?ds=sidebyside diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index a7c9104683..adcce6dca9 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -6,9 +6,9 @@ ;;; Copyright © 2015, 2018 David Thompson ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis ;;; Copyright © 2016, 2017, 2018 Efraim Flashner -;;; Copyright © 2017, 2018 Nicolas Goaziou +;;; Copyright © 2017, 2018, 2019 Nicolas Goaziou ;;; Copyright © 2017 Tobias Geerinckx-Rice -;;; Copyright © 2017, 2018 Rutger Helling +;;; Copyright © 2017, 2018, 2019 Rutger Helling ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,7 +41,7 @@ #:use-module (gnu packages backup) #:use-module (gnu packages compression) #:use-module (gnu packages curl) - #:use-module (gnu packages databases) + #:use-module (gnu packages elf) #:use-module (gnu packages fonts) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) @@ -65,8 +65,10 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages sdl) + #:use-module (gnu packages sqlite) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) @@ -117,8 +119,8 @@ ;; Building from recent Git because the official 5.0 release no longer builds. (define-public dolphin-emu - (let ((commit "47fd8c6eff4cdea7660d0fa78040f98d1d4fa136") - (revision "1")) + (let ((commit "2c57e709d0f9e4010a4415de4192de887e37f187") + (revision "5")) (package (name "dolphin-emu") (version (git-version "5.0" revision commit)) @@ -136,27 +138,25 @@ (for-each (lambda (dir) (delete-file-recursively (string-append "Externals/" dir))) - '("LZO" "OpenAL" "Qt" "SFML" "SOIL" "curl" "ffmpeg" + '("LZO" "OpenAL" "Qt" "SFML" "curl" "ffmpeg" "gettext" "hidapi" "libpng" "libusb" "mbedtls" - "miniupnpc" "wxWidgets3" "zlib")) + "miniupnpc" "zlib")) ;; Clean up source. (for-each delete-file (find-files "." ".*\\.(bin|dsy|exe|jar|rar)$")) #t)) (sha256 (base32 - "1gp2sshnr0dswdawxd5ix96nksp435b52bqvpjx8pmn523k29zsw")))) + "0aszfdfvs7yg4bmrd3qxwsiz7hx3mrj29f4aw86bz7h9j7hkh57f")))) (build-system cmake-build-system) (arguments '(#:tests? #f - ;; The FindGTK2 cmake script only checks hardcoded directories for - ;; glib/gtk headers. - #:phases (modify-phases %standard-phases (add-before 'configure 'fixgcc7 (lambda _ (unsetenv "C_INCLUDE_PATH") - (unsetenv "CPLUS_INCLUDE_PATH"))) + (unsetenv "CPLUS_INCLUDE_PATH") + #t)) (add-before 'configure 'generate-fonts&hardcore-libvulkan-path (lambda* (#:key inputs outputs #:allow-other-keys) (let ((fontfile @@ -177,14 +177,11 @@ (("libvulkan.so") libvulkan)) #t)))) + ;; The FindGTK2 cmake script only checks hardcoded directories for + ;; glib/gtk headers. + #:configure-flags - (list (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR=" - (assoc-ref %build-inputs "gtk+") - "/lib/gtk-2.0/include") - (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR=" - (assoc-ref %build-inputs "glib") - "/lib/glib-2.0/include") - (string-append "-DX11_INCLUDE_DIR=" + (list (string-append "-DX11_INCLUDE_DIR=" (assoc-ref %build-inputs "libx11") "/include") (string-append "-DX11_LIBRARIES=" @@ -201,7 +198,7 @@ ("bluez" ,bluez) ("curl" ,curl) ("eudev" ,eudev) - ("ffmpeg" ,ffmpeg-3.4) + ("ffmpeg" ,ffmpeg) ("font-wqy-microhei" ,font-wqy-microhei) ("freetype" ,freetype) ("glew" ,glew) @@ -220,6 +217,7 @@ ("mesa" ,mesa) ("miniupnpc" ,miniupnpc) ("openal" ,openal) + ("pugixml" ,pugixml) ("pulseaudio" ,pulseaudio) ("qtbase" ,qtbase) ("sdl2" ,sdl2) @@ -227,7 +225,6 @@ ("soil" ,soil) ("soundtouch" ,soundtouch) ("vulkan-loader" ,vulkan-loader) - ("wxwidgets" ,wxwidgets-gtk2-3.1) ("zlib" ,zlib))) (home-page "https://dolphin-emu.org/") (synopsis "Nintendo Wii and GameCube emulator") @@ -242,26 +239,23 @@ turbo speed, networked multiplayer, and graphical enhancements.") (define-public dosbox (package (name "dosbox") - (version "0.74.svn3947") + (version "0.74-2") (source (origin - (method svn-fetch) - (uri (svn-reference - (url "http://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk/") - (revision 3947))) - (file-name (string-append name "-" version "-checkout")) - ;; Use SVN head, since the last release (2010) is incompatible - ;; with GCC 4.8+ (see - ;; ). + (method url-fetch) + (uri (string-append "https://sourceforge.net/projects/dosbox" + "/files/dosbox/" version "/dosbox-" + version ".tar.gz/download")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1p918j6090d1nkvgq7ifvmn506zrdmyi32y7p3ms40d5ssqjg8fj")))) + "1ksp1b5szi0vy4x55rm3j1y9wq5mlslpy8llpg87rpdyjlsk0xvh")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'autogen.sh (lambda _ - (zero? (system* "sh" "autogen.sh"))))))) + (invoke "sh" "autogen.sh")))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) @@ -413,15 +407,16 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.") (define-public mgba (package (name "mgba") - (version "0.6.3") + (version "0.7.1") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/mgba-emu/mgba/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mgba-emu/mgba.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "16hgs6r5iym3lp2cjcnv9955333976yc5sgy2kkxlsi005n91j1m")) + "0q0yg2zna7gjbvpaswyykbg3lr9k3c8l8fydqa407xrgq77lahq4")) (modules '((guix build utils))) (snippet ;; Make sure we don't use the bundled software. @@ -437,13 +432,12 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.") `(#:tests? #f ;no "test" target #:configure-flags (list "-DUSE_LZMA=OFF" ;do not use bundled LZMA - "-DUSE_LIBZIP=OFF" ;use "zlib" instead - (string-append "-DCMAKE_INSTALL_LIBDIR=" - (assoc-ref %outputs "out") "/lib")))) + "-DUSE_LIBZIP=OFF"))) ;use "zlib" instead (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("ffmpeg" ,ffmpeg) ("imagemagick" ,imagemagick) ("libedit" ,libedit) + ("libelf" ,libelf) ("libepoxy" ,libepoxy) ("libpng" ,libpng) ("mesa" ,mesa) @@ -520,13 +514,13 @@ core library.") (version "2.5") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/mupen64plus/mupen64plus-audio-sdl/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mupen64plus/mupen64plus-audio-sdl.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "0ss6w92n2rpfnazhg9lbq0nvs3fqx93nliz3k3wjxdlx4dpi7h3a")))) + (base32 "0z19amfg9vr2pqjjri1ipc7hs681fzjcnb0f9y7bjhp5n8d7p6bb")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -566,13 +560,13 @@ SDL audio plugin.") (version "2.5") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/mupen64plus/mupen64plus-input-sdl/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mupen64plus/mupen64plus-input-sdl.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "11sj5dbalp2nrlmki34vy7wy28vc175pnnkdk65p8599hnyq37ri")))) + (base32 "1dyazfbdjycdfslq8jixqiqhziw0rlkvach2r9dz91229jmkyc9c")))) (build-system gnu-build-system) (native-inputs `(("which" ,which))) @@ -611,13 +605,13 @@ SDL input plugin.") (version "2.5") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/mupen64plus/mupen64plus-rsp-hle/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mupen64plus/mupen64plus-rsp-hle.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "15h7mgz6xd2zjzm6l3f96sbs8kwr3xvbwzgikhnka79m6c69hsxv")))) + (base32 "0pi31qzjjp7aypdvvnz6ms18g09c4gqzxi6328zj8sji94b75gf0")))) (build-system gnu-build-system) (inputs `(("mupen64plus-core" ,mupen64plus-core))) @@ -653,13 +647,13 @@ high-level emulation (HLE) RSP processor plugin.") (version "2.0.0") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/mupen64plus/mupen64plus-rsp-z64/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mupen64plus/mupen64plus-rsp-z64.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "10jz1w2dhx5slhyk4m8mdqlpsd6cshchslr1fckb2ayzb1ls3ghi")))) + (base32 "0nfyjns9k8xbg3aqs7593nfaxvlj72h3l8h467442xlk8ajfcylx")))) (build-system gnu-build-system) (inputs `(("mupen64plus-core" ,mupen64plus-core))) @@ -695,13 +689,13 @@ Z64 RSP processor plugin.") (version "2.0.0") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/mupen64plus/mupen64plus-video-arachnoid/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mupen64plus/mupen64plus-video-arachnoid.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "0jjwf144rihznm4lnqbhgigxw664v3v32wy94adaa6imk8z6gslh")))) + (base32 "1v9fqwpb6pawr8z5cm2ki7bqkks4iyr5c4jy4v5khj6h8zcv55gc")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -741,13 +735,13 @@ Arachnoid video plugin.") (version "2.0.0") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/mupen64plus/mupen64plus-video-glide64/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mupen64plus/mupen64plus-video-glide64.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "1rm55dbf6xgsq1blbzs6swa2ajv0qkn38acbljj346abnk6s3dla")))) + (base32 "0qn5za7g7796kh2ag3xpmhbqg0yf71g9liz6ks0rha8pz73lgs01")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -795,13 +789,13 @@ Glide64 video plugin.") (version "2.5") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/mupen64plus/mupen64plus-video-glide64mk2/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mupen64plus/mupen64plus-video-glide64mk2.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "1ihl4q293d6svba26b4mhapjcdg12p90gibz79b4mx423jlcxxj9")))) + (base32 "08pm28a36dpr0cvr8pzw0n5ksdazp7jqvlmqfy2lwb4dm0cwhkqd")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -845,13 +839,13 @@ Glide64MK2 video plugin.") (version "2.5") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/mupen64plus/mupen64plus-video-rice/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mupen64plus/mupen64plus-video-rice.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "0rd2scjmh285w61aj3mgx71whg5rqrjbry3cdgicczrnyvf8wdvk")))) + (base32 "0rpmbcq67gsj5h5jjis146378qc1mskskvx20y1ikx59yhbamh13")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -948,13 +942,13 @@ Z64 video plugin.") (version "2.5") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/mupen64plus/mupen64plus-ui-console/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mupen64plus/mupen64plus-ui-console.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "04qkpd8ic7xsgnqz7spl00wxdygf79m7d1k8rabbygjk5lg6p8z2")) + (base32 "0vrf98qa6a0y3647kslsv644fag233dxh5dcr1yncjiiwickcr5a")) (patches (search-patches "mupen64plus-ui-console-notice.patch")))) (build-system gnu-build-system) (native-inputs @@ -1061,36 +1055,50 @@ emulation community. It provides highly accurate emulation.") (define-public retroarch (package (name "retroarch") - (version "1.7.3") + (version "1.7.6") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/libretro/RetroArch/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/libretro/RetroArch.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "1si78dbwbsq4i0r42q94nmlpaxdyqch113nxavdprf4vc1224356")))) + (base32 "122c6cqax92qk2mhm9ywnwhw3qkv8f1ybma9gal5w6i2gsmp0s0s")))) (build-system gnu-build-system) (arguments - '(#:tests? #f ; no tests + `(#:tests? #f ; no tests #:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (etc (string-append out "/etc")) - (vulkan (assoc-ref inputs "vulkan-loader"))) + (vulkan (assoc-ref inputs "vulkan-loader")) + (wayland-protocols (assoc-ref inputs "wayland-protocols"))) ;; Hard-code the path to libvulkan.so. (substitute* "gfx/common/vulkan_common.c" (("libvulkan.so") (string-append vulkan "/lib/libvulkan.so"))) + (substitute* "gfx/common/wayland/generate_wayland_protos.sh" + (("/usr/local/share/wayland-protocols") + (string-append wayland-protocols "/share/wayland-protocols"))) (substitute* "qb/qb.libs.sh" (("/bin/true") (which "true"))) + ;; Use shared zlib. + (substitute* '("libretro-common/file/archive_file_zlib.c" + "libretro-common/streams/trans_stream_zlib.c" + "network/httpserver/httpserver.c") + (("") "")) ;; The configure script does not yet accept the extra arguments ;; (like ‘CONFIG_SHELL=’) passed by the default configure phase. - (zero? (system* - "./configure" - (string-append "--prefix=" out) - (string-append "--global-config-dir=" etc))))))))) + (invoke + "./configure" + ,@(if (string-prefix? "armhf" (or (%current-target-system) + (%current-system))) + '("--enable-neon" "--enable-floathard") + '()) + (string-append "--prefix=" out) + (string-append "--global-config-dir=" etc)))))))) (inputs `(("alsa-lib" ,alsa-lib) ("ffmpeg" ,ffmpeg) @@ -1098,6 +1106,7 @@ emulation community. It provides highly accurate emulation.") ("libxinerama" ,libxinerama) ("libxkbcommon" ,libxkbcommon) ("libxml2" ,libxml2) + ("libxrandr" ,libxrandr) ("libxv" ,libxv) ("mesa" ,mesa) ("openal" ,openal) @@ -1111,6 +1120,7 @@ emulation community. It provides highly accurate emulation.") ("zlib" ,zlib))) (native-inputs `(("pkg-config" ,pkg-config) + ("wayland-protocols" ,wayland-protocols) ("which" ,which))) (home-page "https://www.libretro.com/") (synopsis "Reference frontend for the libretro API") @@ -1181,7 +1191,7 @@ play them on systems for which they were never designed!") (define-public mame (package (name "mame") - (version "0.198") + (version "0.208") (source (origin (method git-fetch) @@ -1191,7 +1201,7 @@ play them on systems for which they were never designed!") (file-name (git-file-name name version)) (sha256 (base32 - "0kl7qll8d6xlx7bj5920ljs888a6nc1fj2kfw1fz0r8za3m7wiq9")) + "14j7n4haggqsph0nw69d79z3y9lrdc7rzs2sl1kzggfnd37nh81s")) (modules '((guix build utils))) (snippet ;; Remove bundled libraries. @@ -1235,7 +1245,8 @@ play them on systems for which they were never designed!") (find-files "keymaps" ".*LINUX\\.map"))) (let ((fonts (string-append share "/fonts"))) (install-file "uismall.bdf" fonts)) - (rename-file "mame64" "mame") + (when (file-exists? "mame64") + (rename-file "mame64" "mame")) (install-file "mame" (string-append out "/bin"))) #t)) (add-after 'install 'install-documentation @@ -1328,8 +1339,8 @@ play them on systems for which they were never designed!") #t)))))) (native-inputs `(("pkg-config" ,pkg-config) - ("pugixml" ,pugixml) - ("python-sphinx" ,python-sphinx) + ("sphinx" ,python-sphinx) + ("sphinxcontrib-svg2pdfconverter" ,python-sphinxcontrib-svg2pdfconverter) ("texinfo" ,texinfo))) (inputs `(("alsa-lib" ,alsa-lib) @@ -1343,6 +1354,7 @@ play them on systems for which they were never designed!") ("lua" ,lua) ("portaudio" ,portaudio) ("portmidi" ,portmidi) + ("pugixml" ,pugixml) ("python-wrapper" ,python-wrapper) ("qtbase" ,qtbase) ("rapidjson" ,rapidjson)