Package: guix-patches;
Reported by: florhizome <at> posteo.net
Date: Thu, 13 Oct 2022 17:48:01 UTC
Severity: normal
Tags: patch
To reply to this bug, email your comments to 58499 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#58499
; Package guix-patches
.
(Thu, 13 Oct 2022 17:48:01 GMT) Full text and rfc822 format available.florhizome <at> posteo.net
:guix-patches <at> gnu.org
.
(Thu, 13 Oct 2022 17:48:01 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: florhizome <at> posteo.net To: guix-patches <at> gnu.org Cc: florhizome <florhizome <at> posteo.net> Subject: [PATCH] gnu: add citra (stable version) Date: Thu, 13 Oct 2022 14:59:47 +0000
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. :) --- 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") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/citra-emu/citra-nightly") + (commit + (string-append "nightly-" version)) + (recursive? #t))) + (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" + "-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") + #:tests? #f + #: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)) + (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.") + (license license:gpl3+))) + ;; Building from recent Git because the official 5.0 release no longer builds. ;; Following commits and revision numbers of beta versions listed at ;; https://dolphin-emu.org/download/. + (define-public dolphin-emu (let ((commit "a34823df61df65168aa40ef5e82e44defd4a0138") (revision "13178")) base-commit: 86ec52f66735b122b9035eba56516fd16f3be958 prerequisite-patch-id: 253e1cc8278ab9981294f4e483c7b29a466672d9 -- 2.38.0
guix-patches <at> gnu.org
:bug#58499
; Package guix-patches
.
(Mon, 17 Oct 2022 08:39:02 GMT) Full text and rfc822 format available.Message #8 received at 58499 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> ist.tugraz.at> To: florhizome <at> posteo.net, 58499 <at> debbugs.gnu.org Subject: Re: [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
guix-patches <at> gnu.org
:bug#58499
; Package guix-patches
.
(Fri, 21 Oct 2022 06:31:01 GMT) Full text and rfc822 format available.Message #11 received at 58499 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> ist.tugraz.at> To: florhizome <florhizome <at> posteo.net>, 58499 <at> debbugs.gnu.org Subject: Re: [PATCH] gnu: add citra (stable version) Date: Fri, 21 Oct 2022 08:30:30 +0200
Hi, Am Donnerstag, dem 20.10.2022 um 21:49 +0000 schrieb florhizome: > On 2022-10-17, 10:37 +0200, Liliana Marie Prikler > <liliana.prikler <at> ist.tugraz.at> wrote: > > 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. > > After reading their repo-policy > The main repo is for development, the nightly one picks out stable > features, the experimental/canary one adds more unstable ones. By > going with "main" we basically skip any stability guarantees, that > the devs are trying to give. Okay, in that case it makes sense to use nightly. > For me personally, the version numbers are very helpful, since they > make it easier to track dependency changes. > The patch I am preparing will use 0 as main version, though. Therefore I suggest (git-version "0" revision commit) where revision is the nightly version number. > > 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. > > Actually ffmpeg and sdl are not bundled in our version, > but later versions will bundle sdl again. You could try something cheeky like (when (file-exists? "ffmpeg") (delete-recursively "ffmpeg")) in the snippet with an appropriate comment. > > > + "-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. > > As far as I understand, there are other programs, and free > alternatives other then discord using its status protocol. Which ones? As far as I'm aware, XMPP is a completely free alternative to the entire protocol ;) Cheers
guix-patches <at> gnu.org
:bug#58499
; Package guix-patches
.
(Fri, 21 Oct 2022 07:11:01 GMT) Full text and rfc822 format available.Message #14 received at 58499 <at> debbugs.gnu.org (full text, mbox):
From: florhizome <florhizome <at> posteo.net> To: Liliana Marie Prikler <liliana.prikler <at> ist.tugraz.at>, 58499 <at> debbugs.gnu.org Subject: Re: [PATCH] gnu: add citra (stable version) Date: Thu, 20 Oct 2022 21:49:15 +0000
Hi Liliana! thx for the revision! I also have yuzu in the pipeline, which is by the same/similar team, which makes this even more rewarding. The next patch will remove all submodules that I was able to remove. More could be done by replacing the rest under external/ with. symlinks, I guess. Also, tests seem to work under x86, and using only gst-plugins-bad-minimal in a wrapper seems to be enough to make the camera work. This leaves us with the repo/versioning and the discord issue. On 2022-10-17, 10:37 +0200, Liliana Marie Prikler <liliana.prikler <at> ist.tugraz.at> wrote: > 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. After reading their repo-policy The main repo is for development, the nightly one picks out stable features, the experimental/canary one adds more unstable ones. By going with "main" we basically skip any stability guarantees, that the devs are trying to give. For me personally, the version numbers are very helpful, since they make it easier to track dependency changes. The patch I am preparing will use 0 as main version, though. > 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. Actually ffmpeg and sdl are not bundled in our version, but later versions will bundle sdl again. >> + "-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. As far as I understand, there are other programs, and free alternatives other then discord using its status protocol. >> + (license license:gpl3+))) > Should be gpl2+. > To me it looks like gpl2 only, am I overlooking something? Cheers, florhizome
guix-patches <at> gnu.org
:bug#58499
; Package guix-patches
.
(Fri, 21 Oct 2022 07:11:02 GMT) Full text and rfc822 format available.Message #17 received at 58499 <at> debbugs.gnu.org (full text, mbox):
From: florhizome <at> posteo.net To: 58499 <at> debbugs.gnu.org Cc: florhizome <florhizome <at> posteo.net> Subject: [PATCH v2] gnu: Add citra Date: Thu, 20 Oct 2022 21:55:03 +0000
From: florhizome <florhizome <at> posteo.net> * gnu: Add citra. --- 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")) + (package + (name "citra") + (version (git-version version + (string-append "nightly-" revision) commit)) + (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))) + (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 + (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") + #: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")))))))) + (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)) + ;;gstreamer-plugins-bad-minimal needed for camera support + (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+)))) + + ;; Building from recent Git because the official 5.0 release no longer builds. ;; Following commits and revision numbers of beta versions listed at ;; https://dolphin-emu.org/download/. + (define-public dolphin-emu (let ((commit "a34823df61df65168aa40ef5e82e44defd4a0138") (revision "13178")) base-commit: 00ff6f7c399670a76efffb91276dea2633cc130c -- 2.38.0
guix-patches <at> gnu.org
:bug#58499
; Package guix-patches
.
(Sat, 22 Oct 2022 17:30:02 GMT) Full text and rfc822 format available.Message #20 received at 58499 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: florhizome <at> posteo.net, 58499 <at> debbugs.gnu.org Subject: Re: [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
guix-patches <at> gnu.org
:bug#58499
; Package guix-patches
.
(Tue, 01 Nov 2022 15:57:02 GMT) Full text and rfc822 format available.Message #23 received at 58499 <at> debbugs.gnu.org (full text, mbox):
From: Florian <florhizome <at> posteo.net> To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>, 58499 <at> debbugs.gnu.org Subject: Re: [PATCH v2] gnu: Add citra Date: Tue, 01 Nov 2022 15:56:20 +0000
>> + (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. What I mean by avoid: the rest of submodules we would need to replace in place (which I mean by devendor). I have tried to add a build phase doing so, but wasn't successful by now. It will be a huge amount of work added anyways, which would take me a bigger amount of time. For some reason disabling the bundled version of boost still seems to leave some links to the bundled boost in the build, so when I remove it, the build fails. >> + "-DUSE_DISCORD_PRESENCE=ON") > Again, no cookies for proprietary software. I don't see use to discuss this as I would like to get to get this done and I don't need it. v3 coming soon, I hope i get the changelog right this time... Cheers.
guix-patches <at> gnu.org
:bug#58499
; Package guix-patches
.
(Tue, 01 Nov 2022 18:00:02 GMT) Full text and rfc822 format available.Message #26 received at 58499 <at> debbugs.gnu.org (full text, mbox):
From: florhizome <at> posteo.net To: 58499 <at> debbugs.gnu.org Cc: florhizome <florhizome <at> posteo.net> Subject: [PATCH v3] gnu: Add citra Date: Tue, 1 Nov 2022 17:58:56 +0000
From: florhizome <florhizome <at> posteo.net> * gnu/packages/emulators.scm (citra): New variable. --- gnu/packages/emulators.scm | 100 +++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 4d7710f8ea..3ea3bfe327 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,106 @@ (define-public desmume "DeSmuME is an emulator for the Nintendo DS handheld gaming console.") (license license:gpl2))) +(define-public citra + ;; we use the 'nightly' revision, picking stable features + (let ((revision "1785") + (commit "baecc18d8c5365af0dddb231bc8c0a9c03850bf6")) + (package + (name "citra") + (version (git-version "0" revision commit)) + (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))) + (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 + (for-each (lambda (dir) + (delete-file-recursively + (string-append "externals/" dir))) + '("android-ifaddrs" + "catch" + "discord-rpc" + "getopt" + "libyuv" + "libressl" + "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" + "-DCITRA_ENABLE_COMPATIBILITY_REPORTING=OFF" + "-DCMAKE_BUILD_TYPE=Release" + "-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF" + "-DENABLE_FFMPEG_AUDIO_DECODER=ON" + "-DENABLE_QT_TRANSLATION=ON" + "-DENABLE_WEB_SERVICE=ON") + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'delete-check + (lambda _ + (substitute* "CMakeLists.txt" + (("check_submodules_present\\(\\)")"")))) + (add-after 'qt-wrap 'wrap-gst-plugins + (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")))))))) + (native-inputs + (list catch2 doxygen pkg-config)) + (inputs + (list boost + curl + ffmpeg + gst-plugins-bad-minimal ;camera-support + libfdk + libpng + libusb + libxkbcommon + openssl + pulseaudio + qtbase-5 + qtmultimedia-5 + qttools-5 + qtwayland-5 + sdl2)) + (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+)))) + + ;; Building from recent Git because the official 5.0 release no longer builds. ;; Following commits and revision numbers of beta versions listed at ;; https://dolphin-emu.org/download/. + (define-public dolphin-emu (let ((commit "a34823df61df65168aa40ef5e82e44defd4a0138") (revision "13178")) -- 2.38.0
guix-patches <at> gnu.org
:bug#58499
; Package guix-patches
.
(Wed, 02 Nov 2022 08:05:02 GMT) Full text and rfc822 format available.Message #29 received at 58499 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: florhizome <at> posteo.net, 58499 <at> debbugs.gnu.org Subject: Re: [PATCH v3] gnu: Add citra Date: Wed, 02 Nov 2022 09:04:20 +0100
Am Dienstag, dem 01.11.2022 um 17:58 +0000 schrieb florhizome <at> posteo.net: > From: florhizome <florhizome <at> posteo.net> > > * gnu/packages/emulators.scm (citra): New variable. > --- > gnu/packages/emulators.scm | 100 > +++++++++++++++++++++++++++++++++++++ > 1 file changed, 100 insertions(+) > > diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm > index 4d7710f8ea..3ea3bfe327 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,106 @@ (define-public desmume > "DeSmuME is an emulator for the Nintendo DS handheld gaming > console.") > (license license:gpl2))) > > +(define-public citra > + ;; we use the 'nightly' revision, picking stable features > + (let ((revision "1785") > + (commit "baecc18d8c5365af0dddb231bc8c0a9c03850bf6")) Note that the latest citra revision is now 1802. Feel free to bump it during review. > + (package > + (name "citra") > + (version (git-version "0" revision commit)) > + (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))) For those submodules that can't be avoided, the "unpack after unpack" pattern is still preferable to recursive checkouts; the latter can pull in new vendored modules sneakily. For instance, the first package that fails the build because it's missing is cryptopp [1]. They vendor version 8.5 while the latest is 8.7. I think packaging cryptopp and trying to unvendor it makes sense. Even if not completely unvendored (i.e. we still pull in the source instead of the built package, as is e.g. done for armips in ppsspp), I'd prefer the origin to be explicit. > + (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 > + (for-each (lambda (dir) > + (delete-file-recursively > + (string-append "externals/" dir))) > + '("android-ifaddrs" > + "catch" > + "discord-rpc" > + "getopt" > + "libyuv" > + "libressl" > + "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" > + "-DCITRA_ENABLE_COMPATIBILITY_REPORTING=OFF" > + "-DCMAKE_BUILD_TYPE=Release" > + "-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF" > + "-DENABLE_FFMPEG_AUDIO_DECODER=ON" > + "-DENABLE_QT_TRANSLATION=ON" > + "-DENABLE_WEB_SERVICE=ON") The web service should be disabled, we don't let our software phone home. > + #:phases > + #~(modify-phases %standard-phases > + (add-before 'configure 'delete-check > + (lambda _ > + (substitute* "CMakeLists.txt" > + (("check_submodules_present\\(\\)")"")))) Instead of 'delete-check, I'd name this 'patch-cmake. 'delete-check implies that we're disabling checks, which we don't. > + (add-after 'qt-wrap 'wrap-gst-plugins > + (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")))))))) > + (native-inputs > + (list catch2 doxygen pkg-config)) > + (inputs > + (list boost > + curl > + ffmpeg > + gst-plugins-bad-minimal ;camera-support > + libfdk > + libpng > + libusb > + libxkbcommon > + openssl > + pulseaudio > + qtbase-5 > + qtmultimedia-5 > + qttools-5 > + qtwayland-5 > + sdl2)) There seem to be more missing inputs, for instance json-modern-cxx which has nlohmann::json (somewhat related, I do think that it's a silly package name and we should rename it for searchability's sake). > + (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 I'd write out "and" instead of the slash. > + written in C++. It emulates a subset of the Nintendo 3DS' > hardware.") > + (license license:gpl2+)))) > + > + Gratuitous newline. > ;; Building from recent Git because the official 5.0 release no > longer builds. > ;; Following commits and revision numbers of beta versions listed at > ;; https://dolphin-emu.org/download/. > + Gratuitous newline. > (define-public dolphin-emu > (let ((commit "a34823df61df65168aa40ef5e82e44defd4a0138") > (revision "13178")) Cheers [1] https://github.com/weidai11/cryptopp
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.