From: Rutger Helling <rhelling@mykolab.com>
To: "Björn Höfling" <bjoern.hoefling@bjoernhoefling.de>
Cc: 30380@debbugs.gnu.org
Subject: [bug#30380] gnu: Add dolphin-emu.
Date: Wed, 21 Feb 2018 10:48:52 +0100 [thread overview]
Message-ID: <20180221104852.77a2daa9@mykolab.com> (raw)
In-Reply-To: <20180220235208.54ae3b81@alma-ubu>
[-- 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 --]
next prev parent reply other threads:[~2018-02-21 9:50 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
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
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180221104852.77a2daa9@mykolab.com \
--to=rhelling@mykolab.com \
--cc=30380@debbugs.gnu.org \
--cc=bjoern.hoefling@bjoernhoefling.de \
/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 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).