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.scm1003
1 files changed, 863 insertions, 140 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 27cbf33fb9..556f813396 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -36,7 +36,7 @@
;;; Copyright © 2018 Madalin Ionel-Patrascu <madalinionel.patrascu@mdc-berlin.de>
;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
@@ -51,6 +51,7 @@
;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com>
;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -77,6 +78,7 @@
#:use-module (guix svn-download)
#:use-module (guix gexp)
#:use-module (gnu packages)
+ #:use-module (gnu packages adns)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
@@ -112,9 +114,11 @@
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages gnupg)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphics)
+ #:use-module (gnu packages gsasl)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
@@ -135,6 +139,7 @@
#:use-module (gnu packages lua)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
+ #:use-module (gnu packages messaging)
#:use-module (gnu packages mp3)
#:use-module (gnu packages music)
#:use-module (gnu packages multiprecision)
@@ -148,11 +153,13 @@
#:use-module (gnu packages perl-check)
#:use-module (gnu packages perl-compression)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages protobuf)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages ruby)
#:use-module (gnu packages shells)
#:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
@@ -174,8 +181,6 @@
#:use-module (gnu packages xorg)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
- #:use-module (gnu packages messaging)
- #:use-module (gnu packages networking)
#:use-module (guix build-system copy)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
@@ -190,6 +195,75 @@
#:use-module ((srfi srfi-1) #:hide (zip))
#:use-module (srfi srfi-26))
+(define-public abe
+ (package
+ (name "abe")
+ (version "1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/abe/abe/abe-" version
+ "/abe-" version ".tar.gz"))
+ (sha256
+ (base32 "1xvpnq1y6y48fn3pvn2lk0h1ilmalv7nb7awpid1g4jcq1sfmi6z"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "--with-data-dir="
+ (assoc-ref %outputs "out")
+ "/share/abe"))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'bootstrap
+ (lambda _ (invoke "sh" "autogen.sh")))
+ (add-before 'build 'set-SDL
+ ;; Set correct environment for SDL.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "CPATH"
+ (string-append
+ (assoc-ref inputs "sdl") "/include/SDL:"
+ (or (getenv "CPATH") "")))
+ #t))
+ (add-after 'install 'finalize-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((share (string-append (assoc-ref outputs "out") "/share")))
+ ;; Installation script does not copy game data files.
+ (let ((data (string-append share "/abe")))
+ (for-each (lambda (dir)
+ (let ((target (string-append data "/" dir)))
+ (mkdir-p target)
+ (copy-recursively dir target)))
+ '("images" "maps" "sounds")))
+ ;; Create desktop file.
+ (let ((apps (string-append share "/applications")))
+ (mkdir-p apps)
+ (make-desktop-entry-file
+ (string-append apps "/abe.desktop")
+ #:name "Abe's Amazing Adventure"
+ #:exec ,name
+ #:categories '("AdventureGame" "Game")
+ #:keywords
+ '("side-scrolling" "adventure" "pyramid" "singleplayer")
+ #:comment
+ '(("de" "Ein sich seitwärts bewegendes Abenteuerspiel")
+ (#f "Side-scrolling game")))))
+ #t)))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)))
+ (inputs
+ `(("libxi" ,libxi)
+ ("libxmu" ,libxmu)
+ ("libxt" ,libxt)
+ ("sdl" ,(sdl-union (list sdl sdl-mixer)))))
+ (home-page "http://abe.sourceforge.net")
+ (synopsis "Scrolling, platform-jumping, ancient pyramid exploring game")
+ (description
+ "Abe's Amazing Adventure is a scrolling,
+platform-jumping, key-collecting, ancient pyramid exploring game, vaguely in
+the style of similar games for the Commodore+4.")
+ (license license:gpl2+)))
+
;; Data package for adanaxisgpl.
(define adanaxis-mush
(let ((version "1.1.0"))
@@ -272,7 +346,7 @@ mouse and joystick control, and original music.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/carstene1ns/alex4.git")
+ (url "https://github.com/carstene1ns/alex4")
(commit version)))
(file-name (git-file-name name version))
(sha256
@@ -335,6 +409,66 @@ the more advanced player there are new game modes and a wide variety of
physics settings to tweak as well.")
(license license:gpl2+)))
+(define-public astromenace
+ (package
+ (name "astromenace")
+ (version "1.4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/viewizard/astromenace")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1ad6l887jxqv8xspwc2rvy8ym9sdlmkqdqhsh0pi076kjarxsyws"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ;no test
+ #:configure-flags '("-DDATADIR=share/astromenace")
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ ;; Upstream provides no install phase.
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (share (string-append out "/share"))
+ (apps (string-append share "/applications"))
+ (data (string-append share "/astromenace"))
+ (icons (string-append share "/icons/hicolor/64x64/apps")))
+ (install-file "astromenace" bin)
+ (install-file "gamedata.vfs" data)
+ (let ((source (assoc-ref inputs "source")))
+ (with-directory-excursion (string-append source "/share")
+ (install-file "astromenace.desktop" apps)
+ (mkdir-p icons)
+ (copy-file "astromenace_64.png"
+ (string-append icons "/astromenace.png")))))
+ #t)))))
+ (inputs
+ `(("freealut" ,freealut)
+ ("freetype" ,freetype)
+ ("glu" ,glu)
+ ("libogg" ,libogg)
+ ("libvorbis" ,libvorbis)
+ ("openal" ,openal)
+ ("sdl2" ,sdl2)))
+ (home-page "https://www.viewizard.com/")
+ (synopsis "3D space shooter with spaceship upgrade possibilities")
+ (description
+ "Space is a vast area, an unbounded territory where it seems there is
+a room for everybody, but reversal of fortune put things differently. The
+hordes of hostile creatures crawled out from the dark corners of the universe,
+craving to conquer your homeland. Their force is compelling, their legions
+are interminable. However, humans didn't give up without a final showdown and
+put their best pilot to fight back. These malicious invaders chose the wrong
+galaxy to conquer and you are to prove it! Go ahead and make alien aggressors
+regret their insolence.")
+ ;; Game is released under GPL3+ terms. Artwork is subject to CC
+ ;; BY-SA 4.0, and fonts to OFL1.1.
+ (license (list license:gpl3+ license:cc-by-sa4.0 license:silofl1.1))))
+
(define-public bastet
(package
(name "bastet")
@@ -343,7 +477,7 @@ physics settings to tweak as well.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/fph/bastet.git")
+ (url "https://github.com/fph/bastet")
(commit version)))
(file-name (git-file-name name version))
(sha256
@@ -449,6 +583,71 @@ possible, while battling many vicious aliens.")
license:lgpl2.1+
license:bsd-2))))
+(define-public bzflag
+ (package
+ (name "bzflag")
+ (version "2.4.20")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.bzflag.org/bzflag/source/"
+ version "/bzflag-" version ".tar.bz2"))
+ (sha256
+ (base32 "16brxqmfiyz4j4lb8ihzjcbwqmpsms6vm3ijbp34lnw0blbwdjb2"))))
+ (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)))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("c-ares" ,c-ares)
+ ("curl" ,curl)
+ ("glew" ,glew)
+ ("glu" ,glu)
+ ("sdl2" ,sdl2)
+ ("zlib" ,zlib)))
+ (home-page "https://www.bzflag.org/")
+ (synopsis "3D first person tank battle game")
+ (description
+ "BZFlag is a 3D multi-player multiplatform tank battle game that
+allows users to play against each other in a network environment.
+There are five teams: red, green, blue, purple and rogue (rogue tanks
+are black). Destroying a player on another team scores a win, while
+being destroyed or destroying a teammate scores a loss. Rogues have
+no teammates (not even other rogues), so they cannot shoot teammates
+and they do not have a team score.
+
+There are two main styles of play: capture-the-flag and free-for-all.
+In capture-the-flag, each team (except rogues) has a team base and
+each team with at least one player has a team flag. The object is to
+capture an enemy team's flag by bringing it to your team's base. This
+destroys every player on the captured team, subtracts one from that
+team's score, and adds one to your team's score. In free-for-all,
+there are no team flags or team bases. The object is simply to get as
+high a score as possible.")
+ ;; The game is dual-licensed.
+ (license (list license:lgpl2.1 license:mpl2.0))))
+
(define-public cataclysm-dda
(package
(name "cataclysm-dda")
@@ -457,7 +656,7 @@ possible, while battling many vicious aliens.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/CleverRaven/Cataclysm-DDA.git")
+ (url "https://github.com/CleverRaven/Cataclysm-DDA")
(commit version)))
(sha256
(base32 "15l6w6lxays7qmsv0ci2ry53asb9an9dh7l7fc13256k085qcg68"))
@@ -522,7 +721,7 @@ want what you have.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/CorsixTH/CorsixTH.git")
+ (url "https://github.com/CorsixTH/CorsixTH")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -577,7 +776,7 @@ more. This package does @emph{not} provide the game assets.")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/tnalpgge/rank-amateur-cowsay.git")
+ (url "https://github.com/tnalpgge/rank-amateur-cowsay")
(commit (string-append name "-" version))))
(file-name (git-file-name name version))
(sha256
@@ -620,7 +819,7 @@ tired of cows, a variety of other ASCII-art messengers are available.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/jaseg/lolcat.git")
+ (url "https://github.com/jaseg/lolcat")
(commit commit)))
(sha256
(base32
@@ -788,7 +987,7 @@ The game features:
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/freedoom/freedoom.git")
+ (url "https://github.com/freedoom/freedoom")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -986,7 +1185,7 @@ automata. The following features are available:
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/bvschaik/julius.git")
+ (url "https://github.com/bvschaik/julius")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -1093,7 +1292,7 @@ shadow mimic them to reach blocks you couldn't reach alone.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/alemart/opensurge.git")
+ (url "https://github.com/alemart/opensurge")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -1356,14 +1555,14 @@ Chess). It is similar to standard chess but this variant is far more complicate
(define-public ltris
(package
(name "ltris")
- (version "1.0.20")
+ (version "1.2")
(source
(origin
(method url-fetch)
- (uri (string-append "http://prdownloads.sourceforge.net/lgames/"
+ (uri (string-append "mirror://sourceforge/lgames/ltris/"
"ltris-" version ".tar.gz"))
(sha256
- (base32 "16zbqsc4amx9g3yjv6054nh4ia09dgfp8k6q4qxpjicl3dw3z0in"))))
+ (base32 "15b18p7id55xiz2jkf56w2f1g6yw1rcb98bpa188i6skqrgnrg57"))))
(build-system gnu-build-system)
(arguments
'(;; The code in LTris uses traditional GNU semantics for inline functions
@@ -1782,7 +1981,7 @@ can be explored and changed freely.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/dulsi/seahorse-adventures.git")
+ (url "https://github.com/dulsi/seahorse-adventures")
(commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
@@ -1894,7 +2093,7 @@ and defeat them with your bubbles!")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/notapixelstudio/superstarfighter.git")
+ (url "https://github.com/notapixelstudio/superstarfighter")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -1963,6 +2162,251 @@ available, as well as a single-player mode with AI-controlled ships.")
(license (list license:expat ; game
license:silofl1.1)))) ; fonts
+(define %ufoai-commit "a542a87a891f96b1ab2c44d35b2f6f16859a5019")
+(define %ufoai-revision "0")
+(define %ufoai-version (git-version "2.6.0_dev" %ufoai-revision %ufoai-commit))
+(define ufoai-source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://git.code.sf.net/p/ufoai/code") ;HTTPS fails mid-clone
+ (commit %ufoai-commit)))
+ (file-name (string-append "ufoai-" %ufoai-version "-checkout"))
+ (sha256
+ (base32
+ "024s7b9rcg7iw8i2p72gwnvabk23ljlq0nldws0y4b6hpwzyn1wz"))
+ (modules '((guix build utils)
+ (srfi srfi-1)
+ (ice-9 ftw)))
+ (snippet
+ '(begin
+ ;; Delete ~32MiB of bundled dependencies.
+ (with-directory-excursion "src/libs"
+ (for-each delete-file-recursively
+ (lset-difference equal? (scandir ".")
+ '("." ".." "gtest" "mumble"))))
+
+ ;; Use relative path to Lua headers.
+ (substitute* "src/common/scripts_lua.h"
+ (("\\.\\./libs/lua/") ""))
+
+ ;; Adjust Makefile targets to not depend on 'ufo2map', since we build
+ ;; it as a separate package. This way we don't need to make the same
+ ;; adjustments for 'ufoai-data' and 'ufoai' below.
+ (substitute* "build/maps.mk"
+ (("\\./ufo2map") "ufo2map")
+ (("maps: ufo2map") "maps:"))
+ (substitute* "build/modules/testall.mk"
+ (("testall: ufo2map") "testall:"))
+
+ ;; If no cURL headers are found, the build system will try to include
+ ;; the bundled version, even when not required. Prevent that.
+ (substitute* "build/default.mk"
+ (("^include src/libs/curl/lib/Makefile\\.inc")
+ ""))
+
+ ;; While here, improve reproducibility by adding the '-X' flag to the
+ ;; zip command used to create the map files, in order to prevent time
+ ;; stamps from making it into the generated archives.
+ (substitute* "build/data.mk"
+ (("\\$\\(call ZIP\\)")
+ "$(call ZIP) -X"))
+ #t))))
+
+(define-public ufo2map
+ (package
+ (name "ufo2map")
+ (version %ufoai-version)
+ (home-page "https://ufoai.org/")
+ (source ufoai-source)
+ (build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags '("CC=gcc" "CXX=g++"
+ "--enable-release"
+ "--enable-ufo2map"
+ "--disable-uforadiant"
+ "--disable-cgame-campaign"
+ "--disable-cgame-multiplayer"
+ "--disable-cgame-skirmish"
+ "--disable-game"
+ "--disable-memory"
+ "--disable-testall"
+ "--disable-ufoded"
+ "--disable-ufo"
+ "--disable-ufomodel"
+ "--disable-ufoslicer")
+ #:tests? #f ;no tests
+ #:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key (configure-flags '()) #:allow-other-keys)
+ ;; The home-made configure script does not understand
+ ;; some of the default flags of gnu-build-system.
+ (apply invoke "./configure" configure-flags)))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (install-file "ufo2map" (string-append out "/bin"))
+ (install-file "debian/ufo2map.6"
+ (string-append out "/share/man/man6"))
+ #t))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libjpeg" ,libjpeg-turbo)
+ ("libpng" ,libpng)
+ ("lua" ,lua-5.1)
+ ("sdl-union" ,(sdl-union (list sdl2 sdl2-mixer sdl2-ttf)))))
+ (synopsis "UFO: AI map generator")
+ (description
+ "This package provides @command{ufo2map}, a program used to generate
+maps for the UFO: Alien Invasion strategy game.")
+ (license license:gpl2+)))
+
+(define ufoai-data
+ (package
+ (name "ufoai-data")
+ (version %ufoai-version)
+ (home-page "https://ufoai.org/")
+ (source ufoai-source)
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f
+ #:configure-flags '("CC=gcc" "CXX=g++")
+ #:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs (configure-flags '()) #:allow-other-keys)
+ (apply invoke "./configure" configure-flags)))
+ (replace 'build
+ (lambda* (#:key (parallel-build? #t) #:allow-other-keys)
+ (invoke "make"
+ "-j" (if parallel-build?
+ (number->string (parallel-job-count))
+ "1")
+ "maps")))
+ (add-after 'build 'pack
+ (lambda _
+ (invoke "make" "pk3")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (for-each (lambda (file)
+ (install-file file out))
+ (find-files "base" "\\.pk3$"))
+ #t))))))
+ (native-inputs
+ `(("python" ,python-2)
+ ("ufo2map" ,ufo2map)
+ ("which" ,which)
+ ("zip" ,zip)))
+ (synopsis "UFO: AI data files")
+ (description
+ "This package contains maps and other assets for UFO: Alien Invasion.")
+ ;; Most assets are available under either GPL2 or GPL2+. Some use other
+ ;; licenses, see LICENSES for details.
+ (license (list license:gpl2+ license:gpl2 license:cc-by3.0
+ license:cc-by-sa3.0 license:public-domain))))
+
+(define-public ufoai
+ (package
+ (name "ufoai")
+ (version %ufoai-version)
+ (home-page "https://ufoai.org/")
+ (source ufoai-source)
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "--prefix=" (assoc-ref %outputs "out"))
+ (string-append "--datadir=" (assoc-ref %outputs "out")
+ "/share/games/ufo")
+ "CC=gcc" "CXX=g++"
+ "--enable-release"
+ "--enable-game"
+ "--disable-ufo2map"
+ "--disable-dependency-tracking"
+
+ ;; Disable hard links to prevent huge NARs.
+ "--disable-hardlinkedgame"
+ "--disable-hardlinkedcgame")
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'symlink-data-files
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((data (assoc-ref inputs "ufoai-data")))
+ ;; Symlink the data files to where the build system
+ ;; expects to find them. Ultimately these files are
+ ;; copied to $out/share/games/ufoai/base, losing the
+ ;; symlinks; we could fix that after install, but it
+ ;; does not make a big difference in practice due to
+ ;; deduplication.
+ (with-directory-excursion "base"
+ (for-each (lambda (file)
+ (symlink file (basename file)))
+ (find-files data "\\.pk3$")))
+ #t)))
+ (add-before 'configure 'create-language-files
+ (lambda _
+ (invoke "make" "lang")))
+ (replace 'configure
+ (lambda* (#:key outputs (configure-flags '()) #:allow-other-keys)
+ (apply invoke "./configure" configure-flags)))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (invoke "./testall")
+ (format #t "test suite not run~%"))
+ #t))
+ (add-after 'install 'install-man-pages
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (man6 (string-append out "/share/man/man6")))
+ (install-file "debian/ufo.6" man6)
+ (install-file "debian/ufoded.6" man6)
+ #t))))
+
+ ;; TODO: Some map tests occasionally fail because of randomness issues,
+ ;; e.g. not enough generated aliens. The test runner also fails early
+ ;; in the build container with 'failed to shutdown server'?
+ #:tests? #f))
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("pkg-config" ,pkg-config)
+ ("python" ,python-2)
+ ("ufo2map" ,ufo2map)
+ ("ufoai-data" ,ufoai-data)))
+ (inputs
+ `(("curl" ,curl)
+ ("libjpeg" ,libjpeg-turbo)
+ ("libogg" ,libogg)
+ ("libpng" ,libpng)
+ ("libtheora" ,libtheora)
+ ("libvorbis" ,libvorbis)
+ ("libxml2" ,libxml2)
+ ("lua" ,lua-5.1)
+ ("mesa" ,mesa)
+ ("minixml" ,minixml)
+ ("sdl-union" ,(sdl-union (list sdl2 sdl2-mixer sdl2-ttf)))
+ ("zlib" ,zlib)))
+ (synopsis "Turn-based tactical strategy game")
+ (description
+ "UFO: Alien Invasion is a tactical strategy game set in the year 2084.
+You control a secret organisation charged with defending Earth from a brutal
+alien enemy. Build up your bases, prepare your team, and dive head-first into
+the fast and flowing turn-based combat.
+
+Over the long term you will need to conduct research into the alien threat to
+figure out their mysterious goals and use their powerful weapons for your own
+ends. You will produce unique items and use them in combat against your
+enemies.
+
+You can also use them against your friends with the multiplayer functionality.
+
+Warning: This is a pre-release version of UFO: AI! Some things may not work
+properly.")
+
+ ;; The game code and most assets are GPL2+, but we use GPL2 only here
+ ;; because some assets do not use the "or later" clause. Many individual
+ ;; assets use Creative Commons or Public Domain; see the LICENSE file.
+ (license (delete license:gpl2+ (package-license ufoai-data)))))
+
(define-public xshogi
(package
(name "xshogi")
@@ -1994,7 +2438,7 @@ available, as well as a single-player mode with AI-controlled ships.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/nevat/abbayedesmorts-gpl.git")
+ (url "https://github.com/nevat/abbayedesmorts-gpl")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -2164,6 +2608,59 @@ into stereotyped or otherwise humorous dialects. The filters are provided as
a C library, so they can easily be integrated into other programs.")
(license license:gpl2+)))
+(define-public taisei
+ (package
+ (name "taisei")
+ (version "1.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/taisei-project/"
+ "taisei/releases/download/v" version
+ "/taisei-v" version ".tar.xz"))
+ (sha256
+ (base32 "11f9mlqmzy1lszwcc1nsbar9q1hs4ml6pbm52hqfd4q0f4x3ln46"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:build-type "release" ;comment out for bug-reporting (and cheats)
+ #:configure-flags
+ (list "-Dr_default=gles30"
+ "-Dr_gles20=true"
+ "-Dr_gles30=true"
+ "-Dshader_transpiler=true")))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("python" ,python)
+ ("python-docutils" ,python-docutils)
+ ("python-pygments" ,python-pygments)))
+ (inputs
+ `(("freetype" ,freetype)
+ ("libpng" ,libpng)
+ ("libwebp" ,libwebp)
+ ("libzip" ,libzip)
+ ("mesa" ,mesa)
+ ("openssl" ,openssl)
+ ("opusfile" ,opusfile)
+ ("sdl2" ,sdl2)
+ ("sdl2-mixer" ,sdl2-mixer)
+ ("shaderc" ,shaderc)
+ ("spirv-cross" ,spirv-cross)
+ ("zlib" ,zlib)))
+ (home-page "https://taisei-project.org/")
+ (synopsis "Shoot'em up fangame and libre clone of Touhou Project")
+ (description
+ "The player controls a character (one of three: Good, Bad, and Dead),
+dodges the missiles (lots of it cover the screen, but the character's hitbox
+is very small), and shoot at the adversaries that keep appear on the screen.")
+ (license (list ;;game
+ license:expat
+ ;;resources/00-taisei.pkgdir/bgm/
+ ;;atlas/portraits/
+ license:cc-by4.0
+ ;;miscellaneous
+ license:cc0
+ license:public-domain))))
+
(define-public cmatrix
(package
(name "cmatrix")
@@ -2172,7 +2669,7 @@ a C library, so they can easily be integrated into other programs.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/abishekvashok/cmatrix.git")
+ (url "https://github.com/abishekvashok/cmatrix")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -2489,7 +2986,7 @@ for common mesh file formats, and collision detection.")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/thelaui/M.A.R.S..git")
+ (url "https://github.com/thelaui/M.A.R.S.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
@@ -2530,44 +3027,10 @@ enemies in different game modes such as space ball, death match, team death
match, cannon keep, and grave-itation pit.")
(license license:gpl3+))))
-(define minetest-data
- (package
- (name "minetest-data")
- (version "5.1.1")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/minetest/minetest_game")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1r9fxz2j24q74a9injvbxbf2xk67fzabv616i676zw2cvgv9hn39"))))
- (build-system trivial-build-system)
- (native-inputs
- `(("source" ,source)))
- (arguments
- `(#:modules ((guix build utils))
- #:builder (begin
- (use-modules (guix build utils))
- (let ((install-dir (string-append
- %output
- "/share/minetest/games/minetest_game")))
- (mkdir-p install-dir)
- (copy-recursively
- (assoc-ref %build-inputs "source")
- install-dir)
- #t))))
- (synopsis "Main game data for the Minetest game engine")
- (description
- "Game data for the Minetest infinite-world block sandbox game.")
- (home-page "https://www.minetest.net/")
- (license license:lgpl2.1+)))
-
(define-public minetest
(package
(name "minetest")
- (version "5.1.1")
+ (version "5.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2576,7 +3039,7 @@ match, cannon keep, and grave-itation pit.")
(file-name (git-file-name name version))
(sha256
(base32
- "0cjj63333b7j4ydfq0h9yc6d2jvmyjd7n7zbd08yrf0rcibrj2k0"))
+ "03ga3j3cg38w4lg4d4qxasmnjdl8n3lbizidrinanvyfdyvznyh6"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -2632,6 +3095,40 @@ in different ways.")
(home-page "https://www.minetest.net/")
(license license:lgpl2.1+)))
+(define minetest-data
+ (package
+ (name "minetest-data")
+ (version (package-version minetest))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/minetest/minetest_game")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1liciwlh013z5h08ib0psjbwn5wkvlr937ir7kslfk4vly984cjx"))))
+ (build-system trivial-build-system)
+ (native-inputs
+ `(("source" ,source)))
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder (begin
+ (use-modules (guix build utils))
+ (let ((install-dir (string-append
+ %output
+ "/share/minetest/games/minetest_game")))
+ (mkdir-p install-dir)
+ (copy-recursively
+ (assoc-ref %build-inputs "source")
+ install-dir)
+ #t))))
+ (synopsis "Main game data for the Minetest game engine")
+ (description
+ "Game data for the Minetest infinite-world block sandbox game.")
+ (home-page "https://www.minetest.net/")
+ (license license:lgpl2.1+)))
+
(define glkterm
(package
(name "glkterm")
@@ -3569,7 +4066,7 @@ Transport Tycoon Deluxe.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/OpenRCT2/OpenRCT2.git")
+ (url "https://github.com/OpenRCT2/OpenRCT2")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -3777,7 +4274,7 @@ http://lavachat.symlynx.com/unix/")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/redeclipse/base.git")
+ (url "https://github.com/redeclipse/base")
(commit (string-append "v" release))
(recursive? #t))) ; for game data
(file-name (git-file-name name version))
@@ -4069,24 +4566,40 @@ in-window at 640x480 resolution or fullscreen.")
(define-public warzone2100
(package
(name "warzone2100")
- (version "3.2.3")
+ (version "3.4.1")
(source
(origin
(method url-fetch)
- (uri (string-append "mirror://sourceforge/warzone2100/archives/"
- "unsupported/Warzone2100-"
- (version-major+minor version) "/" version
- "/warzone2100-" version ".tar.xz"))
+ (uri (string-append "mirror://sourceforge/warzone2100/releases/"
+ version
+ "/warzone2100_src.tar.xz"))
(sha256
- (base32 "10kmpr4cby95zwqsl1zwx95d9achli6khq7flv6xmrq30a39xazw"))))
- (build-system gnu-build-system)
+ (base32 "0savalmw1kp1sf8vg5aqrl5hc77p4jacxy5y9qj8k2hi2vqdfb7a"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (with-directory-excursion "3rdparty"
+ (for-each
+ delete-file-recursively
+ '("discord-rpc"
+ "miniupnp"
+ "utfcpp")))
+ #t))))
+ (build-system cmake-build-system)
(arguments
- `(#:configure-flags '("--with-distributor=Guix")
+ `(#:configure-flags '("-DWZ_DISTRIBUTOR=Guix"
+ "-DENABLE_DISCORD=off")
+ #:tests? #f ; TODO: Tests seem to be broken, configure.ac is missing.
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'fix-utfcpp-include
+ (lambda _
+ (substitute* "lib/framework/wzstring.cpp"
+ (("<utfcpp/source/utf8.h>") "<utf8.h>"))
+ #t))
(add-after 'unpack 'link-tests-with-qt
(lambda _
- (substitute* "tests/Makefile.in"
+ (substitute* "tests/Makefile.am"
(("(framework_linktest_LDADD|maptest_LDADD) = " prefix)
(string-append prefix "$(QT5_LIBS) ")))
#t))
@@ -4097,32 +4610,38 @@ in-window at 640x480 resolution or fullscreen.")
(string-append "iV_DrawTextRotated(\"Press ESC to exit.\", "
"100, 100, 0.0f, font_regular);")))
#t)))))
- (native-inputs `(("gettext" ,gettext-minimal)
+ (native-inputs `(("asciidoc" ,asciidoc)
+ ("asciidoctor" ,ruby-asciidoctor)
+ ("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)
("unzip" ,unzip)
- ("zip" ,zip)))
- (inputs `(("fontconfig" ,fontconfig)
+ ;; 7z is used to create .zip archive, not `zip' as in version 3.2.*.
+ ("p7zip" ,p7zip)))
+ (inputs `(("curl" ,curl)
+ ("fontconfig" ,fontconfig)
("freetype" ,freetype)
- ("fribidi" ,fribidi)
("glew" ,glew)
("harfbuzz" ,harfbuzz)
("libtheora" ,libtheora)
("libvorbis" ,libvorbis)
("libxrandr" ,libxrandr)
+ ("libsodium" ,libsodium)
+ ("miniupnpc" ,miniupnpc)
("openal" ,openal)
("physfs" ,physfs)
("qtbase" ,qtbase)
("qtscript" ,qtscript)
("openssl" ,openssl)
- ("sdl2" ,sdl2)))
+ ("sdl2" ,sdl2)
+ ("utfcpp" ,utfcpp)))
(home-page "https://wz2100.net")
(synopsis "3D Real-time strategy and real-time tactics game")
(description
"Warzone 2100 offers campaign, multi-player, and single-player skirmish
-modes. An extensive tech tree with over 400 different technologies, combined
+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
@@ -4130,19 +4649,108 @@ tactics.")
license:gpl2+
license:lgpl2.1+))))
+(define-public widelands
+ (package
+ (name "widelands")
+ (version "21")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://launchpad.net/widelands/"
+ "build" version "/build" version "/+download/"
+ "widelands-build" version "-source.tar.gz"))
+ (sha256
+ (base32 "0mz3jily0w1zxxqbnkqrp6hl88xhrwzbil9crq7gpcwidx60w7k0"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (delete-file-recursively "src/third_party/minizip")
+ #t))
+ (patches
+ ;; Use system Minizip. Patch is provided by Debian, and discussed
+ ;; upstream at <https://github.com/widelands/widelands/issues/399>.
+ (search-patches "widelands-system-wide_minizip.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (let* ((out (assoc-ref %outputs "out"))
+ (share (string-append out "/share")))
+ (list (string-append "-DCMAKE_INSTALL_PREFIX=" out "/bin")
+ (string-append "-DWL_INSTALL_BASEDIR=" share "/widelands")
+ (string-append "-DWL_INSTALL_DATADIR=" share "/widelands")
+ "-DOPTION_BUILD_WEBSITE_TOOLS=OFF"
+ ;; CMakeLists.txt does not handle properly RelWithDebInfo build
+ ;; type. When used, no game data is installed!
+ "-DCMAKE_BUILD_TYPE=Release"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unbundle-fonts
+ ;; Unbundle fonts already packaged in Guix. XXX: missing fonts are
+ ;; amiri, Culmus, mmrCensus, Nakula, and Sinhala.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (with-directory-excursion "data/i18n/fonts"
+ (for-each (lambda (font)
+ (delete-file-recursively font)
+ (symlink (string-append (assoc-ref inputs font)
+ "/share/fonts/truetype")
+ font))
+ '("DejaVu" "MicroHei")))
+ #t)))))
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("python" ,python-wrapper)))
+ (inputs
+ `(("boost" ,boost)
+ ("glew" ,glew)
+ ("icu4c" ,icu4c)
+ ("libpng" ,libpng)
+ ("minizip" ,minizip)
+ ("sdl" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))
+ ("zlib" ,zlib)
+ ;; Fonts for the ‘unbundle-fonts’ phase. Case matters in name!
+ ("DejaVu" ,font-dejavu)
+ ("MicroHei" ,font-wqy-microhei)))
+ (home-page "https://www.widelands.org/")
+ (synopsis "Fantasy real-time strategy game")
+ (description
+ "In Widelands, you are the regent of a small clan. You start out with
+nothing but your headquarters, where all your resources are stored.
+
+In the course of the game, you will build an ever growing settlement. Every
+member of your clan will do his or her part to produce more resources---wood,
+food, iron, gold and more---to further this growth. The economic network is
+complex and different in the four tribes (Barbarians, Empire, Atlanteans, and
+Frisians).
+
+As you are not alone in the world, you will meet other clans sooner or later.
+Some of them may be friendly and you may eventually trade with them. However,
+if you want to rule the world, you will have to train soldiers and fight.
+
+Widelands offers single-player mode with different campaigns; the campaigns
+all tell stories of tribes and their struggle in the Widelands universe!
+However, settling really starts when you unite with friends over the Internet
+or LAN to build up new empires together---or to crush each other in the dusts
+of war. Widelands also offers an Artificial Intelligence to challenge you.")
+ ;; Game is released as GPL2+. Some parts, e.g., art, are released under
+ ;; different licenses.
+ (license (list license:gpl2+
+ license:expat ;src/third_party/eris
+ license:silofl1.1 ;Widelands.ttf
+ license:cc-by-sa3.0)))) ;some music files
+
(define-public starfighter
(package
(name "starfighter")
- (version "2.2")
+ (version "2.3")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/pr-starfighter/starfighter/releases"
"/download/v" version "/starfighter-"
- (version-major+minor version) "-src.tar.gz"))
+ version "-src.tar.gz"))
(sha256
(base32
- "1ldd9cbvl694ps4sapr8213m3zjrci7gii5x3kjjfalkikmndpd2"))))
+ "156ivi8cqqv9gxi8kj393av1s2sj7bblabm1b3kibla1s8l090n9"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -4461,7 +5069,7 @@ Linux / Mac OS X servers, and an auto mapper with a VT100 map display.")
(source
(origin (method git-fetch)
(uri (git-reference
- (url "https://github.com/sgimenez/laby.git")
+ (url "https://github.com/sgimenez/laby")
(commit (string-append name "-" version))))
(file-name (git-file-name name version))
(sha256
@@ -4804,7 +5412,7 @@ into the Space Age.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/bartobri/no-more-secrets.git")
+ (url "https://github.com/bartobri/no-more-secrets")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -4919,7 +5527,7 @@ Magic, Egypt, Indians, Norsemen, Persian or Romans.")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/freegish/freegish.git")
+ (url "https://github.com/freegish/freegish")
(commit commit)))
(file-name (git-file-name name version))
(sha256
@@ -4976,7 +5584,7 @@ emerges from a sewer hole and pulls her below ground.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/cxong/cdogs-sdl.git")
+ (url "https://github.com/cxong/cdogs-sdl")
(commit version)))
(file-name (git-file-name name version))
(sha256
@@ -5113,7 +5721,7 @@ small robot living in the nano world, repair its maker.")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/teeworlds/teeworlds.git")
+ (url "https://github.com/teeworlds/teeworlds")
(commit version)))
(file-name (git-file-name name version))
(sha256
@@ -5955,7 +6563,7 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/Novum/vkQuake.git")
+ (url "https://github.com/Novum/vkQuake")
(commit version)))
(file-name (git-file-name name version))
(sha256
@@ -6090,7 +6698,7 @@ making Yamagi Quake II one of the most solid Quake II implementations available.
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/the-butterfly-effect/tbe.git")
+ (url "https://github.com/the-butterfly-effect/tbe")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -6142,7 +6750,7 @@ elements to achieve a simple goal in the most complex way possible.")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/pioneerspacesim/pioneer.git")
+ (url "https://github.com/pioneerspacesim/pioneer")
(commit version)))
(file-name (git-file-name name version))
(sha256
@@ -6189,7 +6797,7 @@ whatever you make of it.")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/umayr/badass.git")
+ (url "https://github.com/umayr/badass")
(commit commit)))
(file-name (git-file-name name version))
(sha256
@@ -6214,7 +6822,7 @@ Github or Gitlab.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/colobot/colobot.git")
+ (url "https://github.com/colobot/colobot")
(commit (string-append "colobot-gold-" version))
(recursive? #t))) ;for "data/" subdir
(file-name (git-file-name name version))
@@ -6289,7 +6897,7 @@ You can save humanity and get programming skills!")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/coelckers/gzdoom.git")
+ (url "https://github.com/coelckers/gzdoom")
(commit (string-append "g" version))))
(file-name (git-file-name name version))
(sha256
@@ -6411,7 +7019,7 @@ online.")
(define-public chocolate-doom
(package
(name "chocolate-doom")
- (version "3.0.0")
+ (version "3.0.1")
(source (origin
(method url-fetch)
(uri (string-append "https://www.chocolate-doom.org/downloads/"
@@ -6421,7 +7029,7 @@ online.")
".tar.gz"))
(sha256
(base32
- "1f6sw6qa9z0a70dsjh5cs45fkyyxw68s7vkqlykihz8cjcisdbkk"))))
+ "1iy8rx7kjvi1zjiw4zh77szzmd1sgpqajvbhprh1sj93fhbxcdfl"))))
(build-system gnu-build-system)
(inputs `(("sdl2-net" ,sdl2-net)
("sdl2-mixer" , sdl2-mixer)
@@ -6451,7 +7059,7 @@ affect gameplay).")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/fabiangreffrath/crispy-doom.git")
+ (url "https://github.com/fabiangreffrath/crispy-doom")
(commit (string-append "crispy-doom-" version))))
(file-name (git-file-name name version))
(sha256
@@ -6493,7 +7101,7 @@ original.")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/shlomif/rinutils.git")
+ (url "https://github.com/shlomif/rinutils")
(commit version)))
(file-name (git-file-name name version))
(sha256
@@ -7016,7 +7624,7 @@ when packaged in Blorb container files or optionally from individual files.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/kthakore/frozen-bubble.git")
+ (url "https://github.com/kthakore/frozen-bubble")
(commit commit)))
(file-name (git-file-name name version))
(sha256
@@ -7135,7 +7743,7 @@ GameController.")
(define-public quadrapassel
(package
(name "quadrapassel")
- (version "3.32.0")
+ (version "3.36.02")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/quadrapassel/"
@@ -7143,7 +7751,7 @@ GameController.")
"quadrapassel-" version ".tar.xz"))
(sha256
(base32
- "1zhi1957knz9dm98drn2dh95mr33sdch590yddh1f8r6bzsfjvpy"))))
+ "0c80pzipxricyh4wydffsc94wj6ymnanqr9bg6wdx51hz1mmmilb"))))
(build-system meson-build-system)
(arguments
'(#:glib-or-gtk? #t
@@ -7166,6 +7774,7 @@ GameController.")
(inputs
`(("clutter" ,clutter)
("clutter-gtk" ,clutter-gtk)
+ ("gsound" ,gsound)
("gtk+" ,gtk+)
("libcanberra" ,libcanberra)
("libmanette" ,libmanette)
@@ -7245,7 +7854,7 @@ civilized than your own.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/stepmania/stepmania.git")
+ (url "https://github.com/stepmania/stepmania")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -7480,7 +8089,7 @@ and cooperative.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/ryanakca/slingshot.git")
+ (url "https://github.com/ryanakca/slingshot")
(commit version)))
(file-name (git-file-name name version))
(sha256
@@ -7783,7 +8392,7 @@ fight each other on an arena-like map.")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/flareteam/flare-engine.git")
+ (url "https://github.com/flareteam/flare-engine")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -7811,7 +8420,7 @@ action RPGs.")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/flareteam/flare-game.git")
+ (url "https://github.com/flareteam/flare-game")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -7937,7 +8546,7 @@ Orcus Dome from evil.")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/HackerPoet/MarbleMarcher.git")
+ (url "https://github.com/HackerPoet/MarbleMarcher")
(commit commit)))
(file-name (git-file-name name version))
(sha256
@@ -7995,15 +8604,15 @@ levels to unlock.")
(define simgear
(package
(name "simgear")
- (version "2018.3.2")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/flightgear/release-"
- (version-major+minor version) "/"
- "simgear-" version ".tar.bz2"))
- (sha256
- (base32
- "1941ay8rngz4vwsx37bbpxr48hpcvcbj3xw1hy264lq4qnl99c68"))))
+ (version "2018.3.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/flightgear/release-"
+ (version-major+minor version) "/"
+ "simgear-" version ".tar.bz2"))
+ (sha256
+ (base32 "1vkqm66r1205k3hdjmx5wmx5kvmsb0dgfzrs8n5gqnxj8szs42dl"))))
(build-system cmake-build-system)
(arguments
`(#:phases
@@ -8013,7 +8622,7 @@ levels to unlock.")
;; Skip tests that require internet access.
(invoke "ctest" "-E" "(http|dns)"))))))
(inputs
- `(("boost" ,boost-for-mysql) ; fails with 1.69
+ `(("boost" ,boost-for-mysql) ; fails with 1.69
("curl" ,curl)
("expat" ,expat)
("mesa" ,mesa)
@@ -8032,21 +8641,21 @@ and also provides the base for the FlightGear Flight Simulator.")
(package
(name "flightgear")
(version (package-version simgear))
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/flightgear/release-"
- (version-major+minor version) "/"
- "flightgear-" version ".tar.bz2"))
- (sha256
- (base32
- "0lzy524cjzs8vldcjcc750bgg5c4mq9fkymxxxzqf68ilc4d1jss"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; There are some bundled libraries.
- (for-each delete-file-recursively
- '("3rdparty/sqlite3/"))
- #t))))
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/flightgear/release-"
+ (version-major+minor version) "/"
+ "flightgear-" version ".tar.bz2"))
+ (sha256
+ (base32 "0ya3vb539kwi1qrifqhsj5j3k4w6s06hrllp2vdzxf6id7cgf0hc"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; There are some bundled libraries.
+ (for-each delete-file-recursively
+ '("3rdparty/sqlite3/"))
+ #t))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
@@ -8112,7 +8721,7 @@ and also provides the base for the FlightGear Flight Simulator.")
"FlightGear-" version "-data.tar.bz2"))
(sha256
(base32
- "0h4npa7gqpf5fw6pv2bpw0wbwr7fa2vhia21cjbigfgd75x82zi7"))))))
+ "04fv9za5zlyxlyfh6jx78y42l3jazvzl9dq2y6rzxqlcc9g5swhk"))))))
(home-page "https://home.flightgear.org/")
(synopsis "Flight simulator")
(description "The goal of the FlightGear project is to create a
@@ -8187,7 +8796,15 @@ play with up to four players simultaneously. It has network support.")
#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _ (invoke "ctest"))))))
+ (lambda _ (invoke "ctest")))
+ (add-after 'install 'install-icon
+ (lambda _
+ ;; Install icon for the desktop file.
+ (let* ((out (assoc-ref %outputs "out"))
+ (icons (string-append out "/share/icons/hicolor/512x512/apps")))
+ (with-directory-excursion (string-append "../hedgewars-src-" ,version)
+ (install-file "misc/hedgewars.png" icons)))
+ #t)))))
(inputs
`(("ffmpeg" ,ffmpeg)
("freeglut" ,freeglut)
@@ -8838,7 +9455,7 @@ win.")
(string-append "\"" roboto-dir "Roboto-" type ".ttf\");")))
#t))))))
(inputs
- `(("boost" ,boost)
+ `(("boost" ,boost-with-python2)
("boost_signals" ,boost-signals2)
("font-dejavu" ,font-dejavu)
("font-roboto" ,font-google-roboto)
@@ -8875,7 +9492,7 @@ remake of that series or any other game.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/leela-zero/leela-zero.git")
+ (url "https://github.com/leela-zero/leela-zero")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -8923,7 +9540,7 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/bernds/q5Go.git")
+ (url "https://github.com/bernds/q5Go")
(commit (string-append "q5go-" version))))
(file-name (git-file-name name version))
(sha256
@@ -9031,7 +9648,7 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
(synopsis "Stamp drawing toy")
(description "KTuberling is a drawing toy intended for small children and
adults who remain young at heart. The game has no winner; the only purpose is
-to make the funniest faces you can. Several activites are possible, e.g.:
+to make the funniest faces you can. Several activities are possible, e.g.:
@itemize
@item Give the potato a funny face, clothes, and other goodies
@@ -10539,7 +11156,7 @@ This package is part of the KDE games module.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/xmoto/xmoto.git")
+ (url "https://github.com/xmoto/xmoto")
(commit version)))
(file-name (git-file-name name version))
(sha256
@@ -10631,7 +11248,7 @@ the more difficult challenges.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/fbergo/eboard.git")
+ (url "https://github.com/fbergo/eboard")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -10670,20 +11287,21 @@ and chess engines.")
(define-public chessx
(package
(name "chessx")
- (version "1.5.0")
+ (version "1.5.4")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/chessx/chessx/"
version "/chessx-" version ".tgz"))
(sha256
- (base32 "09rqyra28w3z9ldw8sx07k5ap3sjlli848p737maj7c240rasc6i"))))
+ (base32 "1a3541vl5hp6jllgx998w9kjh9kp3wrl80yfwkxmq1bc5bzsrnz2"))))
(build-system qt-build-system)
(native-inputs
`(("qttools" ,qttools)))
(inputs
`(("qtbase" ,qtbase)
("qtmultimedia" ,qtmultimedia)
+ ("qtspeech" ,qtspeech)
("qtsvg" ,qtsvg)
("zlib" ,zlib)))
(arguments
@@ -10694,7 +11312,12 @@ and chess engines.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "chessx.pro"
(("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease")
- (string-append (assoc-ref inputs "qttools") "/bin/lrelease")))
+ (string-append (assoc-ref inputs "qttools") "/bin/lrelease"))
+ ;; Fix missing translations.
+ (("TRANSLATIONS = i18n/chessx_de.ts")
+ "TRANSLATIONS = i18n/chessx_de.ts i18n/chessx_da.ts \\
+i18n/chessx_fr.ts i18n/chessx_it.ts i18n/chessx_cz.ts i18n/chessx_ru.ts \\
+i18n/chessx_es.ts"))
#t))
(add-after 'fix-paths 'make-qt-deterministic
(lambda _
@@ -10727,7 +11350,7 @@ etc. You can also play games on FICS or against an engine.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/official-stockfish/Stockfish.git")
+ (url "https://github.com/official-stockfish/Stockfish")
(commit (string-append "sf_" version))))
(file-name (git-file-name name version))
(sha256
@@ -10789,10 +11412,37 @@ soldiers, jeeps and tanks. The gameplay is simple but it is not that easy to
get high scores.")
(license license:gpl2+)))
+(define-public burgerspace
+ (package
+ (name "burgerspace")
+ (version "1.9.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://perso.b2b2c.ca/~sarrazip/dev/"
+ "burgerspace-" version ".tar.gz"))
+ (sha256
+ (base32 "1005a04rbn4lzjrpfg0m394k2mfaji63fm2qhdqdsxila8a6kjbv"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("flatzebra" ,flatzebra)))
+ (home-page "http://perso.b2b2c.ca/~sarrazip/dev/burgerspace.html")
+ (synopsis "Avoid evil foodstuffs and make burgers")
+ (description
+ "This is a clone of the classic game BurgerTime. In it, you play
+the part of a chef who must create burgers by stepping repeatedly on
+the ingredients until they fall into place. And to make things more
+complicated, you also must avoid evil animate food items while
+performing this task, with nothing but your trusty pepper shaker to
+protect you.")
+ (license license:gpl2+)))
+
(define-public 7kaa
(package
(name "7kaa")
- (version "2.15.3")
+ (version "2.15.4p1")
(source
(origin
(method url-fetch)
@@ -10800,7 +11450,7 @@ get high scores.")
"releases/download/v" version "/"
"7kaa-" version ".tar.xz"))
(sha256
- (base32 "0blj47mcsfw1sn3465j6iham8m6ki07iggnq4q8nnaqnryx710jc"))))
+ (base32 "1y7v0jhp3apb619p7asikqr1dnwb2yxbh40wbx1ppmr5f03mq9ph"))))
(build-system gnu-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
@@ -10832,7 +11482,7 @@ kingdom.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/Neverball/neverball.git")
+ (url "https://github.com/Neverball/neverball")
(commit commit)))
(sha256
(base32
@@ -10936,3 +11586,76 @@ and shovers to get to the goal. Race against the clock to collect coins to
earn extra balls. Also included is Neverputt, which is a 3D miniature golf
game.") ;thanks to Debian for description
(license license:gpl2+))))
+
+(define-public pokerth
+ (package
+ (name "pokerth")
+ (version "1.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/pokerth/pokerth/"
+ version "/pokerth-" version ".tar.gz"))
+ (sha256
+ (base32 "0yi9bj3k8yc1gkwmaf14zbbvvn13n54n1dli8k6j1pkph3p3vjq2"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove bundled websocketpp.
+ (delete-file-recursively "src/third_party/websocketpp")
+ (substitute* "pokerth_lib.pro"
+ (("src/third_party/websocketpp")
+ ""))
+ #t))))
+ (build-system qt-build-system)
+ (inputs
+ `(("boost" ,boost)
+ ("curl" ,curl)
+ ("gsasl" ,gsasl)
+ ("libgcrypt" ,libgcrypt)
+ ("libircclient" ,libircclient)
+ ("protobuf" ,protobuf-2)
+ ("qtbase" ,qtbase)
+ ("sdl" ,(sdl-union (list sdl sdl-mixer)))
+ ("sqlite" ,sqlite)
+ ("tinyxml" ,tinyxml)
+ ("websocketpp" ,websocketpp)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:tests? #f ; No test suite
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* (find-files "." "\\.pro$")
+ (("/opt/gsasl")
+ (assoc-ref inputs "gsasl"))
+ (("\\$\\$\\{PREFIX\\}/include/libircclient")
+ (string-append (assoc-ref inputs "libircclient")
+ "/include/libircclient"))
+ (("LIB_DIRS =")
+ (string-append "LIB_DIRS = "
+ (assoc-ref inputs "boost") "/lib")))
+ #t))
+ (add-after 'unpack 'fix-build
+ (lambda _
+ ;; Fixes for Boost versions >= 1.66.
+ (substitute* '("src/net/common/clientthread.cpp"
+ "src/net/serveraccepthelper.h")
+ (("boost::asio::socket_base::non_blocking_io command\\(true\\);")
+ "")
+ (("newSock->io_control\\(command\\);")
+ "newSock->non_blocking(true);")
+ (("acceptedSocket->io_control\\(command\\);")
+ "acceptedSocket->non_blocking(true);"))
+ #t))
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "qmake" "pokerth.pro" "CONFIG+=client"
+ (string-append "PREFIX=" (assoc-ref outputs "out"))))))))
+ (home-page "https://www.pokerth.net")
+ (synopsis "Texas holdem poker game")
+ (description
+ "With PokerTH you can play the Texas holdem poker game, either against
+computer opponents or against real players online.")
+ (license license:agpl3+)))