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> gmail.com> To: florhizome <at> posteo.net, 58499 <at> debbugs.gnu.org Subject: [bug#58499] [PATCH v2] gnu: Add citra Date: Sat, 22 Oct 2022 19:29:31 +0200
Am Donnerstag, dem 20.10.2022 um 21:55 +0000 schrieb florhizome <at> posteo.net: > From: florhizome <florhizome <at> posteo.net> > > * gnu: Add citra. Missing ChangeLog. > --- > gnu/packages/emulators.scm | 103 > +++++++++++++++++++++++++++++++++++++ > 1 file changed, 103 insertions(+) > > diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm > index 4d7710f8ea..be4e10bb9c 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,109 @@ (define-public desmume > "DeSmuME is an emulator for the Nintendo DS handheld gaming > console.") > (license license:gpl2))) > > +(define-public citra > + (let ((version "0") > + (revision "1785") > + (commit "baecc18d8c5365af0dddb231bc8c0a9c03850bf6")) You don't need to let-bind version. Add a comment next to revision explaining that we mean nightly revisions. > + (package > + (name "citra") > + (version (git-version version > + (string-append "nightly-" revision) > commit)) "nightly-" is not needed here. > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/citra-emu/citra-nightly") > + (commit > + (string-append "nightly-" revision)) > + ;;some submodules can't be avoided > + ;;TODO devendor the rest > + (recursive? #t))) Why not? > + (sha256 > + (base32 > + "1grkrrxs1497i51spgnwmgfkqgkm7gplylhcrk67agaklx65d5s9")) > + (file-name (git-file-name name version)) > + (modules '((guix build utils))) > + (snippet > + '(begin > + ;; Remove as much external stuff as we can > + ;; f.e. some files in boost are still needed We have a boost package. > + (for-each (lambda (dir) > + (delete-file-recursively > + (string-append "externals/" dir))) > + '("android-ifaddrs" > + "catch" > + "libyuv" > + "libressl" > + "getopt" > + "libusb")) > + ;; Clean up source. > + (for-each delete-file > + (find-files "." > ".*\\.(bin|dsy|exe|jar|rar)$")) > + #t)))) > + (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" > + "-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") Again, no cookies for proprietary software. > + #:phases > + #~(modify-phases %standard-phases > + (add-before 'configure 'delete-check > + (lambda _ > + (substitute* "CMakeLists.txt" > + (("check_submodules_present\\(\\)")"")))) > + (add-after 'qt-wrap 'wrap-other-dependencies > + (lambda* (#:key outputs #:allow-other-keys) > + (for-each > + (lambda (bin) > + (wrap-program bin) > + `("GST_PLUGIN_SYSTEM_PATH" prefix > + (,(getenv "GST_PLUGIN_SYSTEM_PATH")))) > + `(,(search-input-file outputs "bin/citra") > + ,(search-input-file outputs "bin/citra-qt")))))))) You can use find-files here and it'll probably be more natural. > + (native-inputs > + (list pkg-config doxygen catch2)) > + (inputs > + (list qtbase-5 > + qtmultimedia-5 > + qttools-5 > + qtwayland-5 > + libpng > + libxkbcommon > + openssl > + libfdk > + ffmpeg > + pulseaudio > + curl > + rapidjson > + sdl2 > + libusb > + boost > + gst-plugins-bad-minimal)) Inputs are best sorted. > + ;;gstreamer-plugins-bad-minimal needed for camera support Use a line comment "; camera support". Emacs adds proper distance with M-; > + (propagated-inputs (list xdg-utils shared-mime-info)) > + (home-page "https://citra-emu.org") > + (synopsis "Nintendo 3DS Emulator") > + (description "Citra is an experimental emulator/debugger for the > Nintendo 3DS > + written in C++. It emulates a subset of the Nintendo 3DS' > hardware.") > + (license license:gpl2+)))) Cheers
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.