diff options
Diffstat (limited to 'gnu/packages/games.scm')
-rw-r--r-- | gnu/packages/games.scm | 396 |
1 files changed, 174 insertions, 222 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 99eccca04d..aa2e4e04b0 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2014, 2015, 2019 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> -;;; Copyright © 2015, 2017, 2018, 2021 Chris Lemmer Webber <cwebber@dustycloud.org> +;;; Copyright © 2015, 2017, 2018, 2021 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> @@ -4163,7 +4163,7 @@ falling, themeable graphics and sounds, and replays.") (define-public wesnoth (package (name "wesnoth") - (version "1.16.1") + (version "1.16.5") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/wesnoth/wesnoth-" @@ -4172,7 +4172,7 @@ falling, themeable graphics and sounds, and replays.") "wesnoth-" version ".tar.bz2")) (sha256 (base32 - "0cyrwmdg93pqpdm7030540jznaky9rda355i9ym8am4k9civlcwf")))) + "02pzijbmkgcb8hc4l3f4r3r3mxqda936dp488i9sd9d4m3xdzimh")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ;no check target @@ -6515,14 +6515,16 @@ fish. The whole game is accompanied by quiet, comforting music.") (define-public crawl (package (name "crawl") - (version "0.28.0") + (version "0.29.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/crawl/crawl/releases/download/" - version "/stone_soup-" version "-nodeps.tar.xz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/crawl/crawl") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "0irg5w4m127fxcj037kyp9vnyqyq1fi4q64rn6yq92w8z1lf2sss")) + (base32 "0cx67ln5qr4bawidi48ss63wflx7x22901da683c9wvy6m41vks8")) (patches (search-patches "crawl-upgrade-saves.patch")))) (build-system gnu-build-system) (inputs @@ -6552,24 +6554,30 @@ fish. The whole game is accompanied by quiet, comforting music.") "BUILD_LUA=" "BUILD_SQLITE=" "BUILD_ZLIB=" - "-Csource") + "-Ccrawl-ref/source") #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'set-version + (lambda _ + (call-with-output-file "crawl-ref/source/util/release_ver" + (lambda (port) + (display #$version port))))) (add-after 'unpack 'find-SDL-image (lambda _ - (substitute* "source/windowmanager-sdl.cc" + (substitute* "crawl-ref/source/windowmanager-sdl.cc" (("SDL_image.h") "SDL2/SDL_image.h")))) (delete 'configure) (replace 'check - (lambda* (#:key make-flags #:allow-other-keys) - (setenv "HOME" (getcwd)) - ;; Fake a terminal for the test cases. - (setenv "TERM" "xterm-256color") - ;; Run the tests that don't require a debug build. - (apply invoke "make" "nondebugtest" - (format #f "-j~d" (parallel-job-count)) - ;; Force command line build for test cases. - (append make-flags '("GAME=crawl" "TILES=")))))))) + (lambda* (#:key tests? make-flags #:allow-other-keys) + (when tests? + (setenv "HOME" (getcwd)) + ;; Fake a terminal for the test cases. + (setenv "TERM" "xterm-256color") + ;; Run the tests that don't require a debug build. + (apply invoke "make" "nondebugtest" + (format #f "-j~d" (parallel-job-count)) + ;; Force command line build for test cases. + (append make-flags '("GAME=crawl" "TILES="))))))))) (synopsis "Roguelike dungeon crawler game") (description "Dungeon Crawl Stone Soup (also known as \"Crawl\" or DCSS for short) is a roguelike adventure through dungeons filled with dangerous @@ -6728,7 +6736,7 @@ fight against their plot and save his fellow rabbits from slavery.") libxcursor libxml2 miniupnpc - mozjs + mozjs-78 openal sdl2 wxwidgets @@ -7759,38 +7767,33 @@ quotation from a collection of quotes.") (define xonotic-data (package (name "xonotic-data") - (version "0.8.2") + (version "0.8.5") (source (origin (method url-fetch) - (uri (string-append "http://dl.xonotic.org/xonotic-" + (uri (string-append "https://dl.xonotic.org/xonotic-" version ".zip")) (file-name (string-append name "-" version ".zip")) (sha256 - (base32 - "1mcs6l4clvn7ibfq3q69k2p0z6ww75rxvnngamdq5ic6yhq74bx2")))) + (base32 "1r9pdrrki7mkdw99zh9m7911fqldsfdnl0nrp5cv1bk2hcism4hg")))) (build-system trivial-build-system) - (native-inputs - `(("unzip" ,unzip))) + (native-inputs (list unzip)) (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (let* ((out (assoc-ref %outputs "out")) - (xonotic (string-append out "/share/xonotic")) - (source (assoc-ref %build-inputs "source")) - (unzip (search-input-file %build-inputs "/bin/unzip"))) - (copy-file source (string-append ,name "-" ,version ".zip")) - (invoke unzip (string-append ,name "-" ,version ".zip")) - (mkdir-p out) - (mkdir-p xonotic) - (chdir "Xonotic") - (copy-recursively "data" - (string-append xonotic "/data")) - (copy-recursively "server" - (string-append xonotic "/server")) - (install-file "key_0.d0pk" xonotic))))) + (list #:modules '((guix build utils)) + #:builder + #~(begin + (use-modules (guix build utils)) + (let* ((out (assoc-ref %outputs "out")) + (xonotic (string-append out "/share/xonotic")) + (source (assoc-ref %build-inputs "source")) + (unzip (search-input-file %build-inputs "/bin/unzip"))) + (invoke unzip source) + (chdir "Xonotic") + (install-file "key_0.d0pk" xonotic) + (copy-recursively "data" + (string-append xonotic "/data")) + (copy-recursively "server" + (string-append xonotic "/server")))))) (home-page "http://xonotic.org") (synopsis "Data files for Xonotic") (description @@ -7801,192 +7804,142 @@ quotation from a collection of quotes.") (define-public xonotic (package (name "xonotic") - (version "0.8.2") + (version "0.8.5") (source (origin (method url-fetch) - (uri (string-append "http://dl.xonotic.org/xonotic-" + (uri (string-append "https://dl.xonotic.org/xonotic-" version "-source.zip")) (file-name (string-append name "-" version ".zip")) (sha256 - (base32 - "0axxw04fyz6jlfqd0kp7hdrqa0li31sx1pbipf2j5qp9wvqicsay")))) + (base32 "0pgahai0gk8bjmvkwx948bl50l9f9dhmjzwffl4vyldibajipa51")))) (build-system gnu-build-system) (arguments - `(#:configure-flags (list (string-append "--prefix=" - (assoc-ref %outputs "out")) - "--disable-rijndael") - #:phases - (modify-phases %standard-phases - (add-before 'configure 'make-darkplaces - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (sharedir (string-append out "/share/xonotic/"))) - (invoke "make" "-C" "source/darkplaces" - (string-append "DP_FS_BASEDIR=" - sharedir) - "DP_LINK_TO_LIBJPEG=1" - "DP_SOUND_API=ALSA" - "CC=gcc" - "-f" "makefile" - "cl-release") - (invoke "make" "-C" "source/darkplaces" - (string-append "DP_FS_BASEDIR=" - sharedir) - "DP_LINK_TO_LIBJPEG=1" - "DP_SOUND_API=ALSA" - "CC=gcc" - "-f" "makefile" - "sdl-release") - (invoke "make" "-C" "source/darkplaces" - (string-append "DP_FS_BASEDIR=" - sharedir) - "DP_LINK_TO_LIBJPEG=1" - "DP_SOUND_API=ALSA" - "CC=gcc" - "-f" "makefile" - "sv-release")))) - (add-before 'configure 'bootstrap - (lambda _ - (chdir "source/d0_blind_id") - (invoke "sh" "autogen.sh"))) - (add-after 'build 'install-desktop-entry - (lambda* (#:key outputs #:allow-other-keys) - ;; Add .desktop files for the 2 variants and the symlink - (let* ((output (assoc-ref outputs "out")) - (apps (string-append output "/share/applications"))) - (mkdir-p apps) - (with-output-to-file - (string-append apps "/xonotic-glx.desktop") - (lambda _ - (format #t - "[Desktop Entry]~@ - Name=xonotic-glx~@ - Comment=Xonotic glx~@ - Exec=~a/bin/xonotic-glx~@ - TryExec=~@*~a/bin/xonotic-glx~@ - Icon=xonotic~@ - Categories=Game~@ - Type=Application~%" - output))) - (with-output-to-file - (string-append apps "/xonotic-sdl.desktop") - (lambda _ - (format #t - "[Desktop Entry]~@ - Name=xonotic-sdl~@ - Comment=Xonotic sdl~@ - Exec=~a/bin/xonotic-sdl~@ - TryExec=~@*~a/bin/xonotic-sdl~@ - Icon=xonotic~@ - Categories=Game~@ - Type=Application~%" - output))) - (with-output-to-file - (string-append apps "/xonotic.desktop") + (list #:configure-flags + #~(list (string-append "--prefix=" #$output) + "--disable-rijndael") + #:modules '((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26)) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'build-darkplaces + (lambda* (#:key make-flags parallel-build? outputs + #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share/xonotic/"))) + (apply invoke "make" + "-C" "source/darkplaces" + "-f" "makefile" + "-j" (if parallel-build? + (number->string (parallel-job-count)) + "1") + (string-append "CC=" #$(cc-for-target)) + (string-append "DP_FS_BASEDIR=" share) + "DP_LINK_TO_LIBJPEG=1" + "DP_SOUND_API=ALSA" + "cl-release" + "sdl-release" + "sv-release" + make-flags)))) + (add-before 'configure 'preconfigure (lambda _ - (format #t - "[Desktop Entry]~@ - Name=xonotic~@ - Comment=Xonotic~@ - Exec=~a/bin/xonotic-glx~@ - TryExec=~@*~a/bin/xonotic~@ - Icon=xonotic~@ - Categories=Game~@ - Type=Application~%" - output))) - #t))) - (add-after 'install-desktop-entry 'install-icons - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (with-directory-excursion "../../misc/logos/icons_png/" - (for-each - (lambda (file) - (let* ((size (string-filter char-numeric? file)) - (icons (string-append out "/share/icons/hicolor/" - size "x" size "/apps"))) - (mkdir-p icons) - (copy-file file (string-append icons "/xonotic.png")))) - '("xonotic_16.png" "xonotic_22.png" "xonotic_24.png" - "xonotic_32.png" "xonotic_48.png" "xonotic_64.png" - "xonotic_128.png" "xonotic_256.png" "xonotic_512.png")))))) - (add-after 'install-icons 'install-binaries - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (define (install src dst) - (let ((dst (string-append out dst))) - (mkdir-p (dirname dst)) - (copy-file src dst))) - (mkdir-p (string-append out "/bin")) - (install "../darkplaces/darkplaces-dedicated" - "/bin/xonotic-dedicated") - (install "../darkplaces/darkplaces-glx" - "/bin/xonotic-glx") - (install "../darkplaces/darkplaces-sdl" - "/bin/xonotic-sdl") - ;; Provide a default xonotic executable, defaulting to SDL. - (symlink (string-append out "/bin/xonotic-sdl") - (string-append out "/bin/xonotic")) - #t))) - (add-after 'install-binaries 'install-data - (lambda* (#:key outputs inputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (data (assoc-ref inputs "xonotic-data"))) - (symlink (string-append data "/share/xonotic") - (string-append out "/share/xonotic")) - #t))) - (add-after 'install-binaries 'wrap-binaries - (lambda* (#:key outputs inputs #:allow-other-keys) - ;; Curl and libvorbis need to be wrapped so that we get - ;; sound and networking. - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin/xonotic")) - (bin-sdl (string-append out "/bin/xonotic-sdl")) - (bin-glx (string-append out "/bin/xonotic-glx")) - (bin-dedicated (string-append out "/bin/xonotic-dedicated")) - (curl (assoc-ref inputs "curl")) - (vorbis (assoc-ref inputs "libvorbis"))) - (wrap-program bin - `("LD_LIBRARY_PATH" ":" prefix - (,(string-append curl "/lib:" vorbis "/lib")))) - (wrap-program bin-sdl - `("LD_LIBRARY_PATH" ":" prefix - (,(string-append curl "/lib:" vorbis "/lib")))) - (wrap-program bin-glx - `("LD_LIBRARY_PATH" ":" prefix - (,(string-append curl "/lib:" vorbis "/lib")))) - (wrap-program bin-dedicated - `("LD_LIBRARY_PATH" ":" prefix - (,(string-append curl "/lib:" vorbis "/lib")))) - #t)))))) - (inputs - `(("xonotic-data" ,xonotic-data) - ("alsa-lib" ,alsa-lib) - ("curl" ,curl) - ("libjpeg" ,libjpeg-turbo) - ("libmodplug" ,libmodplug) - ("libvorbis" ,libvorbis) - ("libogg" ,libogg) - ("libxpm" ,libxpm) - ("libxxf86dga" ,libxxf86dga) - ("libxxf86vm" ,libxxf86vm) - ("libx11" ,libx11) - ("libxext" ,libxext) - ("libxau" ,libxau) - ("libxdmcp" ,libxdmcp) - ("mesa" ,mesa) - ("glu" ,glu) - ("freetype" ,freetype) - ("sdl2" ,sdl2) - ("libpng" ,libpng) - ("hicolor-icon-theme" ,hicolor-icon-theme))) - (native-inputs - (list unzip - autoconf + (chdir "source/d0_blind_id") + (invoke "sh" "autogen.sh"))) + (add-after 'install 'symlink-data + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (data (assoc-ref inputs "xonotic-data"))) + (symlink (string-append data "/share/xonotic") + (string-append out "/share/xonotic"))))) + (add-after 'install 'install-desktop-entries + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (app (string-append out "/share/applications"))) + ;; Add .desktop files for the 2 variants and the symlink. + (for-each + (lambda (variant) + (let* ((file (if variant + (format #f "xonotic-~(~a~)" variant) + "xonotic")) + (name (if variant + (format #f "Xonotic (~a)" variant) + "Xonotic")) + (exec (string-append out "/bin/" file))) + (make-desktop-entry-file + (string-append app "/" file ".desktop") + #:name name + #:comment `((#f #$(package-synopsis this-package))) + #:exec exec + #:try-exec exec + #:icon "xonotic" + #:categories '("Game")))) + (list #f "GLX" "SDL"))))) + (add-after 'install 'install-icons + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (for-each + (lambda (file) + (let* ((size (string-filter char-numeric? file)) + (icons (string-append out "/share/icons/hicolor/" + size "x" size "/apps"))) + (mkdir-p icons) + (copy-file file (string-append icons "/xonotic.png")))) + (find-files "../../misc/logos/icons_png" + "^xonotic_[0-9]+\\.png$"))))) + (add-after 'install 'install-binaries + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (for-each + (lambda (variant) + (copy-file + (string-append "../darkplaces/darkplaces-" variant) + (string-append bin "/xonotic-" variant))) + (list "dedicated" "glx" "sdl"))))) + (add-after 'install-binaries 'wrap-binaries + (lambda* (#:key outputs inputs #:allow-other-keys) + ;; All games must be wrapped to get sound and networking. + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (curl (assoc-ref inputs "curl")) + (vorbis (assoc-ref inputs "libvorbis"))) + (for-each (cut wrap-program <> + `("LD_LIBRARY_PATH" ":" prefix + (,(string-append curl "/lib:" + vorbis "/lib")))) + (find-files bin "^xonotic")) + + ;; Provide a default xonotic executable, defaulting to SDL. + (symlink "xonotic-sdl" (string-append bin "/xonotic")))))))) + (native-inputs + (list autoconf automake - pkg-config + gmp libtool - gmp)) + pkg-config + unzip)) + (inputs + (list alsa-lib + curl + libjpeg-turbo + libmodplug + libvorbis + libogg + libpng + libx11 + libxpm + libxxf86dga + libxxf86vm + libxext + libxau + libxdmcp + mesa + glu + freetype + sdl2 + hicolor-icon-theme + xonotic-data)) (home-page "https://xonotic.org") (synopsis "Fast-paced first-person shooter game") (description @@ -8772,15 +8725,14 @@ game field is extended to 4D space, which has to filled up by the gamer with (define-public arx-libertatis (package (name "arx-libertatis") - (version "1.2") + (version "1.2.1") (source (origin (method url-fetch) (uri (string-append "http://arx-libertatis.org/files/arx-libertatis-" version ".tar.xz")) (sha256 - (base32 - "035dflxffa98bxmxkrqfizmhvnr09wyhhmzaqxk92772qil7gkxs")))) + (base32 "1pxf86sgwvy3785sq2wb4jvz6bdxm81ilrxd8xv7s61dxqqqizda")))) (build-system cmake-build-system) (outputs '("out" "installer")) (arguments |