Package: guix-patches;
Reported by: florhizome <at> posteo.net
Date: Thu, 13 Oct 2022 17:48:01 UTC
Severity: normal
Tags: patch
View this message in rfc822 format
From: Liliana Marie Prikler <liliana.prikler <at> ist.tugraz.at> To: florhizome <at> posteo.net, 58499 <at> debbugs.gnu.org Subject: [bug#58499] [PATCH] gnu: add citra (stable version) Date: Mon, 17 Oct 2022 10:37:54 +0200
Am Donnerstag, dem 13.10.2022 um 14:59 +0000 schrieb florhizome <at> posteo.net: > From: florhizome <florhizome <at> 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
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.