;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2016, 2017 Rodger Fox <thylakoid@openmailbox.org>
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
-;;; Copyright © 2016, 2017 ng0 <ng0@no-reply.pragmatique.xyz>
+;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
-;;; Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org>
+;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Steve Webber <webber.sl@gmail.com>
-;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
+;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@hyperbola.info>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 nee <nee-git@hidamari.blue>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
+;;; Copyright © 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages documentation)
#:use-module (gnu packages docbook)
#:use-module (gnu packages fltk)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages fribidi)
#:use-module (gnu packages game-development)
#:use-module (gnu packages gettext)
#:use-module (gnu packages guile)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages libcanberra)
+ #:use-module (gnu packages libedit)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages haskell)
#:use-module (gnu packages mp3)
#:use-module (gnu packages xorg)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages shells)
#:use-module (gnu packages sdl)
#:use-module (gnu packages swig)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages networking)
+ #:use-module (gnu packages web)
#:use-module (guix build-system gnu)
#:use-module (guix build-system haskell)
#:use-module (guix build-system python)
(define-public cowsay
(package
(name "cowsay")
- (version "3.03")
+ (version "3.04")
(source (origin
(method url-fetch)
- (uri (string-append "https://web.archive.org/web/20071026043648/"
- "http://www.nog.net:80/~tony/warez/"
- "cowsay-" version ".tar.gz"))
+ (uri (string-append "https://github.com/tnalpgge/"
+ "rank-amateur-cowsay/archive/"
+ name "-" version ".tar.gz"))
(sha256
(base32
- "1bxj802na2si2bk5zh7n0b7c33mg8a5n2wnvh0vihl9bmjkp51hb"))))
+ "12w7apbf6a9qffk92r32b16w22na2fjcqbl32rn0n7zw5hrp3f6q"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
- (delete 'configure)
- (delete 'install)
- (replace 'build
+ (delete 'configure) ; no configure script
+ (delete 'build) ; nothing to be built
+ (replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(zero? (system* "sh" "install.sh"
(assoc-ref outputs "out")))))
- (replace 'check
+ (delete 'check)
+ (add-after 'install 'check
(lambda* (#:key outputs #:allow-other-keys)
(zero? (system* (string-append (assoc-ref outputs "out")
"/bin/cowsay")
(inputs
`(("perl" ,perl)))
(home-page (string-append "https://web.archive.org/web/20071026043648/"
- "http://www.nog.net:80/~tony/warez/"))
+ "http://www.nog.net:80/~tony/warez/cowsay.shtml"))
(synopsis "Speaking cow text filter")
(description "Cowsay is basically a text filter. Send some text into it,
and you get a cow saying your text. If you think a talking cow isn't enough,
-cows can think too. All you have to do is run @code{cowthink}.")
- ;; Any version of the GPL.
+cows can think too: all you have to do is run @command{cowthink}. If you're
+tired of cows, a variety of other ASCII-art messengers are available.")
(license license:gpl3+)))
(define-public freedoom
effects and music to make a completely free game.")
(license license:bsd-3)))
+(define-public meandmyshadow
+ (package
+ (name "meandmyshadow")
+ (version "0.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/meandmyshadow/"
+ version "/meandmyshadow-" version
+ "-src.tar.gz"))
+ (sha256
+ (base32
+ "1dpb7s32b2psj5w3nr5kqibib8nndi86mw8gxp4hmxwrfiisf86d"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f ; there are no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'set-sdl'paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "cmake/Modules/FindSDL_gfx.cmake"
+ (("/usr/local/include/SDL")
+ (string-append (assoc-ref inputs "sdl")
+ "/include/SDL")))
+ ;; Because SDL provides lib/libX11.so.6 we need to explicitly
+ ;; link with libX11, even though we're using the GL backend.
+ (substitute* "CMakeLists.txt"
+ (("\\$\\{X11_LIBRARIES\\}") "-lX11"))
+ )))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("sdl" ,(sdl-union (list sdl
+ sdl-image
+ sdl-gfx
+ sdl-mixer
+ sdl-ttf)))
+ ("libx11" ,libx11) ; needed by sdl's libX11
+ ("libarchive" ,libarchive)
+ ("openssl" ,openssl)
+ ("mesa" ,mesa)
+ ("glu" ,glu)
+ ("curl" ,curl)))
+ (home-page "http://meandmyshadow.sourceforge.net/")
+ (synopsis "Puzzle/platform game")
+ (description "Me and My Shadow is a puzzle/platform game in which you try
+to reach the exit by solving puzzles. Spikes, moving blocks, fragile blocks
+and much more stand between you and the exit. Record your moves and let your
+shadow mimic them to reach blocks you couldn't reach alone.")
+ (license license:gpl3+)))
+
+(define-public knights
+ (package
+ (name "knights")
+ (version "025")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://www.knightsgame.org.uk/files/knights_"
+ version "_src.tar.gz"))
+ (sha256
+ (base32
+ "18vp2ygvn0s0jz8rm585jqf6hjqkam1ximq81k0r9hpmfj7wb88f"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:make-flags
+ (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ ;; No configure script.
+ (delete 'configure))
+ #:tests? #f)) ;; No check target.
+ (inputs
+ `(("boost" ,boost)
+ ("sdl-union" ,(sdl-union (list sdl sdl-image sdl-mixer)))
+ ("freetype" ,freetype)
+ ("fontconfig" ,fontconfig)
+ ("curl" ,curl)))
+ (home-page "http://www.knightsgame.org.uk/")
+ (synopsis "Multiplayer dungeon game involving knights and quests")
+ (description "Knights is a multiplayer game involving several knights who
+must run around a dungeon and complete various quests. Each game revolves
+around a quest – for example, you might have to find some items and carry them
+back to your starting point. This may sound easy, but as there are only
+enough items in the dungeon for one player to win, you may end up having to
+kill your opponents to get their stuff! Other quests involve escaping from
+the dungeon, fighting a duel to the death against the enemy knights, or
+destroying an ancient book using a special wand.")
+ ;; This package includes modified sources of lua (X11), enet (Expat), and
+ ;; guichan (BSD-3). The "Coercri" library is released under the Boost
+ ;; license. The whole package is released under GPLv3+.
+ (license license:gpl3+)))
+
(define-public gnubg
(package
(name "gnubg")
Chess). It is similar to standard chess but this variant is far more complicated.")
(license license:gpl3+)))
+(define-public ltris
+ (package
+ (name "ltris")
+ (version "1.0.19")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://prdownloads.sourceforge.net/lgames/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1895wv1fqklrj4apkz47rnkcfhfav7zjknskw6p0886j35vrwslg"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(;; The code in LTris uses traditional GNU semantics for inline functions
+ #:configure-flags '("CFLAGS=-fgnu89-inline")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'set-paths 'set-sdl-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "CPATH"
+ (string-append (assoc-ref inputs "sdl-union")
+ "/include/SDL"))
+ #t)))))
+ (inputs
+ `(("sdl-union" ,(sdl-union (list sdl sdl-mixer)))))
+ (home-page "http://lgames.sourceforge.net/LTris/")
+ (synopsis "Tetris clone based on the SDL library")
+ (description
+ "LTris is a tetris clone: differently shaped blocks are falling down the
+rectangular playing field and can be moved sideways or rotated by 90 degree
+units with the aim of building lines without gaps which then disappear (causing
+any block above the deleted line to fall down). LTris has three game modes: In
+Classic you play until the stack of blocks reaches the top of the playing field
+and no new blocks can enter. In Figures the playing field is reset to a new
+figure each level and later on tiles and lines suddenly appear. In Multiplayer
+up to three players (either human or CPU) compete with each other sending
+removed lines to all opponents. There is also a Demo mode in which you can
+watch your CPU playing while enjoying a cup of tea!")
+ (license license:gpl2+)))
+
(define-public prboom-plus
(package
(name "prboom-plus")
(define-public retux
(package
(name "retux")
- (version "1.3.4")
+ (version "1.3.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/retux/"
version "-src.tar.gz"))
(sha256
(base32
- "1wgvh3q96kfgymb2jpd58xsms9hmckhhc4fq7v2k61gh2l11cvdj"))))
+ "1pcrh3z16fl412r3k7xccrgika19ahb1xh90jihgl8yy7zza2i6p"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; no check target
license:gpl2+
license:gpl3+))))
+(define-public roguebox-adventures
+ (let ((commit "19a2c340b34d5b4e7cc89118c7aedc058babbd93")
+ (revision "1"))
+ (package
+ (name "roguebox-adventures")
+ (version (git-version "2.1.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://git.postactiv.com/themightyglider/RogueBoxAdventures.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0afmg8fjdcs3sqdp5rc7irgr7riil8jwysfjn1imfxslf1wcx5ah"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:tests? #f ; no check target
+ #:phases
+ (modify-phases %standard-phases
+ ;; no setup.py script
+ (replace 'build
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (data (string-append
+ out "/share/games/roguebox-adventures")))
+ ;; Use the correct data directory.
+ (substitute* '("main.py" "LIB/getch.py" "LIB/getch_gcwz.py")
+ (("basic_path + os\\.sep + 'DATA'")
+ (string-append "'" data "'"))
+ (("^basic_path.*$")
+ (string-append "basic_path ='" data "'\n")))
+ (substitute* "LIB/gra_files.py"
+ (("basic_path = b_path\\.replace\\('/LIB',''\\)")
+ (string-append "basic_path ='" data "'\n")))
+
+ ;; The game must save in the user's home directory because
+ ;; the store is read-only.
+ (substitute* "main.py"
+ (("home_save = False") "home_save = True")
+ (("'icon_small.png'")
+ (string-append "'" data "/icon_small.png'"))))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (data (string-append
+ out "/share/games/roguebox-adventures"))
+ (doc (string-append
+ out "/share/doc/roguebox-adventures")))
+ (mkdir-p bin)
+ (mkdir-p doc)
+ (copy-file "main.py"
+ (string-append bin "/roguebox-adventures"))
+ (chmod (string-append bin "/roguebox-adventures") #o555)
+
+ (for-each (lambda (file)
+ (copy-recursively file
+ (string-append data "/" file)))
+ '("AUDIO" "FONT" "GRAPHIC" "LIB" "LICENSE"
+ "icon_big.png" "icon_small.png"))
+
+ (copy-recursively "DOC" doc)
+
+ (wrap-program (string-append bin "/roguebox-adventures")
+ `("PYTHONPATH" ":" prefix (,(string-append data "/LIB")))))
+ #t)))))
+ (inputs
+ `(("python-pygame" ,python-pygame)
+ ("python-tmx" ,python-tmx)))
+ (home-page "https://rogueboxadventures.tuxfamily.org")
+ (synopsis "A classical roguelike/sandbox game")
+ (description
+ "RogueBox Adventures is a graphical roguelike with strong influences
+from sandbox games like Minecraft or Terraria. The main idea of RogueBox
+Adventures is to offer the player a kind of roguelike toy-world. This world
+can be explored and changed freely.")
+ ;; The GPL3+ is for code, the rest are for art.
+ (license (list license:cc0
+ license:cc-by3.0
+ license:gpl3+
+ license:silofl1.1)))))
+
(define-public xshogi
(package
(name "xshogi")
(patches (search-patches "pingus-sdl-libs-config.patch"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
- ("scons" ,scons)))
+ ("scons-python2" ,scons-python2)))
(inputs `(("sdl" ,sdl)
("sdl-image" ,sdl-image)
("sdl-mixer" ,sdl-mixer)
("libpng" ,libpng)
("boost" ,boost)))
(arguments
- '(#:tests? #f ; no check target
+ '(#:make-flags (list (string-append "PREFIX=" %output))
+ #:tests? #f ; no check target
#:phases
(modify-phases %standard-phases
- (delete 'configure) ; no configure script
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (zero? (system* "make" "install"
- (string-append "PREFIX="
- (assoc-ref outputs "out")))))))))
+ (delete 'configure)))) ; no configure script
(home-page "http://pingus.seul.org/welcome.html")
(synopsis "Lemmings clone")
(description
(uri (string-append "http://www.techrescue.org/xboing/xboing"
version ".tar.gz"))
(sha256
- (base32 "16m2si8wmshxpifk861vhpqviqxgcg8bxj6wfw8hpnm4r2w9q0b7"))))
+ (base32 "16m2si8wmshxpifk861vhpqviqxgcg8bxj6wfw8hpnm4r2w9q0b7"))
+ (patches (search-patches "xboing-CVE-2004-0149.patch"))))
(arguments
`(#:tests? #f
#:phases
(define-public retroarch
(package
(name "retroarch")
- (version "1.6.3")
+ (version "1.7.0")
(source
(origin
(method url-fetch)
- (uri (string-append "https://github.com/libretro/RetroArch/archive/"
+ (uri (string-append "https://github.com/libretro/RetroArch/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0a0w2sjizjs20376h7j1gfi0qccr8mhkl1cm6hi0c17hy1493l6d"))))
+ (base32 "1waskzf99947yqs40n38s86m41jf5v7prvzf8pzfjxzpgyis8bxk"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no tests
("python" ,python)
("sdl" ,sdl2)
("udev" ,eudev)
+ ("wayland", wayland)
("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)
(define-public supertuxkart
(package
(name "supertuxkart")
- (version "0.9.2")
+ (version "0.9.3")
(source
(origin
(method url-fetch)
version "/supertuxkart-" version "-src.tar.xz"))
(sha256
(base32
- "10l2ljmd7mv8f9ylarqmxxryicdnph2qkm3g5maxnsm2k2q0n20b"))
- (patches (search-patches "supertuxkart-angelscript-ftbfs.patch"))
+ "1c4w47ibj87lgwiqygq8qi7jiz6gklj4dwf5bs5zk15s0rqlw0fq"))
(modules '((guix build utils)))
(snippet
;; Delete bundled library sources
(list "-DUSE_WIIUSE=0"
;; Do not use the bundled zlib
"-DNO_IRR_COMPILE_WITH_ZLIB_=TRUE"
+ ;; FIXME: needs libopenglrecorder
+ "-DBUILD_RECORDER=0"
;; Irrlicht returns an integer instead of a boolean
"-DCMAKE_C_FLAGS=-fpermissive")
#:phases
(uri (git-reference
(url "https://github.com/Aloshi/EmulationStation.git")
(commit commit))) ; no version tag
+ (file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"0cm0sq2wri2l9cvab1l0g02za59q7klj0h3p028vr96n6njj4w9v"))))
;; The build process fails if the configure script is passed the
;; option "--enable-fast-install".
(replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
+ (lambda* (#:key inputs outputs (configure-flags '())
+ #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(lzo (assoc-ref inputs "lzo")))
(zero?
- (system* "./configure"
- (string-append "--prefix=" out)
- ;; Provide the "lzo" path.
- (string-append "--with-liblzo2="
- lzo "/lib/liblzo2.a")
- ;; Put the binary in 'bin' instead of 'games'.
- "--binary-dir=bin"))))))))
+ (apply system* "./configure"
+ (string-append "--prefix=" out)
+ ;; Provide the "lzo" path.
+ (string-append "--with-liblzo2="
+ lzo "/lib/liblzo2.a")
+ ;; Put the binary in 'bin' instead of 'games'.
+ "--binary-dir=bin"
+ configure-flags))))))))
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs
`(("allegro" ,allegro-4)
;; different terms.
(license (list license:bsd-3 license:gpl2 license:lgpl2.1+ license:zlib))))
-;; TODO Add 'openttd-opengfx' and 'openttd-openmsx' packages and make
-;; 'openttd' a wrapper around them. The engine is playable by itself,
-;; but it asks a user to download graphics if it's not found.
-
(define openttd-opengfx
(package
(name "openttd-opengfx")
'(#:make-flags (list "CC=gcc"
(string-append "INSTALL_DIR="
(assoc-ref %outputs "out")
- "/share/openttd/baseset"))
+ "/share/games/openttd/baseset/opengfx"))
#:phases
(modify-phases %standard-phases
(replace 'configure
;; different software versions than upstream does, some of the md5sums
;; are different. However, the package is still reproducible, it's safe
;; to disable this test.
- #:tests? #f))
+ #:tests? #f
+ #:parallel-build? #f))
(native-inputs `(("dos2unix" ,dos2unix)
("gimp" ,gimp)
("grfcodec" ,grfcodec)
@end enumerate")
(license license:gpl2)))
+(define openttd-opensfx
+ (package
+ (name "openttd-opensfx")
+ (version "0.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://binaries.openttd.org/extra/opensfx/"
+ version "/opensfx-" version "-source.tar.gz"))
+ (sha256
+ (base32
+ "03jxgp02ks31hmsdh4xh0xcpkb70ds8jakc9pfc1y9vdrdavh4p5"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("catcodec" ,catcodec)
+ ("python" ,python2-minimal)))
+ (arguments
+ `(#:make-flags
+ (list (string-append "INSTALL_DIR=" %output
+ "/share/games/openttd/baseset/opensfx"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'make-reproducible
+ (lambda _
+ ;; Remove the time dependency of the installed tarball by setting
+ ;; the modification times if its members to 0.
+ (substitute* "scripts/Makefile.def"
+ (("-cf") " --mtime=@0 -cf"))
+ #t))
+ (delete 'configure))))
+ (home-page "http://dev.openttdcoop.org/projects/opensfx")
+ (synopsis "Base sounds for OpenTTD")
+ (description "OpenSFX is a set of free base sounds for OpenTTD which make
+it possible to play OpenTTD without requiring the proprietary sound files from
+the original Transport Tycoon Deluxe.")
+ (license license:cc-sampling-plus-1.0)))
+
+(define openttd-openmsx
+ (package
+ (name "openttd-openmsx")
+ (version "0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://binaries.openttd.org/extra/openmsx/"
+ version "/openmsx-" version "-source.tar.gz"))
+ (sha256
+ (base32
+ "0nskq97a6fsv1v6d62zf3yb8whzhqnlh3lap3va3nzvj7csjgf7c"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("python" ,python2-minimal)))
+ (arguments
+ `(#:make-flags
+ (list (string-append "INSTALL_DIR=" %output
+ "/share/games/openttd/baseset"))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'install 'post-install
+ ;; Rename openmsx-version to openmsx
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((install-directory (string-append (assoc-ref outputs "out")
+ "/share/games/openttd/baseset")))
+ (rename-file (string-append install-directory "/openmsx-" ,version)
+ (string-append install-directory "/openmsx"))
+ #t))))))
+ (home-page "http://dev.openttdcoop.org/projects/openmsx")
+ (synopsis "Music set for OpenTTD")
+ (description "OpenMSX is a music set for OpenTTD which makes it possible
+to play OpenTTD without requiring the proprietary music from the original
+Transport Tycoon Deluxe.")
+ (license license:gpl2)))
+
(define-public openttd
(package
(inherit openttd-engine)
(name "openttd")
(arguments
- (substitute-keyword-arguments (package-arguments openttd-engine)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'install 'install-data
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let*
- ((opengfx (assoc-ref inputs "opengfx"))
- (out (assoc-ref outputs "out"))
- (gfx-dir
- (string-append out
- "/share/games/openttd/baseset/opengfx")))
- (mkdir-p gfx-dir)
- (copy-recursively opengfx gfx-dir))
- #t))))))
+ `(#:configure-flags
+ (list (string-append "--with-midi=" (assoc-ref %build-inputs "timidity++")
+ "/bin/timidity"))
+ ,@(substitute-keyword-arguments (package-arguments openttd-engine)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'install 'install-data
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (for-each
+ (lambda (input)
+ (copy-recursively (assoc-ref inputs input)
+ (assoc-ref outputs "out")))
+ (list "opengfx" "openmsx" "opensfx"))
+ #t)))))))
+ (inputs
+ `(("timidity++" ,timidity++)
+ ,@(package-inputs openttd-engine)))
(native-inputs
`(("opengfx" ,openttd-opengfx)
+ ("openmsx" ,openttd-openmsx)
+ ("opensfx" ,openttd-opensfx)
,@(package-native-inputs openttd-engine)))))
+(define-public openrct2
+ (package
+ (name "openrct2")
+ (version "0.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/OpenRCT2/OpenRCT2/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1bahkzlf9k92cc4zs4nk4wy59323kiw8d3wm0vjps3kp7iznqyjx"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ;; no tests available
+ #:configure-flags
+ (list (string-append "-DCMAKE_INSTALL_LIBDIR="
+ (assoc-ref %outputs "out") "/lib"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-usr-share-paths
+ (lambda* (#:key make-flags outputs #:allow-other-keys)
+ ;; Fix some references to /usr/share.
+ (substitute* "src/openrct2/platform/linux.c"
+ (("/usr/share")
+ (string-append (assoc-ref %outputs "out") "/share")))))
+ (add-after 'build 'fix-cmake-install-file
+ (lambda _
+ ;; The build system tries to download a file and compare hashes.
+ ;; Since we have no network, remove this so the install doesn't fail.
+ (substitute* "cmake_install.cmake"
+ (("EXPECTED_HASH SHA1=b587d83de508d0b104d14c599b76f8565900fce0")
+ "")))))))
+ (inputs `(("curl", curl)
+ ("fontconfig", fontconfig)
+ ("freetype", freetype)
+ ("jansson", jansson)
+ ("libpng", libpng)
+ ("libzip", libzip)
+ ("mesa", mesa)
+ ("openssl", openssl)
+ ("sdl2", sdl2)
+ ("speexdsp", speexdsp)
+ ("zlib", zlib)))
+ (native-inputs
+ `(("pkg-config", pkg-config)))
+ (home-page "https://github.com/OpenRCT2/OpenRCT2")
+ (synopsis "Free software re-implementation of RollerCoaster Tycoon 2")
+ (description "OpenRCT2 is a free software re-implementation of
+RollerCoaster Tycoon 2 (RCT2). The gameplay revolves around building and
+maintaining an amusement park containing attractions, shops and facilities.
+
+Note that this package does @emph{not} provide the game assets (sounds,
+images, etc.)")
+ ;; See <https://github.com/OpenRCT2/OpenRCT2/wiki/Required-RCT2-files>
+ ;; regarding assets.
+ (license license:gpl3+)))
+
(define-public pinball
(package
(name "pinball")
(license license:gpl2+)))
(define-public red-eclipse
- (let ((data-sources
- '(("acerspyro" "0zmg78scrfdv33h7vszqvzylcqjwg7d5b0j2riav3rjfh326j8xx")
- ("actors" "0l00rsvppqzdpsikm5qpj38jiygirszxlzay2nxp4g4n2qjq0m4a")
- ("appleflap" "0jhfr7f13hk3nswwxqc4jajriipr6zz6j63v955nv4sgxs7lzbjd")
- ("blendbrush" "1nk0zaisbqf2khrivq8ls6z2lnh6d51m133m2ppxk7k4c9gq1imq")
- ("caustics" "1hq08k476wayi0kmk4ps8h6jr75yinq04f1r2p8r79xsdpxq9my5")
- ("crosshairs" "1gmrmjm7i7n9py0qrzamk7ygi63yx1mr2pp6iwz2vwngprl03n8m")
- ("dziq" "0gr36ydrv8syjxv7w9dw3ix8waaq201fzxr0klkqp260p8xp215s")
- ("elyvisions" "05syxlpsap6nfwxnnd0ls7qj1p4vhw2jxi41pi5inwpfifapfphz")
- ("fonts" "184syks602xc657q08973w5ji50x5zssvd4vp2q2ig8m68iyr51c")
+ (let ((release "1.5.8")
+ (revision 2)
+ (data-sources
+ '(("acerspyro" "0zmg78scrfdv33h7vszqvzylcqjwg7d5b0j2riav3rjfh326j8xx")
+ ("actors" "0l00rsvppqzdpsikm5qpj38jiygirszxlzay2nxp4g4n2qjq0m4a")
+ ("appleflap" "0jhfr7f13hk3nswwxqc4jajriipr6zz6j63v955nv4sgxs7lzbjd")
+ ("blendbrush" "1nk0zaisbqf2khrivq8ls6z2lnh6d51m133m2ppxk7k4c9gq1imq")
+ ("caustics" "1hq08k476wayi0kmk4ps8h6jr75yinq04f1r2p8r79xsdpxq9my5")
+ ("crosshairs" "1gmrmjm7i7n9py0qrzamk7ygi63yx1mr2pp6iwz2vwngprl03n8m")
+ ("dziq" "0gr36ydrv8syjxv7w9dw3ix8waaq201fzxr0klkqp260p8xp215s")
+ ("elyvisions" "05syxlpsap6nfwxnnd0ls7qj1p4vhw2jxi41pi5inwpfifapfphz")
+ ("fonts" "184syks602xc657q08973w5ji50x5zssvd4vp2q2ig8m68iyr51c")
("freezurbern" "020gpgcpy4rqjd9d18npfm96j8f02jcjnccbxcgzk1yb58y687ya")
- ("john" "0hj5kwlb2gb0gsnl9bk7dkqlk8r7vxcw8gxpgrb3kfn8d9cwcb7k")
- ("jojo" "0fij06040r7s5p7jksxm7wxi9jqwkhhm8iywys0dagk8j2wcbvsz")
- ("jwin" "0ysfynjvypc8dszf7rsvk02jgw8fmsli49vy2xpm83zpkrqpddgf")
+ ("john" "0hj5kwlb2gb0gsnl9bk7dkqlk8r7vxcw8gxpgrb3kfn8d9cwcb7k")
+ ("jojo" "0fij06040r7s5p7jksxm7wxi9jqwkhhm8iywys0dagk8j2wcbvsz")
+ ("jwin" "0ysfynjvypc8dszf7rsvk02jgw8fmsli49vy2xpm83zpkrqpddgf")
("luckystrike" "1bm0xdqjv35ry5xwbzw3a3v1xf2gj1jwfg29nyl6w3ch0h6crr11")
- ("maps" "0c9d1zxmpnngwhchzw6xb6cf84cx8xyycmdqcvyhamrd95d96qma")
- ("mayhem" "133pdql7ari159skd9qdmw0p1m73x32d1v6jswkz0xwk8vgxmkil")
- ("mikeplus64" "1d5npn9wlw0mviz9vhzzcsj98jvfh1wbvlh1nyqfj4ws5nfxhs7x")
- ("misc" "19x2ps6yxnfrz0xdhqdwncaq25ds7i4w2l8sdfi95yh2r7c5k1qn")
- ("nieb" "15029nipl92cb0jbh46z00k51hf3jk4v05pwx266b6b11bapdz0c")
- ("nobiax" "0k9apim5z4ihd5ajmnbq4gyh24w872dv0mr5v8wqn31a8gxzahhp")
- ("particles" "06827r9pnhzjil381xiwcbc93v9nxin7qlr59yrvk9gdzxmklk9m")
- ("philipk" "1l6fhl6qz471vjn05hvk29bm8dhwnzqbmi2hdylpa9k998nzkfc1")
+ ("maps" "0c9d1zxmpnngwhchzw6xb6cf84cx8xyycmdqcvyhamrd95d96qma")
+ ("mayhem" "133pdql7ari159skd9qdmw0p1m73x32d1v6jswkz0xwk8vgxmkil")
+ ("mikeplus64" "1d5npn9wlw0mviz9vhzzcsj98jvfh1wbvlh1nyqfj4ws5nfxhs7x")
+ ("misc" "19x2ps6yxnfrz0xdhqdwncaq25ds7i4w2l8sdfi95yh2r7c5k1qn")
+ ("nieb" "15029nipl92cb0jbh46z00k51hf3jk4v05pwx266b6b11bapdz0c")
+ ("nobiax" "0k9apim5z4ihd5ajmnbq4gyh24w872dv0mr5v8wqn31a8gxzahhp")
+ ("particles" "06827r9pnhzjil381xiwcbc93v9nxin7qlr59yrvk9gdzxmklk9m")
+ ("philipk" "1l6fhl6qz471vjn05hvk29bm8dhwnzqbmi2hdylpa9k998nzkfc1")
("projectiles" "03ay8ik52n3vx723swqlnl5gpkzf1v1gadwj3zcnh43ch7nd2bqh")
- ("props" "1yxz7gfmb79sqqrkyfdzp4ar9rf5f1kpfij4nrkk1l8vbw9liksc")
- ("skyboxes" "1mm98mhb6yhb006p1hlic91jcwjxhq79mblxciwbqqa9c5g4yki6")
- ("snipergoth" "1vlpmwlg71g6l5b706gp82bc07i5bbw2zphzynm2fx49za0zdi44")
- ("sounds" "156g5wh8cvdh6zr33haqm566sd28ylnzdf2h4pqzpxbb2i19vbfg")
- ("textures" "0wkhl5cgymr9kslzhksi83hs15rb0q01xvax5khi6b4dcl3mrmsh")
- ("torley" "1xlag6ndjyqafl984n6d9zi96dv9aif7vrc2nvikc3iwgjwlbxav")
- ("trak" "12x9ix8zkqn9svy56qmdgj4x2814qh25f4srplgq691lqn9qjhvd")
- ("ulukai" "0gz1hd8hca2biskc85hw4jjacpsmqg9x4w6cwrka8x987xmc92k5")
- ("unnamed" "09v8fjy6jqypm1i121kilg3z6zpw7dm0i4gxhd9b7ihprvzvy8r7")
- ("vanities" "0m3vfq9l71pbb80qz4s3k8r5azmm158chqbw8snch09ymxm6h462")
- ("vegetation" "07yzm9lbzr624j4i652ny5p762p83gadg40c1k8gwff4y7yk55gn")
- ("weapons" "05fsp17gdrhjqdwia7rwdw9gcijaqwcnny8lf6krms43xmn8cj0x")
- ("wicked" "0jjgwzdibr5my369gwvmvbklpjlwq939zgf643rv0168xc087xb2"))))
+ ("props" "1yxz7gfmb79sqqrkyfdzp4ar9rf5f1kpfij4nrkk1l8vbw9liksc")
+ ("skyboxes" "1mm98mhb6yhb006p1hlic91jcwjxhq79mblxciwbqqa9c5g4yki6")
+ ("snipergoth" "1vlpmwlg71g6l5b706gp82bc07i5bbw2zphzynm2fx49za0zdi44")
+ ("sounds" "156g5wh8cvdh6zr33haqm566sd28ylnzdf2h4pqzpxbb2i19vbfg")
+ ("textures" "0wkhl5cgymr9kslzhksi83hs15rb0q01xvax5khi6b4dcl3mrmsh")
+ ("torley" "1xlag6ndjyqafl984n6d9zi96dv9aif7vrc2nvikc3iwgjwlbxav")
+ ("trak" "12x9ix8zkqn9svy56qmdgj4x2814qh25f4srplgq691lqn9qjhvd")
+ ("ulukai" "0gz1hd8hca2biskc85hw4jjacpsmqg9x4w6cwrka8x987xmc92k5")
+ ("unnamed" "09v8fjy6jqypm1i121kilg3z6zpw7dm0i4gxhd9b7ihprvzvy8r7")
+ ("vanities" "0m3vfq9l71pbb80qz4s3k8r5azmm158chqbw8snch09ymxm6h462")
+ ("vegetation" "07yzm9lbzr624j4i652ny5p762p83gadg40c1k8gwff4y7yk55gn")
+ ("weapons" "05fsp17gdrhjqdwia7rwdw9gcijaqwcnny8lf6krms43xmn8cj0x")
+ ("wicked" "0jjgwzdibr5my369gwvmvbklpjlwq939zgf643rv0168xc087xb2"))))
(package
(name "red-eclipse")
- (version "1.5.8")
+ (version (if (zero? revision)
+ release
+ (string-append release "-"
+ (number->string revision))))
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/red-eclipse/base"
- "/archive/v" version ".tar.gz"))
+ "/archive/v" release ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1ah92axwcai0fhgm7pvfb2dxvfdiwwyh8iqyiffndh6782hxz3bc"))))
+ "0r66rsqxvd7hxrhb0fahqqmf3r0cw2drhv5vndbswcq90l1bxfmf"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target
#:make-flags (list "CC=gcc" "-Csrc"
(string-append "INSTDIR="
- (assoc-ref %outputs "out") "/bin"))
+ (assoc-ref %outputs "out") "/bin")
+ (string-append "prefix="
+ (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'unpack-data
"-Cdata"
"--transform"
(string-append "s/"
- name "-" ,version "/"
+ name "-" ,release "/"
name "/")))
(list ,@(map car data-sources)))
#t))
+ (add-after 'unpack-data 'add-store-data-package-path-as-default
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "src/engine/server.cpp"
+ (("(else[[:space:]]*)((addpackagedir\\()\"data\"(\\);))" _ else_part addpackagedir_original addpackagedir_open addpackagedir_close)
+ (string-append else_part
+ "{ "
+ addpackagedir_open
+ "\""
+ (assoc-ref outputs "out")
+ "/share/redeclipse/data\""
+ addpackagedir_close
+ " "
+ addpackagedir_original
+ " }")))
+ #t))
(delete 'configure) ; no configure script
(add-after 'set-paths 'set-sdl-paths
(lambda* (#:key inputs #:allow-other-keys)
(copy-file "doc/examples/servinit.cfg"
(string-append out "/config/servinit.cfg"))
(copy-recursively "data"
- (string-append out "/data")))
+ (string-append out "/share/redeclipse/data"))
+ (mkdir-p (string-append out "/lib/redeclipse"))
+ (symlink (string-append out "/share/redeclipse/data")
+ (string-append out "/lib/redeclipse/data")))
#t))
(add-after 'copy-data 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(method url-fetch)
(uri (string-append
"https://github.com/red-eclipse/"
- name "/archive/v" version ".tar.gz"))
+ name "/archive/v" release ".tar.gz"))
(sha256 (base32 hash))
(file-name (string-append name "-" version
".tar.gz"))))))
(define-public higan
(package
(name "higan")
- (version "103")
+ (version "106")
(source
(origin
(method url-fetch)
version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "013r0lcm0qw8zwavz977mqk2clg80gngkjijr3n0q8snpc1727r7"))
+ (base32 "0y42pra0dxzlbkyzcp3r8a39pji2bj3p9fl40425f60af2igr4rw"))
(patches (search-patches "higan-remove-march-native-flag.patch"))))
(build-system gnu-build-system)
(native-inputs
;; - higan/emulator/emulator.hpp
(license license:gpl3)))
+(define-public mgba
+ (package
+ (name "mgba")
+ (version "0.6.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/mgba-emu/mgba/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0xmq1q1j71hnpd49wm91cqq8w5zdhb921cm17jchp4qjmaqgwy3w"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Make sure we don't use the bundled software.
+ '(for-each
+ (lambda (subdir)
+ (let ((lib-subdir (string-append "src/third-party/" subdir)))
+ (delete-file-recursively lib-subdir)))
+ '("libpng" "lzma" "sqlite3" "zlib")))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ;no "test" target
+ #:configure-flags
+ (list "-DUSE_LZMA=OFF" ;do not use bundled LZMA
+ "-DUSE_LIBZIP=OFF" ;use "zlib" instead
+ ;; Validate RUNPATH phase fails ("error: depends on
+ ;; 'libmgba.so.0.6', which cannot be found in RUNPATH") without
+ ;; the following S-exp.
+ (string-append "-DCMAKE_INSTALL_LIBDIR="
+ (assoc-ref %outputs "out")
+ "/lib"))))
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (inputs `(("ffmpeg" ,ffmpeg)
+ ("imagemagick" ,imagemagick)
+ ("libedit" ,libedit)
+ ("libepoxy" ,libepoxy)
+ ("libpng" ,libpng)
+ ("mesa" ,mesa)
+ ("minizip" ,minizip)
+ ("ncurses" ,ncurses)
+ ("qtbase" ,qtbase)
+ ("qtmultimedia" ,qtmultimedia)
+ ("qttools" ,qttools)
+ ("sdl2" ,sdl2)
+ ("sqlite" ,sqlite)
+ ("zlib" ,zlib)))
+ (home-page "https://mgba.io")
+ (synopsis "Game Boy Advance emulator")
+ (description
+ "mGBA is an emulator for running Game Boy Advance games. It aims to be
+faster and more accurate than many existing Game Boy Advance emulators, as
+well as adding features that other emulators lack. It also supports Game Boy
+and Game Boy Color games.")
+ ;; Code is mainly MPL 2.0. "blip_buf.c" is LGPL 2.1+ and "inih.c" is
+ ;; BSD-3.
+ (license (list license:mpl2.0 license:lgpl2.1+ license:bsd-3))))
+
(define-public grue-hunter
(package
(name "grue-hunter")
(define-public hyperrogue
(package
(name "hyperrogue")
- (version "10.0e")
+ (version "10.0g")
;; When updating this package, be sure to update the "hyperrogue-data"
;; origin in native-inputs.
(source (origin
"-src.tgz"))
(sha256
(base32
- "1p6fam73khhys54098qsgmp52d0rnqc3k5hknjig0znvfb2kwi38"))))
+ "0f68pcnsgl406dhm91ckn3f364bar9m9i5njp9vrmvhvv9p2icy0"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target
"-win.zip"))
(sha256
(base32
- "1z9w3nd57ybnf4w7ckhhp5vfws2hwd8x26fx6h496f6160fgcj6m"))))
+ "0bnp077qvlmxjlz1jjd6kpghlv9flxc19ac1xq3m3wyq1w9p3pab"))))
("unzip" ,unzip)))
(inputs
`(("font-dejavu" ,font-dejavu)
(define-public no-more-secrets
(package
(name "no-more-secrets")
- (version "0.3.2")
+ (version "0.3.3")
(source
(origin
(method url-fetch)
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "00mzdif859vm75n1igrffh8c07p1nr4rlm3yb7lrkwwxhrw8xzla"))))
+ "1kpx1rirc3i7fb4lymp0hx5rqr0s2ay4za261rw3bcy6d23l1kyg"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
(define-public cdogs-sdl
(package
(name "cdogs-sdl")
- (version "0.6.5")
+ (version "0.6.6")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/cxong/cdogs-sdl/"
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "17llrpdrrwi8h37vjpkxk2asj7h8qdfp2zy28wiwb7cjzribmz3k"))))
+ "08gbx6vqqir48xs6qdfa4kv70gj4j96wzs90pg7qldfasxz34ljm"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
(define-public crawl
(package
(name "crawl")
- (version "0.20.0")
+ (version "0.20.1")
(source
(origin
(method url-fetch)
version "-nodeps.tar.xz")))
(sha256
(base32
- "0127dgldij2h4m7cf32yy9ndv4vcz03g4km71lmxrsi5mw7ljgpd"))
+ "0cagx7687r5ln7pmzl60akjhjpyqd62z9zhfr2mqfk53wl9jbsbj"))
(patches (search-patches "crawl-upgrade-saves.patch"))))
(build-system gnu-build-system)
(inputs
("sdl2-mixer" ,sdl2-mixer)))
(native-inputs
`(,@(package-native-inputs crawl)
- ;; TODO: Add advpng or pngcrush for additional PNG optimization.
+ ("pngcrush" ,pngcrush)
("which" ,which)))
(synopsis "Graphical roguelike dungeon crawler game")))
(define-public 0ad-data
(package
(name "0ad-data")
- (version "0.0.21-alpha")
+ (version "0.0.22-alpha")
(source
(origin
(method url-fetch)
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
- "15xadyrpvq27lm9p1ny7bcmmv56m16h3xadbkdx69gfkzxc3razk"))
+ "0vknk9ay9h2p34r7mym2g066f3s3c5d5vmap0ckcs5b86h5cscjc"))
(modules '((guix build utils)))
(snippet
#~(begin
(define-public 0ad
(package
(name "0ad")
- (version "0.0.21-alpha")
+ (version "0.0.22-alpha")
(source
(origin
(method url-fetch)
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
- "1kw3hqnr737ipx4f03khz3hvsh3ha7r8iy9njppk2faa53j27gln"))
+ "1cgmr4g5g9wv36v7ylbrvqhsjwgcsdgbqwc8zlqmnayk9zgkdpgx"))
;; A snippet here would cause a build failure because of timestamps
;; reset. See https://bugs.gnu.org/26734.
))
;; There have been no official releases.
(define-public open-adventure
- (let* ((commit "2483a23690d205f01ecb66165cf4522b541cd991")
- (revision "1"))
+ (let* ((commit "d43854f0f6bb8e9eea7fbce80348150e7e7fc34d")
+ (revision "2"))
(package
(name "open-adventure")
(version (string-append "2.5-" revision "." (string-take commit 7)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1gkvkwbq5cl3llfc7nl41van8awn4myx782pg33bxpbx5l9scwb4"))))
+ "08bwrvf4axb1rsfd6ia1fddsky9pc1p350vjskhaakg2czc6dsk0"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list "CC=gcc")
#:parallel-build? #f ; not supported
#:phases
(modify-phases %standard-phases
- (delete 'configure)
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Linenoise is meant to be included, so we have to
+ ;; copy it into the working directory.
+ (let* ((linenoise (assoc-ref inputs "linenoise"))
+ (noisepath (string-append linenoise "/include/linenoise"))
+ (out (assoc-ref outputs "out")))
+ (copy-recursively noisepath "linenoise"))
+ #t))
(add-before 'build 'use-echo
(lambda _
(substitute* "tests/Makefile"
(lambda _
;; This target is missing a dependency
(substitute* "Makefile"
- ((".asc.6:" line)
- (string-append line " advent.txt")))
- (zero? (system* "make" ".asc.6"))))
+ ((".adoc.6:" line)
+ (string-append line " advent.adoc")))
+ (zero? (system* "make" ".adoc.6"))))
;; There is no install target
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(install-file "advent.6" man))
#t)))))
(native-inputs
- `(("asciidoc" ,asciidoc)))
+ `(("asciidoc" ,asciidoc)
+ ("linenoise" ,linenoise)
+ ("python" ,python)
+ ("python-pyyaml" ,python-pyyaml)))
(home-page "https://gitlab.com/esr/open-adventure")
(synopsis "Colossal Cave Adventure")
(description "The original Colossal Cave Adventure from 1976 was the
intuitive mouse control, streamlined mechanics and deep, challenging combat,
Tales of Maj’Eyal offers engaging roguelike gameplay for the 21st century.")
(license license:gpl3+)))
+
+(define-public quakespasm
+ (package
+ (name "quakespasm")
+ (version "0.93.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/quakespasm/Source/quakespasm-"
+ version ".tgz"))
+ (sha256
+ (base32
+ "0b2nz7w4za32pc34r62ql270z692qcjs2pm0i3svkxkvfammhdfq"))))
+ (arguments
+ `(#:tests? #f
+ #:make-flags '("CC=gcc"
+ "MP3LIB=mpg123"
+ "USE_CODEC_FLAC=1"
+ "USE_CODEC_MIKMOD=1"
+ "USE_SDL2=1"
+ "-CQuake")
+ #:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'fix-makefile-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (mkdir-p (string-append out "/bin"))
+ (substitute* "Quake/Makefile"
+ (("/usr/local/games")
+ (string-append out "/bin")))
+ #t))))))
+ (build-system gnu-build-system)
+ (inputs `(("libmikmod" ,libmikmod)
+ ("libvorbis" ,libvorbis)
+ ("flac" ,flac)
+ ("mesa" ,mesa)
+ ("mpg123" ,mpg123)
+ ("sdl2" ,sdl2)))
+ (synopsis "First person shooter engine for Quake 1")
+ (description "Quakespasm is a modern engine for id software's Quake 1.
+It includes support for 64 bit CPUs, custom music playback, a new sound driver,
+some graphical niceities, and numerous bug-fixes and other improvements.")
+ (home-page "http://quakespasm.sourceforge.net/")
+ (license license:gpl2+)))
+
+(define-public yamagi-quake2
+ (package
+ (name "yamagi-quake2")
+ (version "7.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://deponie.yamagi.org/quake2/quake2-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0psinbg25mysd58k99s1n34w31w5hj1vppb39gdjb0zqi6sl6cps"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
+ #:make-flags
+ (list "CC=gcc"
+ ;; link openAL instead of using dlopen at runtime
+ "DLOPEN_OPENAL=\"no\""
+ ;; an optional directory where it will look for quake2 data files
+ ;; in addition to the current working directory
+ "WITH_SYSTEMWIDE=yes"
+ "WITH_SYSTEMDIR=\"/opt/quake2\"")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (mkdir-p (string-append out "/lib"))
+ (mkdir-p (string-append out "/bin"))
+ ;; The yamagi-quake2 binary must be in the same directory
+ ;; as it's engine libraries, but symlinking it to /bin is okay
+ ;; https://github.com/yquake2/yquake2/blob/master/stuff/packaging.md
+ (copy-recursively "release"
+ (string-append out "/lib/yamagi-quake2"))
+ (symlink (string-append out "/lib/yamagi-quake2/quake2")
+ (string-append out "/bin/yamagi-quake2"))
+ (symlink (string-append out "/lib/yamagi-quake2/q2ded")
+ (string-append out "/bin/yamagi-q2ded"))))))))
+ (inputs `(("sdl2" ,sdl2)
+ ("mesa" ,mesa)
+ ("libvorbis" ,libvorbis)
+ ("zlib" ,zlib)
+ ("openal" ,openal)))
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (synopsis "First person shooter engine based on quake2")
+ (description "Yamagi Quake II is an enhanced client for id Software's Quake II.
+The main focus is an unchanged single player experience like back in 1997,
+thus the gameplay and the graphics are unaltered. However the user may use one
+of the unofficial retexturing packs. In comparison with the official client,
+over 1000 bugs were fixed and an extensive code audit done,
+making Yamagi Quake II one of the most solid Quake II implementations available.")
+ (home-page "https://www.yamagi.org/quake2/")
+ (license (list license:gpl2+ ; game and server
+ (license:non-copyleft ; info-zip
+ "file://LICENSE"
+ "See Info-Zip section.")
+ license:public-domain)))) ; stb
+
+(define-public the-butterfly-effect
+ (package
+ (name "the-butterfly-effect")
+ (version "0.9.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/the-butterfly-effect/tbe/archive/"
+ "v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "18qkp7fgdvyl3haqqa693mgyic7afsznsxgz98z9wn4csaqxsnby"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ ;; There is no "install" phase. By default, tbe is installed
+ ;; in the build directory. Provide our own installation.
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (share (string-append out "/share")))
+ (install-file "usr/games/tbe" bin)
+ (mkdir-p share)
+ (copy-recursively "usr/share" share)
+ #t))))
+ ;; Test suite requires a running Xorg server. Even when
+ ;; provided, it fails with "D-Bus library appears to be
+ ;; incorrectly set up; failed to read machine uuid: Failed to
+ ;; open "/etc/machine-id": No such file or directory" along
+ ;; with multiple "QPainter:: ... Painter not active" warnings.
+ #:tests? #f))
+ (inputs
+ `(("qtbase" ,qtbase)
+ ("qtsvg" ,qtsvg)))
+ (native-inputs
+ `(("cmake" ,cmake)
+ ("gettext-minimal" ,gettext-minimal)
+ ("qttools" ,qttools)))
+ (synopsis "Realistic physics puzzle game")
+ (description "The Butterfly Effect (tbe) is a game that uses
+realistic physics simulations to combine lots of simple mechanical
+elements to achieve a simple goal in the most complex way possible.")
+ (home-page "http://the-butterfly-effect.org/")
+ ;; Main license is GPL2-only. However, artwork is distributed
+ ;; under various licenses, listed here.
+ (license (list license:gpl2 license:public-domain license:expat
+ license:cc-by-sa3.0 license:gpl3+ license:wtfpl2))))