;;; Copyright © 2013 John Darrington <jmd@gnu.org>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2016 David Thompson <dthompson2@worcester.edu>
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 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 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 okapi <okapi@firemail.cc>
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2018 Madalin Ionel-Patrascu <madalinionel.patrascu@mdc-berlin.de>
("sdl2-image" ,sdl2-image)
("sdl2-ttf" ,sdl2-ttf)
("sdl2-mixer" ,sdl2-mixer)))
- (home-page "http://en.cataclysmdda.com/")
+ (home-page "https://cataclysmdda.org/")
(synopsis "Survival horror roguelike video game")
(description
"Cataclysm: Dark Days Ahead (or \"DDA\" for short) is a roguelike set
(define-public cataclysm-dark-days-ahead
(deprecated-package "cataclysm-dark-days-ahead" cataclysm-dda))
+(define-public corsix-th
+ (package
+ (name "corsix-th")
+ (version "0.63")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/CorsixTH/CorsixTH.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rkyk8g55xny276s0hr5k8mq6f4nzz56d3k2mp09dzfymrqb8hgi"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-binary
+ (lambda _
+ ;; Set Lua module paths and default MIDI soundfont on startup.
+ (let* ((out (assoc-ref %outputs "out"))
+ (fluid (assoc-ref %build-inputs "fluid-3"))
+ (lua-version ,(version-major+minor (package-version lua)))
+ (lua-cpath
+ (map (lambda (lib)
+ (string-append
+ (assoc-ref %build-inputs (string-append "lua-" lib))
+ "/lib/lua/" lua-version "/?.so"))
+ '("filesystem" "lpeg"))))
+ (wrap-program (string-append out "/bin/corsix-th")
+ `("LUA_CPATH" ";" = ,lua-cpath)
+ `("SDL_SOUNDFONTS" ":" suffix
+ (,(string-append fluid "/share/soundfonts/FluidR3Mono_GM.sf3")))))
+ #t)))
+ #:tests? #f)) ; TODO need busted package to run tests
+ ;; Omit Lua-Socket dependency to disable automatic updates.
+ (inputs
+ `(("ffmpeg" ,ffmpeg)
+ ("fluid-3" ,fluid-3)
+ ("freetype" ,freetype)
+ ("lua" ,lua)
+ ("lua-filesystem" ,lua-filesystem)
+ ("lua-lpeg" ,lua-lpeg)
+ ("sdl2" ,sdl2)
+ ("sdl2-mixer" ,sdl2-mixer)))
+ (home-page "https://corsixth.com")
+ (synopsis "Implementation of the @i{Theme Hospital} game engine")
+ (description
+ "This package provides a reimplementation of the 1997 Bullfrog business
+simulation game @i{Theme Hospital}. As well as faithfully recreating the
+original engine, CorsixTH adds support for high resolutions, custom levels and
+more. This package does @emph{not} provide the game assets.")
+ (license (list
+ license:expat ; main license
+ license:bsd-3)))) ; CorsixTH/Src/random.c
+
(define-public cowsay
(package
(name "cowsay")
(define-public golly
(package
(name "golly")
- (version "3.2")
+ (version "3.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/golly/golly/golly-"
"-src.tar.gz"))
(sha256
(base32
- "0cg9mbwmf4q6qxhqlnzrxh9y047banxdb8pd3hgj3smmja2zf0jd"))))
+ "1j3ksnar4rdam4xiyspgyrs1pifbvxfxkrn65brkwxpx39mpgzc8"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags (list "CC=gcc"
(define-public julius
(package
(name "julius")
- (version "1.2.0")
+ (version "1.3.0")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0kgyzfjii4dhpy2h05977alwdmxyxb4jxznnrhlgb21m0ybncmvp"))))
+ (base32 "1ws5lmwdhla73676fj0w26v859n47s0wyxa0mgd0dmkx0x91qriy"))))
(build-system cmake-build-system)
(inputs
`(("sdl2" ,sdl2)
shadow mimic them to reach blocks you couldn't reach alone.")
(license license:gpl3+)))
+(define-public opensurge
+ (package
+ (name "opensurge")
+ (version "0.5.1.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/alemart/opensurge.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ih7hlqjnp9rv0m4lqf7c0s1ai532way5i4pk45jq1gqm8325dbv"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ;there are no tests
+ #:configure-flags
+ (let* ((out (assoc-ref %outputs "out"))
+ (share (string-append out "/share")))
+ (list (string-append "-DCMAKE_INSTALL_PREFIX=" out "/bin")
+ (string-append "-DGAME_DATADIR=" share "/" ,name)
+ (string-append "-DDESKTOP_ENTRY_PATH=" share "/applications")
+ (string-append "-DDESKTOP_ICON_PATH=" share "/pixmaps")
+ (string-append "-DDESKTOP_METAINFO_PATH=" share "/metainfo")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-xdg-open-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Look for xdg-open in the store.
+ (substitute* "src/core/web.c"
+ (("/usr(/bin/xdg-open)" _ bin)
+ (string-append (assoc-ref inputs "xdg-utils") bin)))
+ #t))
+ (add-after 'unpack 'unbundle-fonts
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Replace bundled Roboto fonts with links to the store.
+ (with-directory-excursion "fonts"
+ (let ((roboto-dir (string-append
+ (assoc-ref inputs "font-google-roboto")
+ "/share/fonts/truetype/")))
+ (for-each
+ (lambda (font)
+ (delete-file font)
+ (symlink (string-append roboto-dir font) font))
+ '("Roboto-Black.ttf" "Roboto-Bold.ttf" "Roboto-Medium.ttf")))
+ #t))))))
+ (inputs
+ `(("allegro" ,allegro)
+ ("font-google-roboto" ,font-google-roboto)
+ ("surgescript" ,surgescript)
+ ("xdg-utils" ,xdg-utils)))
+ (home-page "https://opensurge2d.org")
+ (synopsis "2D retro side-scrolling game")
+ (description "@code{Open Surge} is a 2D retro side-scrolling platformer
+inspired by the Sonic games. The player runs at high speeds through each
+level while collecting items and avoiding obstacles. The game includes a
+built-in level editor.")
+ (license
+ ;; Code is under GPL 3+, assets are under various licenses.
+ ;; See src/misc/credits.c for details.
+ (list license:gpl3+
+ license:cc0
+ license:cc-by3.0
+ license:cc-by-sa3.0
+ license:expat
+ license:public-domain
+ license:silofl1.1))))
+
(define-public knights
(package
(name "knights")
(define-public nethack
(package
(name "nethack")
- (version "3.6.4")
+ (version "3.6.5")
(source
(origin
(method url-fetch)
(string-append "https://www.nethack.org/download/" version "/nethack-"
(string-join (string-split version #\.) "") "-src.tgz"))
(sha256
- (base32 "0ndxgnsprwgjnk0qb24iljkpijnfncgvfb3h3zb129h3cs2anc85"))))
+ (base32 "0xifs8pqfffnmkbpmrcd1xf14yakcj06nl2bbhy4dyacg8myysmv"))))
(inputs
`(("ncurses" ,ncurses)
("bison" ,bison)
(define-public roguebox-adventures
(package
(name "roguebox-adventures")
- (version "2.2.1")
+ (version "3.0.1")
(source
(origin
(method url-fetch)
(file-name (string-append name "-" version ".zip"))
(sha256
(base32
- "0kmzdgnik8fsf3bg55546l77p3mfxn2awkzfzzdn20n82rd2babw"))))
+ "05zd03s5w9kcpklfgcggbaa6rwf59nm0q9vcj6gh9v2lh402k067"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; no check target
(string-append "'" data "'"))
(("^basic_path.*$")
(string-append "basic_path ='" data "'\n")))
+ (substitute* "LIB/dialog.py"
+ (("d_path = os\\.path\\.dirname\\(.*\\)\\)")
+ (string-append "d_path = '" data "'")))
(substitute* "LIB/gra_files.py"
(("basic_path = b_path\\.replace\\('/LIB',''\\)")
(string-append "basic_path ='" data "'\n")))
(define-public cmatrix
(package
(name "cmatrix")
- (version "1.2a")
+ (version "2.0")
(source
(origin
- (method url-fetch)
- (uri (string-append "http://www.asty.org/cmatrix/dist/cmatrix-" version
- ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/abishekvashok/cmatrix.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0k06fw2n8nzp1pcdynhajp5prba03gfgsbj91bknyjr5xb5fd9hz"))))
+ "1h9jz4m4s5l8c3figaq46ja0km1gimrkfxm4dg7mf4s84icmasbm"))))
(build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)))
(arguments
'(#:phases
(modify-phases %standard-phases
(define minetest-data
(package
(name "minetest-data")
- (version "5.1.0")
+ (version "5.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
(synopsis "Main game data for the Minetest game engine")
(description
"Game data for the Minetest infinite-world block sandbox game.")
- (home-page "http://minetest.net")
+ (home-page "https://www.minetest.net/")
(license license:lgpl2.1+)))
(define-public minetest
(package
(name "minetest")
- (version "5.1.0")
+ (version "5.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "184n9gxfa7yr0j85z2x736maaymsnppd5jzm326wlqri3c0qqy3z"))
+ "0cjj63333b7j4ydfq0h9yc6d2jvmyjd7n7zbd08yrf0rcibrj2k0"))
(modules '((guix build utils)))
(snippet
'(begin
- ;; Mimic upstream commit 706b6aad06, for compatibility with
- ;; newer jsoncpp. Remove this for > 5.1.0.
- (substitute* "cmake/Modules/FindJson.cmake"
- (("features\\.h")
- "allocator.h"))
-
;; Delete bundled libraries.
(delete-file-recursively "lib")
#t))))
forming structures in every possible creation, on multiplayer servers or as a
single player. Mods and texture packs allow players to personalize the game
in different ways.")
- (home-page "http://minetest.net")
+ (home-page "https://www.minetest.net/")
(license license:lgpl2.1+)))
(define glkterm
(install-file "glulxe" bin))
#t))
(delete 'configure)))) ; no configure script
- (home-page "http://www.eblong.com/zarf/glulx/")
+ (home-page "https://www.eblong.com/zarf/glulx/")
(synopsis "Interpreter for Glulx VM")
(description
"Glulx is a 32-bit portable virtual machine intended for writing and
(define-public supertuxkart
(package
(name "supertuxkart")
- (version "1.0")
+ (version "1.1")
(source
(origin
(method url-fetch)
version "/supertuxkart-" version "-src.tar.xz"))
(sha256
(base32
- "106rlp99hq18b4q1kdri3pl06cc4v7iqfp1hp9k2f8751lzz923d"))
+ "1s0ai07g3sswck9mr0142989mrgzzq1njc1qxk5als5b245jpc79"))
(modules '((guix build utils)))
(snippet
;; Delete bundled library sources
;; Supertuxkart uses modified versions of the Irrlicht engine
;; and the bullet library. The developers gave an explanation
;; here: http://forum.freegamedev.net/viewtopic.php?f=17&t=3906
- ;; FIXME: try to unbundle angelscript
+ ;; FIXME: try to unbundle angelscript and libraqm
(for-each delete-file-recursively
'("lib/zlib"
"lib/libpng"
"-DNO_IRR_COMPILE_WITH_ZLIB_=TRUE"
"-DUSE_SYSTEM_GLEW=TRUE"
"-DUSE_SYSTEM_ENET=TRUE"
+ ;; In order to use the system ENet library, IPv6 support (added in
+ ;; SuperTuxKart version 1.1) must be disabled.
+ "-DUSE_IPV6=FALSE"
;; FIXME: needs libopenglrecorder
"-DBUILD_RECORDER=0"
;; Irrlicht returns an integer instead of a boolean
("libvorbis" ,libvorbis)
("freetype" ,freetype)
("fribidi" ,fribidi)
+ ("harfbuzz" ,harfbuzz)
("mesa" ,mesa)
("libx11" ,libx11)
("libxrandr" ,libxrandr)
("enet" ,enet)))
(native-inputs
`(("pkg-config" ,pkg-config)))
- (home-page "https://supertuxkart.net/")
+ (home-page "https://supertuxkart.net/Main_Page")
(synopsis "3D kart racing game")
(description "SuperTuxKart is a 3D kart racing game, with a focus on
having fun over realism. You can play with up to 4 friends on one PC, racing
(define-public wesnoth
(package
(name "wesnoth")
- (version "1.14.9")
+ (version "1.14.11")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
"wesnoth-" version ".tar.bz2"))
(sha256
(base32
- "1mhdrlflxxyknf54lwdbvs7fazlc1scf7z6vxxa3j746fks533ga"))))
+ "1i8mz6gw3qar09bscczhki0g4scj8pl58v85rp0g55r4bcq41l5v"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no check target
(recursive? #t))) ; for game data
(file-name (git-file-name name version))
(sha256
- (base32 "0sz0mqhwx8r9n4mk3qrxw420nlsm3y0n48gd0lazgd64lfqjh3ab"))))
+ (base32 "0sz0mqhwx8r9n4mk3qrxw420nlsm3y0n48gd0lazgd64lfqjh3ab"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Remove proprietary libraries and other pre-compiled binaries.
+ '(begin
+ (delete-file-recursively "bin")
+ #t))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target
("sdl-union" ,(sdl-union (list sdl2
sdl2-image
sdl2-mixer)))))
- (home-page "http://redeclipse.net/")
+ (home-page "https://redeclipse.net/")
(synopsis "Arena shooter derived from the Cube 2 engine")
(description
"Red Eclipse is an arena shooter, created from the Cube2 engine.
Offering an innovative parkour system and distinct but all potent weapons,
Red Eclipse provides fast paced and accessible gameplay.")
;; The engine is under Zlib; data files are covered by the other
- ;; licenses. More details at <http://redeclipse.net/wiki/License>.
+ ;; licenses. More details at file:///doc/all-licenses.txt.
(license (list license:expat
license:zlib
+ license:cc-by-sa4.0
license:cc-by-sa3.0
license:cc-by3.0
- license:cc0)))))
+ license:cc0
+ license:public-domain
+ license:silofl1.1)))))
(define-public grue-hunter
(package
("qtscript" ,qtscript)
("openssl" ,openssl)
("sdl2" ,sdl2)))
- (home-page "http://wz2100.net")
+ (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
(inputs
`(("bash" ,bash)
("love" ,love)))
- (home-page "http://tangramgames.dk/games/mrrescue")
+ (home-page "https://tangramgames.dk/games/mrrescue")
(synopsis "Arcade-style fire fighting game")
(description
"Mr. Rescue is an arcade styled 2d action game centered around evacuating
(define-public hyperrogue
(package
(name "hyperrogue")
- (version "11.2d")
+ (version "11.2q")
;; When updating this package, be sure to update the "hyperrogue-data"
;; origin in native-inputs.
(source (origin
"-src.tgz"))
(sha256
(base32
- "1b532s94zv1jsni7bvh848m42arxcclsr0x3n7c689iamwqzrxmn"))))
+ "1w4khi2limxhgiq7xnz0rc9nzbk86bhbyzrcd5hdghnhsviaiggq"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target
"-win.zip"))
(sha256
(base32
- "0vq4l1xaqpjj3hmxn1vn2b3bbkn1hrag42ck9f30blinv347bwhf"))))
+ "1k81zrbq5gmrccjac1i5c6v8j2iilfg2vwrnm8snjmmcnh5z1fgj"))))
("unzip" ,unzip)))
(inputs
`(("font-dejavu" ,font-dejavu)
(list (string-append "CPPFLAGS=-I"
(assoc-ref %build-inputs "sdl-union")
"/include/SDL"))))
- (inputs `(("sdl-union" ,(sdl-union (list sdl sdl-image)))))
+ (inputs
+ `(("glu" ,glu)
+ ("sdl-union" ,(sdl-union (list sdl sdl-image)))))
(synopsis "Shooter with space station destruction")
(description
"Kobo Deluxe is an enhanced version of Akira Higuchi's XKobo graphical game
(define-public freeciv
(package
(name "freeciv")
- (version "2.6.1")
+ (version "2.6.2")
(source
(origin
(method url-fetch)
(version-major+minor version) "/" version
"/freeciv-" version ".tar.bz2")))
(sha256
- (base32 "1qmrhrwm0ryvsh1zsxcxj128lhyvaxap7k39sam3hh8rl0fq9rnc"))))
+ (base32 "13vc2xg1cf19rhbnr7k38b56b2hdapqymq5vma1l69kn7hyyz0b1"))))
(build-system gnu-build-system)
(inputs
`(("curl" ,curl)
(define-public teeworlds
(package
(name "teeworlds")
- (version "0.7.2")
+ (version "0.7.4")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "15l988qcsqgb6rjais0qd5sd2rjanm2708jmzvkariqzz0d6pb93"))
+ "1lxdb1k2cdj2421vyz1z0ximzfnpkh2y4y84zpn2gqsa1nzwbryb"))
(modules '((guix build utils)
(ice-9 ftw)
(ice-9 regex)
(cut string-append base-dir <>))
(remove (cut string-match "(^.)|(^md5$)" <>)
(scandir base-dir)))
- #t))
- (patches
- (search-patches "teeworlds-use-latest-wavpack.patch"))))
+ #t))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests included
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
- ;; The bundled json-parser uses an old API.
- ;; To use the latest non-bundled version, we need to pass the
- ;; length of the data in all 'json_parse_ex' calls.
- (define (use-latest-json-parser file)
- (substitute* file
- (("engine/external/json-parser/json\\.h")
- "json-parser/json.h")
- (("json_parse_ex\\(&JsonSettings, pFileData, aError\\);")
- "json_parse_ex(&JsonSettings,
- pFileData,
- strlen(pFileData),
- aError);")))
-
;; Embed path to assets.
(substitute* "src/engine/shared/storage.cpp"
(("#define DATA_DIR.*")
(substitute* "src/engine/client/sound.cpp"
(("engine/external/wavpack/wavpack\\.h")
"wavpack/wavpack.h"))
- (for-each use-latest-json-parser
- '("src/game/client/components/countryflags.cpp"
- "src/game/client/components/menus_settings.cpp"
- "src/game/client/components/skins.cpp"
- "src/game/client/localization.cpp"
- "src/game/editor/auto_map.h"
- "src/game/editor/editor.cpp"))
#t))
(replace 'build
(lambda _
(synopsis "Abstract puzzle game")
(description "Chroma is an abstract puzzle game. A variety of colourful
shapes are arranged in a series of increasingly complex patterns, forming
- fiendish traps that must be disarmed and mysterious puzzles that must be
- manipulated in order to give up their subtle secrets. Initially so
- straightforward that anyone can pick it up and begin to play, yet gradually
- becoming difficult enough to tax even the brightest of minds.")
+fiendish traps that must be disarmed and mysterious puzzles that must be
+manipulated in order to give up their subtle secrets. Initially so
+straightforward that anyone can pick it up and begin to play, yet gradually
+becoming difficult enough to tax even the brightest of minds.")
(license license:gpl2+)))
(define-public fillets-ng
(define-public tome4
(package
(name "tome4")
- (version "1.6.6")
+ (version "1.6.7")
(synopsis "Single-player, RPG roguelike game set in the world of Eyal")
(source
(origin
(uri (string-append "https://te4.org/dl/t-engine/t-engine4-src-"
version ".tar.bz2"))
(sha256
- (base32
- "1amx0y49scy9hq71wjvkdzvgclwa2g54vkv4bf40mxyp4pl0bq7m"))
+ (base32 "0283hvms5hr29zr0grd6gq059k0hg8hcz3fsmwjmysiih8790i68"))
(modules '((guix build utils)))
(snippet
'(begin
(define-public quakespasm
(package
(name "quakespasm")
- (version "0.93.1")
+ (version "0.93.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/quakespasm/Source/quakespasm-"
version ".tgz"))
(sha256
- (base32
- "1bimv18f6rzhyjz78yvw2vqr5n0kdqbcqmq7cb3m951xgsxfcgpd"))))
+ (base32 "0qm0j5drybvvq8xadfyppkpk3rxqsxbywzm6iwsjwdf0iia3gss5"))))
(arguments
`(#:tests? #f
#:make-flags '("CC=gcc"
(define-public pioneer
(package
(name "pioneer")
- (version "20190203")
+ (version "20200203")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "1g34wvgyvz793dhm1k64kl82ib0cavkbg0f2p3fp05b457ycljff"))))
+ "1011xsi94jhw98mhm8kryq8ajig0qfbrdx5xdasi92bd4nk7lcp8"))))
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(define-public gzdoom
(package
(name "gzdoom")
- (version "3.7.2")
- (source (origin
- (method url-fetch)
- (uri
- (string-append "https://zdoom.org/files/gzdoom/src/gzdoom-src-g"
- version ".zip"))
- (sha256
- (base32
- "0182f160m8d0c3nywjw3dxvnz93xjs4cn8akx7137cha4s05wdq7"))
- (patches (search-patches "gzdoom-search-in-installed-share.patch"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- (delete-file-recursively "bzip2")
- (delete-file-recursively "game-music-emu")
- (delete-file-recursively "jpeg")
- (delete-file-recursively "zlib")
- #t))))
+ (version "4.3.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/coelckers/gzdoom.git")
+ (commit (string-append "g" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0i4hyg72z84fc6ca2ic9q82q5cbgrbd7bynl3kpkypxvyasq08wz"))
+ (patches (search-patches "gzdoom-search-in-installed-share.patch"
+ "gzdoom-find-system-libgme.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove some bundled libraries. XXX There are more, but removing
+ ;; them would require, at least, patching the build system.
+ (with-directory-excursion "libraries"
+ (delete-file-recursively "bzip2")
+ (delete-file-recursively "game-music-emu")
+ (delete-file-recursively "jpeg")
+ (delete-file-recursively "zlib"))
+ #t))))
(arguments
'(#:tests? #f
#:configure-flags
"-DCMAKE_CXX_FLAGS:="
"-DSHARE_DIR=\\\"" out "/share/\\\" "
"-DGUIX_OUT_PK3=\\\"" out "/share/games/doom\\\"")
- ;; look for libraries at buildtime instead of
- ;; dynamically finding them at runtime
+
+ ;; The build requires some extra convincing not to use the bundled
+ ;; libgme previously deleted in the soure snippet.
+ "-DFORCE_INTERNAL_GME=OFF"
+
+ ;; Link libraries at build time instead of loading them at run time.
"-DDYN_OPENAL=OFF"
"-DDYN_FLUIDSYNTH=OFF"
"-DDYN_GTK=OFF"
(string-append "COMMAND " (which "sh"))))
(substitute*
- "src/sound/mididevices/music_fluidsynth_mididevice.cpp"
+ "libraries/zmusic/mididevices/music_fluidsynth_mididevice.cpp"
(("/usr/share/sounds/sf2/FluidR3_GM.sf2")
(string-append fluid-3 "/share/soundfonts/FluidR3Mono_GM.sf3")))
(substitute*
- "src/sound/mididevices/music_timiditypp_mididevice.cpp"
+ "libraries/zmusic/mididevices/music_timiditypp_mididevice.cpp"
(("exename = \"timidity\"")
(string-append "exename = \"" timidity++ "/bin/timidity\"")))
#t))))))
(build-system cmake-build-system)
(inputs `(("bzip2" ,bzip2)
("fluid-3" ,fluid-3)
- ("fluidsynth" ,fluidsynth-1) ;XXX: try using 2.x when updating
+ ("fluidsynth" ,fluidsynth)
("gtk+3" ,gtk+)
("libgme" ,libgme)
("libjpeg" ,libjpeg)
(define-public odamex
(package
(name "odamex")
- (version "0.8.0")
+ (version "0.8.1")
(source
(origin
(method url-fetch)
"mirror://sourceforge/odamex/Odamex/" version "/"
"odamex-src-" version ".tar.gz"))
(sha256
- (base32
- "1sh6lqj7vsdmnqz17hw0b6vy7xx6dp41k2sdw99ympsfa2xd1d2j"))))
+ (base32 "1ywbqkfacc9fc5di3dn95y5ah2ys9i241j64q3f37a73x92llw1i"))))
(build-system cmake-build-system)
- (arguments `(#:tests? #f)) ; no tests.
+ (arguments `(#:tests? #f)) ; no tests
(inputs
`(("sdl" ,sdl)
("sdl-mixer" ,sdl-mixer)
(package
(inherit chocolate-doom)
(name "crispy-doom")
- (version "5.6.3")
+ (version "5.7.1")
(source (origin
(method git-fetch)
(uri (git-reference
(commit (string-append "crispy-doom-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0f319979wqfgm4pvsa6y5clg30p55l441kmrr8db0p5smyv3x2s4"))))
+ (base32 "1gqivy4pxasy7phyznixsagylf9f70bk33b0knpfzzlks6cc6zzj"))))
(native-inputs
(append
(package-native-inputs chocolate-doom)
`(#:phases
(modify-phases %standard-phases
(replace 'bootstrap
- ;; the autogen.sh script in the source tree doesn't work
+ ;; The bundled autogen.sh script unconditionally runs ./configure.
(lambda _ (invoke "autoreconf" "-vif"))))))
(synopsis "Limit-removing enhanced-resolution Doom source port based on
Chocolate Doom")
original.")
(home-page "https://www.chocolate-doom.org/wiki/index.php/Crispy_Doom")))
+(define shlomif-cmake-modules
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://bitbucket.org/shlomif/shlomif-cmake-modules/"
+ "raw/c505713d7a7cda608f97f01577e5868a711b883e/"
+ "shlomif-cmake-modules/Shlomif_Common.cmake"))
+ (sha256
+ (base32 "0kx9s1qqhhzprp1w3b67xmsns0n0v506bg5hgrshxaxpy6lqiwb2"))))
+
+(define-public rinutils
+ (package
+ (name "rinutils")
+ (version "0.2.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/shlomif/rinutils.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1fpxyg86ggv0h7j8aarjjxrvwlj7jycd3bw066c0dwkq2fszxsf2"))))
+ (native-inputs
+ `(("perl" ,perl)
+ ;; The following is only needed for tests.
+ ("perl-file-find-object" ,perl-file-find-object)
+ ("perl-test-differences" ,perl-test-differences)
+ ("perl-class-xsaccessor" ,perl-class-xsaccessor)
+ ("perl-io-all" ,perl-io-all)
+ ("perl-test-runvalgrind" ,perl-test-runvalgrind)
+ ("cmake-rules" ,shlomif-cmake-modules)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("cmocka" ,cmocka)
+ ("perl-env-path", perl-env-path)
+ ("perl-inline" ,perl-inline)
+ ("perl-inline-c" ,perl-inline-c)
+ ("perl-string-shellquote" ,perl-string-shellquote)
+ ("perl-test-trailingspace" ,perl-test-trailingspace)
+ ("perl-file-find-object-rule" ,perl-file-find-object-rule)
+ ("perl-text-glob" ,perl-text-glob)
+ ("perl-number-compare" ,perl-number-compare)
+ ("perl-moo" ,perl-moo)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-build-env
+ (lambda* (#:key inputs #:allow-other-keys)
+ (use-modules (guix build utils))
+ (let* ((cmake-rules (assoc-ref inputs "cmake-rules")))
+ (copy-file cmake-rules
+ (string-append "cmake/"
+ (strip-store-file-name cmake-rules)))
+ #t)))
+ (replace 'check
+ (lambda _
+ (with-directory-excursion "../source"
+ (setenv "FCS_TEST_BUILD" "1")
+ (setenv "RINUTILS_TEST_BUILD" "1")
+ ;; TODO: Run tests after setting RINUTILS_TEST_TIDY to `1',
+ ;; which requires tidy-all.
+ ;; (setenv "RINUTILS_TEST_TIDY" "1")
+ (invoke "perl" "CI-testing/continuous-integration-testing.pl")))))))
+ (build-system cmake-build-system)
+ (home-page "https://www.shlomifish.org/open-source/projects/")
+ (synopsis "C11 / gnu11 utilities C library")
+ (description "This package provides C11 / gnu11 utilities C library")
+ (license license:expat)))
+
(define-public fortune-mod
(package
(name "fortune-mod")
- (version "2.6.2")
+ (version "2.12.0")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "11xff87s8ifw2dqs90n0rjq0psv4i7ykybygmibsqjj7id3xxw4c"))))
+ "0laxgqsdg7kvpvvm1f54b94ga9r0cr9g3ffii8avg8fy65x6pzc9"))))
(build-system cmake-build-system)
(arguments
`(#:test-target "check"
("perl-class-xsaccessor" ,perl-class-xsaccessor)
("perl-io-all" ,perl-io-all)
("perl-test-runvalgrind" ,perl-test-runvalgrind)
- ("cmake-rules"
- ,(origin
- (method url-fetch)
- (uri (string-append "https://bitbucket.org/shlomif/shlomif-cmake-modules/"
- "raw/c505713d7a7cda608f97f01577e5868a711b883e/"
- "shlomif-cmake-modules/Shlomif_Common.cmake"))
- (sha256
- (base32 "0kx9s1qqhhzprp1w3b67xmsns0n0v506bg5hgrshxaxpy6lqiwb2"))))))
+ ("cmake-rules" ,shlomif-cmake-modules)
+ ("rinutils" ,rinutils)))
(home-page "http://www.shlomifish.org/open-source/projects/fortune-mod/")
(synopsis "The Fortune Cookie program from BSD games")
(description "Fortune is a command-line utility which displays a random
("gtk+" ,gtk+-2)
("jsoncpp" ,jsoncpp)
("libpng" ,libpng)
- ("libjpeg" ,libjpeg-8)
+ ("libjpeg" ,libjpeg-turbo)
("libmad" ,libmad)
("libogg" ,libogg)
("libva" ,libva)
;; Drascula uses a BSD-like license.
(license (license:non-copyleft "file:///readme.txt"))))
+(define (make-lure-package name language hash)
+ (package
+ (name name)
+ (version "1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/scummvm/extras/"
+ "Lure%20of%20the%20Temptress/"
+ name "-" version ".zip"))
+ (sha256
+ (base32 hash))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((out (assoc-ref %outputs "out"))
+ (share (string-append out "/share"))
+ (data (string-append share "/" ,name "/" ,language))
+ (apps (string-append share "/applications"))
+ (bin (string-append out "/bin"))
+ (executable (string-append bin "/" ,name))
+ (scummvm (assoc-ref %build-inputs "scummvm")))
+ (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
+ "/bin/unzip")))
+ (invoke unzip "-j" (assoc-ref %build-inputs "source")))
+ (let ((doc (string-append share "/doc/" ,name "-" ,version)))
+ (for-each (lambda (f) (install-file f doc))
+ (find-files "." "\\.(txt|PDF|pdf)$")))
+ (for-each (lambda (f) (install-file f data))
+ (find-files "." "\\.(vga|VGA)$"))
+ ;; Build the executable.
+ (mkdir-p bin)
+ (let ((bash (assoc-ref %build-inputs "bash")))
+ (with-output-to-file executable
+ (lambda ()
+ (format #t "#!~a/bin/bash~%" bash)
+ (format #t "exec ~a/bin/scummvm -q ~a -p ~a lure~%"
+ scummvm ,language data))))
+ (chmod executable #o755)
+ ;; Create desktop file. There is no dedicated
+ ;; icon for the game, so we borrow SCUMMVM's.
+ (mkdir-p apps)
+ (with-output-to-file (string-append apps "/" ,name ".desktop")
+ (lambda _
+ (format #t
+ "[Desktop Entry]~@
+ Name=Lure of the Temptress~@
+ GenericName=Lure~@
+ Exec=~a~@
+ 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]=Jeu classique d'aventure pointer-et-cliquer en 2D~@
+ Comment[it]=Gioco classico di avventura punta e clicca 2D~@
+ Type=Application~%"
+ executable scummvm)))
+ #t))))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (inputs
+ `(("bash" ,bash)
+ ("scummvm" ,scummvm)))
+ (home-page "https://www.scummvm.org")
+ (synopsis "2D point and click fantasy adventure game")
+ (description
+ "Lure of the Temptress is a classic 2D point and click adventure game.
+
+You are Diermot, an unwilling hero who'd prefer a quiet life, and are, to all
+intents and purposes, a good man. After decades of unrest the King has united
+the warring factions in his kingdom and all his lands are at peace, except
+a remote region around a town called Turnvale. A revolt has recently taken
+place in Turnvale, a revolt orchestrated by an apprentice sorceress called
+Selena, the titular temptress. The king calls together his finest horsemen
+and heads off (with you in tow) to Turnvale just to witness how hellish
+mercenary monsters called Skorl are invading the town.
+
+The king's men are defeated, the king is killed and you fall of your horse and
+bang your head heavily on the ground. You have been *unconscious for a while
+when you realize that you are in a dingy cell guarded by a not so friendly
+Skorl. Maybe it would be an idea to try and escape...")
+ (license (license:non-copyleft "file:///README"))))
+
+(define-public lure
+ (make-lure-package
+ "lure" "en" "0201i70qcs1m797kvxjx3ygkhg6kcl5yf49sihba2ga8l52q45zk"))
+
+(define-public lure-de
+ (make-lure-package
+ "lure-de" "de" "0sqq7h5llml6rv85x0bfv4bgzwhs4c82p4w4zmfcaab6cjlad0sy"))
+
+(define-public lure-es
+ (make-lure-package
+ "lure-es" "es" "1dvv5znvlsakw6w5r16calv9jkgw27aymgybsf4q22lcmpxbj1lk"))
+
+(define-public lure-fr
+ (make-lure-package
+ "lure-fr" "fr" "1y51jjb7f8023832g44vd1jsb6ni85586pi2n5hjg9qjk6gi90r9"))
+
+(define-public lure-it
+ (make-lure-package
+ "lure-it" "it" "1ks6n39r1cllisrrh6pcr39swsdv7ng3gx5c47vaw71zzfr70hjj"))
+
+(define (make-queen-package name file-prefix release language hash)
+ (package
+ (name name)
+ (version release)
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/scummvm/extras/"
+ "Flight%20of%20the%20Amazon%20Queen/"
+ file-prefix release ".zip"))
+ (sha256
+ (base32 hash))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((out (assoc-ref %outputs "out"))
+ (share (string-append out "/share"))
+ (data (string-append share "/" ,name))
+ (apps (string-append share "/applications"))
+ (bin (string-append out "/bin"))
+ (executable (string-append bin "/" ,name))
+ (scummvm (assoc-ref %build-inputs "scummvm")))
+ (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
+ "/bin/unzip")))
+ (invoke unzip "-j" (assoc-ref %build-inputs "source")))
+ (let ((doc (string-append share "/doc/" ,name "-" ,version)))
+ (install-file "readme.txt" doc))
+ (install-file "queen.1c" data)
+ (mkdir-p bin)
+ (let ((bash (assoc-ref %build-inputs "bash")))
+ (with-output-to-file executable
+ (lambda ()
+ (format #t "#!~a/bin/bash~%" bash)
+ (format #t "exec ~a/bin/scummvm -q fr -p ~a queen~%"
+ scummvm data))))
+ (chmod executable #o755)
+ ;; Create desktop file. There is no dedicated
+ ;; icon for the game, so we borrow SCUMMVM's.
+ (mkdir-p apps)
+ (with-output-to-file (string-append apps "/" ,name ".desktop")
+ (lambda _
+ (format #t
+ "[Desktop Entry]~@
+ Name=Flight of the Amazon Queen~@
+ GenericName=Queen~@
+ Comment=Embark on a quest to rescue a kidnapped princess and in the process, discover the true sinister intentions of a suspiciously located Lederhosen company~@
+ Comment[de]=Begib dich auf ein Abenteuer, um eine entführte Prinzessin zu retten und entdecke die wahren, finsteren Absichten eines verdächtig erscheinenden Lederhosen-Unternehmens~@
+ Type=Application~@
+ Exec=~a~@
+ Icon=~a/share/icons/hicolor/scalable/apps/scummvm.svg~@
+ Categories=AdventureGame;Game;RolePlaying;~@
+ Keywords=adventure;game;roleplaying;fantasy;~%"
+ executable scummvm))))
+ #t)))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (inputs
+ `(("bash" ,bash)
+ ("scummvm" ,scummvm)))
+ (home-page "https://www.scummvm.org/")
+ (synopsis "Classic 2D point and click adventure game")
+ (description "Flight of the Amazon Queen is a 2D point-and-click
+adventure game set in the 1940s.
+
+You assume the role of Joe King, a pilot for hire who is given the job
+of flying Faye Russell (a famous movie star) into the Amazon jungle
+for a photo shoot. Of course, things never go according to plans.
+After an unfortunate turn of events they find themselves stranded in
+the heart of the Amazon jungle, where Joe will embark on a quest to
+rescue a kidnapped princess and in the process, discover the true
+sinister intentions of a suspiciously located Lederhosen company. In
+a rich 2D environment, Joe will cross paths with a variety of unlikely
+jungle inhabitants including, but not limited to, a tribe of Amazon
+women and 6-foot-tall pygmies.")
+ (license (license:non-copyleft "file:///readme.txt"))))
+
+(define-public queen
+ (make-queen-package
+ "queen" "FOTAQ_Talkie-" "1.1" "en"
+ "1a6q71q1dl9vvw2qqsxk5h1sv0gaqy6236zr5905w2is01gdsp52"))
+
+(define-public queen-de
+ (make-queen-package
+ "queen-de" "FOTAQ_Ger_talkie-" "1.0" "de"
+ "13vn43x7214vyprlpqabvv71k890nff3d6fjscflr1ll7acjca3f"))
+
+(define-public queen-fr
+ (make-queen-package
+ "queen-fr" "FOTAQ_Fr_Talkie_" "1.0" "fr"
+ "0hq5g4qrkcwm2kn5i4kv4hijs9hi7bw9xl1vrwd1l69qqn30crwy"))
+
+(define-public queen-it
+ (make-queen-package
+ "queen-it" "FOTAQ_It_Talkie_" "1.0" "it"
+ "1h76y70lrpzfjkm53n4nr364nhyka54vbz9r7sadzyzl7c7ilv4d"))
+
+(define-public sky
+ (package
+ (name "sky")
+ (version "1.2") ;1.3 is floppy version
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/scummvm/extras/"
+ "Beneath%20a%20Steel%20Sky/"
+ "bass-cd-" version ".zip"))
+ (sha256
+ (base32 "14s5jz67kavm8l15gfm5xb7pbpn8azrv460mlxzzvdpa02a9n82k"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((out (assoc-ref %outputs "out"))
+ (share (string-append out "/share"))
+ (data (string-append share "/" ,name))
+ (apps (string-append share "/applications"))
+ (bin (string-append out "/bin"))
+ (executable (string-append bin "/" ,name))
+ (scummvm (assoc-ref %build-inputs "scummvm")))
+ (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
+ "/bin/unzip")))
+ (invoke unzip "-j" (assoc-ref %build-inputs "source")))
+ (let ((doc (string-append share "/doc/bass-" ,version)))
+ (install-file "readme.txt" doc))
+ (for-each (lambda (f) (install-file f data))
+ (find-files "." "^sky\\."))
+ ;; Build the executable.
+ (mkdir-p bin)
+ (let ((bash (assoc-ref %build-inputs "bash")))
+ (with-output-to-file executable
+ (lambda ()
+ (format #t "#!~a/bin/bash~%" bash)
+ (format #t "exec ~a/bin/scummvm -p ~a sky~%" scummvm data))))
+ (chmod executable #o755)
+ ;; Create desktop file. There is no dedicated
+ ;; icon for the game, so we borrow SCUMMVM's.
+ (mkdir-p apps)
+ (with-output-to-file (string-append apps "/" ,name ".desktop")
+ (lambda _
+ (format #t
+ "[Desktop Entry]~@
+ Name=Beneath a Steel Sky~@
+ GenericName=Bass~@
+ Exec=~a~@
+ Icon=~a/share/icons/hicolor/scalable/apps/scummvm.svg~@
+ Categories=AdventureGame;Game;RolePlaying;~@
+ Keywords=adventure;game;roleplaying;cyberpunk;~@
+ Comment=A science-fiction adventure game set in a bleak post-apocalyptic vision of the future~@
+ Comment[de]=Ein Science-Fiction-Abenteuerspiel \
+angesiedelt in einer düsteren, postapokalyptischen Vision der Zukunft~@
+ Type=Application~%"
+ executable scummvm)))
+ #t))))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (inputs
+ `(("bash" ,bash)
+ ("scummvm" ,scummvm)))
+ (home-page "https://www.scummvm.org/")
+ (synopsis "Classic 2D point an click science-fiction adventure game")
+ (description
+ "Beneath a Steel Sky is a science-fiction thriller set in a bleak
+post-apocalyptic vision of the future. It revolves around Union City,
+where selfishness, rivalry, and corruption by its citizens seems to be
+all too common, those who can afford it live underground, away from
+the pollution and social problems which are plaguing the city.
+
+You take on the role of Robert Foster, an outcast of sorts from the
+city since a boy who was raised in a remote environment outside of
+Union City simply termed ``the gap''. Robert's mother took him away
+from Union City as a child on their way to ``Hobart'' but the
+helicopter crashed on its way. Unfortunately, Robert's mother died,
+but he survived and was left to be raised by a local tribe from the
+gap.
+
+Years later, Union City security drops by and abducts Robert, killing
+his tribe in the process; upon reaching the city the helicopter taking
+him there crashes with him escaping, high upon a tower block in the
+middle of the city. He sets out to discover the truth about his past,
+and to seek vengeance for the killing of his tribe.")
+ (license (license:non-copyleft "file:///readme.txt"))))
+
(define-public gnurobots
(package
(name "gnurobots")
(define-public freeorion
(package
(name "freeorion")
- (version "0.4.8")
+ (version "0.4.9")
(source
(origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/freeorion/freeorion.git")
- ;; Most recent stable release uses boost_signals (v1) which was
- ;; later replaced with boost-signals2 and no longer exists. This
- ;; commit builds and runs.
- ;;
- ;; TODO: Update this when the next stable release when it is
- ;; available.
- (commit "470d0711537804df3c2ca25532f674ab4bec58af")))
- (file-name (git-file-name name version))
+ (method url-fetch)
+ (uri (string-append "https://github.com/freeorion/freeorion/releases/"
+ "download/v" version "/FreeOrion_v" version
+ "_2020-02-02.db53471_Source.tar.gz"))
(sha256
- (base32
- "1wsw632l1cj17px6i88nqjzs0dngp5rsr67n6qkkjlfjfxi69j0f"))
+ (base32 "1qfnqkysagh8dw26plk229qh17mv4prjxs6qhfyczrmrrakb72an"))
(modules '((guix build utils)))
(snippet
'(begin
This package is part of the KDE games module.")
(license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public xmoto
+ (package
+ (name "xmoto")
+ (version "0.5.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://download.tuxfamily.org/xmoto/xmoto/" version "/"
+ "xmoto-" version "-src.tar.gz"))
+ (sha256
+ (base32 "1ci6r8zd0l7z28cy92ddf9dmqbdqwinz2y1cny34c61b57wsd155"))
+ (patches
+ (search-patches
+ "xmoto-remove-glext.patch" ;fixes licensing issue
+ "xmoto-reproducible.patch"
+ "xmoto-utf8.patch"))
+ ;; Unbundle ODE.
+ (modules '((guix build utils)))
+ (snippet
+ `(begin
+ (delete-file-recursively "src/ode")
+ #t))))
+ (build-system gnu-build-system)
+ (arguments
+ ;; XXX: First flag prevents a build error with GCC7+. The second
+ ;; flag works around missing text in game. Both are fixed
+ ;; upstream. Remove once xmoto 0.5.12+ is released.
+ `(#:make-flags '("CXXFLAGS=-fpermissive -D_GLIBCXX_USE_CXX11_ABI=0")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-desktop-file
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (apps (string-append out "/share/applications"))
+ (pixmaps (string-append out "/share/pixmaps")))
+ (install-file "extra/xmoto.desktop" apps)
+ (install-file "extra/xmoto.xpm" pixmaps)
+ #t)))
+ (add-after 'install-desktop-file 'install-fonts
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ (let ((font-dir (string-append (assoc-ref inputs "font-dejavu")
+ "/share/fonts/truetype/"))
+ (target-dir (string-append (assoc-ref outputs "out")
+ "/share/xmoto/Textures/Fonts/")))
+ (for-each (lambda (f)
+ (let ((font (string-append font-dir f))
+ (target (string-append target-dir f)))
+ (delete-file target)
+ (symlink font target)))
+ '("DejaVuSans.ttf" "DejaVuSansMono.ttf"))
+ #t)))
+ (add-after 'install-fonts 'install-man-page
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "xmoto.6"
+ (string-append (assoc-ref outputs "out")
+ "/share/man/man6"))
+ #t)))))
+ (native-inputs
+ `(("gettext" ,gettext-minimal)))
+ (inputs
+ `(("curl" ,curl)
+ ("font-dejavu" ,font-dejavu)
+ ("glu" ,glu)
+ ("libjpeg" ,libjpeg)
+ ("libpng" ,libpng)
+ ("libxdg-basedir" ,libxdg-basedir)
+ ("libxml2" ,libxml2)
+ ("lua" ,lua-5.2)
+ ("ode" ,ode)
+ ("sdl" ,(sdl-union (list sdl sdl-mixer sdl-net sdl-ttf)))
+ ("sqlite" ,sqlite)
+ ("zlib" ,zlib)))
+ (home-page "https://xmoto.tuxfamily.org/")
+ (synopsis "2D motocross platform game")
+ (description "X-Moto is a challenging 2D motocross platform game, where
+physics play an all important role in the gameplay. You need to control your
+bike to its limit, if you want to have a chance finishing the more difficult
+challenges.")
+ (license (list license:gpl2+ ;whole project
+ license:bsd-4 ;src/bzip
+ license:bsd-3 ;src/md5sum
+ license:lgpl2.1+ ;src/iqsort.h
+ license:expat))))
+
+(define-public eboard
+ (package
+ (name "eboard")
+ (version "1.1.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fbergo/eboard.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1z4pwpqyvxhlda99h6arh2rjk90fbms9q29fqizjblrdn01dlxn1"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("perl" ,perl)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("gtk+" ,gtk+-2)
+ ("libpng" ,libpng)
+ ("gstreamer" ,gstreamer)))
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (make-file-writable "eboard-config")
+ (setenv "CC" "gcc")
+ (invoke "./configure"
+ (string-append "--prefix=" (assoc-ref outputs "out")))
+ #t))
+ (add-before 'install 'make-required-directories
+ (lambda* (#:key outputs #:allow-other-keys)
+ (mkdir-p (string-append (assoc-ref outputs "out")
+ "/share/eboard"))
+ #t)))))
+ (synopsis "Graphical user interface to play chess")
+ (description
+ "Eboard is a chess board interface for ICS (Internet Chess Servers)
+and chess engines.")
+ (home-page "https://www.bergo.eng.br/eboard/")
+ (license license:gpl2+)))
+
+(define-public chessx
+ (package
+ (name "chessx")
+ (version "1.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/chessx/chessx/"
+ version "/chessx-" version ".tgz"))
+ (sha256
+ (base32 "09rqyra28w3z9ldw8sx07k5ap3sjlli848p737maj7c240rasc6i"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("qttools" ,qttools)))
+ (inputs
+ `(("qtbase" ,qtbase)
+ ("qtmultimedia" ,qtmultimedia)
+ ("qtsvg" ,qtsvg)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "chessx.pro"
+ (("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease")
+ (string-append (assoc-ref inputs "qttools") "/bin/lrelease")))
+ #t))
+ (add-after 'fix-paths 'make-qt-deterministic
+ (lambda _
+ (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
+ #t))
+ (replace 'configure
+ (lambda _
+ (invoke "qmake")
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (install-file "release/chessx" (string-append out "/bin"))
+ (install-file "unix/chessx.desktop"
+ (string-append out "/share/applications")))
+ #t)))))
+ (synopsis "Chess game database")
+ (description
+ "ChessX is a chess database. With ChessX you can operate on your
+collection of chess games in many ways: browse, edit, add, organize, analyze,
+etc. You can also play games on FICS or against an engine.")
+ (home-page "http://chessx.sourceforge.net/")
+ (license license:gpl2+)))
+
+(define-public stockfish
+ (package
+ (name "stockfish")
+ (version "11")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/official-stockfish/Stockfish.git")
+ (commit (string-append "sf_" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "12mppipinymj8s1ipq9a7is453vncly49c32ym9wvyklsgyxfzlk"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
+ #:make-flags (list "-C" "src"
+ "build"
+ (string-append "PREFIX="
+ (assoc-ref %outputs "out"))
+ (string-append "ARCH="
+ ,(match (%current-system)
+ ("x86_64-linux" "x86-64")
+ ("i686-linux" "x86-32")
+ ("aarch64-linux" "general-64")
+ ("armhf-linux" "armv7")
+ ("mips64el-linux" "general-64")
+ (_ "general-32"))))
+ #:phases (modify-phases %standard-phases
+ (delete 'configure))))
+ (synopsis "Strong chess engine")
+ (description
+ "Stockfish is a very strong chess engines. It is much stronger than the
+best human chess grandmasters. It can be used with UCI-compatible GUIs like
+ChessX.")
+ (home-page "https://stockfishchess.org/")
+ (license license:gpl3+)))