summaryrefslogtreecommitdiff
path: root/gnu/packages/games.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/games.scm')
-rw-r--r--gnu/packages/games.scm686
1 files changed, 312 insertions, 374 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 12d4efff4a..ada0898ef0 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -204,6 +204,7 @@
#:use-module (gnu packages ncurses)
#:use-module (gnu packages netpbm)
#:use-module (gnu packages networking)
+ #:use-module (gnu packages ninja)
#:use-module (gnu packages ocaml)
#:use-module (gnu packages opencl)
#:use-module (gnu packages pcre)
@@ -222,6 +223,7 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages regex)
#:use-module (gnu packages ruby-check)
#:use-module (gnu packages shells)
#:use-module (gnu packages sdl)
@@ -2395,7 +2397,7 @@ such as chess or stockfish.")
(define-public gnubg
(package
(name "gnubg")
- (version "1.07.001")
+ (version "1.08.003")
(source
(origin
(method url-fetch)
@@ -2403,10 +2405,10 @@ such as chess or stockfish.")
version "-sources.tar.gz"))
(sha256
(base32
- "07l2srlm05c99l4pppba8l54bnh000ns2rih5h8rzbcw84lrffbj"))))
+ "0yar8j6g2f1q9zz9m9ha9xzvjr6mwp2qrzwhp9ppizyg2fdrczbg"))))
(build-system gnu-build-system)
(inputs (list ;; XXX: Build with an older Pango for 'pango_font_get_hb_font' and
- ;; 'pango_coverage_get_type'. Try removing this for versions > 1.07.001.
+ ;; 'pango_coverage_get_type'. Try removing this for versions > 1.08.003.
pango-1.42
glib
readline
@@ -2415,10 +2417,10 @@ such as chess or stockfish.")
glu
gtkglext
sqlite
- libcanberra
- libxcrypt)) ;required by Python.h
- (native-inputs `(("python-2" ,python-2)
- ("pkg-config" ,pkg-config)))
+ libcanberra))
+ (native-inputs (list flex
+ python
+ pkg-config))
(arguments
`(#:configure-flags
;; SSE instructions are available on Intel systems only.
@@ -2777,7 +2779,7 @@ Every puzzle has a complete solution, although there may be more than one.")
(define-public dsda-doom
(package
(name "dsda-doom")
- (version "0.29.0")
+ (version "0.29.3")
(source
(origin
(method git-fetch)
@@ -2786,7 +2788,7 @@ Every puzzle has a complete solution, although there may be more than one.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1aki559nz1czlvzah1rdmpdcad4mswpp5gszfwxhil9x0hc3gj4r"))))
+ (base32 "1nhlwxwhs69ibsi873cdjanfdlpqcb4ybcp8c2j8j9l07xpgvk1n"))))
(build-system cmake-build-system)
(arguments
(list
@@ -3920,7 +3922,7 @@ properly.")
(define-public abbaye
(package
(name "abbaye")
- (version "2.0.2")
+ (version "2.0.5")
(source
(origin
(method git-fetch)
@@ -3929,7 +3931,7 @@ properly.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "16zxmz7z6jfawh68q8k9s1iwbl2f9jr3qaiqlkwpz8vmpqw2s47x"))))
+ (base32 "0jwj6cn4q0ijxdg8ywzd55sxqid5kp5z2bsxh8fpdlm5r7anvqls"))))
(build-system gnu-build-system)
(arguments
(list
@@ -4175,7 +4177,7 @@ asynchronously and at a user-defined speed.")
(define-public chess
(package
(name "chess")
- (version "6.2.11")
+ (version "6.3.0")
(source
(origin
(method url-fetch)
@@ -4183,7 +4185,7 @@ asynchronously and at a user-defined speed.")
".tar.gz"))
(sha256
(base32
- "1gg9764ld7skn7jps9pma6x8zqf9nka1cf5nryq197f6lpp404fq"))))
+ "0fm27h1xv56v1g1zq0cd9wlchvfw8iwmsgj4nyaxcalc171bwdqb"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@@ -5345,7 +5347,7 @@ falling, themeable graphics and sounds, and replays.")
(define-public wesnoth
(package
(name "wesnoth")
- (version "1.18.3")
+ (version "1.18.5")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -5354,7 +5356,7 @@ falling, themeable graphics and sounds, and replays.")
(file-name (git-file-name name version))
(sha256
(base32
- "0habv0whb0y0r52sjln7yin1nfm3vjjxqlavm7jarcrg2s3v743k"))))
+ "16mrdpz1yq12ppnrmm4yv768zmh08qjdxh892pzc5i17n7xkmpy4"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f ;no test target
@@ -6522,77 +6524,64 @@ in-window at 640x480 resolution or fullscreen.")
(define-public warzone2100
(package
(name "warzone2100")
- (version "4.3.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/warzone2100/releases/"
- version
- "/warzone2100_src.tar.xz"))
- (sha256
- (base32 "1hq56hm6bn3s2pksznh5g8hgq6ww6fnl1pspr3bi93k3z7v0imh1"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- (with-directory-excursion "3rdparty"
- (for-each
- delete-file-recursively
- '("discord-rpc"
- "miniupnp"
- "utfcpp")))
- #t))))
+ (version "4.6.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/warzone2100/releases/"
+ version "/warzone2100_src.tar.xz"))
+ (patches (search-patches "warzone2100-unbundle-libs.patch"))
+ (modules '((guix build utils)))
+ (snippet #~(for-each delete-file-recursively
+ (cons* "lib/netplay/3rdparty/miniupnp"
+ "lib/sound/3rdparty/opusfile"
+ (map (lambda (s) (string-append "3rdparty/" s))
+ '("basis_universal" "basis_universal_host_build"
+ "discord-rpc" "fmt" "GameNetworkingSockets"
+ "inih" "re2" "utf8proc" "utfcpp")))))
+ (sha256
+ (base32
+ "02x5ihkpfkpjxwvh00d8yqzd796af7d684nk96hzhhq28qw5bb16"))))
(build-system cmake-build-system)
- (arguments
- (list #:configure-flags #~'("-DWZ_DISTRIBUTOR=Guix"
- "-DWZ_ENABLE_BACKEND_VULKAN=off"
- "-DENABLE_DISCORD=off")
- #:tests? #f ; TODO: Tests seem to be broken, configure.ac is missing.
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'fix-utfcpp-include
- (lambda _
- (substitute* "lib/framework/wzstring.cpp"
- (("<utfcpp/source/utf8.h>")
- "<utf8cpp/utf8.h>"))))
- (add-after 'unpack 'link-tests-with-qt
- (lambda _
- (substitute* "tests/Makefile.am"
- (("(framework_linktest_LDADD|maptest_LDADD) = "
- prefix)
- (string-append prefix "$(QT5_LIBS) ")))))
- (add-after 'unpack 'fix-ivis-linktest
- (lambda _
- (substitute* "tests/ivis_linktest.cpp"
- (("iV_DrawTextRotated.*;")
- (string-append
- "iV_DrawTextRotated(\"Press ESC to exit.\", "
- "100, 100, 0.0f, font_regular);"))))))))
- (native-inputs (list asciidoc
- ruby-asciidoctor/minimal
- gettext-minimal
- pkg-config
- unzip
- ;; 7z is used to create .zip archive, not `zip' as in version 3.2.*.
- p7zip))
- (inputs (list opus
+ (arguments (list #:configure-flags #~'("-GNinja"
+ "-DWZ_DISTRIBUTOR=Guix"
+ "-DWZ_DOWNLOAD_PREBUILT_PACKAGES=off"
+ "-DWZ_INCLUDE_VIDEOS=off"
+ "-DWZ_FORCE_MINIMAL_OPUSFILE=off"
+ "-DENABLE_GNS_NETWORK_BACKEND=off")
+ ;; TODO: Tests seem to be broken, configure.ac is missing.
+ #:tests? #f))
+ (native-inputs (list basis-universal
+ gettext-minimal
+ ninja
+ p7zip
+ pkg-config
+ ruby-asciidoctor/minimal
+ shaderc))
+ (inputs (list basis-universal
curl
- fontconfig
+ fmt
freetype
- glew
+ fribidi
+ gnutls
harfbuzz
+ libinih
+ libogg
+ libpng
+ libsodium
libtheora
libvorbis
- libxrandr
- libsodium
+ libzip
miniupnpc
openal
+ opus
+ opusfile
physfs
- qtbase-5
- qtscript-5
- openssl
+ re2
sdl2
sqlite
- utfcpp))
+ utf8proc
+ utfcpp
+ vulkan-headers))
(home-page "https://wz2100.net")
(synopsis "3D Real-time strategy and real-time tactics game")
(description
@@ -7695,7 +7684,7 @@ emerges from a sewer hole and pulls her below ground.")
(define-public cdogs-sdl
(package
(name "cdogs-sdl")
- (version "1.5.0")
+ (version "2.3.2")
(source
(origin
(method git-fetch)
@@ -7704,7 +7693,7 @@ emerges from a sewer hole and pulls her below ground.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1i1akay3ad2bkiqa7vfkh3qyhiqax8ikp1v6lfjysvxg65wkqdvc"))))
+ (base32 "13brn8hklgid43vddmaq3a0yhlcx550wa8jvs17dwpzj0sr045vh"))))
(build-system cmake-build-system)
(arguments
(list
@@ -8076,7 +8065,7 @@ fish. The whole game is accompanied by quiet, comforting music.")
(define-public crawl
(package
(name "crawl")
- (version "0.32.1")
+ (version "0.33.1")
(source
(origin
(method git-fetch)
@@ -8085,7 +8074,7 @@ fish. The whole game is accompanied by quiet, comforting music.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1bdy1gdp0hx9ypj61jvd19wrfn0ilbs682nck0ld9nc0rw5wa64f"))
+ (base32 "03ws9xf397wwk9hq7gsc2pc4knh43avjr96g3q1lrm8hd8ndhyhr"))
(patches (search-patches "crawl-upgrade-saves.patch"))))
(build-system gnu-build-system)
(inputs
@@ -9029,7 +9018,7 @@ elements to achieve a simple goal in the most complex way possible.")
(define-public the-powder-toy
(package
(name "the-powder-toy")
- (version "98.2.365")
+ (version "99.3.384")
(source
(origin
(method git-fetch)
@@ -9038,7 +9027,7 @@ elements to achieve a simple goal in the most complex way possible.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "06l39w3ggrzn8799dqll606by4f88kjr60r879w8j26csx1py76g"))
+ (base32 "0l067j0bbzvr0i2prxrgb0af4xdpl648x741jgnyp4bjzdbm61x7"))
(snippet
#~(begin (use-modules (guix build utils))
(substitute* "meson.build"
@@ -9090,7 +9079,8 @@ elements to achieve a simple goal in the most complex way possible.")
curl
fftwf
jsoncpp
- libpng)
+ libpng
+ python-wrapper)
(if (supported-package? luajit)
(list luajit)
(list lua-5.2))
@@ -9448,23 +9438,26 @@ online.")
(define-public chocolate-doom
(package
(name "chocolate-doom")
- (version "3.0.1")
+ (version "3.1.1")
(source (origin
- (method url-fetch)
- (uri (string-append "https://www.chocolate-doom.org/downloads/"
- version
- "/chocolate-doom-"
- version
- ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/chocolate-doom/chocolate-doom")
+ (commit (string-append "chocolate-doom-" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "1iy8rx7kjvi1zjiw4zh77szzmd1sgpqajvbhprh1sj93fhbxcdfl"))))
+ (base32 "0xpribvacbma7l6138wizhcl2b0kyn05jwdkspw176zl7v3k1bn1"))))
(build-system gnu-build-system)
(arguments
- `(#:configure-flags (list "CFLAGS=-fcommon")))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'bootstrap
+ ;; The bundled autogen.sh script unconditionally runs ./configure.
+ (lambda _ (invoke "autoreconf" "-vif"))))))
(inputs (list sdl2-net sdl2-mixer sdl2))
(native-inputs
- (list pkg-config))
+ (list automake autoconf pkg-config))
(synopsis "Doom source port preserving the look, feel, and bugs of vanilla
Doom")
(description
@@ -9484,7 +9477,7 @@ affect gameplay).")
(package
(inherit chocolate-doom)
(name "crispy-doom")
- (version "5.8.0")
+ (version "7.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -9492,19 +9485,7 @@ affect gameplay).")
(commit (string-append "crispy-doom-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1b6gn0dysv631jynh769whww9xcss1gms78sz3nrn855q1dsvcb4"))))
- (native-inputs
- (append
- (package-native-inputs chocolate-doom)
- `(("automake" ,automake)
- ("autoreconf" ,autoconf))))
- (arguments
- `(#:configure-flags '("CFLAGS=-fcommon")
- #:phases
- (modify-phases %standard-phases
- (replace 'bootstrap
- ;; The bundled autogen.sh script unconditionally runs ./configure.
- (lambda _ (invoke "autoreconf" "-vif"))))))
+ (base32 "0lpib7dg1ygnjw1yjamfiybhkly4lp42r4lawskbjslfyjafm4ic"))))
(synopsis "Limit-removing enhanced-resolution Doom source port based on
Chocolate Doom")
(description
@@ -10312,154 +10293,188 @@ via the in-game download manager.")
(license (list license:gpl2+))))
(define-public stepmania
- (package
- (name "stepmania")
- (version "5.1.0-b2")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/stepmania/stepmania")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0a7y9l7xm510vgnpmj1is7p9m6d6yd0fcaxrjcickz295k5w3rdn"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Remove song files, which are licensed under a non-commercial
- ;; clause, and a course pointing to them.
- (for-each delete-file-recursively
- '("Songs/StepMania 5/Goin' Under"
- "Songs/StepMania 5/MechaTribe Assault"
- "Songs/StepMania 5/Springtime"))
- (for-each delete-file '("Courses/Default/Jupiter.crs"
- "Courses/Default/Jupiter.png"))
- ;; Unbundle libpng.
- (substitute* "extern/CMakeLists.txt"
- (("include\\(CMakeProject-png.cmake\\)") ""))
- (delete-file-recursively "extern/libpng")
- ;; Include missing <ctime> header.
- (substitute* "src/arch/ArchHooks/ArchHooks.h"
- (("#define ARCH_HOOKS_H" all)
- (string-append all "\n#include <ctime> // struct tm")))))))
- (build-system cmake-build-system)
- (arguments
- `(#:tests? #f ;FIXME: couldn't find how to run tests
- #:build-type "Release"
- #:out-of-source? #f ;for the 'install-desktop' phase
- #:configure-flags
- (list "-DWITH_SYSTEM_FFMPEG=1"
- ;; SSE instructions are available on Intel systems only.
- ,@(if (any (cute string-prefix? <> (or (%current-target-system)
- (%current-system)))
- '("x86_64" "i686"))
- '()
- '("-DWITH_SSE2=NO"))
- ;; Configuration cannot find GTK2 without the two following
- ;; flags.
- (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR="
- (assoc-ref %build-inputs "gtk+")
- "/lib/gtk-2.0/include")
- (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR="
- (assoc-ref %build-inputs "glib")
- "/lib/glib-2.0/include"))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'ensure-application-files-can-be-found
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (substitute* "src/arch/LoadingWindow/LoadingWindow_Gtk.cpp"
- (("RageFileManagerUtil::sDirOfExecutable \\+ \"/\" \\+ \"GtkModule.so\"")
- (string-append "\"" out
- "/share/stepmania/GtkModule.so\"")))
- (substitute* "src/arch/ArchHooks/ArchHooks_Unix.cpp"
- (("Root = sDirOfExecutable")
- (string-append "Root = \"" out "/share/stepmania/\""))
- (("sDirOfExecutable \\+ \"/(Packages|Songs)\"" _ dir)
- (string-append "\"" out "/share/stepmania/" dir "\"")))
- (substitute* "src/RageFileManager.cpp"
- (("RageFileManagerUtil::sDirOfExecutable \\+ \"/\"")
- (string-append "\"" out "/share/stepmania/\""))))
- #t))
- (add-after 'unpack 'fix-install-subdir
- ;; Installation would be done in "%out/stepmania-X.Y", but we
- ;; prefer the more common layout "%out/share/stepmania".
- (lambda _
- (substitute* "src/CMakeLists.txt"
- (("\"stepmania-.*?\"") "\"share/stepmania\""))
- #t))
- (add-after 'unpack 'unbundle-libpng
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/CMakeLists.txt"
- (("\\$\\{SM_EXTERN_DIR\\}/libpng/include")
- (string-append (assoc-ref inputs "libpng") "/include")))
- #t))
- (add-after 'install 'install-executable
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (exe (string-append out "/share/stepmania/stepmania")))
- (mkdir-p bin)
- (symlink exe (string-append bin "/stepmania"))
- #t)))
- (add-after 'install-executable 'install-desktop
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (share (string-append out "/share"))
- (applications (string-append share "/applications"))
- (icons (string-append share "/icons")))
- (install-file "stepmania.desktop" applications)
- (mkdir-p icons)
- (copy-recursively "icons" icons)
- #t)))
- ;; Move documentation in a more usual place, i.e.,
- ;; "%out/share/doc/stepmania/".
- (add-after 'install-desktop 'install-doc
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (share (string-append out "/share")))
- (with-directory-excursion share
- (mkdir-p "doc")
- (symlink "../stepmania/Docs" "doc/stepmania"))
- #t))))))
- (native-inputs
- (list pkg-config yasm))
- (inputs
- `(("alsa-lib" ,alsa-lib)
- ;; Per upstream, StepMania is only guaranteed to work with a very
- ;; specific FFmpeg version, which is included in the repository as
- ;; a Git submodule. This particular version requirement usually
- ;; changes every few years.
- ("ffmpeg" ,ffmpeg-for-stepmania)
- ("glib" ,glib)
- ("glew" ,glew)
- ("gtk+" ,gtk+-2)
- ("jsoncpp" ,jsoncpp)
- ("libpng" ,libpng)
- ("libjpeg" ,libjpeg-turbo)
- ("libmad" ,libmad)
- ("libogg" ,libogg)
- ("libva" ,libva)
- ("libvorbis" ,libvorbis)
- ("libxinerama" ,libxinerama)
- ("libxrandr" ,libxrandr)
- ("mesa" ,mesa)
- ("pcre" ,pcre)
- ("pulseaudio" ,pulseaudio)
- ("sdl" ,sdl2)
- ("udev" ,eudev)
- ("zlib" ,zlib)))
- (synopsis "Advanced rhythm game designed for both home and arcade use")
- (description "StepMania is a dance and rhythm game. It features 3D
+ ;; Last release on July 24, 2018.
+ (let ((commit "d55acb1ba26f1c5b5e3048d6d6c0bd116625216f")
+ (revision "1"))
+ (package
+ (name "stepmania")
+ (version (git-version "5.1.0-b2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/stepmania/stepmania")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "00fxwlfvsmsyll1wp5dp05dxwi81w8l8rb7ms735zqjimm1zdlg3"))
+ (patches (search-patches "stepmania-ffmpeg-compat.patch"))
+ (modules '((guix build utils)
+ (ice-9 ftw)))
+ (snippet
+ '(begin
+ ;; Remove song files, which are licensed under a non-commercial
+ ;; clause, and a course pointing to them.
+ (for-each delete-file-recursively
+ '("Songs/StepMania 5/Goin' Under"
+ "Songs/StepMania 5/MechaTribe Assault"
+ "Songs/StepMania 5/Springtime"))
+ (for-each delete-file '("Courses/Default/Jupiter.crs"
+ "Courses/Default/Jupiter.png"))
+ ;; Unbundle external sources, keep CMakeProject-* files for
+ ;; compatibility, lua and libmmmagic.
+ (with-directory-excursion "extern"
+ (for-each
+ (lambda (f)
+ (unless (member f '("." ".."
+ "CMakeLists.txt"
+ "CMakeProject-glew.cmake"
+ "CMakeProject-json.cmake"
+ "CMakeProject-jpeg.cmake"
+ "CMakeProject-lua.cmake"
+ "CMakeProject-mad.cmake"
+ "CMakeProject-mmmagic.cmake"
+ "CMakeProject-pcre.cmake"
+ "CMakeProject-png.cmake"
+ "CMakeProject-tomcrypt.cmake"
+ "CMakeProject-tommath.cmake"
+ "CMakeProject-zlib.cmake"
+ "libmmmagic"
+ "lua-5.1"))
+ (delete-file-recursively f)))
+ (scandir ".")))
+ ;; Fix up #include directives.
+ (substitute* "src/RageUtil.cpp"
+ (("\\.\\./extern/pcre/pcre\\.h") "pcre.h"))
+ ;; Include missing <ctime> header.
+ (substitute* "src/arch/ArchHooks/ArchHooks.h"
+ (("#define ARCH_HOOKS_H" all)
+ (string-append all "\n#include <ctime> // struct tm")))))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ;FIXME: couldn't find how to run tests
+ #:build-type "Release"
+ #:out-of-source? #f ;for the 'install-desktop' phase
+ #:configure-flags
+ (list "-DWITH_SYSTEM_FFMPEG=1"
+ "-DWITH_SYSTEM_GLEW=1"
+ "-DWITH_SYSTEM_JSONCPP=1"
+ "-DWITH_SYSTEM_JPEG=1"
+ "-DWITH_SYSTEM_MAD=1"
+ "-DWITH_SYSTEM_OGG=1"
+ "-DWITH_SYSTEM_PCRE=1"
+ "-DWITH_SYSTEM_PNG=1"
+ "-DWITH_SYSTEM_TOMMATH=1"
+ "-DWITH_SYSTEM_TOMCRYPT=1"
+ "-DWITH_SYSTEM_ZLIB=1"
+ ;; SSE instructions are available on Intel systems only.
+ ,@(if (any (cute string-prefix? <> (or (%current-target-system)
+ (%current-system)))
+ '("x86_64" "i686"))
+ '()
+ '("-DWITH_SSE2=NO"))
+ ;; Configuration cannot find GTK2 without the two following
+ ;; flags.
+ (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR="
+ (assoc-ref %build-inputs "gtk+")
+ "/lib/gtk-2.0/include")
+ (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR="
+ (assoc-ref %build-inputs "glib")
+ "/lib/glib-2.0/include"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'ensure-application-files-can-be-found
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "src/arch/LoadingWindow/LoadingWindow_Gtk.cpp"
+ (("RageFileManagerUtil::sDirOfExecutable \\+ \"/\" \\+ \"GtkModule.so\"")
+ (string-append "\"" out
+ "/share/stepmania/GtkModule.so\"")))
+ (substitute* "src/arch/ArchHooks/ArchHooks_Unix.cpp"
+ (("Root = sDirOfExecutable")
+ (string-append "Root = \"" out "/share/stepmania/\""))
+ (("sDirOfExecutable \\+ \"/(Packages|Songs)\"" _ dir)
+ (string-append "\"" out "/share/stepmania/" dir "\"")))
+ (substitute* "src/RageFileManager.cpp"
+ (("RageFileManagerUtil::sDirOfExecutable \\+ \"/\"")
+ (string-append "\"" out "/share/stepmania/\""))))
+ #t))
+ (add-after 'unpack 'fix-install-subdir
+ ;; Installation would be done in "%out/stepmania-X.Y", but we
+ ;; prefer the more common layout "%out/share/stepmania".
+ (lambda _
+ (substitute* "src/CMakeLists.txt"
+ (("\"stepmania-.*?\"") "\"share/stepmania\""))
+ #t))
+ (add-after 'unpack 'unbundle-libpng
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/CMakeLists.txt"
+ (("\\$\\{SM_EXTERN_DIR\\}/libpng/include")
+ (string-append (assoc-ref inputs "libpng") "/include")))
+ #t))
+ (add-after 'install 'install-executable
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (exe (string-append out "/share/stepmania/stepmania")))
+ (mkdir-p bin)
+ (symlink exe (string-append bin "/stepmania"))
+ #t)))
+ (add-after 'install-executable 'install-desktop
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (share (string-append out "/share"))
+ (applications (string-append share "/applications"))
+ (icons (string-append share "/icons")))
+ (install-file "stepmania.desktop" applications)
+ (mkdir-p icons)
+ (copy-recursively "icons" icons)
+ #t)))
+ ;; Move documentation in a more usual place, i.e.,
+ ;; "%out/share/doc/stepmania/".
+ (add-after 'install-desktop 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (share (string-append out "/share")))
+ (with-directory-excursion share
+ (mkdir-p "doc")
+ (symlink "../stepmania/Docs" "doc/stepmania"))
+ #t))))))
+ (native-inputs
+ (list pkg-config yasm))
+ (inputs
+ (list alsa-lib
+ eudev
+ ffmpeg-6
+ glib
+ glew
+ gtk+-2
+ jsoncpp
+ libpng
+ libjpeg-turbo
+ libmad
+ libogg
+ libtommath
+ libtomcrypt
+ libva
+ libvorbis
+ libxinerama
+ libxrandr
+ mesa
+ pcre
+ pulseaudio
+ sdl2
+ zlib))
+ (synopsis "Advanced rhythm game designed for both home and arcade use")
+ (description "StepMania is a dance and rhythm game. It features 3D
graphics, keyboard and dance pad support, and an editor for creating your own
steps.
This package provides the core application, but no song is shipped. You need
to download and install them in @file{$HOME/.stepmania-X.Y/Songs} directory.")
- (home-page "https://www.stepmania.com")
- (license license:expat)))
+ (home-page "https://www.stepmania.com")
+ (license license:expat))))
(define-public oshu
(package
@@ -11458,7 +11473,7 @@ and bring the war to your enemy.")
(define-public harmonist
(package
(name "harmonist")
- (version "0.5.1")
+ (version "0.6.1")
(source
(origin
(method git-fetch)
@@ -11467,7 +11482,7 @@ and bring the war to your enemy.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1gn9zmnjw1f4xbdk281cmxh7swxc16i663q8pzn5s135gdg6qgdm"))))
+ (base32 "03322qgy5n48cxmm57m3v4i35gbr31jvk1dvc9ah4wf4480xp0fi"))))
(build-system go-build-system)
(arguments
(list
@@ -11501,50 +11516,6 @@ player adaptability for character progression.")
(modify-inputs (package-native-inputs harmonist)
(prepend pkg-config)))))
-(define-public gnurobots
- (package
- (name "gnurobots")
- (version "1.2.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/gnurobots/gnurobots-"
- version ".tar.gz"))
- (sha256
- (base32
- "07gi3lsmbzzsjambgixj6xy79lh22km84z7bnzgwzxdy806lyvwb"))))
- (build-system gnu-build-system)
- (inputs
- (list glib gtk+-2 vte/gtk+-2 readline guile-1.8 libxcrypt))
- (native-inputs
- (list pkg-config))
- (arguments
- `(#:make-flags
- (list
- ;; Do not abort build on "deprecated-declarations" warnings.
- "CFLAGS=-Wno-error=deprecated-declarations"
- ;; Find readline headers in sub-directory.
- (string-append "READLINE_CFLAGS=-I"
- (assoc-ref %build-inputs "readline")
- "/include/readline/"))
- #:phases
- (modify-phases %standard-phases
- (add-after 'install 'install-doc
- (lambda* (#:key outputs #:allow-other-keys)
- (install-file "doc/Robots-HOWTO"
- (string-append (assoc-ref outputs "out")
- "/share/doc/gnurobots-"
- ,version))
- #t)))))
- (home-page "https://www.gnu.org/software/gnurobots/")
- (synopsis "Program a little robot and watch it explore a world")
- (description
- "GNU Robots is a game in which you program a robot to explore a world
-full of enemies that can hurt it, obstacles and food to be eaten. The goal of
-the game is to stay alive and collect prizes. The robot program conveniently
-may be written in a plain text file in the Scheme programming language.")
- (license license:gpl3+)))
-
(define-public li-ri
(package
(name "li-ri")
@@ -12476,80 +12447,6 @@ game.") ;thanks to Debian for description
computer opponents or against real players online.")
(license license:agpl3+)))
-(define-public xblackjack
- (package
- (name "xblackjack")
- (version "2.2")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://www.ibiblio.org/pub/X11/contrib/games/"
- "xblackjack-" version ".tar.gz"))
- (sha256
- (base32 "05h93rya7zwnx2l58f0a7wkjadymkj4y77clcr2hryhrhhy1vwjx"))))
- (build-system gnu-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((imake (assoc-ref inputs "imake"))
- (out (assoc-ref outputs "out")))
- (substitute* "Imakefile"
- (("EXTRA_LIBRARIES = -lXm \\$\\(DEPLIBS\\) -lbsd")
- "EXTRA_LIBRARIES = -lXm -lXt -lXmu -lXext -lX11")
- (("^#define NonStandardInstallTargets NO")
- "#define NonStandardInstallTargets YES")
- (("BINDIR = /usr/local/bin")
- (string-append "BINDIR = " out "/bin"))
- (("MANDIR = /usr/local/man/cat1")
- (string-append "MANDIR = " out "/share/man/man1"))
- (("XAPPLOADDIR = /usr/local/lib/app-defaults")
- (string-append "XAPPLOADDIR = " out "/lib/X11/app-defaults")))
-
- (invoke "xmkmf") ; Generate Makefile.
- (substitute* "Makefile"
- ((imake) out)
- (("ETCX11DIR = /etc/X11")
- (string-append "ETCX11DIR = " out "/etc/X11"))
- ;; Fix incorrect argument given to gcc. Error message:
- ;; "gcc: error: DefaultGcc2AMD64Opt: No such file or directory"
- (("CDEBUGFLAGS = [^\n]*") ""))
-
- ;; Fix header paths.
- (substitute* '("Draw.c"
- "Strategy.c")
- (("^#include <X11/Xm/Xm.h>")
- "#include <Xm/Xm.h>"))
- (substitute* "Strategy.c"
- (("^#include <X11/Xm/Label.h>")
- "#include <Xm/Label.h>"))
-
- ;; Fix compilation errors.
- (substitute* "Table.c"
- (("/\\* focus_moved_proc \\*/\tXtInheritFocusMovedProc,") "")
- (("_XmMoveObject\\(\\(RectObj\\) w, rx, ry\\);")
- "_XmMoveObject(w, rx, ry);")
- (("_XmResizeObject\\(\\(RectObj\\) managed->locs[i].w, nw, nh,")
- "_XmResizeObject(managed->locs[i].w, nw, nh,")))))
- (add-after 'install 'install-man-pages
- (lambda _
- (invoke "make" "install.man"))))
- #:tests? #f)) ; No check target.
- (inputs
- (list lesstif libx11 libxext libxmu libxt))
- (native-inputs
- (list imake))
- (home-page "https://www.ibiblio.org/pub/X11/contrib/games/")
- (synopsis "X11/Motif blackjack game")
- (description
- "Xblackjack is a MOTIF/OLIT based tool constructed to get you ready for
-the casino. It was inspired by a book called \"Beat the Dealer\" by Edward
-O. Thorp, Ph.D. of UCLA. A number of important statistics are maintained
-for display, and used by the program to implement Thorp's \"Complete Point
-System\" (high-low system).")
- (license (license:x11-style "" "See file headers."))))
-
(define-public xevil
;; This game is old. Use a maintained fork that builds with modern toolchains
;; on modern, 64-bit hardware.
@@ -12912,7 +12809,8 @@ to start over several times to find the most satisfactory ending.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "0lg3rqacrapf6c4sxi12cm9bmg43mlbclway1zxcm848pi1xkzwv"))))
+ (base32 "0lg3rqacrapf6c4sxi12cm9bmg43mlbclway1zxcm848pi1xkzwv"))
+ (patches (search-patches "schiffbruch-fix-build-for-gcc-13.patch"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no tests
@@ -13029,7 +12927,7 @@ disassembly of the DOS version, extended with new features.")
(define-public fheroes2
(package
(name "fheroes2")
- (version "1.1.5")
+ (version "1.1.11")
(source
(origin
(method git-fetch)
@@ -13038,7 +12936,7 @@ disassembly of the DOS version, extended with new features.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1zi8p8932pnmgjqm08l2ql5lwdrl9bcsm8bzf66hciw85l6dlbi3"))))
+ (base32 "0px9ibvkr6q2h6jbiqfy3mp46d1kl52zlqfsbj7p2c4v3c18kj2k"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no tests
@@ -13524,7 +13422,7 @@ virtual reality devices.")
(list
#:configure-flags
#~(list "-DUSE_TESTS=ON" "-DOPENGL_BACKEND=OpenGL")))
- (native-inputs (list python-3.10 glibc-locales googletest))
+ (native-inputs (list python glibc-locales googletest))
(inputs (list freetype
libiconv
libpng
@@ -13543,6 +13441,46 @@ Icewind Dale and Planescape: Torment. It sports a cleaner design, greater
extensibility and several innovations.")
(license license:gpl2+)))
+(define-public zeta
+ (package
+ (name "zeta")
+ (version "1.1.4")
+ (home-page "https://zeta.asie.pl/")
+ (synopsis "ZZT and Super ZZT emulator")
+ (description
+ "An emulator implementing enough of @acronym{DOS, Disk Operating System}
+to run ZZT and Super ZZT on modern systems.")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/asiekierka/zeta")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0h7wnxn6rrlqbzgsbhhlx4lpb5apdr3bbxvp74y3axidkgs62bzf"))))
+ (license (list license:expat))
+
+ (build-system gnu-build-system)
+ (inputs
+ (list
+ libdecor
+ libpng
+ sdl3))
+ (native-inputs
+ (list
+ autoconf
+ automake
+ pkg-config
+ python
+ python-pillow))
+ (arguments
+ '(#:configure-flags
+ '("--with-frontend=sdl3"
+ ;; Upstream requests c11, but the source uses strdup() /
+ ;; strcasecmp(), which aren't in C11.
+ "CFLAGS=-std=gnu11")))))
+
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar