summaryrefslogtreecommitdiff
path: root/gnu/packages/games.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/games.scm')
-rw-r--r--gnu/packages/games.scm537
1 files changed, 281 insertions, 256 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 591a3d3f38..8cc29b3487 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2013 John Darrington <jmd@gnu.org>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015 David Thompson <dthompson2@worcester.edu>
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net>
+;;; Copyright © 2014-2022 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
;;; Copyright © 2014, 2015, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
@@ -68,6 +68,7 @@
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2021 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
+;;; Copyright © 2022 Yovan Naumovski <yovan@gorski.stream>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -820,37 +821,37 @@ Quizzes: arithmetic and quiz.")
(define-public bzflag
(package
(name "bzflag")
- (version "2.4.22")
+ (version "2.4.24")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.bzflag.org/bzflag/source/"
version "/bzflag-" version ".tar.bz2"))
(sha256
- (base32 "0kba0011nswc2csqlzkd7bas307zm5813zlnby5vsmxn08rnar4y"))))
+ (base32 "1i73ijlnxsz52fhqgkj2qcvibfgav3byq1is68gab2zwnyz330az"))))
(build-system gnu-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'install 'install-desktop-file-and-icons
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((share (string-append (assoc-ref outputs "out") "/share"))
- (data (string-append share "/bzflag"))
- (hicolor (string-append share "/icons/hicolor"))
- (applications (string-append share "/applications")))
- ;; Move desktop file.
- (install-file (string-append data "/bzflag.desktop")
- applications)
- ;; Install icons.
- (for-each (lambda (size)
- (let* ((dim (string-append size "x" size))
- (dir (string-append hicolor "/" dim "/apps")))
- (mkdir-p dir)
- (copy-file
- (string-append data "/bzflag-" dim ".png")
- (string-append dir "/bzflag.png"))))
- '("48" "256")))
- #t)))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'install-desktop-file-and-icons
+ (lambda _
+ (let* ((share (string-append #$output "/share"))
+ (data (string-append share "/bzflag"))
+ (hicolor (string-append share "/icons/hicolor"))
+ (applications (string-append share "/applications")))
+ ;; Move desktop file.
+ (install-file (string-append data "/bzflag.desktop")
+ applications)
+ ;; Install icons.
+ (for-each (lambda (size)
+ (let* ((dim (string-append size "x" size))
+ (dir (string-append hicolor "/" dim "/apps")))
+ (mkdir-p dir)
+ (copy-file
+ (string-append data "/bzflag-" dim ".png")
+ (string-append dir "/bzflag.png"))))
+ '("48" "256"))))))))
(native-inputs
(list pkg-config))
(inputs
@@ -2360,100 +2361,98 @@ can be explored and changed freely.")
(define-public seahorse-adventures
(package
(name "seahorse-adventures")
- (version "1.3")
+ (version "1.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dulsi/seahorse-adventures")
- (commit (string-append "release-" version))))
+ (commit (string-append "Release-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0m53jh2gchzr7rs35hml6lbvc5kb5hp229wlfqa09098b7hhl15a"))
+ (base32 "1dxysa79cz5mflr2953fyk838h1jwvi1ngn8wlpms0ag35yv21s8"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-1)))
;; Remove non-free (non-commercial) font.
(snippet
- `(begin
- (for-each delete-file (find-files "data/fonts" "."))
- #t))))
+ #~(begin
+ (for-each delete-file (find-files "data/fonts" "."))))))
(build-system python-build-system)
(arguments
- `(#:tests? #f ;no test
- #:phases
- (modify-phases %standard-phases
- (delete 'build) ;pure Python
- (replace 'install ;no install script
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (share (string-append out "/share"))
- (applications (string-append share "/applications"))
- (data (string-append share "/seahorse-adventures")))
- ;; Install data.
- (for-each (lambda (f)
- (chmod f #o555)
- (install-file f data))
- '("leveledit.py" "run_game.py" "tileedit.py"))
- (for-each (lambda (dir)
- (let ((target (string-append data "/" dir)))
- (mkdir-p target)
- (copy-recursively dir target)))
- '("data" "lib"))
- ;; Create executable.
- (mkdir-p bin)
- (let ((executable (string-append bin "/seahorse-adventures")))
- (call-with-output-file executable
- (lambda (p)
- (format p
- "#!~a~@
+ (list
+ #:tests? #f ;no test
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'build) ;pure Python
+ (replace 'install ;no install script
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((bin (string-append #$output "/bin"))
+ (share (string-append #$output "/share"))
+ (applications (string-append share "/applications"))
+ (data (string-append share "/seahorse-adventures")))
+ ;; Install data.
+ (for-each (lambda (f)
+ (chmod f #o555)
+ (install-file f data))
+ '("leveledit.py" "run_game.py" "tileedit.py"))
+ (for-each (lambda (dir)
+ (let ((target (string-append data "/" dir)))
+ (mkdir-p target)
+ (copy-recursively dir target)))
+ '("data" "lib"))
+ ;; Create executable.
+ (mkdir-p bin)
+ (let ((executable (string-append bin "/seahorse-adventures")))
+ (call-with-output-file executable
+ (lambda (p)
+ (format p
+ "#!~a~@
export GUIX_PYTHONPATH=~a:~a~@
exec -a \"~a\" ~a \"$@\"~%"
- (which "bash") data (getenv "GUIX_PYTHONPATH")
- (which "python3")
- (string-append data "/run_game.py"))))
- (chmod executable #o555))
- ;; Add desktop file.
- (mkdir-p applications)
- (make-desktop-entry-file
- (string-append applications "/seahorse-adventures.desktop")
- #:name "Seahorse Adventures"
- #:comment
- '((#f "Help Barbie the seahorse float on bubbles to the moon"))
- #:exec ,name
- #:icon ,name
- #:categories '("Game" "ActionGame")
- #:keywords '("game" "retro" "platform"))
- ;; Add icons.
- (for-each
- (lambda (size)
- (let ((dir (string-append share "/icons/hicolor/"
- size "x" size "/apps")))
- (mkdir-p dir)
- (copy-file
- (string-append "icon" size ".png")
- (string-append dir "/searhorse-adventures.png"))))
- '("32" "64" "128")))
- #t))
- (add-after 'install 'unbundle-fonts
- ;; Unbundle Bitstream Vera font and replace deleted one.
- (lambda* (#:key outputs inputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (data (string-append out "/share/seahorse-adventures"))
+ (search-input-file inputs "/bin/bash")
+ data
+ (getenv "GUIX_PYTHONPATH")
+ (search-input-file inputs "/bin/python3")
+ (string-append data "/run_game.py"))))
+ (chmod executable #o555))
+ ;; Add desktop file.
+ (mkdir-p applications)
+ (make-desktop-entry-file
+ (string-append applications "/seahorse-adventures.desktop")
+ #:name "Seahorse Adventures"
+ #:comment
+ '((#f "Help Barbie the seahorse float on bubbles to the moon"))
+ #:exec #$name
+ #:icon #$name
+ #:categories '("Game" "ActionGame")
+ #:keywords '("game" "retro" "platform"))
+ ;; Add icons.
+ (for-each
+ (lambda (size)
+ (let ((dir (string-append share "/icons/hicolor/"
+ size "x" size "/apps")))
+ (mkdir-p dir)
+ (copy-file
+ (string-append "icon" size ".png")
+ (string-append dir "/searhorse-adventures.png"))))
+ '("32" "64" "128")))))
+ (add-after 'install 'unbundle-fonts
+ ;; Unbundle Bitstream Vera font and replace deleted one.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((data (string-append #$output "/share/seahorse-adventures"))
(vera (search-input-file
inputs "/share/fonts/truetype/Vera.ttf")))
- (let ((themes-dir (string-append data "/data/themes/")))
- (for-each
- (lambda (theme)
- (let ((target (string-append themes-dir theme "/Vera.ttf")))
- (delete-file target)
- (symlink vera target)))
- '("default" "gray")))
- (symlink vera (string-append data "/data/fonts/04B_20__.TTF"))
- (substitute* (string-append data "/lib/main.py")
- (("f_scale = 0.35") "f_scale = 0.47")))
- #t)))))
+ (let ((themes-dir (string-append data "/data/themes/")))
+ (for-each
+ (lambda (theme)
+ (let ((target (string-append themes-dir theme "/Vera.ttf")))
+ (delete-file target)
+ (symlink vera target)))
+ '("default" "gray")))
+ (symlink vera (string-append data "/data/fonts/04B_20__.TTF"))
+ (substitute* (string-append data "/lib/main.py")
+ (("f_scale = 0.35") "f_scale = 0.47"))))))))
(inputs
(list font-bitstream-vera python-pygame))
(home-page "http://www.imitationpickles.org/barbie/")
@@ -4220,14 +4219,14 @@ world}, @uref{http://evolonline.org, Evol Online} and
(define openttd-engine
(package
(name "openttd-engine")
- (version "12.0")
+ (version "12.1")
(source
(origin (method url-fetch)
(uri (string-append "https://cdn.openttd.org/openttd-releases/"
version "/openttd-" version "-source.tar.xz"))
(sha256
(base32
- "1p1j5cf4ry57dcgm7qx2g2s00z1c6qgjabb4kqjp00yz00wgv85v"))))
+ "1qz7ld55m9cvgr4mkv6c11y0zf2aph3ba605l45qj41hk2wzb2r5"))))
(build-system cmake-build-system)
(inputs
`(("allegro" ,allegro)
@@ -4583,6 +4582,40 @@ images, etc.)")
;; regarding assets.
(license license:gpl3+)))
+(define-public openriichi
+ (package
+ (name "openriichi")
+ (version "0.2.1.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FluffyStuff/OpenRiichi")
+ (commit (string-append "v" version))
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1x6m4mli92chns5dky9aq9w4r4pnycvlpa2q0giydapm5q9fkslf"))))
+ (build-system meson-build-system)
+ (arguments
+ '(#:configure-flags (list "--buildtype=release")
+ #:glib-or-gtk? #t))
+ (inputs (list glew
+ gtk+
+ libgee
+ sdl2
+ sdl2-image
+ sdl2-mixer))
+ (native-inputs (list pkg-config vala))
+ (home-page "https://github.com/FluffyStuff/OpenRiichi")
+ (synopsis "Japanese Mahjong client")
+ (description
+ "OpenRiichi is a client for playing Japanese Mahjong, and it supports
+singleplayer and multiplayer, with or without bots. It features all the
+standard riichi rules, as well as some optional ones. It also supports game
+logging, so games can be viewed again.")
+ (license license:gpl3)))
+
(define-public pinball
(package
(name "pinball")
@@ -5822,7 +5855,7 @@ for Un*x systems with X11.")
(define-public freeciv
(package
(name "freeciv")
- (version "2.6.6")
+ (version "3.0.0")
(source
(origin
(method url-fetch)
@@ -5832,9 +5865,9 @@ for Un*x systems with X11.")
(string-append
"mirror://sourceforge/freeciv/Freeciv%20"
(version-major+minor version) "/" version
- "/freeciv-" version ".tar.bz2")))
+ "/freeciv-" version ".tar.xz")))
(sha256
- (base32 "04aq2v1ima87sap6yjb7jrm1ss63ax7v5kg7rpkj44887kfybkvv"))))
+ (base32 "1cm0530xmbqdhqkr89xb845cd756nillbdq53r3z5zpxsj18fapa"))))
(build-system gnu-build-system)
(inputs
(list curl cyrus-sasl gtk+ sdl-mixer zlib))
@@ -6391,63 +6424,61 @@ fish. The whole game is accompanied by quiet, comforting music.")
(define-public crawl
(package
(name "crawl")
- (version "0.27.1")
+ (version "0.28.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/crawl/crawl/releases/download/"
version "/stone_soup-" version "-nodeps.tar.xz"))
(sha256
- (base32 "0nkhyhrrma8gmwxp15j84cn1k2yvyq7ar9rd0j2qjjlv2kdis5z2"))
+ (base32 "0irg5w4m127fxcj037kyp9vnyqyq1fi4q64rn6yq92w8z1lf2sss"))
(patches (search-patches "crawl-upgrade-saves.patch"))))
(build-system gnu-build-system)
(inputs
- `(("lua51" ,lua-5.1)
- ("ncurses" ,ncurses)
- ("sqlite" ,sqlite)
- ("zlib" ,zlib)))
+ (list lua-5.1 ncurses sqlite zlib))
(native-inputs
- `(("bison" ,bison)
- ("flex" ,flex)
- ("perl" ,perl)
- ("python" ,python-wrapper)
- ("python-pyyaml" ,python-pyyaml)
- ("pkg-config" ,pkg-config)))
+ (list bash-minimal
+ bison
+ flex
+ perl
+ pkg-config
+ python-wrapper
+ python-pyyaml))
(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"
- ;; Don't compile with SSE on systems which don't have it.
- ,@(match (%current-system)
+ (list
+ #:make-flags
+ #~(list (string-append "SQLITE_INCLUDE_DIR="
+ #$(this-package-input "sqlite")
+ "/include")
+ (string-append "prefix=" #$output)
+ "SAVEDIR=~/.crawl"
+ ;; Don't compile with SSE on systems which don't have it.
+ #$@(match (%current-system)
((or "i686-linux" "x86_64-linux")
'())
(_ '("NOSSE=TRUE")))
- ;; don't build any bundled dependencies
- "BUILD_LUA="
- "BUILD_SQLITE="
- "BUILD_ZLIB="
- "-Csource"))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'find-SDL-image
- (lambda _
- (substitute* "source/windowmanager-sdl.cc"
- (("SDL_image.h") "SDL2/SDL_image.h"))
- #t))
- (delete 'configure)
- (replace 'check
- (lambda* (#:key inputs outputs 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="))))))))
+ ;; don't build any bundled dependencies
+ "BUILD_LUA="
+ "BUILD_SQLITE="
+ "BUILD_ZLIB="
+ "-Csource")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'find-SDL-image
+ (lambda _
+ (substitute* "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="))))))))
(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
@@ -6472,29 +6503,23 @@ monsters in a quest to find the mystifyingly fabulous Orb of Zot.")
(substitute-keyword-arguments
(package-arguments crawl)
((#:make-flags flags)
- `(let ((dejavu (assoc-ref %build-inputs "font-dejavu")))
- (cons*
- (string-append "PROPORTIONAL_FONT=" dejavu
- "/share/fonts/truetype/DejaVuSans.ttf")
- (string-append "MONOSPACED_FONT=" dejavu
- "/share/fonts/truetype/DejaVuSansMono.ttf")
- "TILES=y"
- ;; Rename the executable to allow parallel installation with crawl.
- "GAME=crawl-tiles"
- ,flags)))))
- (inputs
- `(,@(package-inputs crawl)
- ("font-dejavu" ,font-dejavu)
- ("freetype6" ,freetype)
- ("glu" ,glu)
- ("libpng" ,libpng)
- ("sdl2" ,sdl2)
- ("sdl2-image" ,sdl2-image)
- ("sdl2-mixer" ,sdl2-mixer)))
- (native-inputs
- `(,@(package-native-inputs crawl)
- ("pngcrush" ,pngcrush)
- ("which" ,which)))
+ #~(cons*
+ (string-append "PROPORTIONAL_FONT="
+ #$(this-package-input "font-dejavu")
+ "/share/fonts/truetype/DejaVuSans.ttf")
+ (string-append "MONOSPACED_FONT="
+ #$(this-package-input "font-dejavu")
+ "/share/fonts/truetype/DejaVuSansMono.ttf")
+ "TILES=y"
+ ;; Rename the executable to allow parallel installation with crawl.
+ "GAME=crawl-tiles"
+ #$flags))))
+ (inputs
+ (modify-inputs (package-inputs crawl)
+ (prepend font-dejavu freetype glu libpng sdl2 sdl2-image sdl2-mixer)))
+ (native-inputs
+ (modify-inputs (package-native-inputs crawl)
+ (prepend pngcrush which)))
(synopsis "Graphical roguelike dungeon crawler game")))
(define-public lugaru
@@ -7155,7 +7180,7 @@ elements to achieve a simple goal in the most complex way possible.")
(define-public pioneer
(package
(name "pioneer")
- (version "20210723")
+ (version "20220203")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -7164,7 +7189,7 @@ elements to achieve a simple goal in the most complex way possible.")
(file-name (git-file-name name version))
(sha256
(base32
- "1hj99jxb9n3r0bkq87p1c24862xa1xyzjyfdyyx88ckszxb05qf3"))))
+ "0qjq6lsr1rmcnvq9b7r745cpp7n0q6cpc3k81q8ai4xspbq61m8w"))))
(build-system cmake-build-system)
(native-inputs
(list pkg-config))
@@ -7183,6 +7208,7 @@ elements to achieve a simple goal in the most complex way possible.")
(arguments
`(#:tests? #f ;tests are broken
#:configure-flags (list "-DUSE_SYSTEM_LIBLUA:BOOL=YES"
+ "-DUSE_SYSTEM_LIBGLEW:BOOL=YES"
(string-append "-DPIONEER_DATA_DIR="
%output "/share/games/pioneer"))
#:make-flags (list "all" "build-data")))
@@ -8909,7 +8935,7 @@ fight each other on an arena-like map.")
(define-public flare-engine
(package
(name "flare-engine")
- (version "1.12")
+ (version "1.13.04")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -8918,15 +8944,16 @@ fight each other on an arena-like map.")
(file-name (git-file-name name version))
(sha256
(base32
- "0h4xxj6r194pw68m3ngrnzkh6xgiblyrsc54z8abwba8m0mqbvmk"))))
+ "042n2r9whnd3kncf3k89dcl1srn7p2jk6kdc0lb2hbwff55iylnw"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ;no test
- #:configure-flags '("-DBINDIR=bin" "-DDATADIR=share/flare")))
+ (list
+ #:tests? #f ;no test
+ #:configure-flags #~(list "-DBINDIR=bin" "-DDATADIR=share/flare")))
(inputs
- `(("hicolor-icon-theme" ,hicolor-icon-theme)
- ("python" ,python-wrapper)
- ("sdl" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))))
+ (list hicolor-icon-theme
+ python-wrapper
+ (sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf))))
(home-page "http://www.flarerpg.org/")
(synopsis "Action Roleplaying Engine")
(description "Flare (Free Libre Action Roleplaying Engine) is a simple
@@ -8937,7 +8964,7 @@ action RPGs.")
(define-public flare-game
(package
(name "flare-game")
- (version "1.12")
+ (version "1.13.04")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -8946,51 +8973,51 @@ action RPGs.")
(file-name (git-file-name name version))
(sha256
(base32
- "0h9i128kq6disppbrplkf13zdmsg4cq23nim53mgwpawc4mqz7ga"))))
+ "18rdrwv7p5rvmlah5pl9vbc09xlb8id75a7c73yn2sxkm6cf5c2l"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ;no test
- #:configure-flags '("-DDATADIR=share/flare")
- #:phases
- (modify-phases %standard-phases
- ;; Flare expects the mods to be located in the same folder.
- ;; Yet, "default" mod is in the engine, whereas the others
- ;; are in the current package. Merge everything here with
- ;; a symlink.
- (add-after 'install 'add-default-mod
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (mods (string-append out "/share/flare/mods")))
- (with-directory-excursion mods
- (symlink (string-append (assoc-ref inputs "flare-engine")
- "/share/flare/mods/default")
- "default")))
- #t))
- (add-after 'install 'install-executable
- ;; The package only provides assets for the game, the
- ;; executable coming from "flare-engine". Since more than
- ;; one game may use the engine, we create a new executable,
- ;; "flare-game", which launches the engine with appropriate
- ;; parameters.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bash (search-input-file inputs "/bin/bash"))
+ (list
+ #:tests? #f ;no test
+ #:configure-flags #~(list "-DDATADIR=share/flare")
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Flare expects the mods to be located in the same folder.
+ ;; Yet, "default" mod is in the engine, whereas the others
+ ;; are in the current package. Merge everything here with
+ ;; a symlink.
+ (add-after 'install 'add-default-mod
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((mods (string-append #$output "/share/flare/mods")))
+ (with-directory-excursion mods
+ (symlink (search-input-directory inputs
+ "/share/flare/mods/default")
+ "default")
+ (symlink (search-input-file inputs
+ "/share/flare/mods/mods.txt")
+ "mods.txt")))))
+ (add-after 'install 'install-executable
+ ;; The package only provides assets for the game, the
+ ;; executable coming from "flare-engine". Since more than
+ ;; one game may use the engine, we create a new executable,
+ ;; "flare-game", which launches the engine with appropriate
+ ;; parameters.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((bash (search-input-file inputs "/bin/bash"))
(flare (search-input-file inputs "/bin/flare"))
- (script (string-append out "/bin/flare-game")))
- (mkdir-p (dirname script))
- (call-with-output-file script
- (lambda (port)
- (format port
- "#!~a
+ (script (string-append #$output "/bin/flare-game")))
+ (mkdir-p (dirname script))
+ (call-with-output-file script
+ (lambda (port)
+ (format port
+ "#!~a
exec ~a --data-path=~a/share/flare --mods=empyrean_campaign~%"
- bash
- flare
- out)))
- (chmod script #o755))
- #t)))))
+ bash
+ flare
+ #$output)))
+ (chmod script #o755)))))))
(inputs
(list flare-engine))
- (home-page "http://www.flarerpg.org/")
+ (home-page "https://flarerpg.org/")
(synopsis "Fantasy action RPG using the FLARE engine")
(description "Flare is a single-player 2D action RPG with
fast-paced action and a dark fantasy style.")
@@ -9181,43 +9208,41 @@ and also provides the base for the FlightGear Flight Simulator.")
;; There are some bundled libraries.
(for-each delete-file-recursively
'("3rdparty/sqlite3/"
- "3rdparty/cppunit/"))
- #t))))
+ "3rdparty/cppunit/"))))))
(build-system qt-build-system)
(arguments
- `(#:configure-flags
- (list "-DSYSTEM_SQLITE=ON"
- "-DSYSTEM_CPPUNIT=ON"
- (string-append "-DFG_DATA_DIR="
- (assoc-ref %outputs "out")
- "/share/flightgear"))
- ;; TODO: test suite segfaults.
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'skip-some-tests
- (lambda _
- (substitute* "test_suite/unit_tests/Instrumentation/test_gps.hxx"
- (("CPPUNIT_TEST\\(testLongLegWestbound\\);" all)
- (string-append "// " all))
- (("CPPUNIT_TEST\\(testFinalLegCourse\\);" all)
- (string-append "// " all)))))
- (add-after 'build 'build-test-suite
- (lambda* args
- ((assoc-ref %standard-phases 'build)
- #:make-flags (list "fgfs_test_suite"))))
- ;; Test suite needs access to FGData so run it after 'install.
- (delete 'check)
- (add-after 'install-data 'check
- (assoc-ref %standard-phases 'check))
- (add-after 'install 'install-data
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((share (string-append (assoc-ref outputs "out") "/share/flightgear")))
- (mkdir-p share)
- (with-directory-excursion share
- (invoke "tar" "xf" (assoc-ref inputs "flightgear-data")
- "--strip-components=1")))
- #t)))))
+ (list #:configure-flags
+ #~(list "-DSYSTEM_SQLITE=ON"
+ "-DSYSTEM_CPPUNIT=ON"
+ (string-append "-DFG_DATA_DIR=" #$output "/share/flightgear"))
+ ;; TODO: test suite segfaults.
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'skip-some-tests
+ (lambda _
+ (substitute*
+ "test_suite/unit_tests/Instrumentation/test_gps.hxx"
+ (("CPPUNIT_TEST\\(testLongLegWestbound\\);" all)
+ (string-append "// " all))
+ (("CPPUNIT_TEST\\(testFinalLegCourse\\);" all)
+ (string-append "// " all)))))
+ (add-after 'build 'build-test-suite
+ (lambda* args
+ ((assoc-ref %standard-phases 'build)
+ #:make-flags (list "fgfs_test_suite"))))
+ ;; Test suite needs access to FGData so run it after 'install.
+ (delete 'check)
+ (add-after 'install-data 'check
+ (assoc-ref %standard-phases 'check))
+ (add-after 'install 'install-data
+ (lambda _
+ (let ((share (string-append #$output "/share/flightgear")))
+ (mkdir-p share)
+ (with-directory-excursion share
+ (invoke "tar" "xf"
+ #$(this-package-native-input "flightgear-data")
+ "--strip-components=1"))))))))
(inputs
(list boost
dbus
@@ -9367,7 +9392,7 @@ play with up to four players simultaneously. It has network support.")
("sdl" ,(sdl-union
(list sdl2 sdl2-mixer sdl2-net sdl2-ttf sdl2-image)))))
(native-inputs
- (list clang ghc pkg-config qttools))
+ (list clang-9 ghc pkg-config qttools))
(home-page "https://hedgewars.org/")
(synopsis "Turn-based artillery game featuring fighting hedgehogs")
(description