summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/games.scm88
1 files changed, 73 insertions, 15 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 1526550006..fedf6591bd 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -94,6 +94,7 @@
;;; Copyright © 2025 Adrien 'neox' Bourmault <neox@gnu.org>
;;; Copyright © 2025 Ada Stevenson <adanskana@gmail.com>
;;; Copyright © 2025 Gabriel Santos <gabrielsantosdesouza@disroot.org>
+;;; Copyright © 2025 Aiden Isik <aidenisik+git@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -8119,7 +8120,7 @@ fight against their plot and save his fellow rabbits from slavery.")
(define-public 0ad-data
(package
(name "0ad-data")
- (version "0.0.26-alpha")
+ (version "0.27.1")
(source
(origin
(method url-fetch)
@@ -8127,7 +8128,7 @@ fight against their plot and save his fellow rabbits from slavery.")
version "-unix-data.tar.xz"))
(file-name (string-append name "-" version ".tar.xz"))
(sha256
- (base32 "0z9dfw2hn2fyrx70866lv5464fbagdb8dip321wq10pqb22y805j"))))
+ (base32 "16592xq1ncjxc072rd4lzn2bp941fmfj85r0q1gh52qkvxnjszl3"))))
(build-system trivial-build-system)
(native-inputs (list tar unzip xz))
(arguments
@@ -8167,7 +8168,7 @@ fight against their plot and save his fellow rabbits from slavery.")
(define-public 0ad
(package
(name "0ad")
- (version "0.0.26-alpha")
+ (version "0.27.1")
(source
(origin
(method url-fetch)
@@ -8175,7 +8176,7 @@ fight against their plot and save his fellow rabbits from slavery.")
version "-unix-build.tar.xz"))
(file-name (string-append name "-" version ".tar.xz"))
(sha256
- (base32 "0jzfq09ispi7740c01h6yqxqv9y3zx66d217z32pfbiiwgvns71f"))))
+ (base32 "1yvb04bxq1r7cva58xx0rgzdlx6ra1hp6w1p517x4s2rxdg3b9d0"))))
;; A snippet here would cause a build failure because of timestamps
;; reset. See https://bugs.gnu.org/26734.
(inputs
@@ -8185,7 +8186,7 @@ fight against their plot and save his fellow rabbits from slavery.")
fmt
freetype
gloox
- icu4c
+ icu4c-73
libidn
libpng
libsodium
@@ -8193,7 +8194,7 @@ fight against their plot and save his fellow rabbits from slavery.")
libxcursor
libxml2
miniupnpc
- mozjs-78
+ mozjs-115
openal
sdl2
wxwidgets
@@ -8204,7 +8205,8 @@ fight against their plot and save his fellow rabbits from slavery.")
cxxtest
mesa
pkg-config
- python-2))
+ python
+ premake5))
(build-system gnu-build-system)
(arguments
`(#:make-flags '("config=release" "verbose=1" "-C" "build/workspaces/gcc")
@@ -8222,16 +8224,61 @@ fight against their plot and save his fellow rabbits from slavery.")
"\"")))))
(add-after 'unpack 'fix-mozjs-compatibility
;; 0ad only builds fine with a specific version of mozjs
- ;; (version 78.6 for 0ad-0.0.25).
- ;; Here we change the error in case of version mismatch to a warning,
- ;; and add some minor compatibility fixes.
+ ;; (version 115.16.1 for 0ad-0.27.1).
+ ;; Here we change the error in case of version mismatch to a warning.
(lambda _
(substitute* "source/scriptinterface/ScriptTypes.h"
(("#error Your compiler is trying to use")
- "#warning Your compiler is trying to use"))
- (substitute* "source/scriptinterface/ScriptContext.cpp"
- (("JS::PrepareZoneForGC\\(")
- "JS::PrepareZoneForGC(m_cx, "))))
+ "#warning Your compiler is trying to use"))))
+ (add-after 'unpack 'patch-python-shebangs
+ ;; A couple Python scripts point to 'python' rather than 'python3'.
+ ;; They work fine under python3, so let's fix that.
+ (lambda _
+ (substitute* "source/tools/webservices/maint_graphics.py"
+ (("#!/usr/bin/env python")
+ "#!/usr/bin/env python3"))
+ (substitute* "source/tools/webservices/manage.py"
+ (("#!/usr/bin/env python")
+ "#!/usr/bin/env python3"))))
+ (add-after 'unpack 'prepare-builtin-libs
+ ;; Builtin libraries are included in the tarball as other tarballs.
+ ;; They're usually extracted during the build, but then shebangs
+ ;; within the libs don't get patched, so we do it here ourselves.
+ (lambda _
+ (let ((fcollada-version "28209")
+ (nvtt-version "28209"))
+ (with-directory-excursion "libraries/source/fcollada"
+ (invoke "tar" "-xvf"
+ (string-append "fcollada-" fcollada-version ".tar.xz"))
+ (substitute* "build.sh"
+ (("rm -Rf fcollada-[$][{]PV[}]")
+ "")
+ (("\"[$][{]TAR[}]\" xf fcollada-[$][{]PV[}].tar.xz")
+ "")))
+ (with-directory-excursion "libraries/source/nvtt"
+ (invoke "tar" "-xvf"
+ (string-append "nvtt-" nvtt-version ".tar.xz"))
+ (substitute* "build.sh"
+ (("rm -Rf nvtt-[$][{]PV[}]")
+ "")
+ (("\"[$][{]TAR[}]\" xf nvtt-[$][{]PV[}].tar.xz")
+ ""))))))
+ (add-after 'unpack 'fix-gmake2-references
+ ;; The current version of 0AD expects premake action 'gmake2',
+ ;; this was renamed to just 'gmake', so we patch to reflect that.
+ ;; Remove this when updating to the next release (fixed in main).
+ (lambda _
+ (substitute* "build/premake/cxxtest/cxxtest.lua"
+ (("gmake2")
+ "gmake"))
+ (substitute* "build/premake/premake5.lua"
+ (("if _ACTION == \"gmake\" then")
+ "if _ACTION == \"gmakelegacy\" then")
+ (("if _ACTION == \"gmake2\" then")
+ "if _ACTION == \"gmake\" then"))
+ (substitute* "build/workspaces/update-workspaces.sh"
+ (("gmake2")
+ "gmake"))))
(replace 'configure
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(let* ((jobs (number->string (parallel-job-count)))
@@ -8239,15 +8286,25 @@ fight against their plot and save his fellow rabbits from slavery.")
(lib (string-append out "/lib"))
(data (string-append out "/share/0ad")))
(setenv "JOBS" (string-append "-j" jobs))
- (setenv "CC" "gcc")
+ (setenv "CC" ,(cc-for-target))
(with-directory-excursion "build/workspaces"
(apply invoke
`("./update-workspaces.sh"
,(string-append "--libdir=" lib)
,(string-append "--datadir=" data)
;; TODO: "--with-system-nvtt"
+ "--with-system-premake5"
"--with-system-mozjs"
,@(if tests? '() '("--without-tests"))))))))
+ (add-before 'build 'build-builtin-libs
+ (lambda _
+ (let ((jobs (number->string (parallel-job-count))))
+ (setenv "JOBS" (string-append "-j" jobs))
+ (setenv "CC" ,(cc-for-target))
+ (with-directory-excursion "libraries/source/fcollada"
+ (invoke "./build.sh"))
+ (with-directory-excursion "libraries/source/nvtt"
+ (invoke "./build.sh")))))
(delete 'check)
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
@@ -8271,6 +8328,7 @@ fight against their plot and save his fellow rabbits from slavery.")
(for-each (lambda (file)
(install-file file lib))
(find-files "system" "\\.so$"))
+ (copy-recursively "../libraries/source/nvtt/lib" lib)
;; binaries
(install-file "system/pyrogenesis" bin)
(with-directory-excursion bin