gnu: Add pingus.

* gnu/packages/games.scm (pingus): New variable.
* gnu/packages/patches/pingus-sdl-libs-config.patch: New patch.
* gnu-system.am (dist_patch_DATA): Add it.
This commit is contained in:
Eric Bavier 2014-06-12 23:54:44 -05:00
parent 95faa10714
commit a83c6a6471
3 changed files with 72 additions and 0 deletions

View file

@ -338,6 +338,7 @@ dist_patch_DATA = \
gnu/packages/patches/perl-no-sys-dirs.patch \
gnu/packages/patches/perl-tk-x11-discover.patch \
gnu/packages/patches/petsc-fix-threadcomm.patch \
gnu/packages/patches/pingus-sdl-libs-config.patch \
gnu/packages/patches/plotutils-libpng-jmpbuf.patch \
gnu/packages/patches/procps-make-3.82.patch \
gnu/packages/patches/pybugz-encode-error.patch \

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 John Darrington <jmd@gnu.org>
;;; Copyright © 2014 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -21,6 +22,8 @@ (define-module (gnu packages games)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (gnu packages)
#:use-module (gnu packages boost)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
@ -28,6 +31,7 @@ (define-module (gnu packages games)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages libpng)
#:use-module (gnu packages python)
#:use-module (gnu packages readline)
#:use-module (gnu packages xorg)
@ -158,3 +162,49 @@ (define input-directories
them, called Jean Raymond, found an old church in which to hide, not knowing
that beneath its ruins lay buried an ancient evil.")
(license gpl3+)))
(define-public pingus
(package
(name "pingus")
(version "0.7.6")
(source
(origin
(method url-fetch)
(uri (string-append "http://pingus.googlecode.com/files/pingus-"
version ".tar.bz2"))
(sha256
(base32
"0q34d2k6anzqvb0mf67x85q92lfx9jr71ry13dlp47jx0x9i573m"))
(patches (list (search-patch "pingus-sdl-libs-config.patch")))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("scons" ,scons)))
(inputs `(("sdl" ,sdl)
("sdl-image" ,sdl-image)
("sdl-mixer" ,sdl-mixer)
("mesa" ,mesa)
("libpng" ,libpng)
("boost" ,boost)))
(arguments
'(#:tests? #f ;no check target
#:phases
(alist-delete
'configure
(alist-replace
'install
(lambda* (#:key outputs #:allow-other-keys)
(zero? (system* "make" "install"
(string-append "PREFIX="
(assoc-ref outputs "out")))))
%standard-phases))))
(home-page "http://pingus.seul.org/welcome.html")
(synopsis "Lemmings clone")
(description
"Pingus is a free Lemmings-like puzzle game in which the player takes
command of a bunch of small animals and has to guide them through levels.
Since the animals walk on their own, the player can only influence them by
giving them commands, like build a bridge, dig a hole, or redirect all animals
in the other direction. Multiple such commands are necessary to reach the
level's exit. The game is presented in a 2D side view.")
;; Some source files are under bsd-3 and gpl2+ licenses.
(license gpl3+)))

View file

@ -0,0 +1,21 @@
Do not assume the SDL_image and SLD_mixer libraries are installed at the same
prefix reported by sdl-config, but instead get flags from the pkg-config files
installed with these libraries.
--- a/SConscript 2011-12-24 15:46:47.000000000 -0600
+++ b/SConscript 2014-06-12 21:20:45.702668330 -0500
@@ -199,7 +199,13 @@
self.fatal_error += " * library 'png' not found\n"
def configure_sdl(self):
- if self.conf.CheckMyProgram('sdl-config'):
+ if self.conf.CheckMyProgram('pkg-config'):
+ self.conf.env.ParseConfig("pkg-config --cflags --libs sdl")
+ for sdllib in ['image', 'mixer']:
+ self.conf.env.ParseConfig("pkg-config --cflags --libs SDL_%s" % sdllib)
+ if not self.conf.CheckSDLLib(sdllib):
+ self.fatal_error += " * SDL library '%s' not found\n" % sdllib
+ elif self.conf.CheckMyProgram('sdl-config'):
self.conf.env.ParseConfig("sdl-config --cflags --libs | sed 's/-I/-isystem/g'")
for sdllib in ['image', 'mixer']:
if not self.conf.CheckSDLLib(sdllib):