Re: [PATCHES] Mupen64Plus

2015-11-12 Thread Taylan Ulrich Bayırlı/Kammer
l...@gnu.org (Ludovic Courtès) writes:

> taylanbayi...@gmail.com (Taylan Ulrich "Bayırlı/Kammer") skribis:
>
>> Efraim Flashner  writes:
>>
>>> On hydra Mupen64plus-core fails to build on arm and mips.
>>>
>>> Mips failure message:
>>> starting phase `build'
>>> Makefile:127: *** CPU type "mips64" not supported.  Please file bug report 
>>> at 'http://code.google.com/p/mupen64plus/issues'.  Stop.
>>> phase `build' failed after 0.3 seconds
>>>
>>> Arm failure message:
>>> starting phase `build'
>>> Makefile:116: Architecture "armv7l" not officially supported.'
>
> [...]
>
>> I don't have any ARM machine on which I could investigate this issue,
>> so for now I'll just mark Mupen as only for i686 and x86_64.
>
> When adding a ‘supported-systems’ field, it’s best to add a comment
> above stating what evidence we have that some systems are not supported
> (in that case, that the top-level Makefile has a pre-defined list of
> supported architectures.)
>
> This helps others and your future self ;-) find out why this restriction
> is there and whether it still applies.
>
> Could you add such a comment?

Indeed, sorry about that.  Fixed. :-)

Taylan



Re: [PATCHES] Mupen64Plus

2015-11-12 Thread Ludovic Courtès
taylanbayi...@gmail.com (Taylan Ulrich "Bayırlı/Kammer") skribis:

> Efraim Flashner  writes:
>
>> On hydra Mupen64plus-core fails to build on arm and mips.
>>
>> Mips failure message:
>> starting phase `build'
>> Makefile:127: *** CPU type "mips64" not supported.  Please file bug report 
>> at 'http://code.google.com/p/mupen64plus/issues'.  Stop.
>> phase `build' failed after 0.3 seconds
>>
>> Arm failure message:
>> starting phase `build'
>> Makefile:116: Architecture "armv7l" not officially supported.'

[...]

> I don't have any ARM machine on which I could investigate this issue,
> so for now I'll just mark Mupen as only for i686 and x86_64.

When adding a ‘supported-systems’ field, it’s best to add a comment
above stating what evidence we have that some systems are not supported
(in that case, that the top-level Makefile has a pre-defined list of
supported architectures.)

This helps others and your future self ;-) find out why this restriction
is there and whether it still applies.

Could you add such a comment?

TIA,
Ludo’.



Re: [PATCHES] Mupen64Plus

2015-11-12 Thread Taylan Ulrich Bayırlı/Kammer
Efraim Flashner  writes:

> On hydra Mupen64plus-core fails to build on arm and mips.
>
> Mips failure message:
> starting phase `build'
> Makefile:127: *** CPU type "mips64" not supported.  Please file bug report at 
> 'http://code.google.com/p/mupen64plus/issues'.  Stop.
> phase `build' failed after 0.3 seconds
>
> Arm failure message:
> starting phase `build'
> Makefile:116: Architecture "armv7l" not officially supported.'
> CC  _obj/ai/ai_controller.o
> CC  _obj/api/callbacks.o
> In file included from 
> /gnu/store/q2c0kdp9rwzhhx0zksigzbpr84mfn36s-glibc-2.22/include/features.h:389:0,
>  from 
> /gnu/store/q2c0kdp9rwzhhx0zksigzbpr84mfn36s-glibc-2.22/include/stdint.h:25,
>  from 
> /gnu/store/bsl8g0m37wrarikagwp2rrbah8bn9xkc-gcc-4.9.3-lib/lib/gcc/arm-unknown-linux-gnueabihf/4.9.3/include/stdint.h:9,
>  from ../../src/ai/ai_controller.h:26,
>  from ../../src/ai/ai_controller.c:22:
> /gnu/store/q2c0kdp9rwzhhx0zksigzbpr84mfn36s-glibc-2.22/include/gnu/stubs.h:7:29:
>  fatal error: gnu/stubs-soft.h: No such file or directory
>  # include 
>  ^
> compilation terminated.
> Makefile:666: recipe for target '_obj/ai/ai_controller.o' failed
> make: *** [_obj/ai/ai_controller.o] Error 1
> make: *** Waiting for unfinished jobs
> In file included from 
> /gnu/store/q2c0kdp9rwzhhx0zksigzbpr84mfn36s-glibc-2.22/include/features.h:389:0,
>  from 
> /gnu/store/q2c0kdp9rwzhhx0zksigzbpr84mfn36s-glibc-2.22/include/stdio.h:27,
>  from ../../src/api/callbacks.c:27:
> /gnu/store/q2c0kdp9rwzhhx0zksigzbpr84mfn36s-glibc-2.22/include/gnu/stubs.h:7:29:
>  fatal error: gnu/stubs-soft.h: No such file or directory
>  # include 
>  ^
> compilation terminated.
> Makefile:666: recipe for target '_obj/api/callbacks.o' failed
> make: *** [_obj/api/callbacks.o] Error 1
> make: *** wait: No child processes.  Stop.
> phase `build' failed after 1.2 seconds

