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.
master
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 @@
#: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 @@
#: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 @@ expelled by the Catholic Church out of the Languedoc region in France. One of
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):