all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Liliana Marie Prikler <liliana.prikler@ist.tugraz.at>
To: florhizome@posteo.net, 58499@debbugs.gnu.org
Subject: [bug#58499] [PATCH] gnu: add citra (stable version)
Date: Mon, 17 Oct 2022 10:37:54 +0200	[thread overview]
Message-ID: <697c4dd0589e00f9be2ec09fd7f798326efb0c4f.camel@ist.tugraz.at> (raw)
In-Reply-To: <a0c965b31ab5fa2735b02ed3102dde5c72165d5f.1665673001.git.florhizome@posteo.net>

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




  reply	other threads:[~2022-10-17  8:39 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-13 14:59 [bug#58499] [PATCH] gnu: add citra (stable version) florhizome
2022-10-17  8:37 ` Liliana Marie Prikler [this message]
2022-10-20 21:49   ` florhizome
2022-10-21  6:30     ` Liliana Marie Prikler
2022-10-20 21:55 ` [bug#58499] [PATCH v2] gnu: Add citra florhizome
2022-10-22 17:29   ` Liliana Marie Prikler
2022-11-01 15:56     ` Florian
2022-11-01 17:58 ` [bug#58499] [PATCH v3] " florhizome
2022-11-02  8:04   ` Liliana Marie Prikler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=697c4dd0589e00f9be2ec09fd7f798326efb0c4f.camel@ist.tugraz.at \
    --to=liliana.prikler@ist.tugraz.at \
    --cc=58499@debbugs.gnu.org \
    --cc=florhizome@posteo.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.