[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#58499] [PATCH] gnu: add citra (stable version)
From: |
Liliana Marie Prikler |
Subject: |
[bug#58499] [PATCH] gnu: add citra (stable version) |
Date: |
Mon, 17 Oct 2022 10:37:54 +0200 |
User-agent: |
Evolution 3.46.0 |
Am Donnerstag, dem 13.10.2022 um 14:59 +0000 schrieb
florhizome@posteo.net:
> From: florhizome <florhizome@posteo.net>
>
> This adds the citra emulator for nintendo 3ds games - the nightly
> repo marks the stable version. NixOs does some things for
> compatibility checks that we don't but it works fine so far. :)
Missing ChangeLog. Title should be: "gnu: Add citra."
> ---
Notes not meant for the commit log go below this line.
> gnu/packages/emulators.scm | 60
> ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 60 insertions(+)
>
> diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
> index 38795b703c..3121a71484 100644
> --- a/gnu/packages/emulators.scm
> +++ b/gnu/packages/emulators.scm
> @@ -61,6 +61,7 @@ (define-module (gnu packages emulators)
> #:use-module (gnu packages cross-base)
> #:use-module (gnu packages curl)
> #:use-module (gnu packages digest)
> + #:use-module (gnu packages documentation)
> #:use-module (gnu packages elf)
> #:use-module (gnu packages flex)
> #:use-module (gnu packages fltk)
> @@ -74,6 +75,7 @@ (define-module (gnu packages emulators)
> #:use-module (gnu packages gl)
> #:use-module (gnu packages glib)
> #:use-module (gnu packages gnome)
> + #:use-module (gnu packages gstreamer)
> #:use-module (gnu packages gtk)
> #:use-module (gnu packages image)
> #:use-module (gnu packages libedit)
> @@ -105,6 +107,7 @@ (define-module (gnu packages emulators)
> #:use-module (gnu packages xorg)
> #:use-module (gnu packages web)
> #:use-module (guix build-system cmake)
> + #:use-module (guix build-system qt)
> #:use-module (guix build-system glib-or-gtk)
> #:use-module (guix build-system gnu)
> #:use-module (guix build-system meson)
> @@ -245,9 +248,66 @@ (define-public desmume
> "DeSmuME is an emulator for the Nintendo DS handheld gaming
> console.")
> (license license:gpl2)))
>
> +(define-public citra
> + (package
> + (name "citra")
> + (version "1785")
I'd prefer a let-bound revision/commit pair, since this is very much
experimental software. Citra seems to be using a build version base of
"0" [cf. 1], so we can do the same.
> + (source
> + (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/citra-emu/citra-nightly")
Even if using nightly revisions, I think we might want to prefer the
main repository.
> + (commit
> + (string-append "nightly-" version))
> + (recursive? #t)))
Recursive checkouts are discouraged. Wherefore do you need one?
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "1grkrrxs1497i51spgnwmgfkqgkm7gplylhcrk67agaklx65d5s9"))))
> + (build-system qt-build-system)
> + (arguments
> + (list
> + #:configure-flags
> + #~(list "-DUSE_SYSTEM_BOOST=ON"
> + "-DCITRA_USE_BUNDLED_FFMPEG=OFF"
> + "-DCITRA_USE_BUNDLED_QT=OFF"
> + "-DCITRA_USE_BUNDLED_SDL2=OFF"
Don't forget to actually unbundle all of the above.
> + "-DCMAKE_BUILD_TYPE=Release"
> + "-DCITRA_ENABLE_COMPATIBILITY_REPORTING=OFF"
> + "-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF"
> + "-DENABLE_QT_TRANSLATION=ON"
> + "-DENABLE_WEB_SERVICE=ON"
> + "-DENABLE_FFMPEG_AUDIO_DECODER=ON"
> + "-DUSE_DISCORD_PRESENCE=ON")
Don't enable features for the profit of proprietary software.
> + #:tests? #f
Why?
> + #:phases
> + #~(modify-phases %standard-phases
> + (add-before 'configure 'delete-check
> + (lambda _
> + (substitute* "CMakeLists.txt"
> + (("check_submodules_present\\(\\)")"")))))))
> + (native-inputs
> + (list pkg-config doxygen))
> + (inputs
> + (list qtbase-5 qtmultimedia-5 qttools-5
> + qtwayland libpng libxkbcommon
> + openssl
> + ffmpeg pulseaudio curl rapidjson
> + sdl2 libusb boost))
> + ;;gstreamer-plugins-bad needed for camera support
> + (propagated-inputs (list gst-plugins-bad xdg-utils shared-mime-
> info))
For the gst-plugins, check if you can isolate a minimum set of them.
Also, use wrappers rather than propagation.
> + (home-page "https://citra-emu.org")
> + (synopsis "Nintendo 3DS Emulator")
> + (description "Citra is an experimental open-source Nintendo 3DS
> + emulator/debugger written in C++. It is written with portability
> in
> + mind, with builds actively maintained for Windows, Linux and macOS.
> + The \"nightly\" version marks the stable release.")
"Citra is an experimental emulator/debugger for the Nintendo 3DS
written in C++. It emulates a subset of the Nintendo 3DS' hardware."
> + (license license:gpl3+)))
Should be gpl2+.
Cheers
[1]
https://github.com/citra-emu/citra/blob/47c4f31c8db86b043a1802a65f1df08aeec8e772/CMakeModules/GenerateSCMRev.cmake#L22