From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45382) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eoR2P-0004p8-4q for guix-patches@gnu.org; Wed, 21 Feb 2018 04:50:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eoR2I-0001fV-HU for guix-patches@gnu.org; Wed, 21 Feb 2018 04:50:09 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:45730) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eoR2I-0001ez-Bp for guix-patches@gnu.org; Wed, 21 Feb 2018 04:50:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eoR2I-0008Ui-4g for guix-patches@gnu.org; Wed, 21 Feb 2018 04:50:02 -0500 Subject: [bug#30380] gnu: Add dolphin-emu. Resent-Message-ID: Date: Wed, 21 Feb 2018 10:48:52 +0100 From: Rutger Helling Message-ID: <20180221104852.77a2daa9@mykolab.com> In-Reply-To: <20180220235208.54ae3b81@alma-ubu> References: <20180216102046.562bda38@mykolab.com> <20180220235208.54ae3b81@alma-ubu> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/JzrQ0hZ15D=SfT_.lhx/cTy"; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: =?UTF-8?Q?Bj=C3=B6rn_?= =?UTF-8?Q?H=C3=B6fling?= Cc: 30380@debbugs.gnu.org --Sig_/JzrQ0hZ15D=SfT_.lhx/cTy Content-Type: multipart/mixed; boundary="MP_/fr8kWZ+XrMy=zsu/8x6FvMg" --MP_/fr8kWZ+XrMy=zsu/8x6FvMg Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi Bj=C3=B6rn, Thanks for the review. I've added a phase to the patch that removes all the file types that you mentioned entirely.=20 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=C3=B6rn H=C3=B6fling wrote: > Hi Rutger, >=20 > On Fri, 16 Feb 2018 10:20:46 +0100 > Rutger Helling wrote: >=20 > > Hello everyone, > >=20 > > As promised I've updated these patches. Just to reiterate, these are > > David's patches. I've only changed a few things. > >=20 > > 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=C3=B6rn's suggestions. > > * Added a few more inputs to get rid of more externals. > > * Enabled Qt interface. =20 >=20 > Thanks for taking another iteration of this.=20 >=20 > 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. >=20 > 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.=20 >=20 > 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. >=20 > 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. >=20 > Here is what I found that should be stripped away: >=20 > /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"=20 >=20 > ./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 >=20 >=20 > Yours, >=20 > Bj=C3=B6rn >=20 --MP_/fr8kWZ+XrMy=zsu/8x6FvMg Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0001-gnu-Add-wxwidgets-gtk2-3.1.patch =46rom b09950c2847be7f17ea57906714f74a5ca2f671b Mon Sep 17 00:00:00 2001 From: David Thompson 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)))))) =20 +(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") --=20 2.16.1 --MP_/fr8kWZ+XrMy=zsu/8x6FvMg Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0002-gnu-Add-dolphin-emu.patch =46rom f1833eb828326705e2ff5693f05b1b5fd4b0de33 Mon Sep 17 00:00:00 2001 From: Rutger Helling 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 =C2=A9 2013 John Darrington ;;; Copyright =C2=A9 2013 Nikita Karetnikov -;;; Copyright =C2=A9 2014, 2015, 2016 David Thompson +;;; Copyright =C2=A9 2014, 2015, 2016, 2018 David Thompson ;;; Copyright =C2=A9 2014, 2015, 2016, 2017 Eric Bavier ;;; Copyright =C2=A9 2014 Cyrill Schenkel ;;; Copyright =C2=A9 2014 Sylvain Beucler @@ -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 Harm= ony, 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 bui= lds. +(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.t= tc"))) + (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=3Dc++11 $(freetype-conf= ig \ +--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_japan= ese.bin") + (copy-file "font_western.bin" "../Data/Sys/GC/font_wester= n.bin") + (chdir "..") + #t)))) + + #:configure-flags + (list (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR=3D" + (assoc-ref %build-inputs "gtk+") + "/lib/gtk-2.0/include") + (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR=3D" + (assoc-ref %build-inputs "glib") + "/lib/glib-2.0/include") + (string-append "-DX11_INCLUDE_DIR=3D" + (assoc-ref %build-inputs "libx11") + "/include") + (string-append "-DX11_LIBRARIES=3D" + (assoc-ref %build-inputs "libx11") + "/lib/libX11.so") + "-DX11_FOUND=3D1"))) + ; 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 AR= M64. + ; dolphin/Data/Sys/GC/font_*.bin: Licensed under ASL2.0. + (license (list license:gpl2+ license:asl2.0))))) --=20 2.16.2 --MP_/fr8kWZ+XrMy=zsu/8x6FvMg-- --Sig_/JzrQ0hZ15D=SfT_.lhx/cTy Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEAVThuRzJ2e93ZI3n86cn20T8yjYFAlqNQIUACgkQ86cn20T8 yjaEIgf/WAzIZ4eLvs35Ui5tkQXtqHLtCcAqSrlvj0aW1uvV1rZIaEipw/UeYrcu x8O061W8CFehuEzc4AKBjEQV7KZziDgLIvQu1KSZTg+fcfS7VIJUL59WRB8deXSa wel2xZer8k1BgKbzfLRgkbVQ+gnKxCP15/0L+HzxbDk8dWFM9rhxItKqa7Pkj0OH sD8BmaxdRCkGWFZjjcgJrppAzFB6bpGkOAkMwVX8bPQMBv6wV3NGt6n0C4njiiG3 JtegnV2ZegXfX0xgFUMxaeFdWHnJ73OHg/h7KZqbpUSM6RCJrL2lrW7ntzndmVaT DE1TXOmz1pGuj/GJFTiOPZ4yBrxkbA== =CVll -----END PGP SIGNATURE----- --Sig_/JzrQ0hZ15D=SfT_.lhx/cTy--