summary refs log tree commit diff
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