From 72aa4b81e767edd451c5859be7e1d67f3c4ceedf Mon Sep 17 00:00:00 2001 From: nee Date: Thu, 13 Apr 2017 22:45:18 +0200 Subject: [PATCH] gnu: Add crawl. * gnu/packages/games.scm (crawl): New variable. --- gnu/packages/games.scm | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 710b2746c..502fa74ce 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -27,6 +27,7 @@ ;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira ;;; Copyright © 2017 Arun Isaac ;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017 nee ;;; ;;; This file is part of GNU Guix. ;;; @@ -115,6 +116,8 @@ #:use-module (gnu packages messaging) #:use-module (gnu packages upnp) #:use-module (gnu packages wxwidgets) + #:use-module (gnu packages bison) + #:use-module (gnu packages flex) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) #:use-module (guix build-system python) @@ -3649,3 +3652,79 @@ small robot living in the nano world, repair its maker.") ;; kiki-the-nano-bot/kiki-the-nano-bot_1.0.2+dfsg1-4_copyright> ;; for a statement from the author. (license license:public-domain))) + +(define-public crawl + (package + (name "crawl") + (version "0.19.5") + (source (origin + (method url-fetch) + (uri (list + ;; Older releases get moved into a versioned directory + (string-append "http://crawl.develz.org/release/" + (version-major+minor version) "/stone_soup-" + version "-nodeps.tar.xz") + ;; Only the latest release is in this directory + (string-append "http://crawl.develz.org/release/stone_soup-" + version "-nodeps.tar.xz"))) + (sha256 + (base32 + "00yl2lb2shglxlxzpyk99zvglfx4amjybqwnzdcasvbiggb4cj18")))) + (arguments + '(#:make-flags + (let* ((sqlite (assoc-ref %build-inputs "sqlite")) + (out (assoc-ref %outputs "out"))) + (list (string-append "SQLITE_INCLUDE_DIR=" sqlite "/include") + (string-append "prefix=" out) + "SAVEDIR=~/.crawl" + "TILES=" + "BUILD_LUA=" + "BUILD_SQLITE=" + "BUILD_ZLIB=" + "-Csource")) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'check) + ;; Test cases require the source to be rebuild with the -DDEBUG define. + ;; Do 'check before 'build to avoid a 3rd build on make install. + (add-before 'build 'check + (lambda* (#:key inputs outputs make-flags + parallel-build? parallel-tests? #:allow-other-keys) + (let* ((parallel-flag (format #f "-j~d" (parallel-job-count))) + (test-flags-build (if parallel-build? + (cons parallel-flag + make-flags) + make-flags)) + (test-flags-run (if parallel-tests? + (cons parallel-flag + make-flags) + make-flags))) + (setenv "HOME" (getcwd)) + ;; Fake a terminal for the test cases. + (setenv "TERM" "xterm-256color") + (setenv "COLUMNS" "80") + (setenv "LINES" "24") + (apply system* (cons* "make" "debug" test-flags-build)) + (zero? (apply system* (cons* "make" "test" test-flags-run))))))))) + (build-system gnu-build-system) + (inputs `(("ncurses" ,ncurses) + ("sqlite" ,sqlite) + ("bison" ,bison) + ("flex" ,flex) + ("zlib" ,zlib) + ("lua51" ,lua-5.1))) + (native-inputs `(("pkg-config" ,pkg-config) + ("perl" ,perl))) + (synopsis "Roguelike dungeon crawler game") + (description "Dungeon Crawl Stone Soup is a roguelike adventure through +dungeons filled with dangerous monsters in a quest to find the mystifyingly +fabulous Orb of Zot.") + (home-page "https://crawl.develz.org") + (license (list license:gpl2+ + license:bsd-2 + license:bsd-3 + license:cc0 + license:x11 + license:zlib + license:asl2.0)))) -- 2.12.2