Aw, that's a shame.  Thanks for notifying.  (And maybe I should make a
habit of checking Hydra after pushing suspect packages.  It's no wonder
a Nintendo emulator isn't very portable.)

I don't have any ARM machine on which I could investigate this issue,
so for now I'll just mark Mupen as only for i686 and x86_64.

Taylan



Re: [PATCHES] Mupen64Plus

2015-11-12 Thread Efraim Flashner
On hydra Mupen64plus-core fails to build on arm and mips.

Mips failure message:
starting phase `build'
Makefile:127: *** CPU type "mips64" not supported.  Please file bug report at 
'http://code.google.com/p/mupen64plus/issues'.  Stop.
phase `build' failed after 0.3 seconds

Arm failure message:
starting phase `build'
Makefile:116: Architecture "armv7l" not officially supported.'
CC  _obj/ai/ai_controller.o
CC  _obj/api/callbacks.o
In file included from 
/gnu/store/q2c0kdp9rwzhhx0zksigzbpr84mfn36s-glibc-2.22/include/features.h:389:0,
 from 
/gnu/store/q2c0kdp9rwzhhx0zksigzbpr84mfn36s-glibc-2.22/include/stdint.h:25,
 from 
/gnu/store/bsl8g0m37wrarikagwp2rrbah8bn9xkc-gcc-4.9.3-lib/lib/gcc/arm-unknown-linux-gnueabihf/4.9.3/include/stdint.h:9,
 from ../../src/ai/ai_controller.h:26,
 from ../../src/ai/ai_controller.c:22:
/gnu/store/q2c0kdp9rwzhhx0zksigzbpr84mfn36s-glibc-2.22/include/gnu/stubs.h:7:29:
 fatal error: gnu/stubs-soft.h: No such file or directory
 # include 
 ^
compilation terminated.
Makefile:666: recipe for target '_obj/ai/ai_controller.o' failed
make: *** [_obj/ai/ai_controller.o] Error 1
make: *** Waiting for unfinished jobs
In file included from 
/gnu/store/q2c0kdp9rwzhhx0zksigzbpr84mfn36s-glibc-2.22/include/features.h:389:0,
 from 
/gnu/store/q2c0kdp9rwzhhx0zksigzbpr84mfn36s-glibc-2.22/include/stdio.h:27,
 from ../../src/api/callbacks.c:27:
/gnu/store/q2c0kdp9rwzhhx0zksigzbpr84mfn36s-glibc-2.22/include/gnu/stubs.h:7:29:
 fatal error: gnu/stubs-soft.h: No such file or directory
 # include 
 ^
compilation terminated.
Makefile:666: recipe for target '_obj/api/callbacks.o' failed
make: *** [_obj/api/callbacks.o] Error 1
make: *** wait: No child processes.  Stop.
phase `build' failed after 1.2 seconds


-- 
Efraim Flashner  אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


pgpfp9eJHWi8u.pgp
Description: OpenPGP digital signature


Re: [PATCHES] Mupen64Plus

2015-11-06 Thread Taylan Ulrich Bayırlı/Kammer
taylanbayi...@gmail.com (Taylan Ulrich "Bayırlı/Kammer") writes:

> These packages need to be used in a somewhat peculiar way:
>
> - install *both* mupen64plus-core and mupen64plus-ui-console in your
>   profile,
>
> - install all the plugins in your profile,
>
> - in your config file ($XDG_CONFIG_HOME/mupen64plus/mupen64plus.cfg),
>   set Core/SharedDataPath to $guix_profile/share/mupen64plus, and set
>   UI-Console/PluginDir to $guix_profile/lib/mupen64plus,
>
> - specify your input/audio/video/rsp plugins of choice (for video, the
>   Glide64 ones work well for me, and the HLE one for RSP).
>
> That yields a working setup.  I don't know if I can make it work any
> better out of the box (without horrible hacks and/or substantial patches
> to the C code) because the whole system seems to assume the existence of
> a single "shared data" and a single "plugin" directory, so a user is
> best served by installing all preferred mupen64plus-* packages into one
> profile and then pointing the data and plugin directories there as
> described above.  In particular, the -core package needs to be installed
> too (despite ui-console already closing over it) because it also
> provides a data file without which some things don't work.

I now tackled this problem the following way:

- mupen64plus-ui-console is the recommended way to install mupen and
  propagates a basic set of plugins and the core library package (from
  which a data file is needed; the .so is referenced absolutely so
  that's not the reason),

- the C code of the console UI gets a Guix-specific patch which prints a
  flashy notice for Guix users when no plugins are found, instructing
  the user to edit their config so and so.

In the future I might provide some proper patches to the C code to take
the directory paths from environment variables in addition to the
existing mechanisms (CLI flag, .ini file, hardcoded system paths), but
for now I think this is good enough.

Comments welcome.

>From 6a2d0bc7cc0d27ce3bbee77faa747ff68466306a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Taylan=20Ulrich=20Bay=C4=B1rl=C4=B1/Kammer?=
 
Date: Mon, 2 Nov 2015 00:39:22 +0100
Subject: [PATCH 11/11] gnu: Add mupen64plus-ui-console.

* gnu/packages/games.scm (mupen64plus-ui-console): New variable.
* gnu/packages/patches/mupen64plus-ui-console-notice.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
---
 gnu-system.am          |  1 +
 gnu/packages/games.scm | 66 ++
 .../patches/mupen64plus-ui-console-notice.patch| 34 +++
 3 files changed, 101 insertions(+)
 create mode 100644 gnu/packages/patches/mupen64plus-ui-console-notice.patch

diff --git a/gnu-system.am b/gnu-system.am
index 946b77e..c27989c 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -568,6 +568,7 @@ dist_patch_DATA =		\
   gnu/packages/patches/mplayer2-theora-fix.patch		\
   gnu/packages/patches/module-init-tools-moduledir.patch	\
   gnu/packages/patches/mumps-build-parallelism.patch		\
+  gnu/packages/patches/mupen64plus-ui-console-notice.patch	\
   gnu/packages/patches/mupdf-buildsystem-fix.patch		\
   gnu/packages/patches/mutt-store-references.patch		\
   gnu/packages/patches/net-tools-bitrot.patch			\
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 5830f9d..b867d52 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1688,6 +1688,72 @@ which is capable of accurately playing many games.  This package contains the
 Z64 video plugin.")
 (license license:gpl2+)))
 
