;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
;;; Copyright © 2015, 2017, 2018 Christopher Lemmer Webber <cwebber@dustycloud.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2016, 2017 Rodger Fox <thylakoid@openmailbox.org>
;;; Copyright © 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>
-;;; Copyright © 2020 Trevor Hass <thass@okstate.edu>
+;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020, 2021 Trevor Hass <thass@okstate.edu>
;;; Copyright © 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
;;; Copyright © 2020 Lu hux <luhux@outlook.com>
;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
;;; Copyright © 2021 Olivier Rojon <o.rojon@posteo.net>
+;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
+;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;;
;;; This file is part of GNU Guix.
;;;
canyons and wait for the long I-shaped block to clear four rows at a time.")
(license license:gpl3+)))
+(define-public vitetris
+ (package
+ (name "vitetris")
+ (version "0.59.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vicgeralds/vitetris")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "1ah1c5g7abksif0n8v5rb7r4pn2az20c3mkp4ak13vgs23ddmds5"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ;no test
+ #:make-flags
+ (list ,(string-append "CC=" (cc-for-target))
+ (string-append "DESTDIR=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ ;; the non standard configure script does not accept
+ ;; standard parameters -> invoke configure by hand
+ (invoke "./configure" "prefix=")
+ ;; src/src-conf.mk must be writable for the build step
+ (make-file-writable "src/src-conf.mk"))))))
+ (home-page "http://victornils.net/tetris/")
+ (synopsis "Terminal-based Tetris clone")
+ (description "Vitetris is a classic multiplayer Tetris clone for the
+terminal.")
+ (license license:bsd-2)))
+
(define-public blobwars
(package
(name "blobwars")
phantasia (role-play as an rogue), trek (hunt the Klingons, and save the
Federation), and wump (hunt the big smelly Wumpus in a dark cave).
-Quizes: arithmetic, and quiz.")
+Quizzes: arithmetic and quiz.")
;; "Auxiliary and data files, distributed with the games in NetBSD, but
;; not bearing copyright notices, probably fall under the terms of the UCB
;; or NetBSD copyrights and licences. The file "fortune/Notes" contains a
(define-public bzflag
(package
(name "bzflag")
- (version "2.4.20")
+ (version "2.4.22")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.bzflag.org/bzflag/source/"
version "/bzflag-" version ".tar.bz2"))
(sha256
- (base32 "16brxqmfiyz4j4lb8ihzjcbwqmpsms6vm3ijbp34lnw0blbwdjb2"))))
+ (base32 "0kba0011nswc2csqlzkd7bas307zm5813zlnby5vsmxn08rnar4y"))))
(build-system gnu-build-system)
(arguments
`(#:phases
;; license. The whole package is released under GPLv3+.
(license license:gpl3+)))
+(define-public gnome-2048
+ (package
+ (name "gnome-2048")
+ (version "3.38.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/gnome-2048/"
+ (version-major+minor version) "/"
+ "gnome-2048-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0s5fg4z5in1h39fcr69j1qc5ynmg7a8mfprk3mc3c0csq3snfwz2"))))
+ (build-system meson-build-system)
+ (arguments
+ '(#:glib-or-gtk? #t
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'skip-gtk-update-icon-cache
+ ;; Don't create 'icon-theme.cache'.
+ (lambda _
+ (substitute* "meson_post_install.py"
+ (("gtk-update-icon-cache") "true"))
+ #t)))))
+ (inputs
+ `(("gtk+" ,gtk+)
+ ("clutter" ,clutter)
+ ("clutter-gtk" ,clutter-gtk)
+ ("libgee" ,libgee)
+ ("libgnome-games-support" ,libgnome-games-support)))
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("glib:bin" ,glib "bin") ; for desktop-file-validate and appstream-util
+ ("itstool" ,itstool)
+ ("libxml2" ,libxml2)
+ ("pkg-config" ,pkg-config)
+ ("vala" ,vala)))
+ (home-page "https://wiki.gnome.org/Apps/2048")
+ (synopsis "Move the tiles until you obtain the 2048 tile")
+ (description "GNOME 2048 provides a 2D grid for playing 2048, a
+single-player sliding tile puzzle game. The objective of the game is to merge
+together adjacent tiles of the same number until the sum of 2048 is achieved
+in one tile.")
+ (license license:gpl3+)))
+
(define-public gnome-chess
(package
(name "gnome-chess")
(name "solarus")
;; XXX: When updating this package, please also update hash in
;; `solarus-quest-editor' below.
- (version "1.6.4")
+ (version "1.6.5")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1n6l91yyqjx0pz4w1lp3yybpq0fs2yjswfcm8c1wjfkxwiznbdxi"))))
+ (base32 "0ny9dgqphjv2l39rff2621hnrzpf8qin8vmnv7jdz20azjk4m8id"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1qbc2j9kalk7xqk9j27s7wnm5zawiyjs47xqkqphw683idmzmjzn"))))
+ (base32 "1pvjgd4faxii5sskw1h55lw90hlbazhwni8nxyywzrmkjbq7irm0"))))
(arguments
- `(#:tests? #false ;no test
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-qt-build
- ;; XXX: Fix build with Qt 5.15. It has been applied upstream as
- ;; 81d5c7f1 and can be removed at next upgrade.
- (lambda _
- (substitute* "src/entities/jumper.cpp"
- (("#include <QPainter>" all)
- (string-append all "\n" "#include <QPainterPath>\n")))
- #t)))))
+ `(#:tests? #false)) ; no test suite
(inputs
`(("solarus" ,solarus)
,@(package-inputs solarus)))
(define-public minetest
(package
(name "minetest")
- (version "5.3.0")
+ (version "5.4.1")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "03ga3j3cg38w4lg4d4qxasmnjdl8n3lbizidrinanvyfdyvznyh6"))
+ "062ilb7s377q3hwfhl8q06vvcw2raydz5ljzlzwy2dmyzmdcndb8"))
(modules '((guix build utils)))
(snippet
'(begin
#t))))
(build-system cmake-build-system)
(arguments
- '(#:configure-flags
+ `(#:configure-flags
(list "-DRUN_IN_PLACE=0"
"-DENABLE_FREETYPE=1"
"-DENABLE_GETTEXT=1"
(string-append "-DCURL_INCLUDE_DIR="
(assoc-ref %build-inputs "curl")
"/include/curl"))
- #:tests? #f)) ;no check target
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-sources
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/filesys.cpp"
+ ;; Use store-path for "rm" instead of non-existing FHS path.
+ (("\"/bin/rm\"")
+ (string-append "\"" (assoc-ref inputs "coreutils") "/bin/rm\"")))
+ (substitute* "src/CMakeLists.txt"
+ ;; Let minetest binary remain in build directory.
+ (("set\\(EXECUTABLE_OUTPUT_PATH .*\\)") ""))
+ (substitute* "src/unittest/test_servermodmanager.cpp"
+ ;; do no override MINETEST_SUBGAME_PATH
+ (("(un)?setenv\\(\"MINETEST_SUBGAME_PATH\".*\\);")
+ "(void)0;"))
+ (setenv "MINETEST_SUBGAME_PATH"
+ (string-append (getcwd) "/games")) ; for check
+ #t))
+ (replace 'check
+ (lambda _
+ ;; Thanks to our substitutions, the tests should also run
+ ;; when invoked on the target outside of `guix build'.
+ (unless ,(%current-target-system)
+ (setenv "HOME" "/tmp")
+ (invoke "src/minetest" "--run-unittests"))
+ #t)))))
(native-search-paths
(list (search-path-specification
(variable "MINETEST_SUBGAME_PATH")
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
- `(("curl" ,curl)
+ `(("coreutils" ,coreutils)
+ ("curl" ,curl)
("freetype" ,freetype)
("gettext" ,gettext-minimal)
("gmp" ,gmp)
(file-name (git-file-name name version))
(sha256
(base32
- "1liciwlh013z5h08ib0psjbwn5wkvlr937ir7kslfk4vly984cjx"))))
+ "0i45lbnikvgj9kxdp0yphpjjwjcgp4ibn49xkj78j5ic1s9n8jd4"))))
(build-system trivial-build-system)
(native-inputs
`(("source" ,source)))
(define-public minetest-mineclone
(package
(name "minetest-mineclone")
- (version "0.66.2")
+ (version "0.71.0")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "0miszzlzplpvaj0j1yii9867ydr42wsaqa9g6grxdrci75p05g00"))))
+ "0qm809dqvxc7pa1cr9skmglq9vrbq5hhm4c4m5yi46ldh1v96dgf"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
("python-polib" ,python-polib)
("python-pytest" ,python-pytest)
("python-pytest-mock" ,python-pytest-mock)))
- (home-page "http://unknown-horizons.org/")
+ (home-page "https://unknown-horizons.org/")
(synopsis "Isometric realtime strategy, economy and city building simulation")
(description
"Unknown Horizons is a 2D realtime strategy simulation with an emphasis
(define-public wesnoth
(package
(name "wesnoth")
- (version "1.14.15")
+ (version "1.14.16")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
"wesnoth-" version ".tar.bz2"))
(sha256
(base32
- "05iapxj3nzaqh10y42yq1jf7spxgm4iwjw4qj1c4lnb25xp4mc2h"))))
+ "1d9hq3dcx0sgs2v4400rg2nw98v46m7bwiqqjv8z8n7vw8kx8lhg"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ;no check target
(define-public freeciv
(package
(name "freeciv")
- (version "2.6.3")
+ (version "2.6.4")
(source
(origin
(method url-fetch)
(version-major+minor version) "/" version
"/freeciv-" version ".tar.bz2")))
(sha256
- (base32 "1lgq7wcbhwpy2yqdw4biwfmp5q8fh7lhlwxcgm0fpaapfl12whvp"))))
+ (base32 "1kn122f57wn5a8ryxaz73dlbd5m93mqx3bqmmz2lkgdccrvrbns0"))))
(build-system gnu-build-system)
(inputs
`(("curl" ,curl)
(define-public chroma
(package
(name "chroma")
- (version "1.17")
+ (version "1.18")
(source (origin
(method url-fetch)
(uri (string-append "http://level7.org.uk/chroma/download/chroma-"
version ".tar.bz2"))
(sha256
(base32
- "047sf00x71xbmi8bqrhfbmr9bk89l2gbykkqsfpw4wz6yfjscs6y"))))
+ "12bjisf5nlqinw8n4r223vld52p0p2mw3fca92vi175c46bycbzn"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests included
(home-page "https://www.stepmania.com")
(license license:expat)))
+(define-public oshu
+ (package
+ (name "oshu")
+ (version "2.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fmang/oshu")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1g598incc6zlls876slgwqblwiwiszkmqa4xpzw0z7mbjmmzsizz"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'pre-check
+ ;; `make test' doesn't actually build the test executable
+ (lambda _ (invoke "make" "zerotokei"))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("cairo" ,cairo)
+ ("ffmpeg" ,ffmpeg)
+ ("pango" ,pango)
+ ("sdl2" ,sdl2)
+ ("sdl2-image" ,sdl2-image)))
+ (home-page "https://github.com/fmang/oshu/")
+ (synopsis "Rhythm game in which you click on circles")
+ (description "@i{oshu!} is a minimalist variant of the @i{osu!} rhythm game,
+which is played by pressing buttons and following along sliders as they appear
+on screen. Its aim is to be able to play any beatmap even on low-end hardware.
+
+This package provides the core application, but no beatmaps. You need to
+download and unpack them separately.")
+ (license license:gpl3+)))
+
(define-public btanks
(package
(name "btanks")
(define-public edgar
(package
(name "edgar")
- (version "1.33")
+ (version "1.34")
(source
(origin
(method url-fetch)
(string-append "https://github.com/riksweeney/edgar/releases/download/"
version "/edgar-" version "-1.tar.gz"))
(sha256
- (base32 "1mbx7dvizdca4g1blcv3bdh6yxd13k47rkya4rdzg0nvvz24m175"))))
+ (base32 "1121rq5wk3g8rs413av84s2kcy6qj6maspgy2vsxs36c2jd3yygl"))))
(build-system gnu-build-system)
(arguments '(#:tests? #f ; there are no tests
#:make-flags
"-Dhaskell_flags=-dynamic;-fPIC")
#:phases
(modify-phases %standard-phases
+ (add-before 'configure 'fix-sources
+ (lambda _
+ ;; Fix a missing 'include'.
+ (substitute* "QTfrontend/ui/page/pagegamestats.cpp"
+ (("#include <QSizePolicy>")
+ "#include <QSizePolicy>\n#include <QPainterPath>"))))
(replace 'check
(lambda _ (invoke "ctest")))
(add-after 'install 'install-icon
(define-public chessx
(package
(name "chessx")
- (version "1.5.4")
+ (version "1.5.6")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/chessx/chessx/"
version "/chessx-" version ".tgz"))
(sha256
- (base32 "1a3541vl5hp6jllgx998w9kjh9kp3wrl80yfwkxmq1bc5bzsrnz2"))))
+ (base32 "01fjchil2h6ry2ywr0dwjw2g7zd29580cr4c74d5z74h999lp6nh"))))
(build-system qt-build-system)
(native-inputs
`(("qttools" ,qttools)))
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "chessx.pro"
(("\\$\\$\\[QT_INSTALL_BINS\\]/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"))
+ (string-append (assoc-ref inputs "qttools") "/bin/lrelease")))
#t))
(add-after 'fix-paths 'make-qt-deterministic
(lambda _
(define-public stockfish
(package
(name "stockfish")
- (version "12")
+ (version "13")
(source
(origin
(method git-fetch)
(commit (string-append "sf_" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0vcymbwp5nf114pp3ax40s21ki5dckda15vmhr77d1mnq3fn0l32"))))
+ (base32 "15dfp9fnl3w7dgxhqmsm461amsysn646rj1arnzvwhy2i6ijhg2m"))))
(build-system gnu-build-system)
(inputs
`(("neural-network"
,(origin
(method url-fetch)
- (uri "https://tests.stockfishchess.org/api/nn/nn-82215d0fd0df.nnue")
+ (uri "https://tests.stockfishchess.org/api/nn/nn-62ef826d1a6d.nnue")
(sha256
- (base32 "1r4yqrh4di05syyhl84hqcz84djpbd605b27zhbxwg6zs07ms8c2"))))))
+ (base32 "0qsy9rr4zgxrpgwhwbi96z01a2560am2b00q2klbj4bd39nq5vv2"))))))
(arguments
`(#:tests? #f
#:make-flags (list "-C" "src"
(add-after 'unpack 'copy-net
(lambda* (#:key inputs #:allow-other-keys)
(copy-file (assoc-ref inputs "neural-network")
- "src/nn-82215d0fd0df.nnue")
+ "src/nn-62ef826d1a6d.nnue")
#t)))))
(synopsis "Strong chess engine")
(description
@end itemize")
(license license:gpl2+)))
+(define-public passage
+ (package
+ (name "passage")
+ (version "4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/hcsoftware/Passage/v"
+ version "/Passage_v" version "_UnixSource.tar.gz"))
+ (sha256
+ (base32 "02ky4a4xdjvr71r58339jjrjyz76b5skcnbq4f8707mrln9vhby3"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #false ; there are none
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "gamma256/gameSource")
+ (system "cat Makefile.GnuLinux Makefile.all > Makefile")))
+ (replace 'configure
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ (setenv "CPATH"
+ (string-append
+ (assoc-ref inputs "sdl") "/include/SDL:"
+ (or (getenv "CPATH") "")))
+ (let* ((out (assoc-ref outputs "out"))
+ (assets (string-append out "/share/passage")))
+ (substitute* "common.cpp"
+ (("readTGA\\( \"graphics\"")
+ (format #false "readTGA(\"~a/graphics\"" assets)))
+ (substitute* "musicPlayer.cpp"
+ (("readTGA\\( \"music\"")
+ (format #false "readTGA(\"~a/music\"" assets))))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (assets (string-append out "/share/passage/")))
+ (install-file "Passage" bin)
+ (install-file "../documentation/Readme.txt" assets)
+ (copy-recursively "graphics" (string-append assets "graphics"))
+ (copy-recursively "music" (string-append assets "music"))
+ (copy-recursively "settings" (string-append assets "settings"))))))))
+ (inputs
+ `(("sdl" ,(sdl-union (list sdl sdl-mixer)))))
+ (native-inputs
+ `(("imagemagick" ,imagemagick)))
+ (home-page "http://hcsoftware.sourceforge.net/passage/")
+ (synopsis "Memento mori game")
+ (description
+ "Passage is meant to be a memento mori game. It presents an entire life,
+from young adulthood through old age and death, in the span of five minutes.
+Of course, it's a game, not a painting or a film, so the choices that you make
+as the player are crucial. There's no ``right'' way to play Passage, just as
+there's no right way to interpret it.")
+ (license license:public-domain)))
+
(define-public paperview
(let ((commit "9f8538eb6734c76877b878b8f1e52587f2ae19e6")
(revision "1"))