Ludovic Courtès (2015-10-11 19:52 +0300) wrote:

> Alex Kost <alez...@gmail.com> skribis:
>
>> Ludovic Courtès (2015-10-09 15:40 +0300) wrote:
>
> [...]
>
>>> Can’t ‘sdl-union’ be used here?  I think it was created specifically to
>>> solve this problem.  (Currently it’s private to (gnu packages sdl) but
>>> you can export it.)
>>
>> Oh, great, I didn't know about it, thanks!  It will reduce the workaround.
>>
>> However, just using this package cannot solve the problem: 'sdl-config'
>> points directly to "/gnu/store/…-sdl-1.2.15", so you need to modify a
>> package anyway to make it find "/gnu/store/…-sdl-union-1.2.15/include/SDL"
>> (that's why 'guile-sdl' specifies "--with-sdl-prefix=").
>
> Oh.  :-/  Then I guess you can go with the original patch, which LGTM.

Actually, I think it will be more clear to use 'sdl-union' here, because
the workaround is more concise, WDYT?

The original workaround was:

+    (arguments
+     '(#:modules ((ice-9 match)
+                  (ice-9 regex)
+                  (srfi srfi-1)
+                  (guix build gnu-build-system)
+                  (guix build utils))
+       ;; The package relies on "sdl-config" to find SDL header files,
+       ;; which adds "include/SDL" for 'sdl' itself.  We need to include
+       ;; such directories for all sdl packages.
+       #:configure-flags
+       (let* ((sdl-rx   (make-regexp "\\`sdl"))
+              (includes (filter-map (match-lambda
+                                      ((name . dir)
+                                       (and (regexp-exec sdl-rx name)
+                                            (string-append
+                                             "-I" dir "/include/SDL"))))
+                                    %build-inputs)))
+         (list (format #f "CPPFLAGS=~{~a ~}" includes)))))


Now it is:

+    (arguments
+     '(#:configure-flags
+       (list (string-append "CPPFLAGS=-I"
+                            (assoc-ref %build-inputs "sdl-union")
+                            "/include/SDL"))))
The modified patch is attached.

>From 2ace868aa60b36eb134ac155f79cee6d2f402970 Mon Sep 17 00:00:00 2001
From: Alex Kost <alez...@gmail.com>
Date: Sun, 4 Oct 2015 20:34:48 +0300
Subject: [PATCH] gnu: Add manaplus.

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

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 3f1f5a9..cbc147f 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2015 David Hashe <david.ha...@dhashe.com>
 ;;; Copyright © 2015 Christopher Allan Webber <cweb...@dustycloud.org>
 ;;; Copyright © 2015 Ricardo Wurmus <rek...@elephly.net>
+;;; Copyright © 2015 Alex Kost <alez...@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1105,3 +1106,41 @@ on the screen and keyboard to display letters.")
     ;; Most files under gpl2+ or gpl3+, but eat.wav under gpl3
     (license license:gpl3)))
 
+(define-public manaplus
+  (package
+    (name "manaplus")
+    (version "1.5.9.26")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://repo.manaplus.org/manaplus/download/";
+                    version "/manaplus-" version ".tar.xz"))
+              (sha256
+               (base32
+                "070ms1cv7q88284pqh66lfhacckgv7m9s8z9009k2laypibx7vs6"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags
+       (list (string-append "CPPFLAGS=-I"
+                            (assoc-ref %build-inputs "sdl-union")
+                            "/include/SDL"))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glu" ,glu)
+       ("curl" ,curl)
+       ("libxml2" ,libxml2)
+       ("mesa" ,mesa)
+       ("physfs" ,physfs)
+       ("sdl-union" ,(sdl-union))))
+    (home-page "http://manaplus.org";)
+    (synopsis "Client for 'The Mana World' and similar games")
+    (description
+     "ManaPlus is a 2D MMORPG client for game servers.  It is the only
+fully supported client for @uref{http://www.themanaworld.org, The mana
+world}, @uref{http://evolonline.org, Evol Online} and
+@uref{http://landoffire.org, Land of fire}.")
+    ;; "src/debug/*" and "src/sdl2gfx/*" are under Zlib.
+    ;; "data/themes/{golden-delicious,jewelry}/*" are under CC-BY-SA.
+    ;; The rest is under GPL2+.
+    (license (list license:gpl2+ license:zlib license:cc-by-sa4.0))))
-- 
2.5.0

Reply via email to