aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/games.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/games.scm')
-rw-r--r--gnu/packages/games.scm492
1 files changed, 370 insertions, 122 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index b62d679a91..5568de033b 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -19,7 +19,7 @@
;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
;;; Copyright © 2016, 2017, 2018 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018 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@hyperbola.info>
@@ -67,6 +67,7 @@
#:use-module (gnu packages audio)
#:use-module (gnu packages avahi)
#:use-module (gnu packages boost)
+ #:use-module (gnu packages crypto)
#:use-module (gnu packages documentation)
#:use-module (gnu packages docbook)
#:use-module (gnu packages fltk)
@@ -90,6 +91,7 @@
#:use-module (gnu packages haskell)
#:use-module (gnu packages mp3)
#:use-module (gnu packages music)
+ #:use-module (gnu packages multiprecision)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages ncurses)
@@ -310,6 +312,7 @@ tired of cows, a variety of other ASCII-art messengers are available.")
#:tests? #f ; no check target
#:phases
(modify-phases %standard-phases
+ (delete 'bootstrap)
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((dejavu (assoc-ref inputs "font-dejavu"))
@@ -777,90 +780,110 @@ utilizing the art assets from the @code{SuperTux} project.")
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
+ (package
+ (name "roguebox-adventures")
+ (version "2.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://download.tuxfamily.org/rba/RogueBoxAdventures_v"
+ (string-join (string-split version #\.) "_") "_Source.zip"))
+ (file-name (string-append name "-" version ".zip"))
+ (sha256
+ (base32
+ "0kmzdgnik8fsf3bg55546l77p3mfxn2awkzfzzdn20n82rd2babw"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f ; no check target
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'unpack
+ (lambda* (#:key source #:allow-other-keys)
+ (and (invoke "unzip" source)
+ ;; The actual source is buried a few directories deep.
+ (chdir (string-append "RogueBoxAdventures_v"
+ (string-join
+ (string-split ,version #\.) "_")
+ "_Source")))))
+ ;; 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"))
+ (roguebox-adventures
+ (string-append bin "/roguebox-adventures"))
+ (data (string-append
+ out "/share/games/roguebox-adventures"))
+ (lib (string-append data "/LIB"))
+ (doc (string-append
+ out "/share/doc/roguebox-adventures")))
+ (mkdir-p bin)
+ (mkdir-p doc)
+
+ (for-each (lambda (file)
+ (copy-recursively file
+ (string-append data "/" file)))
+ '("AUDIO" "FONT" "GRAPHIC" "LIB" "LICENSE"
+ "icon_big.png" "icon_small.png"))
+ (for-each (lambda (file)
+ (chmod file #o555)
+ (install-file file lib))
+ '("main.py" "run.py"))
+
+ (copy-recursively "DOC" doc)
+
+ (call-with-output-file
+ roguebox-adventures
+ (lambda (p)
+ (format p "\
+#!~a
+export PYTHONPATH=~a/LIB:~a
+exec -a \"~a\" ~a \"$@\"\n"
+ (which "bash") data (getenv "PYTHONPATH")
+ (which "python3")
+ (string-append lib "/main.py"))))
+ (chmod roguebox-adventures #o555))
+ #t)))))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (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)))))
+ ;; 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
@@ -1799,7 +1822,7 @@ falling, themeable graphics and sounds, and replays.")
(define-public wesnoth
(package
(name "wesnoth")
- (version "1.12.6")
+ (version "1.14.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
@@ -1808,17 +1831,10 @@ falling, themeable graphics and sounds, and replays.")
name "-" version ".tar.bz2"))
(sha256
(base32
- "0kifp6g1dsr16m6ngjq2hx19h851fqg326ps3krnhpyix963h3x5"))))
+ "1mzrnbv71b4s41c5x8clhb53l8lidiwzny1hl828228pvys5bxkb"))))
(build-system cmake-build-system)
(arguments
- '(#:tests? #f ; no check target
- #:configure-flags
- ;; XXX: Failed to compile with '-Werror=old-style-cast'.
- ;; boost/mpl/assert.hpp:313:58: error:
- ;; use of old-style cast [-Werror=old-style-cast]
- ;; [...]
- ;; cc1plus: all warnings being treated as errors
- '("-DENABLE_STRICT_COMPILATION=OFF")))
+ `(#:tests? #f)) ; no check target
(native-inputs
`(("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)))
@@ -1827,12 +1843,10 @@ falling, themeable graphics and sounds, and replays.")
("dbus" ,dbus)
("fribidi" ,fribidi)
("libvorbis" ,libvorbis)
+ ("openssl" ,openssl)
("pango" ,pango)
- ("sdl-image" ,sdl-image)
- ("sdl-mixer" ,sdl-mixer)
- ("sdl-net" ,sdl-net)
- ("sdl-ttf" ,sdl-ttf)))
- (home-page "http://www.wesnoth.org/")
+ ("sdl-union" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))))
+ (home-page "https://www.wesnoth.org/")
(synopsis "Turn-based strategy game")
(description
"The Battle for Wesnoth is a fantasy, turn based tactical strategy game,
@@ -1851,19 +1865,12 @@ next campaign.")
(name "wesnoth-server")
(inputs
`(("boost" ,boost)
- ("sdl-net" ,sdl-net)))
+ ("icu4c" ,icu4c)
+ ("openssl" ,openssl)
+ ("sdl2" ,sdl2)))
(arguments
- (append
- (substitute-keyword-arguments (package-arguments wesnoth)
- ((#:configure-flags configure-flags)
- `(append ,configure-flags (list "-DENABLE_GAME=OFF"))))
- `(#:phases
- (modify-phases %standard-phases
- ;; Delete game assets not required by the server.
- (add-after 'install 'delete-data
- (lambda* (#:key outputs #:allow-other-keys)
- (delete-file-recursively (string-append (assoc-ref outputs "out")
- "/share/wesnoth"))))))))
+ `(#:configure-flags '("-DENABLE_GAME=OFF")
+ ,@(package-arguments wesnoth)))
(synopsis "Dedicated @emph{Battle for Wesnoth} server")
(description "This package contains a dedicated server for @emph{The
Battle for Wesnoth}.")))
@@ -4057,16 +4064,16 @@ fight against their plot and save his fellow rabbits from slavery.")
(define-public 0ad-data
(package
(name "0ad-data")
- (version "0.0.22-alpha")
+ (version "0.0.23-alpha")
(source
(origin
(method url-fetch)
- (uri (string-append "http://releases.wildfiregames.com/0ad-"
+ (uri (string-append "https://releases.wildfiregames.com/0ad-"
version "-unix-data.tar.xz"))
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
- "0vknk9ay9h2p34r7mym2g066f3s3c5d5vmap0ckcs5b86h5cscjc"))
+ "1b6qcvd8yyyxavgdwpcs7asmln3xgnvjkglz6ggvwb956x37ggzx"))
(modules '((guix build utils)))
(snippet
#~(begin
@@ -4110,19 +4117,18 @@ fight against their plot and save his fellow rabbits from slavery.")
(define-public 0ad
(package
(name "0ad")
- (version "0.0.22-alpha")
+ (version "0.0.23-alpha")
(source
(origin
(method url-fetch)
- (uri (string-append "http://releases.wildfiregames.com/0ad-"
+ (uri (string-append "https://releases.wildfiregames.com/0ad-"
version "-unix-build.tar.xz"))
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
- "1cgmr4g5g9wv36v7ylbrvqhsjwgcsdgbqwc8zlqmnayk9zgkdpgx"))
+ "0qz1sg4n5y766qwgi63drrrx6k17kk0rcnn9a4a9crllk2vf78fg"))))
;; A snippet here would cause a build failure because of timestamps
;; reset. See https://bugs.gnu.org/26734.
- ))
(inputs
`(("0ad-data" ,0ad-data)
("curl" ,curl)
@@ -4130,6 +4136,7 @@ fight against their plot and save his fellow rabbits from slavery.")
("gloox" ,gloox)
("icu4c" ,icu4c)
("libpng" ,libpng)
+ ("libsodium" ,libsodium)
("libvorbis" ,libvorbis)
("libxcursor" ,libxcursor)
("libxml2" ,libxml2)
@@ -4477,7 +4484,7 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
(arguments
`(#:make-flags
(let ((vulkanlib (string-append (assoc-ref %build-inputs
- "vulkan-icd-loader") "/lib")))
+ "vulkan-loader") "/lib")))
(list "CC=gcc"
"MP3LIB=mpg123"
"USE_CODEC_FLAC=1"
@@ -4490,7 +4497,7 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
(add-after 'unpack 'fix-makefile-paths
(lambda* (#:key outputs #:allow-other-keys)
(let ((vulkan (assoc-ref %build-inputs
- "vulkan-icd-loader"))
+ "vulkan-loader"))
(out (assoc-ref outputs "out")))
(mkdir-p (string-append out "/bin"))
(substitute* "Quake/Makefile" ((" /usr")
@@ -4501,7 +4508,7 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
#t))))
,@(strip-keyword-arguments '(#:make-flags #:phases)
(package-arguments quakespasm))))
- (inputs `(("vulkan-icd-loader" ,vulkan-icd-loader)
+ (inputs `(("vulkan-loader" ,vulkan-loader)
,@(package-inputs quakespasm)))
(description "vkquake is a modern engine for id software's Quake 1.
It includes support for 64 bit CPUs, custom music playback, a new sound driver,
@@ -4703,7 +4710,7 @@ Github or Gitlab.")
(define-public colobot
(package
(name "colobot")
- (version "0.1.11-alpha")
+ (version "0.1.11.1-alpha")
(source
(origin
(method url-fetch)
@@ -4711,7 +4718,7 @@ Github or Gitlab.")
"colobot-gold-" version ".tar.gz"))
(sha256
(base32
- "160rq9fp5vd0qaqr3jvzvzrcxk9cac532y8vx4cvq0a8hgylrbad"))))
+ "0h6f4icarramhjkxxbzz6siv3v11z5r8ghqisgr1rscw217vhmwf"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test
@@ -4749,7 +4756,7 @@ Github or Gitlab.")
"colobot-gold-" version ".tar.gz"))
(sha256
(base32
- "1pdpsyr41g7xmk03k2g76l214f53ahk04qnkzmsv1fdbbaq7p109"))))
+ "0riznycx2jbxmg4m9nn3mcpqws2c0s7cn2m9skz9zj1w39r5qpjy"))))
("colobot-music"
,(origin
(method url-fetch)
@@ -4922,3 +4929,244 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
(description "Fortune is a command-line utility which displays a random
quotation from a collection of quotes.")
(license license:bsd-4)))
+
+(define xonotic-data
+ (package
+ (name "xonotic-data")
+ (version "0.8.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://dl.xonotic.org/xonotic-"
+ version ".zip"))
+ (file-name (string-append name "-" version ".zip"))
+ (sha256
+ (base32
+ "1mcs6l4clvn7ibfq3q69k2p0z6ww75rxvnngamdq5ic6yhq74bx2"))))
+ (build-system trivial-build-system)
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((out (assoc-ref %outputs "out"))
+ (xonotic (string-append out "/share/xonotic"))
+ (source (assoc-ref %build-inputs "source"))
+ (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
+ (copy-file source (string-append ,name "-" ,version ".zip"))
+ (invoke unzip (string-append ,name "-" ,version ".zip"))
+ (mkdir-p out)
+ (mkdir-p xonotic)
+ (chdir "Xonotic")
+ (copy-recursively "data"
+ (string-append xonotic "/data"))
+ (copy-recursively "server"
+ (string-append xonotic "/server"))
+ (install-file "key_0.d0pk" xonotic)))))
+ (home-page "http://xonotic.org")
+ (synopsis "Data files for Xonotic")
+ (description
+ "Xonotic-data provides the data files required by the game Xonotic.")
+ (license (list license:gpl2+
+ (license:x11-style "file://server/rcon.pl")))))
+
+(define-public xonotic
+ (package
+ (name "xonotic")
+ (version "0.8.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://dl.xonotic.org/xonotic-"
+ version "-source.zip"))
+ (file-name (string-append name "-" version ".zip"))
+ (sha256
+ (base32
+ "0axxw04fyz6jlfqd0kp7hdrqa0li31sx1pbipf2j5qp9wvqicsay"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags (list (string-append "--prefix="
+ (assoc-ref %outputs "out"))
+ "--disable-rijndael")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'make-darkplaces
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (sharedir (string-append out "/share/xonotic/")))
+ (invoke "make" "-C" "source/darkplaces"
+ (string-append "DP_FS_BASEDIR="
+ sharedir)
+ "DP_LINK_TO_LIBJPEG=1"
+ "DP_SOUND_API=ALSA"
+ "CC=gcc"
+ "-f" "makefile"
+ "cl-release")
+ (invoke "make" "-C" "source/darkplaces"
+ (string-append "DP_FS_BASEDIR="
+ sharedir)
+ "DP_LINK_TO_LIBJPEG=1"
+ "DP_SOUND_API=ALSA"
+ "CC=gcc"
+ "-f" "makefile"
+ "sdl-release")
+ (invoke "make" "-C" "source/darkplaces"
+ (string-append "DP_FS_BASEDIR="
+ sharedir)
+ "DP_LINK_TO_LIBJPEG=1"
+ "DP_SOUND_API=ALSA"
+ "CC=gcc"
+ "-f" "makefile"
+ "sv-release"))))
+ (add-before 'configure 'bootstrap
+ (lambda _
+ (chdir "source/d0_blind_id")
+ (invoke "sh" "autogen.sh")))
+ (add-after 'build 'install-desktop-entry
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Add .desktop files for the 2 variants and the symlink
+ (let* ((output (assoc-ref outputs "out"))
+ (apps (string-append output "/share/applications")))
+ (mkdir-p apps)
+ (with-output-to-file
+ (string-append apps "/xonotic-glx.desktop")
+ (lambda _
+ (format #t
+ "[Desktop Entry]~@
+ Name=xonotic-glx~@
+ Comment=Xonotic glx~@
+ Exec=~a/bin/xonotic-glx~@
+ TryExec=~@*~a/bin/xonotic-glx~@
+ Icon=~@
+ Type=Application~%"
+ output)))
+ (with-output-to-file
+ (string-append apps "/xonotic-sdl.desktop")
+ (lambda _
+ (format #t
+ "[Desktop Entry]~@
+ Name=xonotic-sdl~@
+ Comment=Xonotic sdl~@
+ Exec=~a/bin/xonotic-sdl~@
+ TryExec=~@*~a/bin/xonotic-sdl~@
+ Icon=~@
+ Type=Application~%"
+ output)))
+ (with-output-to-file
+ (string-append apps "/xonotic.desktop")
+ (lambda _
+ (format #t
+ "[Desktop Entry]~@
+ Name=xonotic~@
+ Comment=Xonotic~@
+ Exec=~a/bin/xonotic-glx~@
+ TryExec=~@*~a/bin/xonotic~@
+ Icon=~@
+ Type=Application~%"
+ output)))
+ #t)))
+ (add-after 'install-desktop-entry 'install-icons
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (with-directory-excursion "../../misc/logos/icons_png/"
+ (for-each
+ (lambda (file)
+ (let* ((size (string-filter char-numeric? file))
+ (icons (string-append out "/share/icons/hicolor/"
+ size "x" size "/apps")))
+ (mkdir-p icons)
+ (copy-file file (string-append icons "/xonotic.png"))))
+ '("xonotic_16.png" "xonotic_22.png" "xonotic_24.png"
+ "xonotic_32.png" "xonotic_48.png" "xonotic_64.png"
+ "xonotic_128.png" "xonotic_256.png" "xonotic_512.png"))))))
+ (add-after 'install-icons 'install-binaries
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (define (install src dst)
+ (let ((dst (string-append out dst)))
+ (mkdir-p (dirname dst))
+ (copy-file src dst)))
+ (mkdir-p (string-append out "/bin"))
+ (install "../darkplaces/darkplaces-dedicated"
+ "/bin/xonotic-dedicated")
+ (install "../darkplaces/darkplaces-glx"
+ "/bin/xonotic-glx")
+ (install "../darkplaces/darkplaces-sdl"
+ "/bin/xonotic-sdl")
+ ;; Provide a default xonotic executable, defaulting to SDL.
+ (symlink (string-append out "/bin/xonotic-sdl")
+ (string-append out "/bin/xonotic"))
+ #t)))
+ (add-after 'install-binaries 'install-data
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (data (assoc-ref inputs "xonotic-data")))
+ (copy-recursively (string-append data "/share/xonotic")
+ (string-append out "/share/xonotic"))
+ #t)))
+ (add-after 'install-binaries 'wrap-binaries
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ ;; Curl and libvorbis need to be wrapped so that we get
+ ;; sound and networking.
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin/xonotic"))
+ (bin-sdl (string-append out "/bin/xonotic-sdl"))
+ (bin-glx (string-append out "/bin/xonotic-glx"))
+ (bin-dedicated (string-append out "/bin/xonotic-dedicated"))
+ (curl (assoc-ref inputs "curl"))
+ (vorbis (assoc-ref inputs "libvorbis")))
+ (wrap-program bin
+ `("LD_LIBRARY_PATH" ":" prefix
+ (,(string-append curl "/lib:" vorbis "/lib"))))
+ (wrap-program bin-sdl
+ `("LD_LIBRARY_PATH" ":" prefix
+ (,(string-append curl "/lib:" vorbis "/lib"))))
+ (wrap-program bin-glx
+ `("LD_LIBRARY_PATH" ":" prefix
+ (,(string-append curl "/lib:" vorbis "/lib"))))
+ (wrap-program bin-dedicated
+ `("LD_LIBRARY_PATH" ":" prefix
+ (,(string-append curl "/lib:" vorbis "/lib"))))
+ #t))))))
+ (inputs
+ `(("xonotic-data" ,xonotic-data)
+ ("alsa-lib" ,alsa-lib)
+ ("curl" ,curl)
+ ("libjpeg" ,libjpeg)
+ ("libmodplug" ,libmodplug)
+ ("libvorbis" ,libvorbis)
+ ("libogg" ,libogg)
+ ("libxpm" ,libxpm)
+ ("libxxf86dga" ,libxxf86dga)
+ ("libxxf86vm" ,libxxf86vm)
+ ("libx11" ,libx11)
+ ("libxext" ,libxext)
+ ("libxau" ,libxau)
+ ("libxdmcp" ,libxdmcp)
+ ("mesa" ,mesa)
+ ("glu" ,glu)
+ ("freetype" ,freetype)
+ ("sdl2" ,sdl2)
+ ("libpng" ,libpng)
+ ("hicolor-icon-theme" ,hicolor-icon-theme)))
+ (native-inputs
+ `(("unzip" ,unzip)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)
+ ("libtool" ,libtool)
+ ("gmp" ,gmp)))
+ (home-page "http://xonotic.org")
+ (synopsis "Fast-paced first-person shooter game")
+ (description
+ "Xonotic is a free, fast-paced first-person shooter.
+The project is geared towards providing addictive arena shooter
+gameplay which is all spawned and driven by the community itself.
+Xonotic is a direct successor of the Nexuiz project with years of
+development between them, and it aims to become the best possible
+open-source FPS of its kind.")
+ (license (list license:gpl2+
+ license:bsd-3 ; /source/d0_blind_id folder and others
+ (license:x11-style "" "See file rcon.pl.")))))