Subject: [PATCH] gnu: games: Add quakespasm.

From: nee <[email-masked]>
Date: Thu, 7 Dec 2017 22:59:55 +0100

Hello, here is another fun game.
Quake1 game data (with lower-case file names) is required for playing.

If there is a free full-conversion project let me know. As far as I know
Freedoom for Doom1+2 is the only free id-game content-pack with a
release. There are Zauberer for Hexen, and Blasphemer for Heretic
currently in development, but nothing for quake 1 and 2, yet.

Happy fragging!
From 9811308019afd73066a130f05d4f8262ff582310 Mon Sep 17 00:00:00 2001
From: nee <[email-masked]>
Date: Thu, 7 Dec 2017 22:25:26 +0100
Subject: [PATCH] gnu: games: Add quakespasm.

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

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index a699fadc2..6f217c16c 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -5095,3 +5095,46 @@ abilities and powers.  With a modern graphical and customisable interface,
 intuitive mouse control, streamlined mechanics and deep, challenging combat,
 Tales of Maj’Eyal offers engaging roguelike gameplay for the 21st century.")
     (license license:gpl3+)))
+
+(define-public quakespasm
+  (package
+    (name "quakespasm")
+    (version "0.93.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/quakespasm/Source/quakespasm-"
+                                  version ".tgz"))
+              (sha256
+               (base32
+                "0b2nz7w4za32pc34r62ql270z692qcjs2pm0i3svkxkvfammhdfq"))))
+    (arguments
+     `(#:tests? #f
+       #:make-flags '("CC=gcc"
+                      "MP3LIB=mpg123"
+                      "USE_CODEC_FLAC=1"
+                      "USE_CODEC_MIKMOD=1"
+                      "USE_SDL2=1"
+                      "-CQuake")
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure)
+                  (add-after 'unpack 'fix-makefile-paths
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (mkdir-p (string-append out "/bin"))
+                        (substitute* "Quake/Makefile"
+                          (("/usr/local/games")
+                           (string-append out "/bin")))))))))
+    (build-system gnu-build-system)
+    (inputs `(("libmikmod" ,libmikmod)
+              ("libvorbis" ,libvorbis)
+              ("flac" ,flac)
+              ("mesa" ,mesa)
+              ("mpg123" ,mpg123)
+              ("sdl2" ,sdl2)))
+    (synopsis "First person shooter engine for Quake 1")
+    (description "Quakespasm is a modern engine for id software's Quake 1.
+It includes support for 64 bit CPUs and custom music playback,
+a new sound driver, some graphical niceities,
+and numerous bug-fixes and other improvements.")
+    (home-page "http://quakespasm.sourceforge.net/")
+    (license license:gpl2)))
-- 
2.14.1