diff options
Diffstat (limited to 'gnu/packages/minetest.scm')
-rw-r--r-- | gnu/packages/minetest.scm | 226 |
1 files changed, 129 insertions, 97 deletions
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index c431942473..fd0dbec6a2 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2021 Trevor Hass <thass@okstate.edu> -;;; Copyright © 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com> +;;; Copyright © 2020, 2021, 2022 Liliana Marie Prikler <liliana.prikler@gmail.com> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; This file is part of GNU Guix. ;;; @@ -26,6 +26,7 @@ #:use-module (gnu packages) #:use-module (gnu packages audio) #:use-module (gnu packages base) + #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages fontutils) #:use-module (gnu packages games) @@ -41,6 +42,7 @@ #:use-module (gnu packages xiph) #:use-module (gnu packages xorg) #:use-module (guix packages) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system copy) @@ -51,7 +53,7 @@ (define-public minetest (package (name "minetest") - (version "5.4.1") + (version "5.5.1") (source (origin (method git-fetch) (uri (git-reference @@ -60,11 +62,8 @@ (file-name (git-file-name name version)) (sha256 (base32 - "062ilb7s377q3hwfhl8q06vvcw2raydz5ljzlzwy2dmyzmdcndb8")) + "042v71gkk0xfixcsn82az2fri0n28fgf9d2zcz31bijqmg5q7imj")) (modules '((guix build utils))) - (patches - (search-patches - "minetest-add-MINETEST_MOD_PATH.patch")) (snippet '(begin ;; Delete bundled libraries. @@ -72,42 +71,49 @@ #t)))) (build-system cmake-build-system) (arguments - `(#:configure-flags - (list "-DRUN_IN_PLACE=0" - "-DENABLE_FREETYPE=1" - "-DENABLE_GETTEXT=1" - "-DENABLE_SYSTEM_JSONCPP=TRUE" - (string-append "-DIRRLICHT_INCLUDE_DIR=" - (assoc-ref %build-inputs "irrlicht") - "/include/irrlicht") - (string-append "-DCURL_INCLUDE_DIR=" - (assoc-ref %build-inputs "curl") - "/include/curl")) + (list + #:configure-flags + #~(list "-DRUN_IN_PLACE=0" + "-DENABLE_FREETYPE=1" + "-DENABLE_GETTEXT=1" + "-DENABLE_SYSTEM_JSONCPP=TRUE" + (string-append "-DIRRLICHTMT_INCLUDE_DIR=" + (search-input-directory %build-inputs + "include/irrlichtmt")) + (string-append "-DCURL_INCLUDE_DIR=" + (search-input-directory %build-inputs + "include/curl")) + (string-append "-DZSTD_INCLUDE_DIR=" + (dirname + (search-input-file %build-inputs + "include/zstd.h"))) + (string-append "-DZSTD_LIBRARY=" + (search-input-file %build-inputs + "lib/libzstd.so"))) #: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* (#:key tests? #:allow-other-keys) - ;; Thanks to our substitutions, the tests should also run - ;; when invoked on the target outside of `guix build'. - (when tests? - (setenv "HOME" "/tmp") - (invoke "src/minetest" "--run-unittests"))))))) + #~(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\"") + (format #f "~s" (search-input-file inputs "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" ; for check + (string-append (getcwd) "/games")))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + ;; Thanks to our substitutions, the tests should also run + ;; when invoked on the target outside of `guix build'. + (when tests? + (setenv "HOME" "/tmp") + (invoke "src/minetest" "--run-unittests"))))))) (native-search-paths (list (search-path-specification (variable "MINETEST_SUBGAME_PATH") @@ -118,23 +124,24 @@ (native-inputs (list pkg-config)) (inputs - `(("coreutils" ,coreutils) - ("curl" ,curl) - ("freetype" ,freetype) - ("gettext" ,gettext-minimal) - ("gmp" ,gmp) - ("irrlicht" ,irrlicht) - ("jsoncpp" ,jsoncpp) - ("libjpeg" ,libjpeg-turbo) - ("libpng" ,libpng) - ("libogg" ,libogg) - ("libvorbis" ,libvorbis) - ("libxxf86vm" ,libxxf86vm) - ("luajit" ,luajit) - ("mesa" ,mesa) - ("ncurses" ,ncurses) - ("openal" ,openal) - ("sqlite" ,sqlite))) + (list coreutils + curl + freetype + gettext-minimal + gmp + irrlicht-for-minetest + jsoncpp + libjpeg-turbo + libpng + libogg + libvorbis + libxxf86vm + luajit + mesa + ncurses + openal + sqlite + `(,zstd "lib"))) (propagated-inputs (list minetest-data)) (synopsis "Infinite-world block sandbox game") @@ -159,22 +166,11 @@ in different ways.") (file-name (git-file-name name version)) (sha256 (base32 - "0i45lbnikvgj9kxdp0yphpjjwjcgp4ibn49xkj78j5ic1s9n8jd4")))) - (build-system trivial-build-system) - (native-inputs - `(("source" ,source))) + "12cpaiww148szvnrc8r8cffwvl33smnrl7k29sh401yv0pbqi3j8")))) + (build-system copy-build-system) (arguments - `(#:modules ((guix build utils)) - #:builder (begin - (use-modules (guix build utils)) - (let ((install-dir (string-append - %output - "/share/minetest/games/minetest_game"))) - (mkdir-p install-dir) - (copy-recursively - (assoc-ref %build-inputs "source") - install-dir) - #t)))) + (list #:install-plan + #~'(("." "/share/minetest/games/minetest_game")))) (synopsis "Main game data for the Minetest game engine") (description "Game data for the Minetest infinite-world block sandbox game.") @@ -208,25 +204,65 @@ as swords and tools made of different materials. It also adds copper rails.") (license license:zlib) (properties `((upstream-name . "Calinou/moreores"))))) +(define-public minetest-sound-api-core + (package + (name "minetest-sound-api-core") + ;; No tags, no releases. The author intended to let users use it as a + ;; submodules for other projects. + ;; https://github.com/mt-mods/basic_materials/issues/4 + (version "2022-02-27") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mt-mods/sound_api_core") + (commit "6956e49e775f325116f8e0c643899c089c691e1e"))) + (sha256 + (base32 "1ys6g2skhkksa4cx9agxhsibj5js8z4y2q1ngis9ddr38p756pcy")) + (file-name (git-file-name name version)) + (snippet + '(begin + (call-with-output-file "mod.conf" + (lambda (port) + (format port "\ +name = sound_api_core"))))))) + (build-system minetest-mod-build-system) + (propagated-inputs '()) + (home-page "https://github.com/mt-mods/sound_api_core") + (synopsis "Core for game agnostic sounds") + (description + "This library can be used to get some specific sounds, whatever the game.") + (license license:expat))) + (define-public minetest-basic-materials (package (name "minetest-basic-materials") ;; Upstream uses dates as version numbers. - (version "2021-12-26") + (version "2022-03-28") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mt-mods/basic_materials") - (commit "0893974b054a2191b5e2d5447ee4fc73f9c35f6a"))) + (commit "9d55f9916d20779ecbf93c7e95dae8adebd2079b"))) (sha256 - (base32 "0p4nnfsjv7284zmgr781zkyjbp049wp1jy1l7n585zzj181ns57p")) - (file-name (git-file-name name version)))) + (base32 "0nzx5mdw26mk2by14hxyvbqckgz8k67vlh2ch30skssvh4984bjw")) + (file-name (git-file-name name version)) + (snippet + '(begin + (use-modules (guix build utils)) + (substitute* "mod.conf" + (("optional_depends =") + "depends = sound_api_core +optional_depends =")) + (substitute* "nodes.lua" + (("basic_materials.modpath \\.\\. \"/sound_api_core/init.lua\"") + "minetest.get_modpath(\"sound_api_core\") .. \"/init.lua\"")))))) (build-system minetest-mod-build-system) (propagated-inputs ;; basic_materials:silver_wire cannot be crafted without ;; moreores:silver_ingot. - (list minetest-moreores)) + (list minetest-moreores minetest-sound-api-core)) (home-page (minetest-topic 21000)) (synopsis "Some \"basic\" materials and items for other Minetest mods to use") (description @@ -299,15 +335,15 @@ special items, intending to make an interesting adventure.") (name "minetest-homedecor-modpack") ;; Upstream doesn't tag releases, so use the release title from ;; ContentDB as version. - (version "2021-12-26") + (version "2022-05-18") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mt-mods/homedecor_modpack") - (commit "a8fceb249d63f081855cfba1fbd6e2aa86365224"))) + (commit "5ffdc26673169e05492141709fbb18e8fb6e5937"))) (sha256 - (base32 "1lqcycgkykd86853jjr50m1qv2as2dlqf52gbds4mhiafslnp9mi")) + (base32 "03pf254r3hnznklw7lf3q4rzqg0a1y4c9rjjhzssf1q7ai5pdrkn")) (file-name (git-file-name name version)))) (build-system minetest-mod-build-system) (propagated-inputs @@ -326,8 +362,8 @@ and a variety of other stuff.") (define-public minetest-mesecons ;; The release on ContentDB does not have its own version number. - (let ((commit "db5879706d04d3480bc4863ce0c03fa73e5f10c7") - (revision "0")) + (let ((commit "27c3c515b49af91c1dbc427f31a820722854eb24") + (revision "63")) (package (name "minetest-mesecons") (version (git-version "1.2.1" revision commit)) @@ -338,7 +374,7 @@ and a variety of other stuff.") (url "https://github.com/minetest-mods/mesecons") (commit commit))) (sha256 - (base32 "04m9s9l3frw1lgki41hgvjsw2zkrvfv0sy750b6j12arzb3lv645")) + (base32 "1l0kwjj8ns8hv6z520g6ph5swknar336dbi5qr3dfsy18ydk1j92")) (file-name (git-file-name name version)))) (build-system minetest-mod-build-system) (home-page "https://mesecons.net") @@ -353,26 +389,22 @@ pressure plates and note blocks. Mesecons has a similar goal to Redstone in Minecraft, but works in its own way, with different rules and mechanics.") ;; LGPL for code, CC-BY-SA for textures. - ;; The README.md and COPYING.txt disagree about the "+" in license:lgpl3+. - ;; For now, assume README.md is correct. Upstream has been asked to - ;; correct the inconsistency: - ;; <https://github.com/minetest-mods/mesecons/issues/575>. - (license (list license:lgpl3+ license:cc-by-sa3.0)) + (license (list license:lgpl3 license:cc-by-sa3.0)) (properties `((upstream-name . "Jeija/mesecons")))))) (define-public minetest-mineclone (package (name "minetest-mineclone") - (version "0.71.0") + (version "0.75.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://git.minetest.land/Wuzzy/MineClone2") + (url "https://git.minetest.land/MineClone2/MineClone2") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "0qm809dqvxc7pa1cr9skmglq9vrbq5hhm4c4m5yi46ldh1v96dgf")))) + "10apja8bp8wmrbjlxg3gvrw5bdc8mizcngvnfi2ff790f6bsc5ip")))) (build-system copy-build-system) (arguments `(#:install-plan @@ -476,15 +508,15 @@ breakers simulate a player punching a node.") (name "minetest-technic") ;; Upstream doesn't keep version numbers, so use the release ;; date on ContentDB instead. - (version "2021-09-11") + (version "2022-02-06") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/minetest-mods/technic") - (commit "140701c99efb60d81bf63c9a9087720b21c414ca"))) + (commit "d2b68a6bef53e34e166deadd64e02b58bcae59a1"))) (sha256 - (base32 "1fkhcv8sg3kxfadc2jnfdw6bxxkkkcczsh4bf62rgwwmv2ky7zrx")) + (base32 "0vmi1y39q0x39s9w0hhgi979a4hf6n1ah5jaazjvmjf02pjcvvy1")) (file-name (git-file-name name version)))) (build-system minetest-mod-build-system) (propagated-inputs @@ -651,7 +683,7 @@ track of important locations.") (define-public minetest-advtrains (package (name "minetest-advtrains") - (version "2.3.1") + (version "2.4.1") (source (origin (method git-fetch) @@ -659,7 +691,7 @@ track of important locations.") (url "https://git.bananach.space/advtrains.git") (commit (string-append "release-" version)))) (sha256 - (base32 "1ijqlchh269jpvmgmdmdvy3nsnk0bszkvvcqk6vaysvxam695ggw")) + (base32 "1q2jj8181pjgsakl28xadv0z4sszq1lb5rpgj070wr0px6mp447p")) (file-name (git-file-name name version)))) (build-system minetest-mod-build-system) (home-page "http://advtrains.de/") |