+(define-public mupen64plus-ui-console
+  (package
+(name "mupen64plus-ui-console")
+(version "2.5")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append
+ "https://github.com/mupen64plus/mupen64plus-ui-console/archive/";
+ version ".tar.gz"))
+   (file-name (string-append name "-" version ".tar.gz"))
+   (sha256
+(base32 "04qkpd8ic7xsgnqz7spl00wxdygf79m7d1k8rabbygjk5lg6p8z2"))
+   (patches
+(list (search-patch "mupen64plus-ui-console-notice.patch")
+(build-system gnu-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("which" ,which)))
+(inputs
+ `(("sdl2" ,sdl2)))
+;; Mupen64Plus supports a single data directory and a single plugin
+;; directory in its configuration, yet we need data and plugin files from
+;; a variety of packages.  The best way to deal with this is to install
+;; all packages from which data and plugin files are needed into one's
+;; profile, and point the configuration there.  Hence, propagate the most
+;; important packages here to save the user from the bother.  The patch
+;; mupen64plus

Re: [PATCHES] Mupen64Plus

2015-11-03 Thread Taylan Ulrich Bayırlı/Kammer
Eric Bavier  writes:

> On 2015-11-02 23:13, Leo Famulari wrote:
>> On Mon, Nov 2, 2015, at 17:04, Taylan Ulrich Bayırlı/Kammer wrote:
>>> (I can't use git-send-email with git installed from Guix for some
>>> reason; it says subcommand not found.)
>>
>> Off-topic, but this happened to me, too. I'm still using Debian's git,
>> but I bet the problem is that git-send-email needs to be able to
>> find an
>> SMTP client. And, of course, that clients needs to be configured.
>
> Do you have "git:send-email" installed?

Ah, I didn't notice that in the 'guix package -A' output, thanks for
pointing it out. :-)

Taylan



Re: [PATCHES] Mupen64Plus

2015-11-03 Thread Eric Bavier

On 2015-11-02 23:13, Leo Famulari wrote:

On Mon, Nov 2, 2015, at 17:04, Taylan Ulrich Bayırlı/Kammer wrote:

(I can't use git-send-email with git installed from Guix for some
reason; it says subcommand not found.)


Off-topic, but this happened to me, too. I'm still using Debian's git,
but I bet the problem is that git-send-email needs to be able to find 
an

SMTP client. And, of course, that clients needs to be configured.


Do you have "git:send-email" installed?

--
`~Eric



Re: [PATCHES] Mupen64Plus

2015-11-02 Thread Leo Famulari
On Mon, Nov 2, 2015, at 17:04, Taylan Ulrich Bayırlı/Kammer wrote:
> (I can't use git-send-email with git installed from Guix for some
> reason; it says subcommand not found.)

Off-topic, but this happened to me, too. I'm still using Debian's git,
but I bet the problem is that git-send-email needs to be able to find an
SMTP client. And, of course, that clients needs to be configured.



[PATCHES] Mupen64Plus

2015-11-02 Thread Taylan Ulrich Bayırlı/Kammer
(I can't use git-send-email with git installed from Guix for some
reason; it says subcommand not found.)

So here's 11 patches that add Mupen64Plus, the console front-end, and
many essential plugins.

These packages need to be used in a somewhat peculiar way:

- install *both* mupen64plus-core and mupen64plus-ui-console in your
  profile,

- install all the plugins in your profile,

- in your config file ($XDG_CONFIG_HOME/mupen64plus/mupen64plus.cfg),
  set Core/SharedDataPath to $guix_profile/share/mupen64plus, and set
  UI-Console/PluginDir to $guix_profile/lib/mupen64plus,

- specify your input/audio/video/rsp plugins of choice (for video, the
  Glide64 ones work well for me, and the HLE one for RSP).

That yields a working setup.  I don't know if I can make it work any
better out of the box (without horrible hacks and/or substantial patches
to the C code) because the whole system seems to assume the existence of
a single "shared data" and a single "plugin" directory, so a user is
best served by installing all preferred mupen64plus-* packages into one
profile and then pointing the data and plugin directories there as
described above.  In particular, the -core package needs to be installed
too (despite ui-console already closing over it) because it also
provides a data file without which some things don't work.

By the way, some video plugins don't work out of the box, and I don't
really know how to make them work or if they're entirely broken, but
they're packaged by Debian as well (with the same kinds of breakage out
of the box) so I also packaged them.

>From 1fbd12332633093875f4272208207ab88fb4b9ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Taylan=20Ulrich=20Bay=C4=B1rl=C4=B1/Kammer?=
 
Date: Mon, 2 Nov 2015 00:38:01 +0100
Subject: [PATCH 01/11] gnu: Add mupen64plus-core.

* gnu/packages/games.scm (mupen64plus-core): New variable.
---
 gnu/packages/games.scm | 46 ++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 865bfca..76e5eb7 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1215,6 +1215,52 @@ world}, @uref{http://evolonline.org, Evol Online} and
 ;; The rest is under GPL2+.
 (license (list license:gpl2+ license:zlib license:cc-by-sa4.0
 
+(define-public mupen64plus-core
+  (package
+(name "mupen64plus-core")
+(version "2.5")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/mupen64plus/mupen64plus-core/archive/";
+version ".tar.gz"))
+  (file-name (string-append name "-" version ".tar.gz"))
+  (sha256
+   (base32
+"0dg2hksm5qni2hcha93k7n4fqr92888p946f7phb0ndschzfh9kk"
+(build-system gnu-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("which" ,which)))
+(inputs
+ `(("freetype" ,freetype)
+   ("glu" ,glu)
+   ("libpng" ,libpng)
+   ("mesa" ,mesa)
+   ("sdl2" ,sdl2)
+   ("zlib" ,zlib)))
+(arguments
+ '(#:phases
+   (modify-phases %standard-phases
+ ;; The mupen64plus build system has no configure phase.
+ (delete 'configure)
+ ;; Makefile is in a subdirectory.
+ (add-before
+  'build 'cd-to-project-dir
+  (lambda _
+(chdir "projects/unix"
+   #:make-flags (let ((out (assoc-ref %outputs "out")))
+  (list "all" (string-append "PREFIX=" out)))
+   ;; There are no tests.
+   #:tests? #f))
+(home-page "http://www.mupen64plus.org/";)
+(synopsis "Nintendo 64 emulator core library")
+(description
+ "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
+which is capable of accurately playing many games.  This package contains the
+core library.")
+(license license:gpl2+)))
+
 (define-public nestopiaue
   (package
 (name "nestopiaue")
-- 
2.5.0

>From 83fff41d840cfa5fc31294593c94368cca737bd7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Taylan=20Ulrich=20Bay=C4=B1rl=C4=B1/Kammer?=
 
Date: Mon, 2 Nov 2015 00:38:13 +0100
Subject: [PATCH 02/11] gnu: Add mupen64plus-audio-sdl.

* gnu/packages/games.scm (mupen64plus-audio-sdl): New variable.
---
 gnu/packages/games.scm | 46 ++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 76e5eb7..198f8b2 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1261,6 +1261,52 @@ which is capable of accurately playing many games.  This package contains the
 core library.")
 (license license:gpl2+)))
 
+(define-public mupen64plus-audio-sdl
+  (package
+(name "mupen64plus-audio-sdl")
+(version "2.5")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/mupen64plus/mupen64plus-audio-sdl/archive