* [bug#30380] gnu: Add dolphin-emulator. @ 2018-02-07 16:58 Thompson, David 2018-02-07 20:43 ` Björn Höfling 2018-02-16 9:20 ` [bug#30380] gnu: Add dolphin-emu Rutger Helling 0 siblings, 2 replies; 15+ messages in thread From: Thompson, David @ 2018-02-07 16:58 UTC (permalink / raw) To: 30380 [-- Attachment #1: Type: text/plain, Size: 353 bytes --] Here a couple of patches that add the Dolphin emulator. I used a Git snapshot because the project goes *years* between releasing official source tarballs while at the same time directing users to use binaries built from the latest commit in their Git repo, so I think packaging the Git source aligns best with what a Dolphin user would expect. - Dave [-- Attachment #2: 0001-gnu-Add-wxwidgets-gtk2-3.1.patch --] [-- Type: text/x-patch, Size: 1026 bytes --] From b09950c2847be7f17ea57906714f74a5ca2f671b Mon Sep 17 00:00:00 2001 From: David Thompson <davet@gnu.org> Date: Wed, 7 Feb 2018 06:28:46 -0500 Subject: [PATCH 1/2] gnu: Add wxwidgets-gtk2-3.1. * gnu/packages/wxwidgets.scm (wxwidgets-gtk2-3.1): New variable. --- gnu/packages/wxwidgets.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index 84446d8ef..9f7a87ca4 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -126,6 +126,14 @@ and many other languages.") ((#:configure-flags flags) `(cons "--enable-mediactrl" ,flags)))))) +(define-public wxwidgets-gtk2-3.1 + (package (inherit wxwidgets-3.1) + (inputs `(("gtk+" ,gtk+-2) + ,@(alist-delete + "gtk+" + (package-inputs wxwidgets-3.1)))) + (name "wxwidgets-gtk2"))) + (define-public python2-wxpython (package (name "python2-wxpython") -- 2.16.1 [-- Attachment #3: 0002-gnu-Add-dolphin-emulator.patch --] [-- Type: text/x-patch, Size: 4448 bytes --] From f3793694d8313a242195315214dd829685f6d52d Mon Sep 17 00:00:00 2001 From: David Thompson <davet@gnu.org> Date: Wed, 7 Feb 2018 06:29:28 -0500 Subject: [PATCH 2/2] gnu: Add dolphin-emulator. * gnu/packages/games.scm (dolphin-emulator): New variable. --- gnu/packages/games.scm | 77 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index e2f855aa5..3f50945d6 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 John Darrington <jmd@gnu.org> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright © 2014, 2015, 2016 David Thompson <dthompson2@worcester.edu> +;;; Copyright © 2014, 2015, 2016, 2018 David Thompson <dthompson2@worcester.edu> ;;; Copyright © 2014, 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com> ;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net> @@ -88,6 +88,7 @@ #:use-module (gnu packages libcanberra) #:use-module (gnu packages libedit) #:use-module (gnu packages libunwind) + #:use-module (gnu packages libusb) #:use-module (gnu packages haskell) #:use-module (gnu packages mp3) #:use-module (gnu packages music) @@ -5526,3 +5527,77 @@ hacking the gamification of contribution graphs on platforms such as Github or Gitlab.") (home-page "https://github.com/umayr/badass") (license license:expat)))) + +;; Building from recent Git because the official 5.0 release no longer builds. +(define-public dolphin-emulator + (let ((commit "d04b179111f8d863f360839474cb82c766f762b8") + (revision "0")) + (package + (name "dolphin-emulator") + (version (git-version "5.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dolphin-emu/dolphin.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0g725wmhlim73zrhi47wmr1bmplpy4b7sbimd5pm8xpfhj5nm10l")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f + ;; The FindGTK2 cmake script only checks hardcoded directories for + ;; glib/gtk headers. + #:configure-flags + (list (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR=" + (assoc-ref %build-inputs "gtk+") + "/lib/gtk-2.0/include") + (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR=" + (assoc-ref %build-inputs "glib") + "/lib/glib-2.0/include") + (string-append "-DX11_INCLUDE_DIR=" + (assoc-ref %build-inputs "libx11") + "/include") + (string-append "-DX11_LIBRARIES=" + (assoc-ref %build-inputs "libx11") + "/lib/libX11.so") + "-DX11_FOUND=1" + "-DENABLE_QT2=False"))) ; disable qt frontend + (native-inputs + `(("pkg-config" ,pkg-config) + ("gettext" ,gnu-gettext))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("ao" ,ao) + ("bluez" ,bluez) + ("eudev" ,eudev) + ("ffmpeg" ,ffmpeg) + ("glew" ,glew) + ("glib" ,glib) + ("glu" ,glu) + ("gtk+" ,gtk+-2) + ("libevdev" ,libevdev) + ("libpng" ,libpng) + ("libusb" ,libusb) + ("libx11" ,libx11) + ("libxi" ,libxi) + ("libxrandr" ,libxrandr) + ("lzo" ,lzo) + ("mesa" ,mesa) + ("miniupnpc" ,miniupnpc) + ("openal" ,openal) + ("pulseaudio" ,pulseaudio) + ("sdl2" ,sdl2) + ("soil" ,soil) + ("soundtouch" ,soundtouch) + ("wxwidgets" ,wxwidgets-gtk2-3.1) + ("zlib" ,zlib))) + (home-page "https://dolphin-emu.org/") + (synopsis "Nintendo Wii and GameCube emulator") + (description + "Dolphin is an emulator for two Nintendo video game consoles: the +GameCube and the Wii. It provides compatibility with all PC controllers, +turbo speed, networked multiplayer, and graphical enhancements.") + (license license:gpl2)))) -- 2.16.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#30380] gnu: Add dolphin-emulator. 2018-02-07 16:58 [bug#30380] gnu: Add dolphin-emulator Thompson, David @ 2018-02-07 20:43 ` Björn Höfling 2018-02-07 20:53 ` Thompson, David 2018-02-16 9:20 ` [bug#30380] gnu: Add dolphin-emu Rutger Helling 1 sibling, 1 reply; 15+ messages in thread From: Björn Höfling @ 2018-02-07 20:43 UTC (permalink / raw) To: Thompson, David; +Cc: 30380 [-- Attachment #1: Type: text/plain, Size: 1603 bytes --] On Wed, 7 Feb 2018 11:58:02 -0500 "Thompson, David" <dthompson2@worcester.edu> wrote: > Here a couple of patches that add the Dolphin emulator. I used a Git > snapshot because the project goes *years* between releasing official > source tarballs while at the same time directing users to use binaries > built from the latest commit in their Git repo, so I think packaging > the Git source aligns best with what a Dolphin user would expect. > > - Dave Hi Dave, I haven't done a full review, here are some things I noticed: * License is GPLv2+, not only v2. * dolphin/Data/Sys/GC/font_*.bin: Licensed under ASL2.0. * The homepage states this package is only available for x86_64. If that is true, add a line like this to your package: (supported-systems '("x86_64-linux")) * dolphin/Installer/dxredist/ contains (Windows) binaries. Remove with a snippet. * Remove dolphin/Externals in a snippet. Or at least those that you have added as dependencies. * There are binaries in the distribution: dolphin/Data/Sys/GC/dsp_coef.bin and dsp_rom.bin The commit message says something like "based off of observed effects on the virtual machine", but still this is binaray. Or is there some way of building this from commented assembly? Here is the full commit message: https://github.com/dolphin-emu/dolphin/commit/e3531d17d700339828d7bab192c66fba5fcbac86 * Finally, doesn't this encourage people to use non-free software, i.e. the original manufacturers game discs? Or is there any free software implementation running on this emulator? Björn [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 181 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#30380] gnu: Add dolphin-emulator. 2018-02-07 20:43 ` Björn Höfling @ 2018-02-07 20:53 ` Thompson, David 2018-02-09 10:21 ` Ludovic Courtès 0 siblings, 1 reply; 15+ messages in thread From: Thompson, David @ 2018-02-07 20:53 UTC (permalink / raw) To: Björn Höfling; +Cc: 30380 Hello, On Wed, Feb 7, 2018 at 3:43 PM, Björn Höfling <bjoern.hoefling@bjoernhoefling.de> wrote: > On Wed, 7 Feb 2018 11:58:02 -0500 > "Thompson, David" <dthompson2@worcester.edu> wrote: > >> Here a couple of patches that add the Dolphin emulator. I used a Git >> snapshot because the project goes *years* between releasing official >> source tarballs while at the same time directing users to use binaries >> built from the latest commit in their Git repo, so I think packaging >> the Git source aligns best with what a Dolphin user would expect. >> >> - Dave > > Hi Dave, > > I haven't done a full review, here are some things I noticed: > > * License is GPLv2+, not only v2. > * dolphin/Data/Sys/GC/font_*.bin: Licensed under ASL2.0. > * The homepage states this package is only available for x86_64. > If that is true, add a line like this to your package: > (supported-systems '("x86_64-linux")) > * dolphin/Installer/dxredist/ contains (Windows) binaries. Remove with > a snippet. > * Remove dolphin/Externals in a snippet. Or at least those that you > have added as dependencies. > * There are binaries in the distribution: > dolphin/Data/Sys/GC/dsp_coef.bin and dsp_rom.bin > The commit message says something like "based off of observed > effects on the virtual machine", but still this is binaray. Or is there > some way of building this from commented assembly? Here is the full > commit message: > https://github.com/dolphin-emu/dolphin/commit/e3531d17d700339828d7bab192c66fba5fcbac86 > > * Finally, doesn't this encourage people to use non-free software, i.e. > the original manufacturers game discs? Or is there any free software > implementation running on this emulator? > > Björn Nevermind. I am dropping this patch set. Sorry, - Dave ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#30380] gnu: Add dolphin-emulator. 2018-02-07 20:53 ` Thompson, David @ 2018-02-09 10:21 ` Ludovic Courtès 2018-02-09 14:11 ` Thompson, David 0 siblings, 1 reply; 15+ messages in thread From: Ludovic Courtès @ 2018-02-09 10:21 UTC (permalink / raw) To: Thompson, David; +Cc: 30380 Hi David, "Thompson, David" <dthompson2@worcester.edu> skribis: > Nevermind. I am dropping this patch set. To clarify, is it because of freedom issues like Björn suggested, or due to lack of time? Thank you, and thanks Björn for taking the time to look into it! Ludo’. ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#30380] gnu: Add dolphin-emulator. 2018-02-09 10:21 ` Ludovic Courtès @ 2018-02-09 14:11 ` Thompson, David 2018-02-09 15:52 ` Manolis Ragkousis 0 siblings, 1 reply; 15+ messages in thread From: Thompson, David @ 2018-02-09 14:11 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 30380 On Fri, Feb 9, 2018 at 5:21 AM, Ludovic Courtès <ludo@gnu.org> wrote: > Hi David, > > "Thompson, David" <dthompson2@worcester.edu> skribis: > >> Nevermind. I am dropping this patch set. > > To clarify, is it because of freedom issues like Björn suggested, or due > to lack of time? I can just tell there's going to be a lot of friction here so it's easier if I just keep this in my personal package collection instead. - Dave ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#30380] gnu: Add dolphin-emulator. 2018-02-09 14:11 ` Thompson, David @ 2018-02-09 15:52 ` Manolis Ragkousis 2018-02-09 16:10 ` Thompson, David 0 siblings, 1 reply; 15+ messages in thread From: Manolis Ragkousis @ 2018-02-09 15:52 UTC (permalink / raw) To: Thompson, David; +Cc: 30380 Hello everyone, On 02/09/18 16:11, Thompson, David wrote: > On Fri, Feb 9, 2018 at 5:21 AM, Ludovic Courtès <ludo@gnu.org> wrote: >> Hi David, >> >> "Thompson, David" <dthompson2@worcester.edu> skribis: >> >>> Nevermind. I am dropping this patch set. >> >> To clarify, is it because of freedom issues like Björn suggested, or due >> to lack of time? > > I can just tell there's going to be a lot of friction here so it's > easier if I just keep this in my personal package collection instead. > And why should this be a reason to stop packaging dolphin? If dolphin can be packaged without the binaries we should definitely have it in Guix. How will we be able to reverse engineer proprietary software, if we don't have a way to test it? And besides there are free software gamecube homebrew applications which can run on dolphin. David if you don't intend to continue on this patch, I will take it over to try and find if it possible for it to be built without any proprietary binaries. Manolis ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#30380] gnu: Add dolphin-emulator. 2018-02-09 15:52 ` Manolis Ragkousis @ 2018-02-09 16:10 ` Thompson, David 0 siblings, 0 replies; 15+ messages in thread From: Thompson, David @ 2018-02-09 16:10 UTC (permalink / raw) To: Manolis Ragkousis; +Cc: 30380 On Fri, Feb 9, 2018 at 10:52 AM, Manolis Ragkousis <manolis837@gmail.com> wrote: > Hello everyone, > > On 02/09/18 16:11, Thompson, David wrote: >> On Fri, Feb 9, 2018 at 5:21 AM, Ludovic Courtès <ludo@gnu.org> wrote: >>> Hi David, >>> >>> "Thompson, David" <dthompson2@worcester.edu> skribis: >>> >>>> Nevermind. I am dropping this patch set. >>> >>> To clarify, is it because of freedom issues like Björn suggested, or due >>> to lack of time? >> >> I can just tell there's going to be a lot of friction here so it's >> easier if I just keep this in my personal package collection instead. >> > > And why should this be a reason to stop packaging dolphin? If dolphin > can be packaged without the binaries we should definitely have it in > Guix. How will we be able to reverse engineer proprietary software, if > we don't have a way to test it? And besides there are free software > gamecube homebrew applications which can run on dolphin. > > David if you don't intend to continue on this patch, I will take it over > to try and find if it possible for it to be built without any > proprietary binaries. Sure, you and/or Rutger should feel free to modify it. - Dave ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#30380] gnu: Add dolphin-emu. 2018-02-07 16:58 [bug#30380] gnu: Add dolphin-emulator Thompson, David 2018-02-07 20:43 ` Björn Höfling @ 2018-02-16 9:20 ` Rutger Helling 2018-02-20 22:52 ` Björn Höfling 1 sibling, 1 reply; 15+ messages in thread From: Rutger Helling @ 2018-02-16 9:20 UTC (permalink / raw) To: 30380, dthompson2, manolis837, bjoern.hoefling, ludo [-- Attachment #1.1: Type: text/plain, Size: 435 bytes --] Hello everyone, As promised I've updated these patches. Just to reiterate, these are David's patches. I've only changed a few things. Here's the changes of the top of my head: * First patch is unchanged. * Renamed to dolphin-emu instead of dolphin-emulator since that seems like a more canonical name. * Incorporated Björn's suggestions. * Added a few more inputs to get rid of more externals. * Enabled Qt interface. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.2: 0001-gnu-Add-wxwidgets-gtk2-3.1.patch --] [-- Type: text/x-patch, Size: 1058 bytes --] From b09950c2847be7f17ea57906714f74a5ca2f671b Mon Sep 17 00:00:00 2001 From: David Thompson <davet@gnu.org> Date: Wed, 7 Feb 2018 06:28:46 -0500 Subject: [PATCH 1/2] gnu: Add wxwidgets-gtk2-3.1. * gnu/packages/wxwidgets.scm (wxwidgets-gtk2-3.1): New variable. --- gnu/packages/wxwidgets.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index 84446d8ef..9f7a87ca4 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -126,6 +126,14 @@ and many other languages.") ((#:configure-flags flags) `(cons "--enable-mediactrl" ,flags)))))) +(define-public wxwidgets-gtk2-3.1 + (package (inherit wxwidgets-3.1) + (inputs `(("gtk+" ,gtk+-2) + ,@(alist-delete + "gtk+" + (package-inputs wxwidgets-3.1)))) + (name "wxwidgets-gtk2"))) + (define-public python2-wxpython (package (name "python2-wxpython") -- 2.16.1 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.3: 0002-gnu-Add-dolphin-emu.patch --] [-- Type: text/x-patch, Size: 6538 bytes --] From 4d4b896d4e437ee81772939ef408943073504c51 Mon Sep 17 00:00:00 2001 From: Rutger Helling <rhelling@mykolab.com> Date: Fri, 16 Feb 2018 09:57:31 +0100 Subject: [PATCH 2/2] gnu: Add dolphin-emu. * gnu/packages/games.scm (dolphin-emu): New variable. --- gnu/packages/games.scm | 114 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 113 insertions(+), 1 deletion(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 286d0feef..898047f5b 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 John Darrington <jmd@gnu.org> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright © 2014, 2015, 2016 David Thompson <dthompson2@worcester.edu> +;;; Copyright © 2014, 2015, 2016, 2018 David Thompson <dthompson2@worcester.edu> ;;; Copyright © 2014, 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com> ;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net> @@ -88,6 +88,7 @@ #:use-module (gnu packages libcanberra) #:use-module (gnu packages libedit) #:use-module (gnu packages libunwind) + #:use-module (gnu packages libusb) #:use-module (gnu packages haskell) #:use-module (gnu packages mp3) #:use-module (gnu packages music) @@ -112,6 +113,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages gstreamer) #:use-module (gnu packages bash) + #:use-module (gnu packages digest) #:use-module (gnu packages perl) #:use-module (gnu packages qt) #:use-module (gnu packages compression) @@ -5549,3 +5551,113 @@ hacking the gamification of contribution graphs on platforms such as Github or Gitlab.") (home-page "https://github.com/umayr/badass") (license license:expat)))) + +;; Building from recent Git because the official 5.0 release no longer builds. +(define-public dolphin-emu + (let ((commit "d04b179111f8d863f360839474cb82c766f762b8") + (revision "0")) + (package + (name "dolphin-emu") + (version (git-version "5.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dolphin-emu/dolphin.git") + (commit commit))) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file-recursively + ;; Remove Windows binaries. + '("Installer/dxredist/" + + ; Remove external stuff we don't need. + "Externals/LZO" + "Externals/OpenAL" + "Externals/Qt" + "Externals/SFML" + "Externals/SOIL" + "Externals/curl" + "Externals/ffmpeg" + "Externals/gettext" + "Externals/hidapi" + "Externals/libpng" + "Externals/libusb" + "Externals/mbedtls" + "Externals/miniupnpc" + "Externals/wxWidgets3" + "Externals/zlib" + + ; TODO: See if we can build these files from + ; source, delete until then. + "Data/Sys/GC/dsp_coef.bin" + "Data/Sys/GC/dsp_rom.bin")) + #t)) + (sha256 + (base32 + "0g725wmhlim73zrhi47wmr1bmplpy4b7sbimd5pm8xpfhj5nm10l")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f + ;; The FindGTK2 cmake script only checks hardcoded directories for + ;; glib/gtk headers. + #:configure-flags + (list (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR=" + (assoc-ref %build-inputs "gtk+") + "/lib/gtk-2.0/include") + (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR=" + (assoc-ref %build-inputs "glib") + "/lib/glib-2.0/include") + (string-append "-DX11_INCLUDE_DIR=" + (assoc-ref %build-inputs "libx11") + "/include") + (string-append "-DX11_LIBRARIES=" + (assoc-ref %build-inputs "libx11") + "/lib/libX11.so") + "-DX11_FOUND=1"))) + ; TODO: Make Vulkan backend work. + (native-inputs + `(("pkg-config" ,pkg-config) + ("gettext" ,gnu-gettext))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("ao" ,ao) + ("bluez" ,bluez) + ("curl" ,curl) + ("eudev" ,eudev) + ("ffmpeg" ,ffmpeg) + ("glew" ,glew) + ("glib" ,glib) + ("glu" ,glu) + ("gtk+" ,gtk+-2) + ("hidapi" ,hidapi) + ("libevdev" ,libevdev) + ("libpng" ,libpng) + ("libusb" ,libusb) + ("libx11" ,libx11) + ("libxi" ,libxi) + ("libxrandr" ,libxrandr) + ("lzo" ,lzo) + ("mbedtls-apache" ,mbedtls-apache) + ("mesa" ,mesa) + ("miniupnpc" ,miniupnpc) + ("openal" ,openal) + ("pulseaudio" ,pulseaudio) + ("qtbase" ,qtbase) + ("sdl2" ,sdl2) + ("sfml" ,sfml) + ("soil" ,soil) + ("soundtouch" ,soundtouch) + ("wxwidgets" ,wxwidgets-gtk2-3.1) + ("zlib" ,zlib))) + (home-page "https://dolphin-emu.org/") + (synopsis "Nintendo Wii and GameCube emulator") + (description + "Dolphin is an emulator for two Nintendo video game consoles: the +GameCube and the Wii. It provides compatibility with all PC controllers, +turbo speed, networked multiplayer, and graphical enhancements.") + (supported-systems '("x86_64-linux")) ; TODO: should also work on ARM64. + ; dolphin/Data/Sys/GC/font_*.bin: Licensed under ASL2.0. + (license (list license:gpl2+ license:asl2.0))))) -- 2.16.1 [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#30380] gnu: Add dolphin-emu. 2018-02-16 9:20 ` [bug#30380] gnu: Add dolphin-emu Rutger Helling @ 2018-02-20 22:52 ` Björn Höfling 2018-02-21 9:48 ` Rutger Helling 2018-02-21 16:37 ` Leo Famulari 0 siblings, 2 replies; 15+ messages in thread From: Björn Höfling @ 2018-02-20 22:52 UTC (permalink / raw) To: Rutger Helling; +Cc: 30380 Hi Rutger, On Fri, 16 Feb 2018 10:20:46 +0100 Rutger Helling <rhelling@mykolab.com> wrote: > Hello everyone, > > As promised I've updated these patches. Just to reiterate, these are > David's patches. I've only changed a few things. > > Here's the changes of the top of my head: > * First patch is unchanged. > * Renamed to dolphin-emu instead of dolphin-emulator since that seems > like a more canonical name. > * Incorporated Björn's suggestions. > * Added a few more inputs to get rid of more externals. > * Enabled Qt interface. Thanks for taking another iteration of this. In my review of the first patch by David I stated that I haven't done a full review. I just mentioned some points I noticed, not all possible critics. I still haven't done a full review and found some more points. As Dave said, this package bears some "friction": I'm still not convinced of it. For me this doesn't feel like a sound, perfect package. It is a collection of the emulators code plus binaries plus reverse-engineered codes and notes plus external documentation. I thought of quickly fixing it myself but I find it hard to figure out what of the Data and the docs directory is really part of the program (documentation) and what can safely be stripped away. On the other hand there seams to be interest by at least 2-3 people to make a package out of that and I wouldn't say it's not possible. Here is what I found that should be stripped away: /review/dolphin-emu-5.0-0.d04b179-checkout$ find . -name "*.rar" -or -name "*.pdf" -or -name "*.bin" -or -name "*.pdf" -or -name "*.dsy" -or -name "*.jar" -or -name "*.exe" ./docs/WiiMote/Dumps/WiiMote_AttribTree_0x10001.bin ./docs/WiiMote/Dumps/WiiMote_AttribTree_0x10000.bin ./docs/WiiMote/Dumps/WiiMote_AttribTree_0x10000_strip.bin ./docs/WiiMote/Dumps/WiiMote_AttribTree_0x10001_strip.bin ./docs/WiiMote/Dumps/WiiMote_ServiceScan.bin ./docs/WiiMote/HID_SPEC_V10.rar ./docs/DSP/GC_DSP.pdf ./Installer/vcredist/vc_redist.x64.exe ./Source/Android/code-style-java.jar ./Source/Android/gradle/wrapper/gradle-wrapper.jar ./Data/Sys/Wii/shared2/wc24/nwc24dl.bin ./Data/Sys/Wii/shared2/wc24/misc.bin ./Data/Sys/Wii/shared2/wc24/nwc24fls.bin ./Data/Sys/Wii/shared2/wc24/nwc24fl.bin ./Data/Sys/GC/font_western.bin ./Data/Sys/GC/font_japanese.bin ./Data/Sys/totaldb.dsy ./Data/Sys/codehandler.bin Yours, Björn ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#30380] gnu: Add dolphin-emu. 2018-02-20 22:52 ` Björn Höfling @ 2018-02-21 9:48 ` Rutger Helling 2018-02-21 15:19 ` Marius Bakke 2018-02-21 16:37 ` Leo Famulari 1 sibling, 1 reply; 15+ messages in thread From: Rutger Helling @ 2018-02-21 9:48 UTC (permalink / raw) To: Björn Höfling; +Cc: 30380 [-- Attachment #1.1: Type: text/plain, Size: 3044 bytes --] Hi Björn, Thanks for the review. I've added a phase to the patch that removes all the file types that you mentioned entirely. I think that the only files that are truly needed to work are "Data/Sys/GC/font_{western,japanese}.bin". Thankfully these two files can be built from the source code. I've done that in the 'remove-more-binaries&generate-fonts phase as well. On Tue, 20 Feb 2018 23:52:08 +0100 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> wrote: > Hi Rutger, > > On Fri, 16 Feb 2018 10:20:46 +0100 > Rutger Helling <rhelling@mykolab.com> wrote: > > > Hello everyone, > > > > As promised I've updated these patches. Just to reiterate, these are > > David's patches. I've only changed a few things. > > > > Here's the changes of the top of my head: > > * First patch is unchanged. > > * Renamed to dolphin-emu instead of dolphin-emulator since that > > seems like a more canonical name. > > * Incorporated Björn's suggestions. > > * Added a few more inputs to get rid of more externals. > > * Enabled Qt interface. > > Thanks for taking another iteration of this. > > In my review of the first patch by David I stated that I haven't done > a full review. I just mentioned some points I noticed, not all > possible critics. I still haven't done a full review and found some > more points. > > As Dave said, this package bears some "friction": I'm still not > convinced of it. For me this doesn't feel like a sound, perfect > package. It is a collection of the emulators code plus binaries plus > reverse-engineered codes and notes plus external documentation. > > I thought of quickly fixing it myself but I find it hard to > figure out what of the Data and the docs directory is really part of > the program (documentation) and what can safely be stripped away. > > On the other hand there seams to be interest by at least 2-3 people to > make a package out of that and I wouldn't say it's not possible. > > Here is what I found that should be stripped away: > > /review/dolphin-emu-5.0-0.d04b179-checkout$ find . -name "*.rar" -or > -name "*.pdf" -or -name "*.bin" -or -name "*.pdf" -or -name "*.dsy" > -or -name "*.jar" -or -name "*.exe" > > ./docs/WiiMote/Dumps/WiiMote_AttribTree_0x10001.bin > ./docs/WiiMote/Dumps/WiiMote_AttribTree_0x10000.bin > ./docs/WiiMote/Dumps/WiiMote_AttribTree_0x10000_strip.bin > ./docs/WiiMote/Dumps/WiiMote_AttribTree_0x10001_strip.bin > ./docs/WiiMote/Dumps/WiiMote_ServiceScan.bin > ./docs/WiiMote/HID_SPEC_V10.rar > ./docs/DSP/GC_DSP.pdf > ./Installer/vcredist/vc_redist.x64.exe > ./Source/Android/code-style-java.jar > ./Source/Android/gradle/wrapper/gradle-wrapper.jar > ./Data/Sys/Wii/shared2/wc24/nwc24dl.bin > ./Data/Sys/Wii/shared2/wc24/misc.bin > ./Data/Sys/Wii/shared2/wc24/nwc24fls.bin > ./Data/Sys/Wii/shared2/wc24/nwc24fl.bin > ./Data/Sys/GC/font_western.bin > ./Data/Sys/GC/font_japanese.bin > ./Data/Sys/totaldb.dsy > ./Data/Sys/codehandler.bin > > > Yours, > > Björn > [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.2: 0001-gnu-Add-wxwidgets-gtk2-3.1.patch --] [-- Type: text/x-patch, Size: 1058 bytes --] From b09950c2847be7f17ea57906714f74a5ca2f671b Mon Sep 17 00:00:00 2001 From: David Thompson <davet@gnu.org> Date: Wed, 7 Feb 2018 06:28:46 -0500 Subject: [PATCH 1/2] gnu: Add wxwidgets-gtk2-3.1. * gnu/packages/wxwidgets.scm (wxwidgets-gtk2-3.1): New variable. --- gnu/packages/wxwidgets.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index 84446d8ef..9f7a87ca4 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -126,6 +126,14 @@ and many other languages.") ((#:configure-flags flags) `(cons "--enable-mediactrl" ,flags)))))) +(define-public wxwidgets-gtk2-3.1 + (package (inherit wxwidgets-3.1) + (inputs `(("gtk+" ,gtk+-2) + ,@(alist-delete + "gtk+" + (package-inputs wxwidgets-3.1)))) + (name "wxwidgets-gtk2"))) + (define-public python2-wxpython (package (name "python2-wxpython") -- 2.16.1 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.3: 0002-gnu-Add-dolphin-emu.patch --] [-- Type: text/x-patch, Size: 7693 bytes --] From f1833eb828326705e2ff5693f05b1b5fd4b0de33 Mon Sep 17 00:00:00 2001 From: Rutger Helling <rhelling@mykolab.com> Date: Wed, 21 Feb 2018 10:35:44 +0100 Subject: [PATCH 2/2] gnu: Add dolphin-emu. * gnu/packages/games.scm (dolphin-emu): New variable. --- gnu/packages/games.scm | 132 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 131 insertions(+), 1 deletion(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 0ac7d992c..eaab55cee 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 John Darrington <jmd@gnu.org> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright © 2014, 2015, 2016 David Thompson <dthompson2@worcester.edu> +;;; Copyright © 2014, 2015, 2016, 2018 David Thompson <dthompson2@worcester.edu> ;;; Copyright © 2014, 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com> ;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net> @@ -89,6 +89,7 @@ #:use-module (gnu packages libcanberra) #:use-module (gnu packages libedit) #:use-module (gnu packages libunwind) + #:use-module (gnu packages libusb) #:use-module (gnu packages haskell) #:use-module (gnu packages mp3) #:use-module (gnu packages music) @@ -113,6 +114,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages gstreamer) #:use-module (gnu packages bash) + #:use-module (gnu packages digest) #:use-module (gnu packages perl) #:use-module (gnu packages qt) #:use-module (gnu packages compression) @@ -5767,3 +5769,131 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.") (license:non-copyleft ; modified dumb "file://dumb/licence.txt" "Dumb license, explicitly GPL compatible."))))) + +;; Building from recent Git because the official 5.0 release no longer builds. +(define-public dolphin-emu + (let ((commit "d04b179111f8d863f360839474cb82c766f762b8") + (revision "0")) + (package + (name "dolphin-emu") + (version (git-version "5.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dolphin-emu/dolphin.git") + (commit commit))) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file-recursively + ; Remove external stuff we don't need. + '("Externals/LZO" + "Externals/OpenAL" + "Externals/Qt" + "Externals/SFML" + "Externals/SOIL" + "Externals/curl" + "Externals/ffmpeg" + "Externals/gettext" + "Externals/hidapi" + "Externals/libpng" + "Externals/libusb" + "Externals/mbedtls" + "Externals/miniupnpc" + "Externals/wxWidgets3" + "Externals/zlib")) + #t)) + (sha256 + (base32 + "0g725wmhlim73zrhi47wmr1bmplpy4b7sbimd5pm8xpfhj5nm10l")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f + ;; The FindGTK2 cmake script only checks hardcoded directories for + ;; glib/gtk headers. + + #:phases + (modify-phases %standard-phases + (add-before 'configure 'remove-more-binaries&generate-fonts + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((fontfile + (string-append (assoc-ref inputs "font-wqy-microhei") + "/share/fonts/truetype/wqy-microhei.ttc"))) + (for-each delete-file (find-files "." "\\.bin$")) + (for-each delete-file (find-files "." "\\.dsy$")) + (for-each delete-file (find-files "." "\\.exe$")) + (for-each delete-file (find-files "." "\\.jar$")) + (for-each delete-file (find-files "." "\\.pdf$")) + (for-each delete-file (find-files "." "\\.rar$")) + (chdir "docs") + (invoke "bash" "-c" "g++ -O2 -std=c++11 $(freetype-config \ +--cflags --libs) gc-font-tool.cpp -o gc-font-tool") + (invoke "./gc-font-tool" "a" fontfile "font_western.bin") + (invoke "./gc-font-tool" "s" fontfile "font_japanese.bin") + (copy-file "font_japanese.bin" "../Data/Sys/GC/font_japanese.bin") + (copy-file "font_western.bin" "../Data/Sys/GC/font_western.bin") + (chdir "..") + #t)))) + + #:configure-flags + (list (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR=" + (assoc-ref %build-inputs "gtk+") + "/lib/gtk-2.0/include") + (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR=" + (assoc-ref %build-inputs "glib") + "/lib/glib-2.0/include") + (string-append "-DX11_INCLUDE_DIR=" + (assoc-ref %build-inputs "libx11") + "/include") + (string-append "-DX11_LIBRARIES=" + (assoc-ref %build-inputs "libx11") + "/lib/libX11.so") + "-DX11_FOUND=1"))) + ; TODO: Make Vulkan backend work. + (native-inputs + `(("pkg-config" ,pkg-config) + ("gettext" ,gnu-gettext))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("ao" ,ao) + ("bluez" ,bluez) + ("curl" ,curl) + ("eudev" ,eudev) + ("ffmpeg" ,ffmpeg) + ("font-wqy-microhei" ,font-wqy-microhei) + ("freetype" ,freetype) + ("glew" ,glew) + ("glib" ,glib) + ("glu" ,glu) + ("gtk+" ,gtk+-2) + ("hidapi" ,hidapi) + ("libevdev" ,libevdev) + ("libpng" ,libpng) + ("libusb" ,libusb) + ("libx11" ,libx11) + ("libxi" ,libxi) + ("libxrandr" ,libxrandr) + ("lzo" ,lzo) + ("mbedtls-apache" ,mbedtls-apache) + ("mesa" ,mesa) + ("miniupnpc" ,miniupnpc) + ("openal" ,openal) + ("pulseaudio" ,pulseaudio) + ("qtbase" ,qtbase) + ("sdl2" ,sdl2) + ("sfml" ,sfml) + ("soil" ,soil) + ("soundtouch" ,soundtouch) + ("wxwidgets" ,wxwidgets-gtk2-3.1) + ("zlib" ,zlib))) + (home-page "https://dolphin-emu.org/") + (synopsis "Nintendo Wii and GameCube emulator") + (description + "Dolphin is an emulator for two Nintendo video game consoles: the +GameCube and the Wii. It provides compatibility with all PC controllers, +turbo speed, networked multiplayer, and graphical enhancements.") + (supported-systems '("x86_64-linux")) ; TODO: should also work on ARM64. + ; dolphin/Data/Sys/GC/font_*.bin: Licensed under ASL2.0. + (license (list license:gpl2+ license:asl2.0))))) -- 2.16.2 [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#30380] gnu: Add dolphin-emu. 2018-02-21 9:48 ` Rutger Helling @ 2018-02-21 15:19 ` Marius Bakke 2018-02-21 15:55 ` Rutger Helling 0 siblings, 1 reply; 15+ messages in thread From: Marius Bakke @ 2018-02-21 15:19 UTC (permalink / raw) To: Rutger Helling, Björn Höfling; +Cc: 30380 [-- Attachment #1: Type: text/plain, Size: 694 bytes --] Rutger Helling <rhelling@mykolab.com> writes: > Hi Björn, > > Thanks for the review. I've added a phase to the patch that removes all > the file types that you mentioned entirely. > > I think that the only files that are truly needed to work are > "Data/Sys/GC/font_{western,japanese}.bin". Thankfully these two > files can be built from the source code. I've done that in the > 'remove-more-binaries&generate-fonts phase as well. Thanks! Can you delete the files in the source snippet instead? Otherwise they will show up in `guix build --source`, which we cannot allow for non-free files. Somewhat unrelated, WDYT about creating a new (gnu packages emulators) module? [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#30380] gnu: Add dolphin-emu. 2018-02-21 15:19 ` Marius Bakke @ 2018-02-21 15:55 ` Rutger Helling 0 siblings, 0 replies; 15+ messages in thread From: Rutger Helling @ 2018-02-21 15:55 UTC (permalink / raw) To: Marius Bakke; +Cc: 30380 [-- Attachment #1: Type: text/plain, Size: 908 bytes --] On Wed, 21 Feb 2018 16:19:39 +0100 Marius Bakke <mbakke@fastmail.com> wrote: > Rutger Helling <rhelling@mykolab.com> writes: > > > Hi Björn, > > > > Thanks for the review. I've added a phase to the patch that removes > > all the file types that you mentioned entirely. > > > > I think that the only files that are truly needed to work are > > "Data/Sys/GC/font_{western,japanese}.bin". Thankfully these two > > files can be built from the source code. I've done that in the > > 'remove-more-binaries&generate-fonts phase as well. > > Thanks! Can you delete the files in the source snippet instead? > Otherwise they will show up in `guix build --source`, which we cannot > allow for non-free files. > Will do! > Somewhat unrelated, WDYT about creating a new (gnu packages emulators) > module? Sounds good. Should I create the module and push dolphin-emu on it to start? [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#30380] gnu: Add dolphin-emu. 2018-02-20 22:52 ` Björn Höfling 2018-02-21 9:48 ` Rutger Helling @ 2018-02-21 16:37 ` Leo Famulari 2018-02-21 21:55 ` Björn Höfling 1 sibling, 1 reply; 15+ messages in thread From: Leo Famulari @ 2018-02-21 16:37 UTC (permalink / raw) To: Björn Höfling; +Cc: Rutger Helling, 30380 [-- Attachment #1: Type: text/plain, Size: 414 bytes --] On Tue, Feb 20, 2018 at 11:52:08PM +0100, Björn Höfling wrote: > Here is what I found that should be stripped away: > > /review/dolphin-emu-5.0-0.d04b179-checkout$ find . -name "*.rar" -or > -name "*.pdf" -or -name "*.bin" -or -name "*.pdf" -or -name "*.dsy" -or -name "*.jar" -or -name "*.exe" I didn't look at the file in question, but in general it's not necessary to remove PDFs from Guix packages. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#30380] gnu: Add dolphin-emu. 2018-02-21 16:37 ` Leo Famulari @ 2018-02-21 21:55 ` Björn Höfling 2018-02-22 8:46 ` bug#30380: " Rutger Helling 0 siblings, 1 reply; 15+ messages in thread From: Björn Höfling @ 2018-02-21 21:55 UTC (permalink / raw) To: Leo Famulari; +Cc: Rutger Helling, 30380 On Wed, 21 Feb 2018 11:37:30 -0500 Leo Famulari <leo@famulari.name> wrote: > On Tue, Feb 20, 2018 at 11:52:08PM +0100, Björn Höfling wrote: > > Here is what I found that should be stripped away: > > > > /review/dolphin-emu-5.0-0.d04b179-checkout$ find . -name "*.rar" -or > > -name "*.pdf" -or -name "*.bin" -or -name "*.pdf" -or -name "*.dsy" > > -or -name "*.jar" -or -name "*.exe" > > I didn't look at the file in question, but in general it's not > necessary to remove PDFs from Guix packages. Ah, sorry, you are right. I was confused about all the findings: ./docs/WiiMote/HID_SPEC_V10.rar This .rar contained just one PDF that is under proprietary copyright. It should be snipped away. ./docs/DSP/GC_DSP.pdf This is a reverse-engineered documentation of the GameCube DSP and is licensed under "GNU Free Documentation License, Version 1.2 or any later version", so a "licenses:fdl1.2+" should be added for this to the license list. Björn ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#30380: gnu: Add dolphin-emu. 2018-02-21 21:55 ` Björn Höfling @ 2018-02-22 8:46 ` Rutger Helling 0 siblings, 0 replies; 15+ messages in thread From: Rutger Helling @ 2018-02-22 8:46 UTC (permalink / raw) To: Björn Höfling; +Cc: 30380-done [-- Attachment #1: Type: text/plain, Size: 1440 bytes --] I've added the license, moved deleting the files to the snippet (minus the PDF) and pushed it under a new (gnu packages emulators) module. I'll open a bug report later about moving the existing emulators over from (gnu packages games) to (gnu packages emulators). Thanks everyone! On Wed, 21 Feb 2018 22:55:41 +0100 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> wrote: > On Wed, 21 Feb 2018 11:37:30 -0500 > Leo Famulari <leo@famulari.name> wrote: > > > On Tue, Feb 20, 2018 at 11:52:08PM +0100, Björn Höfling wrote: > > > Here is what I found that should be stripped away: > > > > > > /review/dolphin-emu-5.0-0.d04b179-checkout$ find . -name "*.rar" > > > -or -name "*.pdf" -or -name "*.bin" -or -name "*.pdf" -or -name > > > "*.dsy" -or -name "*.jar" -or -name "*.exe" > > > > I didn't look at the file in question, but in general it's not > > necessary to remove PDFs from Guix packages. > > Ah, sorry, you are right. I was confused about all the findings: > > ./docs/WiiMote/HID_SPEC_V10.rar > > This .rar contained just one PDF that is under proprietary copyright. > It should be snipped away. > > ./docs/DSP/GC_DSP.pdf > > This is a reverse-engineered documentation of the GameCube DSP and is > licensed under "GNU Free Documentation License, Version 1.2 or any > later version", so a "licenses:fdl1.2+" should be added for this to > the license list. > > Björn [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2018-02-22 8:47 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-02-07 16:58 [bug#30380] gnu: Add dolphin-emulator Thompson, David 2018-02-07 20:43 ` Björn Höfling 2018-02-07 20:53 ` Thompson, David 2018-02-09 10:21 ` Ludovic Courtès 2018-02-09 14:11 ` Thompson, David 2018-02-09 15:52 ` Manolis Ragkousis 2018-02-09 16:10 ` Thompson, David 2018-02-16 9:20 ` [bug#30380] gnu: Add dolphin-emu Rutger Helling 2018-02-20 22:52 ` Björn Höfling 2018-02-21 9:48 ` Rutger Helling 2018-02-21 15:19 ` Marius Bakke 2018-02-21 15:55 ` Rutger Helling 2018-02-21 16:37 ` Leo Famulari 2018-02-21 21:55 ` Björn Höfling 2018-02-22 8:46 ` bug#30380: " Rutger Helling
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).