Ludovic Courtès (2015-10-11 19:52 +0300) wrote:
> Alex Kost <[email protected]> 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 <[email protected]>
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 <[email protected]>
;;; Copyright © 2015 Christopher Allan Webber <[email protected]>
;;; Copyright © 2015 Ricardo Wurmus <[email protected]>
+;;; Copyright © 2015 Alex Kost <[email protected]>
;;;
;;; 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