mailmap: Update entries for Nikita.
[jackhill/guix/guix.git] / gnu / packages / games.scm
index 4d4b2b0..63977f9 100644 (file)
 ;;; Copyright © 2015, 2016, 2017 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016, 2017 Rodger Fox <thylakoid@openmailbox.org>
-;;; Copyright © 2016, 2017, 2018 ng0 <ng0@n0.is>
+;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
 ;;; Copyright © 2016, 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2016 Steve Webber <webber.sl@gmail.com>
 ;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@hyperbola.info>
@@ -27,7 +27,7 @@
 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017, 2019 nee <nee-git@hidamari.blue>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
      `(("expat" ,expat)
        ("freeglut" ,freeglut)
        ("glu" ,glu)
-       ("libjpeg" ,libjpeg)
+       ("libjpeg" ,libjpeg-turbo)
        ("libogg" ,libogg)
        ("libtiff" ,libtiff)
        ("libvorbis" ,libvorbis)
@@ -397,62 +397,112 @@ Playing bastet can be a painful experience, especially if you usually make
 canyons and wait for the long I-shaped block to clear four rows at a time.")
     (license license:gpl3+)))
 
+(define-public blobwars
+  (package
+    (name "blobwars")
+    (version "2.00")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/blobwars/"
+                           "blobwars-" version ".tar.gz"))
+       (sha256
+        (base32 "16aagvkx6azf75gm5kaa94bh5npydvhqp3fvdqyfsanzdjgjf1n4"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test
+       #:make-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (list (string-append "PREFIX=" out)
+               (string-append "BINDIR=" out "/bin/")
+               "USEPAK=1"
+               "RELEASE=1"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'werror-begone
+           (lambda _
+             (substitute* "Makefile" (("-Werror") ""))
+             #t))
+         (delete 'configure))))         ;no configure script
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("sdl" ,(sdl-union (list sdl2
+                                sdl2-image
+                                sdl2-mixer
+                                sdl2-ttf
+                                sdl2-net)))))
+    (home-page "https://sourceforge.net/projects/blobwars/")
+    (synopsis "Platform action game featuring a blob with a lot of weapons")
+    (description "Blobwars: Metal Blob Solid is a 2D platform game, the first
+in the Blobwars series.  You take on the role of a fearless Blob agent.  Your
+mission is to infiltrate various enemy bases and rescue as many MIAs as
+possible, while battling many vicious aliens.")
+    (license (list license:gpl2      ; For code and graphics
+                   license:cc0       ; Music and sounds have specific licenses
+                   license:cc-by3.0  ; see /doc/readme
+                   license:cc-by-sa3.0
+                   license:lgpl2.1+
+                   license:bsd-2))))
+
 (define-public cataclysm-dda
-  (let ((commit "9c732a5de48928691ab863d3ab275ca7b0e522fc"))
-    (package
-      (name "cataclysm-dda")
-      (version "0.D")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/CleverRaven/Cataclysm-DDA.git")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "00zzhx1mh1qjq668cga5nbrxp2qk6b82j5ak65skhgnlr6ii4ysc"))
-                (file-name (git-file-name name version))))
-      (build-system gnu-build-system)
-      (arguments
-       '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
-                            "USE_HOME_DIR=1" "DYNAMIC_LINKING=1" "RELEASE=1"
-                            "LOCALIZE=1" "LANGUAGES=all")
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (add-after 'build 'build-tiles
-             (lambda* (#:key make-flags outputs #:allow-other-keys)
-               ;; Change prefix directory and enable tile graphics and sound.
-               (apply invoke "make" "TILES=1" "SOUND=1"
-                      (string-append "PREFIX="
-                                     (assoc-ref outputs "tiles"))
-                      (cdr make-flags))))
-           (add-after 'install 'install-tiles
-             (lambda* (#:key make-flags outputs #:allow-other-keys)
-               (apply invoke "make" "install" "TILES=1" "SOUND=1"
-                      (string-append "PREFIX="
-                                     (assoc-ref outputs "tiles"))
-                      (cdr make-flags)))))
-         ;; TODO: Add libtap++ from https://github.com/cbab/libtappp as a native
-         ;;       input in order to support tests.
-         #:tests? #f))
-      (outputs '("out"
-                 "tiles")) ; For tile graphics and sound support.
-      (native-inputs
-       `(("gettext" ,gettext-minimal)
-         ("pkg-config" ,pkg-config)))
-      (inputs
-       `(("freetype" ,freetype)
-         ("libogg" ,libogg)
-         ("libvorbis" ,libvorbis)
-         ("ncurses" ,ncurses)
-         ("sdl2" ,sdl2)
-         ("sdl2-image" ,sdl2-image)
-         ("sdl2-ttf" ,sdl2-ttf)
-         ("sdl2-mixer" ,sdl2-mixer)))
-      (home-page "https://cataclysmdda.org/")
-      (synopsis "Survival horror roguelike video game")
-      (description
-       "Cataclysm: Dark Days Ahead (or \"DDA\" for short) is a roguelike set
+  (package
+    (name "cataclysm-dda")
+    (version "0.E")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/CleverRaven/Cataclysm-DDA.git")
+             (commit version)))
+       (sha256
+        (base32 "0pbi0fw37zimzdklfj58s1ql0wlqq7dy6idkcsib3hn910ajaxan"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             "USE_HOME_DIR=1" "DYNAMIC_LINKING=1" "RELEASE=1"
+             "LOCALIZE=1" "LANGUAGES=all")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'build 'build-tiles
+           (lambda* (#:key make-flags outputs #:allow-other-keys)
+             ;; Change prefix directory and enable tile graphics and sound.
+             (apply invoke "make" "TILES=1" "SOUND=1"
+                    (string-append "PREFIX="
+                                   (assoc-ref outputs "tiles"))
+                    (cdr make-flags))))
+         (add-after 'install 'install-tiles
+           (lambda* (#:key make-flags outputs #:allow-other-keys)
+             (apply invoke "make" "install" "TILES=1" "SOUND=1"
+                    (string-append "PREFIX="
+                                   (assoc-ref outputs "tiles"))
+                    (cdr make-flags)))))
+       ;; TODO: Add libtap++ from https://github.com/cbab/libtappp as a native
+       ;;       input in order to support tests.
+       #:tests? #f))
+    (outputs '("out"
+               "tiles"))                ;for tile graphics and sound support
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("freetype" ,freetype)
+       ("libogg" ,libogg)
+       ("libvorbis" ,libvorbis)
+       ("ncurses" ,ncurses)
+       ("sdl2" ,sdl2)
+       ("sdl2-image" ,sdl2-image)
+       ("sdl2-ttf" ,sdl2-ttf)
+       ("sdl2-mixer" ,sdl2-mixer)))
+    (home-page "https://cataclysmdda.org/")
+    (synopsis "Survival horror roguelike video game")
+    (description
+     "Cataclysm: Dark Days Ahead (or \"DDA\" for short) is a roguelike set
 in a post-apocalyptic world.  Struggle to survive in a harsh, persistent,
 procedurally generated world.  Scavenge the remnants of a dead civilization
 for food, equipment, or, if you are lucky, a vehicle with a full tank of gas
@@ -460,7 +510,7 @@ to get you out of Dodge.  Fight to defeat or escape from a wide variety of
 powerful monstrosities, from zombies to giant insects to killer robots and
 things far stranger and deadlier, and against the others like yourself, that
 want what you have.")
-      (license license:cc-by-sa3.0))))
+    (license license:cc-by-sa3.0)))
 
 (define-public corsix-th
   (package
@@ -813,7 +863,7 @@ effects and music to make a completely free game.")
      `(("pkg-config" ,pkg-config)))
     (inputs
      `(("glu" ,glu)
-       ("libjpeg" ,libjpeg)
+       ("libjpeg" ,libjpeg-turbo)
        ("libogg" ,libogg)
        ("libpng" ,libpng)
        ("libvorbis" ,libvorbis)
@@ -1150,7 +1200,11 @@ such as chess or stockfish.")
         (base32
          "11xwhcli1h12k6rnhhyq4jphzrhfik7i8ah3k32pqw803460n6yf"))))
     (build-system gnu-build-system)
-    (inputs `(("glib" ,glib)
+    (inputs `(;; XXX: Build with an older Pango for 'pango_font_get_hb_font' and
+              ;; 'pango_coverage_get_type'.  Try removing this for versions > 1.06.002.
+              ("pango" ,pango-1.42)
+
+              ("glib" ,glib)
               ("readline" ,readline)
               ("gtk+" ,gtk+-2)
               ("mesa" ,mesa)
@@ -1202,6 +1256,16 @@ also features an attractive, 3D representation of the playing board.")
        (base32
         "1vlf924mq8hg93bsjj0rzvs0crc6psmlxyc6zn0fr7msnmpx6gib"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'skip-gtk-update-icon-cache
+                    (lambda _
+                      ;; Do not attempt to run 'gtk-update-icon-cache', which is
+                      ;; unnecessary and causes a needless dependency on glib.
+                      (substitute* "Makefile.in"
+                        (("gtk-update-icon-cache")
+                         "true"))
+                      #t)))))
     (inputs `(("gtk+" ,gtk+-2)
               ("mesa" ,mesa)
               ("glu" ,glu)
@@ -1905,7 +1969,7 @@ asynchronously and at a user-defined speed.")
 (define-public chess
   (package
     (name "chess")
-    (version "6.2.5")
+    (version "6.2.6")
     (source
      (origin
        (method url-fetch)
@@ -1913,13 +1977,15 @@ asynchronously and at a user-defined speed.")
                            ".tar.gz"))
        (sha256
         (base32
-         "00j8s0npgfdi41a0mr5w9qbdxagdk2v41lcr42rwl1jp6miyk6cs"))))
+         "0kxhdv01ia91v2y0cmzbll391ns2vbmn65jjrv37h4s1srszh5yn"))))
     (build-system gnu-build-system)
     (home-page "https://www.gnu.org/software/chess/")
     (synopsis "Full chess implementation")
     (description "GNU Chess is a chess engine.  It allows you to compete
 against the computer in a game of chess, either through the default terminal
 interface or via an external visual interface such as GNU XBoard.")
+    (properties '((upstream-name . "gnuchess")
+                  (ftp-directory . "/chess")))
     (license license:gpl3+)))
 
 (define freedink-engine
@@ -2161,7 +2227,7 @@ are primarily in English, however some in other languages are provided.")
        #:make-flags '("CC=gcc" "sharedlib")))
     (inputs
      `(("bzip2" ,bzip2)
-       ("libjpeg" ,libjpeg)
+       ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
        ("libx11" ,libx11)
        ("libxxf86vm" ,libxxf86vm)
@@ -2308,7 +2374,7 @@ match, cannon keep, and grave-itation pit.")
        ("gmp" ,gmp)
        ("irrlicht" ,irrlicht)
        ("jsoncpp" ,jsoncpp)
-       ("libjpeg" ,libjpeg)
+       ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
        ("libogg" ,libogg)
        ("libvorbis" ,libvorbis)
@@ -2445,6 +2511,7 @@ Widgets, and allows users to create more.")
               (uri (string-append "https://codeload.github.com/fifengine/"
                                   "fifengine/tar.gz/" version))
               (file-name (string-append name "-" version ".tar.gz"))
+              (patches (search-patches "fifengine-swig-compat.patch"))
               (sha256
                (base32
                 "1y4grw25cq5iqlg05rnbyxw1njl11ypidnlsm3qy4sm3xxdvb0p8"))))
@@ -2461,7 +2528,9 @@ Widgets, and allows users to create more.")
                        "/include/AL")
         (string-append "-DPYTHON_SITE_PACKAGES="
                        (assoc-ref %outputs "out")
-                       "/lib/python3.7/site-packages"))
+                       "/lib/python"
+                       ,(version-major+minor (package-version python))
+                       "/site-packages"))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-run_tests.py
@@ -2550,7 +2619,7 @@ games using Python as well as C++.")
      `(("pkg-config" ,pkg-config)))
     (inputs
      `(("freetype" ,freetype)
-       ("libjpeg" ,libjpeg)
+       ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
        ("libsndfile" ,libsndfile)
        ("libxml2" ,libxml2)
@@ -2679,7 +2748,7 @@ This game is based on the GPL version of the famous game TuxRacer.")
        ("curl" ,curl)
        ;; The following input is needed to build the bundled and modified
        ;; version of irrlicht.
-       ("libjpeg" ,libjpeg)
+       ("libjpeg" ,libjpeg-turbo)
        ("openssl" ,openssl)
        ("enet" ,enet)))
     (native-inputs
@@ -2830,20 +2899,7 @@ falling, themeable graphics and sounds, and replays.")
                 "1i8mz6gw3qar09bscczhki0g4scj8pl58v85rp0g55r4bcq41l5v"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f                      ;no check target
-       #:phases (modify-phases %standard-phases
-                  (add-before 'configure 'treat-boost-as-system-header
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (let ((boost (assoc-ref inputs "boost")))
-                        ;; Ensure Boost is treated as "system headers" to
-                        ;; pacify compiler warnings induced by Boost headers.
-                        (for-each (lambda (variable)
-                                    (setenv variable
-                                            (string-append boost "/include:"
-                                                           (or (getenv variable)
-                                                               ""))))
-                                  '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH"))
-                        #t))))))
+     `(#:tests? #f))                    ;no check target
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
@@ -2971,20 +3027,14 @@ world}, @uref{http://evolonline.org, Evol Online} and
 (define openttd-engine
   (package
     (name "openttd-engine")
-    (version "1.9.3")
+    (version "1.10.0")
     (source
      (origin (method url-fetch)
-             (uri (string-append "https://proxy.binaries.openttd.org/openttd-releases/"
+             (uri (string-append "https://cdn.openttd.org/openttd-releases/"
                                  version "/openttd-" version "-source.tar.xz"))
              (sha256
               (base32
-               "0ijq72kgx997ggw40i5f4a3nf7y2g72z37l47i18yjvgbdzy320r"))
-             (modules '((guix build utils)))
-             (snippet
-              ;; The DOS port contains proprietary software.
-              '(begin
-                 (delete-file-recursively "os/dos")
-                 #t))))
+               "0lz2y2rjc23k0d97y65cqhy2splw9cmrbvhgz0iqps8xkan1m8hv"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f              ; no "check" target
@@ -3034,15 +3084,15 @@ engine.  When you start it you will be prompted to download a graphics set.")
 (define openttd-opengfx
   (package
     (name "openttd-opengfx")
-    (version "0.5.5")
+    (version "0.6.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://binaries.openttd.org/extra/opengfx/"
+       (uri (string-append "https://cdn.openttd.org/opengfx-releases/"
                            version "/opengfx-" version "-source.tar.xz"))
        (sha256
         (base32
-         "009fa1bdin1bk0ynzhzc30hzkmmwzmwkk6j591ax3f6w75l28n49"))))
+         "0qxc6gl2gxcrn1np88dnjgbaaakkkx96b13rcmy1spryc8c09hyr"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags (list "CC=gcc"
@@ -3072,6 +3122,7 @@ engine.  When you start it you will be prompted to download a graphics set.")
                      ("gimp" ,gimp)
                      ("grfcodec" ,grfcodec)
                      ("nml" ,nml)
+                     ("which" ,which)
                      ("python" ,python-2)))
     (home-page "http://dev.openttdcoop.org/projects/opengfx")
     (synopsis "Base graphics set for OpenTTD")
@@ -3716,6 +3767,69 @@ fullscreen, use F5 or Alt+Enter.")
     ;; Code mainly BSD-2, some parts under Boost 1.0. All assets are WTFPL2.
     (license (list license:bsd-2 license:boost1.0 license:wtfpl2))))
 
+(define-public tennix
+  (package
+    (name "tennix")
+    (version "1.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://repo.or.cz/tennix.git")
+             (commit (string-append "tennix-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "02cj4lrdrisal5s9pnbf2smx7qz9czczjzndfkhfx0qy67b957sk"))
+       ;; Remove non-free images.
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (for-each delete-file
+                     '("data/loc_training_camp.png"
+                       "data/loc_austrian_open.png"
+                       "data/loc_olympic_green_tennis.png"))
+           #t))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-include
+           (lambda _
+             (substitute* '("src/graphics.h" "src/sound.h")
+               (("#include \"(SDL_(image|ttf|mixer)\\.h)\"" _ header)
+                (string-append "#include \"SDL/" header "\"")))
+             (substitute* '("src/tennix.h" "src/network.h" "src/SDL_rotozoom.h")
+               (("#include <SDL.h>") "#include <SDL/SDL.h>")
+               (("#include <SDL_net.h>") "#include <SDL/SDL_net.h>"))
+             #t))
+         (add-after 'unpack 'locate-install
+           ;; Build process cannot expand "$(INSTALL)" in Makefile.
+           (lambda _
+             (substitute* "makefile"
+               (("^CONFIGURE_OUTPUT :=.*" all)
+                (string-append "INSTALL := install -c\n" all)))
+             #t))
+         (replace 'configure
+           ;; The "configure" script is picky about the arguments it
+           ;; gets.  Call it ourselves.
+           (lambda _
+             (invoke "./configure" "--prefix" (assoc-ref %outputs "out")))))))
+    (native-inputs
+     `(("which" ,which)))
+    (inputs
+     `(("python" ,python-wrapper)
+       ("sdl" ,(sdl-union (list sdl sdl-image sdl-mixer sdl-ttf sdl-net)))))
+    (home-page "http://icculus.org/tennix/")
+    (synopsis "Play tennis against the computer or a friend")
+    (description "Tennix is a 2D tennis game.  You can play against the
+computer or against another player using the keyboard.  The game runs
+in-window at 640x480 resolution or fullscreen.")
+    ;; Project is licensed under GPL2+ terms.  It includes images
+    ;; released under Public Domain terms, and SDL_rotozoom, released
+    ;; under LGPL2.1 terms.
+    (license (list license:gpl2+ license:public-domain license:lgpl2.1))))
+
 (define-public warzone2100
   (package
     (name "warzone2100")
@@ -3772,7 +3886,7 @@ fullscreen, use F5 or Alt+Enter.")
 modes. An extensive tech tree with over 400 different technologies, combined
 with the unit design system, allows for a wide variety of possible units and
 tactics.")
-    ; Everything is GPLv2+ unless otherwise specified in COPYING.NONGPL
+                                        ; Everything is GPLv2+ unless otherwise specified in COPYING.NONGPL
     (license (list license:bsd-3
                    license:cc0
                    license:cc-by-sa3.0
@@ -4018,7 +4132,7 @@ with the \"Stamp\" tool within Tux Paint.")
 (define-public supertux
   (package
    (name "supertux")
-   (version "0.6.1")
+   (version "0.6.1.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "https://github.com/SuperTux/supertux/"
@@ -4027,7 +4141,7 @@ with the \"Stamp\" tool within Tux Paint.")
             (file-name (string-append name "-" version ".tar.gz"))
             (sha256
              (base32
-              "0lqch5gcq6ccnspy93z9r13bp8w2j1vrd8jhvk5kp4qhrd1f069s"))
+              "0n36qxwjlkdlksximz4s729az6pry2sdjavwgm7m65vfgdiz139f"))
             (patches
              (search-patches "supertux-unbundle-squirrel.patch"))))
    (arguments
@@ -4281,7 +4395,7 @@ throwing people around in pseudo-randomly generated buildings.")
          (add-after 'set-paths 'set-sdl-paths
            (lambda* (#:key inputs #:allow-other-keys)
              (setenv "CPATH"
-                     (string-append (getenv "CPATH") ":"
+                     (string-append (or (getenv "CPATH") "") ":"
                                     (assoc-ref inputs "sdl-union")
                                     "/include/SDL"))))
          (replace 'configure
@@ -4690,7 +4804,8 @@ over 100 user-created campaigns.")
                      (string-append (assoc-ref inputs "sdl-union")
                                     "/include/SDL:"
                                     (assoc-ref inputs "python")
-                                    "/include/python2.7"))
+                                    "/include/python2.7:"
+                                    (or (getenv "CPLUS_INCLUDE_PATH") "")))
              (substitute* "src/main/main.cpp"
                (("#include <SDL.h>" line)
                 (string-append line "
@@ -4755,7 +4870,7 @@ small robot living in the nano world, repair its maker.")
 (define-public teeworlds
   (package
     (name "teeworlds")
-    (version "0.7.4")
+    (version "0.7.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4764,7 +4879,7 @@ small robot living in the nano world, repair its maker.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1lxdb1k2cdj2421vyz1z0ximzfnpkh2y4y84zpn2gqsa1nzwbryb"))
+                "169dl83q08zl4h813az8hjs4rs3dms9yjn6bnsld4fjcj0imvvc6"))
               (modules '((guix build utils)
                          (ice-9 ftw)
                          (ice-9 regex)
@@ -5467,7 +5582,7 @@ Crowther & Woods, its original authors, in 1995.  It has been known as
                       (setenv "CPATH"
                               (string-append (assoc-ref inputs "sdl-union")
                                              "/include/SDL2:"
-                                             (getenv "CPATH")))
+                                             (or (getenv "CPATH") "")))
                       #t))
                   (delete 'check)
                   ;; premake doesn't provide install target
@@ -5521,19 +5636,13 @@ Crowther & Woods, its original authors, in 1995.  It has been known as
                         (copy-recursively "game" (string-append data "/game"))
                         ;; launcher
                         (mkdir-p applications)
-                        (with-output-to-file (string-append applications "/"
-                                                            ,name ".desktop")
-                          (lambda ()
-                            (display
-                             (string-append
-                              "[Desktop Entry]
-Name=ToME4
-Comment=" ,synopsis "\n"
-"Exec=" ,name "\n"
-"Icon=" icon "\n"
-"Terminal=false
-Type=Application
-Categories=Game;RolePlaying;\n")))))
+                        (make-desktop-entry-file
+                         (string-append applications "/" ,name ".desktop")
+                         #:name "ToME4"
+                         #:comment ,synopsis
+                         #:exec ,name
+                         #:icon icon
+                         #:categories '("Game" "RolePlaying")))
                       #t)))))
     (home-page "https://te4.org")
     (description "Tales of Maj’Eyal (ToME) RPG, featuring tactical turn-based
@@ -5990,7 +6099,7 @@ You can save humanity and get programming skills!")
               ("fluidsynth" ,fluidsynth)
               ("gtk+3" ,gtk+)
               ("libgme" ,libgme)
-              ("libjpeg" ,libjpeg)
+              ("libjpeg" ,libjpeg-turbo)
               ("libsndfile" ,libsndfile)
               ("mesa" ,mesa)
               ("mpg123" ,mpg123)
@@ -6081,7 +6190,7 @@ affect gameplay).")
   (package
     (inherit chocolate-doom)
     (name "crispy-doom")
-    (version "5.7.1")
+    (version "5.8.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -6089,7 +6198,7 @@ affect gameplay).")
                     (commit (string-append "crispy-doom-" version))))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "1gqivy4pxasy7phyznixsagylf9f70bk33b0knpfzzlks6cc6zzj"))))
+               (base32 "1b6gn0dysv631jynh769whww9xcss1gms78sz3nrn855q1dsvcb4"))))
     (native-inputs
      (append
       (package-native-inputs chocolate-doom)
@@ -6447,7 +6556,7 @@ quotation from a collection of quotes.")
      `(("xonotic-data" ,xonotic-data)
        ("alsa-lib" ,alsa-lib)
        ("curl" ,curl)
-       ("libjpeg" ,libjpeg)
+       ("libjpeg" ,libjpeg-turbo)
        ("libmodplug" ,libmodplug)
        ("libvorbis" ,libvorbis)
        ("libogg" ,libogg)
@@ -6694,7 +6803,7 @@ GameController.")
              #t)))))
     (native-inputs
      `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
-       ("gettext" ,gnu-gettext)
+       ("gettext" ,gettext-minimal)
        ("glib" ,glib "bin")             ;for glib-compile-resources
        ("itstool" ,itstool)
        ("libxml2" ,libxml2)             ;for xmllint
@@ -6722,7 +6831,7 @@ your score gets higher, you level up and the blocks fall faster.")
 (define-public endless-sky
   (package
     (name "endless-sky")
-    (version "0.9.10")
+    (version "0.9.12")
     (source
       (origin
         (method git-fetch)
@@ -6731,8 +6840,7 @@ your score gets higher, you level up and the blocks fall faster.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32
-          "1wax9qhxakydg6bs92d1jy2fki1n9r0wkps1np02y0pvm1fl189i"))))
+         (base32 "18nkl4s3r5sy3sd9lhbdg9160c7fggklklprx0d5azifc8g6k0wj"))))
     (build-system scons-build-system)
     (arguments
      `(#:scons ,scons-python2
@@ -7199,7 +7307,7 @@ where the player draws runes in real time to effect the desired spell.")
      `(("pkg-config" ,pkg-config)
        ("autoconf" ,autoconf)
        ("automake" ,automake)
-       ("gnu-gettext" ,gnu-gettext)
+       ("gnu-gettext" ,gettext-minimal)
        ("libtool" ,libtool)
        ("which" ,which)))
     (synopsis "2d action platformer game")
@@ -7879,22 +7987,18 @@ on items and player adaptability for character progression.")
            ;; game, so we borrow SCUMMVM's.
            (let ((apps (string-append out "/share/applications")))
              (mkdir-p apps)
-             (with-output-to-file (string-append apps "/drascula.desktop")
-               (lambda _
-                 (format #t
-                         "[Desktop Entry]~@
-                     Name=Drascula: The Vampire Strikes Back~@
-                     GenericName=Drascula~@
-                     Exec=~a/bin/drascula~@
-                     Icon=~a/share/icons/hicolor/scalable/apps/scummvm.svg~@
-                     Categories=AdventureGame;Game;RolePlaying;~@
-                     Keywords=game;adventure;roleplaying;2D,fantasy;~@
-                     Comment=Classic 2D point and click adventure game~@
-                     Comment[de]=klassisches 2D-Abenteuerspiel in Zeigen-und-Klicken-Manier~@
-                     Comment[fr]=Jeux classique d'aventure pointer-et-cliquer en 2D~@
-                     Comment[it]=Gioco classico di avventura punta e clicca 2D~@
-                     Type=Application~%"
-                         out scummvm))))
+             (make-desktop-entry-file
+              (string-append apps "/drascula.desktop")
+              #:name "Drascula: The Vampire Strikes Back"
+              #:generic-name "Drascula"
+              #:exec (string-append out "/bin/drascula")
+              #:icon (string-append scummvm "/share/icons/hicolor/scalable/apps/scummvm.svg")
+              #:categories '("AdventureGame" "Game" "RolePlaying")
+              #:keywords '("game" "adventure" "roleplaying" "2D" "fantasy")
+              #:comment '((#f "Classic 2D point and click adventure game")
+                          ("de" "Klassisches 2D-Abenteuerspiel in Zeigen-und-Klicken-Manier")
+                          ("fr" "Jeu classique d'aventure pointer-et-cliquer en 2D")
+                          ("it" "Gioco classico di avventura punta e clicca 2D"))))
            #t))))
     (native-inputs
      `(("bash" ,bash)
@@ -10137,7 +10241,7 @@ This package is part of the KDE games module.")
      `(("curl" ,curl)
        ("font-dejavu" ,font-dejavu)
        ("glu" ,glu)
-       ("libjpeg" ,libjpeg)
+       ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
        ("libxdg-basedir" ,libxdg-basedir)
        ("libxml2" ,libxml2)
@@ -10456,7 +10560,7 @@ kingdom.")
       (native-inputs
        `(("gettext" ,gettext-minimal))) ;for msgfmt
       (inputs
-       `(("libjpeg" ,libjpeg)
+       `(("libjpeg" ,libjpeg-turbo)
          ("libpng" ,libpng)
          ("libvorbis" ,libvorbis)
          ("physfs" ,physfs)