diff options
author | Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> | 2024-08-31 12:54:59 +0200 |
---|---|---|
committer | Leo Famulari <leo@famulari.name> | 2024-09-10 21:56:44 -0400 |
commit | ef428cf721861c01e21c96db61330a44e9a5ee28 (patch) | |
tree | 34a7e442dc9d6f0c01e529895cff2abd43d2051a /gnu | |
parent | 6d9b835e9a0d81a9ee718bb7a92f7d2ecbcad481 (diff) | |
download | guix-ef428cf721861c01e21c96db61330a44e9a5ee28.tar guix-ef428cf721861c01e21c96db61330a44e9a5ee28.tar.gz |
gnu: minetest: Update to 5.9.0.
The Minetest engine and the "Minetest Game" have been decoupled upstream
in Minetest 5.9.0:
https://dev.minetest.net/Changelog#Minetest_Game
* gnu/packages/minetest.scm (minetest): Update to 5.9.0.
[arguments]: Adjust #:configure-flags and #:phases to account for the
removal of the Minetest Game from the Minetest codebase.
[native-search-paths, synopsis, description]: Likewise.
[inputs]: Remove IRRLICHT-FOR-MINETEST.
(minetest-data): Update to 0.0.0-0.88ecab3. Rename to MINETEST-GAME and
deprecate MINETEST-DATA.
[synopsis, description]: Adjust to account for the decoupling of the game from
the engine.
* gnu/packages/games.scm (irrlicht-for-minetest): Remove variable.
* guix/build-system/minetest.scm (default-minetest-game): New variable.
(%default-modules): Use it.
Change-Id: I0117bd33a2ce5eb1c79fdb29878682081f61dd4e
Signed-off-by: Leo Famulari <leo@famulari.name>
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/games.scm | 24 | ||||
-rw-r--r-- | gnu/packages/minetest.scm | 235 |
2 files changed, 122 insertions, 137 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 30057a4f4a..7f0debac07 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -83,6 +83,7 @@ ;;; Copyright © 2024 Vagrant Cascadian <vagrant@debian.org> ;;; Copyright © 2024 Sébastien Lerique <sl@eauchat.org> ;;; Copyright © 2024 James Smith <jsubuntuxp@disroot.org> +;;; Copyright © 2024 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> ;;; ;;; This file is part of GNU Guix. ;;; @@ -3961,29 +3962,6 @@ for common mesh file formats, and collision detection.") (home-page "https://irrlicht.sourceforge.io/") (license license:zlib))) -(define-public irrlicht-for-minetest - (package - (inherit irrlicht) - (name "irrlicht-for-minetest") - (version "1.9.0mt13") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/minetest/irrlicht") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "11pxg0yh50ym1hvh8va5jbbcjz5dsshj3xxvm3qhkgg96vpism06")))) - (build-system cmake-build-system) - (arguments - ;; No check target. - (list #:tests? #f)) - (inputs - (modify-inputs (package-inputs irrlicht) - (prepend libxi))))) - (define-public mars ;; The latest release on SourceForge relies on an unreleased version of SFML ;; with a different API, so we take the latest version from the official diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 831ccf6e72..4ea4854695 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2021 Trevor Hass <thass@okstate.edu> ;;; Copyright © 2020, 2021, 2022 Liliana Marie Prikler <liliana.prikler@gmail.com> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> +;;; Copyright © 2024 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it @@ -29,7 +30,6 @@ #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages fontutils) - #:use-module (gnu packages games) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages image) @@ -53,105 +53,107 @@ (define-public minetest (package (name "minetest") - (version "5.8.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/minetest/minetest") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1sww17h8z77w38jk19nsqxn8xcj27msq0glbil7pyj4i0ffprjrr")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Delete bundled libraries. - (delete-file-recursively "lib") - #t)))) + (version "5.9.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minetest/minetest") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1h4yn4k0wpjr1h24aiqcnc9xsxgxj4bq757pla2pa9zmh2xf45kk")) + (modules '((guix build utils))) + ;; Delete bundled libraries, keep lib/sha256 because there's no good + ;; upstream, see: + ;; https://github.com/openssl/openssl/blob/master/crypto/sha/sha512.c + ;; "SHA512 low level APIs are deprecated for public use, + ;; but still ok for internal use." Also asked MT devs on IRC for this. + (snippet + '(begin + (with-directory-excursion "lib" + (for-each (lambda (file) + (if (not (string=? file "sha256")) + (delete-file-recursively file))) + (find-files (string-append "lib") #:directories? #t))) + #t)))) (build-system cmake-build-system) (arguments (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")) + #~(list "-DENABLE_LTO=ON" + "-DENABLE_UPDATE_CHECKER=FALSE" (string-append "-DCURL_INCLUDE_DIR=" - (search-input-directory %build-inputs - "include/curl")) + (search-input-directory + %build-inputs "include/curl")) (string-append "-DZSTD_INCLUDE_DIR=" - (dirname - (search-input-file %build-inputs - "include/zstd.h"))) + (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\"") - (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")))) - (delete 'check) - (add-after 'install '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"))))))) + (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\"") + (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_GAME_PATH + (("(un)?setenv\\(\"MINETEST_GAME_PATH\".*\\);") + "(void)0;")) + (setenv "MINETEST_GAME_PATH" ;for check + (string-append (getcwd) "/games")))) + (delete 'check) + (add-after 'install '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") + (variable "MINETEST_GAME_PATH") (files '("share/minetest/games"))) (search-path-specification (variable "MINETEST_MOD_PATH") (files '("share/minetest/mods"))))) - (native-inputs - (list pkg-config)) - (inputs - (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") + (native-inputs (list pkg-config)) + (inputs (list coreutils + curl + freetype + gettext-minimal + gmp + jsoncpp + libjpeg-turbo + libpng + libogg + libvorbis + libxxf86vm + libxi + luajit + mesa + ncurses + openal + sqlite + `(,zstd "lib"))) + (synopsis "Voxel game engine") (description - "Minetest is a sandbox construction game. Players can create and destroy -various types of blocks in a three-dimensional open world. This allows -forming structures in every possible creation, on multiplayer servers or as a -single player. Mods and texture packs allow players to personalize the game -in different ways.") + "Minetest is a voxel game engine that supports modding and game creation +using its Lua modding API. It allows playing a wide range of voxel-based +games, installing mods and texture packs. This package only provides the base +platform, users need to install games themselves (for example, +@code{minetest-game}), either through Guix, the built-in interface or other +sources.") (home-page "https://www.minetest.net/") (license license:lgpl2.1+))) @@ -183,35 +185,40 @@ in different ways.") "openal"))) (synopsis "Infinite-world block sandbox game (server)") (description - "Minetest is a sandbox construction game. Players can create and destroy -various types of blocks in a three-dimensional open world. This allows -forming structures in every possible creation, on multiplayer servers or as a -single player. Mods and texture packs allow players to personalize the game -in different ways. This package provides @command{minetestserver} to run a -Minetest server."))) + "Server for Minetest game engine and gaming platform. Allows hosting +Minetest games with multiplayer support. This package provides +@command{minetestserver} to run a Minetest server."))) -(define minetest-data - (package - (name "minetest-data") - (version (package-version minetest)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/minetest/minetest_game") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1pq4rm15lzwcqv6npgyz6v89hi3zj8zybw25n9i0d27qj786xc4z")))) - (build-system copy-build-system) - (arguments - (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.") - (home-page "https://www.minetest.net/") - (license license:lgpl2.1+))) +(define-public minetest-game + (let ((commit "88ecab34d98550c8eb77f49ac2866b480a6e707a") + (revision "0")) + (package + (name "minetest-game") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minetest/minetest_game") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pvr3m7kxrriabw20sy6rhx0givh5ic85dk5g88cbbsy83admsp0")))) + (build-system copy-build-system) + (arguments + (list + #:install-plan #~'(("." "/share/minetest/games/minetest_game")))) + (synopsis "Ex-official game for Minetest game engine") + (description + "A game for the Minetest voxel game platform. It provides a very basic +Minecraft-like base for some mods. It is currently in maintenance mode +and gets no new features.") + (home-page "https://www.minetest.net/") + (license license:lgpl2.1+)))) + +;; This package is deprecated. "Minetest Game" is no longer the official game. +(define-public minetest-data + (deprecated-package "minetest-data" minetest-game)) (define-public (minetest-topic topic-id) "Return an URL (as a string) pointing to the forum topic with |