[PATCH] Update minetest

DoneSubmitted by Vivien Kraus.
Details
3 participants
  • Liliana Marie Prikler
  • Maxime Devos
  • Vivien Kraus
Owner
unassigned
Severity
normal
V
V
Vivien Kraus wrote on 29 May 14:47 +0200
(name . guix-patches)(address . guix-patches@gnu.org)
88c65d08cae0393ec661df673bd0e815a10df7b1.camel@planete-kraus.eu
Dear guix,

minetest 5.5.1 has been released some time ago. Most notably, it
provides its own fork of irrlicht. Both minetest and irrlichtmt evolve
together, in the sense that upgrading irrlichtmt without upgrading
minetest breaks the latter.

I have also updated a set of mods I use.

Best regards,

Vivien
From a30e5b1ecb652534392ada264c47c4f543fa56dd Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 13:37:27 +0200
Subject: [PATCH v1 1/8] gnu: minetest: Update to 5.5.1.

* gnu/local.mk (dist_patch_DATA): Remove minetest-add-MINETEST_MOD_PATH.patch.
* gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch: Delete it.
* gnu/packages/minetest.scm (irrlichtmt): New variable.
(minetest): Update to 5.5.1.
[patches]: Remove patch.
[configure-flags]: find irrlichtmt and zstd.
[inputs]: Replace irrlicht with irrlichtmt, add zstd.
(minetest-data): Update hash.
---
gnu/local.mk | 1 -
gnu/packages/minetest.scm | 55 ++++--
.../minetest-add-MINETEST_MOD_PATH.patch | 156 ------------------
3 files changed, 44 insertions(+), 168 deletions(-)
delete mode 100644 gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch

Toggle diff (161 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index bc82c5ba9f..df5916ce70 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1488,7 +1488,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/mesa-skip-tests.patch			\
   %D%/packages/patches/meson-allow-dirs-outside-of-prefix.patch	\
   %D%/packages/patches/mhash-keygen-test-segfault.patch		\
-  %D%/packages/patches/minetest-add-MINETEST_MOD_PATH.patch	\
   %D%/packages/patches/mingw-w64-6.0.0-gcc.patch		\
   %D%/packages/patches/mingw-w64-dlltool-temp-prefix.patch	\
   %D%/packages/patches/mingw-w64-reproducible-gendef.patch	\
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index c431942473..559d513407 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -26,6 +26,7 @@ (define-module (gnu packages minetest)
   #: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)
@@ -48,10 +49,38 @@ (define-module (gnu packages minetest)
   #:use-module (guix build-system minetest)
   #:use-module ((guix licenses) #:prefix license:))
 
+(define-public irrlichtmt
+  ;; irrlichtmt and minetest evolve together. This may not be the latest
+  ;; release, but that’s the version that was released when minetest was
+  ;; released.
+  (package
+    (inherit irrlicht)
+    (name "irrlichtmt")
+    (version "1.9.0mt5")
+    (source
+     (origin
+       (inherit (package-source irrlicht))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/minetest/irrlicht")
+             (commit version)))
+       (sha256
+        (base32
+         "1jxk1x0f60n8lrz8a6x62aj2pqg0qnbajsld3lqncvwsfbi0xjx1"))
+       (patches '())
+       (snippet '(begin #t))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f))
+    (description
+     "This is a fork of irrlicht tailored for minetest.")
+    (home-page
+     "https://github.com/minetest/irrlicht")))
+
 (define-public minetest
   (package
     (name "minetest")
-    (version "5.4.1")
+    (version "5.5.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -60,11 +89,8 @@ (define-public minetest
               (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.
@@ -77,12 +103,18 @@ (define-public minetest
              "-DENABLE_FREETYPE=1"
              "-DENABLE_GETTEXT=1"
              "-DENABLE_SYSTEM_JSONCPP=TRUE"
-             (string-append "-DIRRLICHT_INCLUDE_DIR="
-                            (assoc-ref %build-inputs "irrlicht")
+             (string-append "-DIRRLICHTMT_INCLUDE_DIR="
+                            (assoc-ref %build-inputs "irrlichtmt")
                             "/include/irrlicht")
              (string-append "-DCURL_INCLUDE_DIR="
                             (assoc-ref %build-inputs "curl")
-                            "/include/curl"))
+                            "/include/curl")
+             (string-append "-DZSTD_INCLUDE_DIR="
+                            (assoc-ref %build-inputs "zstd")
+                            "/include/zstd")
+             (string-append "-DZSTD_LIBRARY="
+                            (assoc-ref %build-inputs "zstd")
+                            "/lib/libzstd.so"))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-sources
@@ -123,7 +155,7 @@ (define-public minetest
        ("freetype" ,freetype)
        ("gettext" ,gettext-minimal)
        ("gmp" ,gmp)
-       ("irrlicht" ,irrlicht)
+       ("irrlichtmt" ,irrlichtmt)
        ("jsoncpp" ,jsoncpp)
        ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
@@ -134,7 +166,8 @@ (define-public minetest
        ("mesa" ,mesa)
        ("ncurses" ,ncurses)
        ("openal" ,openal)
-       ("sqlite" ,sqlite)))
+       ("sqlite" ,sqlite)
+       ("zstd" ,zstd "lib")))
     (propagated-inputs
      (list minetest-data))
     (synopsis "Infinite-world block sandbox game")
@@ -159,7 +192,7 @@ (define minetest-data
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0i45lbnikvgj9kxdp0yphpjjwjcgp4ibn49xkj78j5ic1s9n8jd4"))))
+                "12cpaiww148szvnrc8r8cffwvl33smnrl7k29sh401yv0pbqi3j8"))))
     (build-system trivial-build-system)
     (native-inputs
      `(("source" ,source)))
diff --git a/gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch b/gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch
deleted file mode 100644
index 41338e6e6f..0000000000
--- a/gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch
+++ /dev/null
@@ -1,156 +0,0 @@
-From d10ea2ad7efc2364a8a2007b4c6d3e85511e2f84 Mon Sep 17 00:00:00 2001
-From: Maxime Devos <maximedevos@telenet.be>
-Date: Tue, 3 Aug 2021 01:00:23 +0200
-Subject: [PATCH] Add environment variable MINETEST_MOD_PATH
-
-This adds an environment variable MINETEST_MOD_PATH.
-When it exists, Minetest will look there for mods
-in addition to ~/.minetest/mods/.  Mods can still be
-installed to ~/.minetest/mods/ with the built-in installer.
-
-With thanks to Liliana Marie Prikler.
----
- builtin/mainmenu/pkgmgr.lua       |  7 +++----
- doc/menu_lua_api.txt              |  8 +++++++-
- src/content/subgames.cpp          | 11 +++++++++++
- src/script/lua_api/l_mainmenu.cpp | 23 +++++++++++++++++++++++
- src/script/lua_api/l_mainmenu.h   |  2 ++
- 5 files changed, 46 insertions(+), 5 deletions(-)
-
-diff --git a/builtin/mainmenu/pkgmgr.lua b/builtin/mainmenu/pkgmgr.lua
-index 787936e31..d8fba0ebe 100644
---- a/builtin/mainmenu/pkgmgr.lua
-+++ b/builtin/mainmenu/pkgmgr.lua
-@@ -682,10 +682,9 @@ function pkgmgr.preparemodlist(data)
- 	local game_mods = {}
- 
- 	--read global mods
--	local modpath = core.get_modpath()
--
-- if modpath ~= nil and
-- modpath ~= "" then
-+ local modpaths = core.get_modpaths()
-+ --XXX what was ‘modpath ~= ""’ and ‘modpath ~= nil’ for?
-+ for _,modpath in ipairs(modpaths) do
- get_mods(modpath,global_mods)
- end
-
-diff --git a/doc/menu_lua_api.txt b/doc/menu_lua_api.txt
-index b3975bc1d..132444b14 100644
---- a/doc/menu_lua_api.txt
-+++ b/doc/menu_lua_api.txt
-@@ -218,7 +218,13 @@ Package - content which is downloadable from the content db, may or may not be i
- * returns path to global user data,
- the directory that contains user-provided mods, worlds, games, and texture packs.
- * core.get_modpath() (possible in async calls)
-- * returns path to global modpath
-+ * returns path to global modpath, where mods can be installed
-+* core.get_modpaths() (possible in async calls)
-+ * returns list of paths to global modpaths, where mods have been installed
-+
-+ The difference with "core.get_modpath" is that no mods should be installed in these
-+ directories by Minetest -- they might be read-only.
-+
- * core.get_clientmodpath() (possible in async calls)
- * returns path to global client-side modpath
- * core.get_gamepath() (possible in async calls)
-diff --git a/src/content/subgames.cpp b/src/content/subgames.cpp
-index e9dc609b0..d73f95a1f 100644
---- a/src/content/subgames.cpp
-+++ b/src/content/subgames.cpp
-@@ -61,6 +61,12 @@ std::string getSubgamePathEnv()
- return subgame_path ? std::string(subgame_path) : "";
- }
-
-+std::string getModPathEnv()
-+{
-+ char *mod_path = getenv("MINETEST_MOD_PATH");
-+ return mod_path ? std::string(mod_path) : "";
-+}
-+
- SubgameSpec findSubgame(const std::string &id)
- {
- if (id.empty())
-@@ -110,6 +116,11 @@ SubgameSpec findSubgame(const std::string &id)
- std::set<std::string> mods_paths;
- if (!user_game)
- mods_paths.insert(share + DIR_DELIM + "mods");
-+
-+ Strfnd mod_search_paths(getModPathEnv());
-+ while (!mod_search_paths.at_end())
-+ mods_paths.insert(mod_search_paths.next(PATH_DELIM));
-+
- if (user != share || user_game)
- mods_paths.insert(user + DIR_DELIM + "mods");
-
-diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp
-index 3e9709bde..903ac3a22 100644
---- a/src/script/lua_api/l_mainmenu.cpp
-+++ b/src/script/lua_api/l_mainmenu.cpp
-@@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
- #include "lua_api/l_internal.h"
- #include "common/c_content.h"
- #include "cpp_api/s_async.h"
-+#include "util/strfnd.h"
- #include "gui/guiEngine.h"
- #include "gui/guiMainMenu.h"
- #include "gui/guiKeyChangeMenu.h"
-@@ -502,6 +503,26 @@ int ModApiMainMenu::l_get_modpath(lua_State *L)
- return 1;
- }
-
-+/******************************************************************************/
-+int ModApiMainMenu::l_get_modpaths(lua_State *L)
-+{
-+ const char *c_modpath = getenv("MINETEST_MOD_PATH");
-+ if (c_modpath == NULL)
-+ c_modpath = "";
-+ int index = 1;
-+ lua_newtable(L);
-+ Strfnd mod_search_paths{std::string(c_modpath)};
-+ while (!mod_search_paths.at_end()) {
-+ std::string component = mod_search_paths.next(PATH_DELIM);
-+ lua_pushstring(L, component.c_str());
-+ lua_rawseti(L, -2, index);
-+ index++;
-+ }
-+ ModApiMainMenu::l_get_modpath(L);
-+ lua_rawseti(L, -2, index);
-+ return 1;
-+}
-+
- /******************************************************************************/
- int ModApiMainMenu::l_get_clientmodpath(lua_State *L)
- {
-@@ -949,6 +970,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top)
- API_FCT(get_mapgen_names);
- API_FCT(get_user_path);
- API_FCT(get_modpath);
-+ API_FCT(get_modpaths);
- API_FCT(get_clientmodpath);
- API_FCT(get_gamepath);
- API_FCT(get_texturepath);
-@@ -983,6 +1005,7 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top)
- API_FCT(get_mapgen_names);
- API_FCT(get_user_path);
- API_FCT(get_modpath);
-+ API_FCT(get_modpaths);
- API_FCT(get_clientmodpath);
- API_FCT(get_gamepath);
- API_FCT(get_texturepath);
-diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h
-index 33ac9e721..a6a54a2cb 100644
---- a/src/script/lua_api/l_mainmenu.h
-+++ b/src/script/lua_api/l_mainmenu.h
-@@ -112,6 +112,8 @@ class ModApiMainMenu: public ModApiBase
-
- static int l_get_modpath(lua_State *L);
-
-+ static int l_get_modpaths(lua_State *L);
-+
- static int l_get_clientmodpath(lua_State *L);
-
- static int l_get_gamepath(lua_State *L);
---
-2.32.0
-

base-commit: e640da33f3f142f24af8c63b6e1350865096bae1
prerequisite-patch-id: 3c9c32657ad1068f7311b03b26dfb65c5f6db8e1
prerequisite-patch-id: 1f9c4dbe552048db79d69804d330fe39bf6755a0
prerequisite-patch-id: 5e408465a1d766662ee1c33a4b807a779a4c664b
prerequisite-patch-id: eb8a798c6dc097419cb5bdf51641e3169e681e2e
prerequisite-patch-id: ea2b7638049e23e80fe2716e78900ea14cf922cd
prerequisite-patch-id: ca6164abf3d0287d49f726b3ae92b75ef94a8103
prerequisite-patch-id: 3265f90d5769feeed4b62de20c4f69c5a5e7a81d
prerequisite-patch-id: f85ec750b9f798b9e41bb00d7edb82d421353b33
prerequisite-patch-id: 6b60605cbf22b6ad4eff2f0da74a74c30fe2a9c8
prerequisite-patch-id: d6051ad60e172c8f11ef40772e502d86f4333acb
prerequisite-patch-id: 1dbff988e2360cb1ee029f64f300ce44c11d76e9
prerequisite-patch-id: 66ad9148ea45252dbef3037bd7a50a4ec32e2b5b
prerequisite-patch-id: 0c3aa04452a6a1d3f56951aa177a174a032ff299
prerequisite-patch-id: 42948a36a16f9824c17b8e7b7294ea33e81eb238
prerequisite-patch-id: b1b2b2215d1a71bfac6239766067c34cfbb70ebb
prerequisite-patch-id: 91f834615aed988f8f2d9b1655721debd65e0cdf
prerequisite-patch-id: 4a5b6330f14470cc7688ba1ffabd38414d3d9860
prerequisite-patch-id: 49c8b136f2165e7fc1d5d6b137f7773836e83a6d
prerequisite-patch-id: 4551ff825ddc78669180eaa1826e8b581e2726f7
prerequisite-patch-id: 0c89c6e62602aded309ea47143fea68aed8c1617
prerequisite-patch-id: 4ad64d116fb8674505d7411a296137046096c60c
prerequisite-patch-id: 9939453dfc6bcac6f98aafdf60812b2bf884fb3a
prerequisite-patch-id: 8c206238029371a28c49cd914d7aae780114b10c
prerequisite-patch-id: f95b376c7e13855b8d3784a6cefc4800b945d502
prerequisite-patch-id: 8bf19e17210e0d93cd99a1c4a736e05d9f9df3bb
prerequisite-patch-id: d9bc7451845593d839c8921801d3db8ab58f14ad
prerequisite-patch-id: 836dc57a4ee4aa788d05eed45b3804c139e4f995
prerequisite-patch-id: 0b4c563142f8f5ae6ca10e34b814266310be2686
--
2.36.1
From e1f5cc167dd0a1b1c09772966c1d7944efb9ee8c Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:14:15 +0200
Subject: [PATCH v1 2/8] gnu: minetest: Add minetest-sound-api-core.

* gnu/packages/minetest.scm (minetest-sound-api-core): New variable.
---
gnu/packages/minetest.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 559d513407..dad1c7978f 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -241,6 +241,34 @@ (define-public minetest-moreores
     (license license:zlib)
     (properties `((upstream-name . "Calinou/moreores")))))
 
+(define-public minetest-sound-api-core
+  (package
+    (name "minetest-sound-api-core")
+    ;; No tags, no releases. This is used as a submodule.
+    (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")
-- 
2.36.1
From c06f31a23be065ad858c19de028595513cbc538e Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:14:44 +0200
Subject: [PATCH v1 3/8] gnu: minetest-basic-materials: Update to 2022-03-28.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/minetest.scm (minetest-basic-materials): Update to
2022-03-28 (commet 9d55f991…).
[snippet]: Make sound_api_core a dependency, not a submodule.
---
gnu/packages/minetest.scm | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)

Toggle diff (43 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index dad1c7978f..9528b92881 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -273,21 +273,31 @@ (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
-- 
2.36.1
From a195a6856f80f2306f23387e4260cc084361db47 Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:20:09 +0200
Subject: [PATCH v1 4/8] gnu: minetest-homedecor-modpack: Update to 2022-05-18.

* gnu/packages/minetest.scm (minetest-homedecor-modpack): Update to
2022-05-18 (commit ID from may 17).
---
gnu/packages/minetest.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (25 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 9528b92881..f41451be7a 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -370,15 +370,15 @@ (define-public minetest-homedecor-modpack
     (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
-- 
2.36.1
From bcba82e0b64b841a4f5e22ef264e8a240dd344e1 Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:27:44 +0200
Subject: [PATCH v1 5/8] gnu: minetest-mesecons: Update to 2022-04-01.

* gnu/packages/minetest.scm (minetest-mesecons): Update to 2022-04-01 (use
github tag).
---
gnu/packages/minetest.scm | 53 ++++++++++++++++++---------------------
1 file changed, 25 insertions(+), 28 deletions(-)

Toggle diff (72 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index f41451be7a..0a59fa1c62 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -396,40 +396,37 @@ (define-public minetest-homedecor-modpack
     (properties `((upstream-name . "VanessaE/homedecor_modpack")))))
 
 (define-public minetest-mesecons
-  ;; The release on ContentDB does not have its own version number.
-  (let ((commit "db5879706d04d3480bc4863ce0c03fa73e5f10c7")
-        (revision "0"))
-    (package
-      (name "minetest-mesecons")
-      (version (git-version "1.2.1" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/minetest-mods/mesecons")
-               (commit commit)))
-         (sha256
-          (base32 "04m9s9l3frw1lgki41hgvjsw2zkrvfv0sy750b6j12arzb3lv645"))
-         (file-name (git-file-name name version))))
-      (build-system minetest-mod-build-system)
-      (home-page "https://mesecons.net")
-      (synopsis
-       "Digital circuitry for Minetest, including wires, buttons and lights")
-      (description
-       "Mesecons is a mod for Minetest implementing various items related
+  (package
+    (name "minetest-mesecons")
+    (version "2022-04-01")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/minetest-mods/mesecons")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1fpl2zpjp68qj9njs5qiichkfixh66rkgh6brgn6xi3ri4zlx1i1"))
+       (file-name (git-file-name name version))))
+    (build-system minetest-mod-build-system)
+    (home-page "https://mesecons.net")
+    (synopsis
+     "Digital circuitry for Minetest, including wires, buttons and lights")
+    (description
+     "Mesecons is a mod for Minetest implementing various items related
 to digital circuitry, such as wires, buttons, lights and programmable
 controllers.  Among other things, there are also pistons, solar panels,
 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))
-      (properties `((upstream-name . "Jeija/mesecons"))))))
+    ;; 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))
+    (properties `((upstream-name . "Jeija/mesecons")))))
 
 (define-public minetest-mineclone
   (package
-- 
2.36.1
From 3efcac5a0736f731a8933fec407373b7eafb1818 Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:30:23 +0200
Subject: [PATCH v1 6/8] gnu: minetest-mineclone: Update to 0.75.0.

* gnu/packages/minetest.scm (minetest-mineclone): Update to 0.75.0.
---
gnu/packages/minetest.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 0a59fa1c62..081a8545b2 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -431,16 +431,16 @@ (define-public minetest-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
-- 
2.36.1
From 66f8717a306b33b15af0bf5345f52d6af23e6bdb Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:35:15 +0200
Subject: [PATCH v1 7/8] gnu: minetest-technic: Update to 2022-02-06.

* gnu/packages/minetest.scm (minetest-technic): Update to 2022-02-06.
---
gnu/packages/minetest.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (25 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 081a8545b2..655d49c0f7 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -544,15 +544,15 @@ (define-public minetest-technic
     (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
-- 
2.36.1
From e36f425bda3e6ff62d13f087812e1d5c09281ef1 Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:43:28 +0200
Subject: [PATCH v1 8/8] gnu: minetest-advtrains: Update to 2.4.1.

* gnu/packages/minetest.scm (minetest-advtrains): Update to 2.4.1.
---
gnu/packages/minetest.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 655d49c0f7..5545dcc751 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -719,7 +719,7 @@ (define-public minetest-unified-inventory
 (define-public minetest-advtrains
   (package
     (name "minetest-advtrains")
-    (version "2.3.1")
+    (version "2.4.1")
     (source
      (origin
        (method git-fetch)
@@ -727,7 +727,7 @@ (define-public minetest-advtrains
              (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/")
-- 
2.36.1
L
L
Liliana Marie Prikler wrote on 29 May 15:48 +0200
(name . Maxime Devos)(address . maximedevos@telenet.be)
55cb9d13a8fbd5474aaf72f7c0c21a59eef9d76b.camel@gmail.com
Hi,

Am Sonntag, dem 29.05.2022 um 14:47 +0200 schrieb Vivien Kraus:
Toggle quote (12 lines)
> Subject: [PATCH v1 1/8] gnu: minetest: Update to 5.5.1.
>
> * gnu/local.mk (dist_patch_DATA): Remove minetest-add-
> MINETEST_MOD_PATH.patch.
> * gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch: Delete
> it.
> * gnu/packages/minetest.scm (irrlichtmt): New variable.
> (minetest): Update to 5.5.1.
> [patches]: Remove patch.
> [configure-flags]: find irrlichtmt and zstd.
> [inputs]: Replace irrlicht with irrlichtmt, add zstd.
> (minetest-data): Update hash.
I'd name "irrlichtmt" to "irrlicht-for-minetest" and perhaps split this
patch into two. Even if they need to be bumped "at once" later, I
don't think this holds for the initial introduction.

Toggle quote (3 lines)
> * gnu/packages/minetest.scm (minetest-basic-materials): Update to
> 2022-03-28 (commet 9d55f991…).
> [snippet]: Make sound_api_core a dependency, not a submodule.
Again doing two things at once. I think it'd be wiser to first do the
updates, then add minetest-sound-core, then add the snippets. WDYT?

Toggle quote (2 lines)
> * gnu/packages/minetest.scm (minetest-homedecor-modpack): Update to
> 2022-05-18 (commit ID from may 17).
LGTM¹

Toggle quote (2 lines)
> * gnu/packages/minetest.scm (minetest-mesecons): Update to 2022-04-01
> (use github tag).
LGTM²

Toggle quote (1 lines)
> * gnu/packages/minetest.scm (minetest-mineclone): Update to 0.75.0.
LGTM¹

Toggle quote (1 lines)
> * gnu/packages/minetest.scm (minetest-technic): Update to 2022-02-06.
LGTM¹

Toggle quote (1 lines)
> * gnu/packages/minetest.scm (minetest-advtrains): Update to 2.4.1.
LGTM¹

Cheers

¹ I did not check for hash mismatches or ContenDB version equivalence.
² As pointed out by Maxime elsewhere in the mailing list, Minetest
packages usually have flaky tags in their forges, so someone needs to
look closer at whether this is going to break in the future.

Putting Maxime onto CC to resolve these footnotes :)
V
V
Vivien Kraus wrote on 29 May 17:43 +0200
(name . Maxime Devos)(address . maximedevos@telenet.be)
12632f4ae00e1b060afa612aa66a54f7a64beddb.camel@planete-kraus.eu
Hello!

Le dimanche 29 mai 2022 à 15:48 +0200, Liliana Marie Prikler a écrit :
Toggle quote (18 lines)
> Am Sonntag, dem 29.05.2022 um 14:47 +0200 schrieb Vivien Kraus:
> > Subject: [PATCH v1 1/8] gnu: minetest: Update to 5.5.1.
> >
> > * gnu/local.mk (dist_patch_DATA): Remove minetest-add-
> > MINETEST_MOD_PATH.patch.
> > * gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch: Delete
> > it.
> > * gnu/packages/minetest.scm (irrlichtmt): New variable.
> > (minetest): Update to 5.5.1.
> > [patches]: Remove patch.
> > [configure-flags]: find irrlichtmt and zstd.
> > [inputs]: Replace irrlicht with irrlichtmt, add zstd.
> > (minetest-data): Update hash.
> I'd name "irrlichtmt" to "irrlicht-for-minetest" and perhaps split
> this
> patch into two.  Even if they need to be bumped "at once" later, I
> don't think this holds for the initial introduction.

I renamed the fork, and I split the commit as: introduce the fork, and
then (update minetest + use irrlicht-for-minetest). If I split the
minetest update commit further, it will create a broken commit. I was
told on #guix that I should not create such commits. Quoting nckx:

vivien: No, each commit should result in a sane state whenever
possible.

Toggle quote (7 lines)
> > * gnu/packages/minetest.scm (minetest-basic-materials): Update to
> > 2022-03-28 (commet 9d55f991…).
> > [snippet]: Make sound_api_core a dependency, not a submodule.
> Again doing two things at once.  I think it'd be wiser to first do
> the
> updates, then add minetest-sound-core, then add the snippets.  WDYT?

minetest-sound-core is introduced as a submodule for the
basic_materials update. So the code for it is not present at all. If I
first update basic_materials, then the tests will fail because it can’t
find sound_core. Do you mean that I should first try to respect the
will of the author and add it as a submodule (I don’t know how to do
that) and then take it out as a separate package?

Toggle quote (3 lines)
> ¹ I did not check for hash mismatches or ContenDB version
> equivalence.

I just looked up the date and found a the commit in github that was
there (usually contentdb reports the next day as the github commit). Is
there something more to do?

Toggle quote (4 lines)
> ² As pointed out by Maxime elsewhere in the mailing list, Minetest
> packages usually have flaky tags in their forges, so someone needs to
> look closer at whether this is going to break in the future.

Yes. Mesecons was using version numbers and then the latest tag is a
date. Given that it’s April 1st, maybe there’s something funny occuring
here, but the changes around that day looked reasonable to my untrained
eye. However, one thing I didn’t notice at first was the drop of the +
in the license. Sorry.

Vivien
From 998f70a0ad4e0473a4cf927bed271732b10d4d12 Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 13:37:27 +0200
Subject: [PATCH v2 1/9] gnu: minetest: Add irrlicht-for-minetest.

* gnu/packages/minetest.scm (irrlichtmt-for-minetest): New variable.
---
gnu/packages/minetest.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index c431942473..a21b8c1ad3 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -48,6 +48,34 @@ (define-module (gnu packages minetest)
   #:use-module (guix build-system minetest)
   #:use-module ((guix licenses) #:prefix license:))
 
+(define-public irrlicht-for-minetest
+  ;; The irrlicht fork and minetest evolve together. This may not be the
+  ;; latest release, but it is the release compatible with the latest minetest
+  ;; release.
+  (package
+    (inherit irrlicht)
+    (name "irrlicht-for-minetest")
+    (version "1.9.0mt5")
+    (source
+     (origin
+       (inherit (package-source irrlicht))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/minetest/irrlicht")
+             (commit version)))
+       (sha256
+        (base32
+         "1jxk1x0f60n8lrz8a6x62aj2pqg0qnbajsld3lqncvwsfbi0xjx1"))
+       (patches '())
+       (snippet '(begin #t))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f))
+    (description
+     "This is a fork of irrlicht tailored for minetest.")
+    (home-page
+     "https://github.com/minetest/irrlicht")))
+
 (define-public minetest
   (package
     (name "minetest")

base-commit: 9cd22702b87f873f7e307c99b406fb758e5a307c
-- 
2.36.1
From 27f3b952f74edf732f318fcc629cba47286ff1bb Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 16:58:22 +0200
Subject: [PATCH v2 2/9] gnu: minetest: Update to 5.5.1.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/local.mk (dist_patch_DATA): Remove minetest-add-MINETEST_MOD_PATH.patch.
* gnu/packages/minetest.scm (imports): Import (gnu packages compression) for zstd.
(minetest): Bump version number to 5.5.1 and update hash.
[patches]: Don’t use the patch anymore.
[configure-flags]: Point cmake to irrlicht-for-minetest and zstd.
[inputs]: Use irrlicht-for-minetest instead of irrlicht, and add zstd.
(minetest-data): Update hash.
---
gnu/local.mk | 1 -
gnu/packages/minetest.scm | 27 +--
.../minetest-add-MINETEST_MOD_PATH.patch | 156 ------------------
3 files changed, 16 insertions(+), 168 deletions(-)
delete mode 100644 gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch

Toggle diff (130 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index bc82c5ba9f..df5916ce70 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1488,7 +1488,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/mesa-skip-tests.patch			\
   %D%/packages/patches/meson-allow-dirs-outside-of-prefix.patch	\
   %D%/packages/patches/mhash-keygen-test-segfault.patch		\
-  %D%/packages/patches/minetest-add-MINETEST_MOD_PATH.patch	\
   %D%/packages/patches/mingw-w64-6.0.0-gcc.patch		\
   %D%/packages/patches/mingw-w64-dlltool-temp-prefix.patch	\
   %D%/packages/patches/mingw-w64-reproducible-gendef.patch	\
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index a21b8c1ad3..fa3c6da3db 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -26,6 +26,7 @@ (define-module (gnu packages minetest)
   #: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)
@@ -79,7 +80,7 @@ (define-public irrlicht-for-minetest
 (define-public minetest
   (package
     (name "minetest")
-    (version "5.4.1")
+    (version "5.5.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -88,11 +89,8 @@ (define-public minetest
               (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.
@@ -105,12 +103,18 @@ (define-public minetest
              "-DENABLE_FREETYPE=1"
              "-DENABLE_GETTEXT=1"
              "-DENABLE_SYSTEM_JSONCPP=TRUE"
-             (string-append "-DIRRLICHT_INCLUDE_DIR="
-                            (assoc-ref %build-inputs "irrlicht")
+             (string-append "-DIRRLICHTMT_INCLUDE_DIR="
+                            (assoc-ref %build-inputs "irrlicht-for-minetest")
                             "/include/irrlicht")
              (string-append "-DCURL_INCLUDE_DIR="
                             (assoc-ref %build-inputs "curl")
-                            "/include/curl"))
+                            "/include/curl")
+             (string-append "-DZSTD_INCLUDE_DIR="
+                            (assoc-ref %build-inputs "zstd")
+                            "/include/zstd")
+             (string-append "-DZSTD_LIBRARY="
+                            (assoc-ref %build-inputs "zstd")
+                            "/lib/libzstd.so"))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-sources
@@ -151,7 +155,7 @@ (define-public minetest
        ("freetype" ,freetype)
        ("gettext" ,gettext-minimal)
        ("gmp" ,gmp)
-       ("irrlicht" ,irrlicht)
+       ("irrlicht-for-minetest" ,irrlicht-for-minetest)
        ("jsoncpp" ,jsoncpp)
        ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
@@ -162,7 +166,8 @@ (define-public minetest
        ("mesa" ,mesa)
        ("ncurses" ,ncurses)
        ("openal" ,openal)
-       ("sqlite" ,sqlite)))
+       ("sqlite" ,sqlite)
+       ("zstd" ,zstd "lib")))
     (propagated-inputs
      (list minetest-data))
     (synopsis "Infinite-world block sandbox game")
@@ -187,7 +192,7 @@ (define minetest-data
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0i45lbnikvgj9kxdp0yphpjjwjcgp4ibn49xkj78j5ic1s9n8jd4"))))
+                "12cpaiww148szvnrc8r8cffwvl33smnrl7k29sh401yv0pbqi3j8"))))
     (build-system trivial-build-system)
     (native-inputs
      `(("source" ,source)))
diff --git a/gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch b/gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch
deleted file mode 100644
index 41338e6e6f..0000000000
--- a/gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch
+++ /dev/null
@@ -1,156 +0,0 @@
-From d10ea2ad7efc2364a8a2007b4c6d3e85511e2f84 Mon Sep 17 00:00:00 2001
-From: Maxime Devos <maximedevos@telenet.be>
-Date: Tue, 3 Aug 2021 01:00:23 +0200
-Subject: [PATCH] Add environment variable MINETEST_MOD_PATH
-
-This adds an environment variable MINETEST_MOD_PATH.
-When it exists, Minetest will look there for mods
-in addition to ~/.minetest/mods/.  Mods can still be
-installed to ~/.minetest/mods/ with the built-in installer.
-
-With thanks to Liliana Marie Prikler.
----
- builtin/mainmenu/pkgmgr.lua       |  7 +++----
- doc/menu_lua_api.txt              |  8 +++++++-
- src/content/subgames.cpp          | 11 +++++++++++
- src/script/lua_api/l_mainmenu.cpp | 23 +++++++++++++++++++++++
- src/script/lua_api/l_mainmenu.h   |  2 ++
- 5 files changed, 46 insertions(+), 5 deletions(-)
-
-diff --git a/builtin/mainmenu/pkgmgr.lua b/builtin/mainmenu/pkgmgr.lua
-index 787936e31..d8fba0ebe 100644
---- a/builtin/mainmenu/pkgmgr.lua
-+++ b/builtin/mainmenu/pkgmgr.lua
-@@ -682,10 +682,9 @@ function pkgmgr.preparemodlist(data)
- 	local game_mods = {}
- 
- 	--read global mods
--	local modpath = core.get_modpath()
--
-- if modpath ~= nil and
-- modpath ~= "" then
-+ local modpaths = core.get_modpaths()
-+ --XXX what was ‘modpath ~= ""’ and ‘modpath ~= nil’ for?
-+ for _,modpath in ipairs(modpaths) do
- get_mods(modpath,global_mods)
- end
-
-diff --git a/doc/menu_lua_api.txt b/doc/menu_lua_api.txt
-index b3975bc1d..132444b14 100644
---- a/doc/menu_lua_api.txt
-+++ b/doc/menu_lua_api.txt
-@@ -218,7 +218,13 @@ Package - content which is downloadable from the content db, may or may not be i
- * returns path to global user data,
- the directory that contains user-provided mods, worlds, games, and texture packs.
- * core.get_modpath() (possible in async calls)
-- * returns path to global modpath
-+ * returns path to global modpath, where mods can be installed
-+* core.get_modpaths() (possible in async calls)
-+ * returns list of paths to global modpaths, where mods have been installed
-+
-+ The difference with "core.get_modpath" is that no mods should be installed in these
-+ directories by Minetest -- they might be read-only.
-+
- * core.get_clientmodpath() (possible in async calls)
- * returns path to global client-side modpath
- * core.get_gamepath() (possible in async calls)
-diff --git a/src/content/subgames.cpp b/src/content/subgames.cpp
-index e9dc609b0..d73f95a1f 100644
---- a/src/content/subgames.cpp
-+++ b/src/content/subgames.cpp
-@@ -61,6 +61,12 @@ std::string getSubgamePathEnv()
- return subgame_path ? std::string(subgame_path) : "";
- }
-
-+std::string getModPathEnv()
-+{
-+ char *mod_path = getenv("MINETEST_MOD_PATH");
-+ return mod_path ? std::string(mod_path) : "";
-+}
-+
- SubgameSpec findSubgame(const std::string &id)
- {
- if (id.empty())
-@@ -110,6 +116,11 @@ SubgameSpec findSubgame(const std::string &id)
- std::set<std::string> mods_paths;
- if (!user_game)
- mods_paths.insert(share + DIR_DELIM + "mods");
-+
-+ Strfnd mod_search_paths(getModPathEnv());
-+ while (!mod_search_paths.at_end())
-+ mods_paths.insert(mod_search_paths.next(PATH_DELIM));
-+
- if (user != share || user_game)
- mods_paths.insert(user + DIR_DELIM + "mods");
-
-diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp
-index 3e9709bde..903ac3a22 100644
---- a/src/script/lua_api/l_mainmenu.cpp
-+++ b/src/script/lua_api/l_mainmenu.cpp
-@@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
- #include "lua_api/l_internal.h"
- #include "common/c_content.h"
- #include "cpp_api/s_async.h"
-+#include "util/strfnd.h"
- #include "gui/guiEngine.h"
- #include "gui/guiMainMenu.h"
- #include "gui/guiKeyChangeMenu.h"
-@@ -502,6 +503,26 @@ int ModApiMainMenu::l_get_modpath(lua_State *L)
- return 1;
- }
-
-+/******************************************************************************/
-+int ModApiMainMenu::l_get_modpaths(lua_State *L)
-+{
-+ const char *c_modpath = getenv("MINETEST_MOD_PATH");
-+ if (c_modpath == NULL)
-+ c_modpath = "";
-+ int index = 1;
-+ lua_newtable(L);
-+ Strfnd mod_search_paths{std::string(c_modpath)};
-+ while (!mod_search_paths.at_end()) {
-+ std::string component = mod_search_paths.next(PATH_DELIM);
-+ lua_pushstring(L, component.c_str());
-+ lua_rawseti(L, -2, index);
-+ index++;
-+ }
-+ ModApiMainMenu::l_get_modpath(L);
-+ lua_rawseti(L, -2, index);
-+ return 1;
-+}
-+
- /******************************************************************************/
- int ModApiMainMenu::l_get_clientmodpath(lua_State *L)
- {
-@@ -949,6 +970,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top)
- API_FCT(get_mapgen_names);
- API_FCT(get_user_path);
- API_FCT(get_modpath);
-+ API_FCT(get_modpaths);
- API_FCT(get_clientmodpath);
- API_FCT(get_gamepath);
- API_FCT(get_texturepath);
-@@ -983,6 +1005,7 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top)
- API_FCT(get_mapgen_names);
- API_FCT(get_user_path);
- API_FCT(get_modpath);
-+ API_FCT(get_modpaths);
- API_FCT(get_clientmodpath);
- API_FCT(get_gamepath);
- API_FCT(get_texturepath);
-diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h
-index 33ac9e721..a6a54a2cb 100644
---- a/src/script/lua_api/l_mainmenu.h
-+++ b/src/script/lua_api/l_mainmenu.h
-@@ -112,6 +112,8 @@ class ModApiMainMenu: public ModApiBase
-
- static int l_get_modpath(lua_State *L);
-
-+ static int l_get_modpaths(lua_State *L);
-+
- static int l_get_clientmodpath(lua_State *L);
-
- static int l_get_gamepath(lua_State *L);
---
-2.32.0
-
--
2.36.1
From a21eacbacaa78517ca7a9b887627938fa130007a Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:14:15 +0200
Subject: [PATCH v2 3/9] gnu: minetest: Add minetest-sound-api-core.

* gnu/packages/minetest.scm (minetest-sound-api-core): New variable.
---
gnu/packages/minetest.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index fa3c6da3db..b192251626 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -241,6 +241,34 @@ (define-public minetest-moreores
     (license license:zlib)
     (properties `((upstream-name . "Calinou/moreores")))))
 
+(define-public minetest-sound-api-core
+  (package
+    (name "minetest-sound-api-core")
+    ;; No tags, no releases. This is used as a submodule.
+    (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")
-- 
2.36.1
From 007104e1a5729d3e7a1e1921842c8c22c0bccce5 Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:14:44 +0200
Subject: [PATCH v2 4/9] gnu: minetest-basic-materials: Update to 2022-03-28.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/minetest.scm (minetest-basic-materials): Update to
2022-03-28 (commit 9d55f991…).
[snippet]: Make sound_api_core a dependency, not a submodule.
---
gnu/packages/minetest.scm | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)

Toggle diff (43 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index b192251626..23afedf3c5 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -273,21 +273,31 @@ (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
-- 
2.36.1
From 8a5c91f61767bc1efc2e3a88073c9c6d5f8af930 Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:20:09 +0200
Subject: [PATCH v2 5/9] gnu: minetest-homedecor-modpack: Update to 2022-05-18.

* gnu/packages/minetest.scm (minetest-homedecor-modpack): Update to
2022-05-18 (commit ID from may 17).
---
gnu/packages/minetest.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (25 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 23afedf3c5..b16d968bba 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -370,15 +370,15 @@ (define-public minetest-homedecor-modpack
     (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
-- 
2.36.1
From 00475d751f8d178663199c9fd851cb530296fd56 Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:27:44 +0200
Subject: [PATCH v2 6/9] gnu: minetest-mesecons: Update to 2022-04-01.

* gnu/packages/minetest.scm (minetest-mesecons): Update to 2022-04-01 (use
github tag).
[license]: The project decided to drop the +.
---
gnu/packages/minetest.scm | 49 +++++++++++++++++----------------------
1 file changed, 21 insertions(+), 28 deletions(-)

Toggle diff (68 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index b16d968bba..341802c8bb 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -396,40 +396,33 @@ (define-public minetest-homedecor-modpack
     (properties `((upstream-name . "VanessaE/homedecor_modpack")))))
 
 (define-public minetest-mesecons
-  ;; The release on ContentDB does not have its own version number.
-  (let ((commit "db5879706d04d3480bc4863ce0c03fa73e5f10c7")
-        (revision "0"))
-    (package
-      (name "minetest-mesecons")
-      (version (git-version "1.2.1" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/minetest-mods/mesecons")
-               (commit commit)))
-         (sha256
-          (base32 "04m9s9l3frw1lgki41hgvjsw2zkrvfv0sy750b6j12arzb3lv645"))
-         (file-name (git-file-name name version))))
-      (build-system minetest-mod-build-system)
-      (home-page "https://mesecons.net")
-      (synopsis
-       "Digital circuitry for Minetest, including wires, buttons and lights")
-      (description
-       "Mesecons is a mod for Minetest implementing various items related
+  (package
+    (name "minetest-mesecons")
+    (version "2022-04-01")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/minetest-mods/mesecons")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1fpl2zpjp68qj9njs5qiichkfixh66rkgh6brgn6xi3ri4zlx1i1"))
+       (file-name (git-file-name name version))))
+    (build-system minetest-mod-build-system)
+    (home-page "https://mesecons.net")
+    (synopsis
+     "Digital circuitry for Minetest, including wires, buttons and lights")
+    (description
+     "Mesecons is a mod for Minetest implementing various items related
 to digital circuitry, such as wires, buttons, lights and programmable
 controllers.  Among other things, there are also pistons, solar panels,
 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))
-      (properties `((upstream-name . "Jeija/mesecons"))))))
+    ;; LGPL for code, CC-BY-SA for textures.
+    (license (list license:lgpl3 license:cc-by-sa3.0))
+    (properties `((upstream-name . "Jeija/mesecons")))))
 
 (define-public minetest-mineclone
   (package
-- 
2.36.1
From 0e5fa9897aae56e8164c6550a2c500dde3550e9c Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:30:23 +0200
Subject: [PATCH v2 7/9] gnu: minetest-mineclone: Update to 0.75.0.

* gnu/packages/minetest.scm (minetest-mineclone): Update to 0.75.0.
---
gnu/packages/minetest.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 341802c8bb..82f7343ef0 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -427,16 +427,16 @@ (define-public minetest-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
-- 
2.36.1
From 68ce381b5e03cbca16c2cf409b767b42ead99afa Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:35:15 +0200
Subject: [PATCH v2 8/9] gnu: minetest-technic: Update to 2022-02-06.

* gnu/packages/minetest.scm (minetest-technic): Update to 2022-02-06.
---
gnu/packages/minetest.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (25 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 82f7343ef0..8fc20fb7ea 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -540,15 +540,15 @@ (define-public minetest-technic
     (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
-- 
2.36.1
From 05e27470105d040309d92d66a8fce65a55848eab Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:43:28 +0200
Subject: [PATCH v2 9/9] gnu: minetest-advtrains: Update to 2.4.1.

* gnu/packages/minetest.scm (minetest-advtrains): Update to 2.4.1.
---
gnu/packages/minetest.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 8fc20fb7ea..11579d803e 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -715,7 +715,7 @@ (define-public minetest-unified-inventory
 (define-public minetest-advtrains
   (package
     (name "minetest-advtrains")
-    (version "2.3.1")
+    (version "2.4.1")
     (source
      (origin
        (method git-fetch)
@@ -723,7 +723,7 @@ (define-public minetest-advtrains
              (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/")
-- 
2.36.1
-----BEGIN PGP SIGNATURE-----

iQHMBAABCAA2FiEEq4yIHjMvkliPpwQnO7C8EjLYuCwFAmKTlKEYHHZpdmllbkBw
bGFuZXRlLWtyYXVzLmV1AAoJEDuwvBIy2Lgs6W4L/jgBXH0Nu2UdyJ6hGZolLrg3
s+HW7Cw2awLZlOHGbXWoyCZKmuW1qGOen79L6tjqHOoXJhw46/Tw1yBA28tMpq3k
I4qH80mobOCETTDCV/WBOqitshRgPLgcKzzRw3AQmvyP1C/OhnL/z/UpTkUB9LB2
ur2o6or/MgpMg2PQdlqUCIhFSp9jTHXScDbTwYfrje2Lo4HhH33Jk50RYSdmAT+A
bKXO2VIYlL/cRRVkeZxul+86fXA64G3pbzdZ0Z6gwKuj2e5c4rSvwgc2nF6MGktp
qTq+TXWhXE3UWM6ZehABCfwIoFqoMNTFXz6A5TA6rGaPpSyx7c0nBbi/6keMzvQJ
X1PcYS0i1HnpAKZOwNgyPGm/VOa/0yOKfYekCecJcmRUD7X29/VR1dWNxBYk1BF/
+BcuaLeDC72HVNTJXIXw43tF0ttI6yoH35b6M3V8NIhDipuJGf3YV42GdoGbSQIK
0Vsx02BuNKMZbenP2kakz3dQ+a10Izqggowo2TaXNQ==
=B7cc
-----END PGP SIGNATURE-----


L
L
Liliana Marie Prikler wrote on 29 May 18:39 +0200
(name . Maxime Devos)(address . maximedevos@telenet.be)
e3bc39ef2db17132e2930a21dca4717bd882ba70.camel@gmail.com
Hi,

Am Sonntag, dem 29.05.2022 um 17:43 +0200 schrieb Vivien Kraus:
Toggle quote (27 lines)
> Hello!
>
> Le dimanche 29 mai 2022 à 15:48 +0200, Liliana Marie Prikler a écrit :
> > Am Sonntag, dem 29.05.2022 um 14:47 +0200 schrieb Vivien Kraus:
> > > Subject: [PATCH v1 1/8] gnu: minetest: Update to 5.5.1.
> > >
> > > * gnu/local.mk (dist_patch_DATA): Remove minetest-add-
> > > MINETEST_MOD_PATH.patch.
> > > * gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch: Delete
> > > it.
> > > * gnu/packages/minetest.scm (irrlichtmt): New variable.
> > > (minetest): Update to 5.5.1.
> > > [patches]: Remove patch.
> > > [configure-flags]: find irrlichtmt and zstd.
> > > [inputs]: Replace irrlicht with irrlichtmt, add zstd.
> > > (minetest-data): Update hash.
> > I'd name "irrlichtmt" to "irrlicht-for-minetest" and perhaps split
> > this patch into two.  Even if they need to be bumped "at once" later,
> > I don't think this holds for the initial introduction.
>
> I renamed the fork, and I split the commit as: introduce the fork, and
> then (update minetest + use irrlicht-for-minetest). If I split the
> minetest update commit further, it will create a broken commit. I was
> told on #guix that I should not create such commits. Quoting nckx:
>
>     vivien: No, each commit should result in a sane state whenever
> possible.
That's exactly the split I intended, thanks.

Toggle quote (12 lines)
> + (source
> + (origin
> + (inherit (package-source irrlicht))
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/minetest/irrlicht")
> + (commit version)))
> + (sha256
> + (base32
> + "1jxk1x0f60n8lrz8a6x62aj2pqg0qnbajsld3lqncvwsfbi0xjx1"))
> + (patches '())
> + (snippet '(begin #t))))
Instead of inheriting and blanking patches and snippet, you could
simply not inherit.

Toggle quote (2 lines)
> + (arguments
> + `(#:tests? #f))
As with Irrlicht itself, you should write out "; no check target"

Toggle quote (13 lines)
> > > * gnu/packages/minetest.scm (minetest-basic-materials): Update to
> > > 2022-03-28 (commet 9d55f991…).
> > > [snippet]: Make sound_api_core a dependency, not a submodule.
> > Again doing two things at once.  I think it'd be wiser to first do
> > the updates, then add minetest-sound-core, then add the snippets. 
> > WDYT?
>
> minetest-sound-core is introduced as a submodule for the
> basic_materials update. So the code for it is not present at all. If
> I first update basic_materials, then the tests will fail because it
> can’t find sound_core. Do you mean that I should first try to respect
> the will of the author and add it as a submodule (I don’t know how to
> do that) and then take it out as a separate package?
Hmm, perhaps I was confused by the commit message. If changes to the
package are necessary for the bump, it makes sense to do them in the
same commit as you did, but the wording would imply that it was
previously a submodule, which perhaps through strange git magic is no
longer available in the source (because it has been externalized).

As far as I can see however, minetest-sound-core is a slightly
different kind of package though. Like gnulib or GNOME's libgd, the
authors want it to be included as source code in the target mod. I
don't know how this makes a difference in Minetest mods, but there is a
chance it might. At the very least, it does not appear as though
minetest-sound-core is itself a mod (or is it?).

Toggle quote (6 lines)
> > ¹ I did not check for hash mismatches or ContenDB version
> > equivalence.
>
> I just looked up the date and found a the commit in github that was
> there (usually contentdb reports the next day as the github commit).
> Is there something more to do?
Ideally, you would check the JSON for the release, e.g.

@Maxime, looking at the result it'd be possible to fetch sources from
contentdb. Should we implement contentdb-fetch?

Toggle quote (10 lines)
> > ² As pointed out by Maxime elsewhere in the mailing list,
> > Minetest packages usually have flaky tags in their forges, so
> > someone needs to look closer at whether this is going to break in
> > the future.
>
> Yes. Mesecons was using version numbers and then the latest tag is a
> date. Given that it’s April 1st, maybe there’s something funny
> occuring here, but the changes around that day looked reasonable to
> my untrained eye. However, one thing I didn’t notice at first was the
> drop of the + in the license. Sorry.
I'm not sure whether that's the right version to bump to, sorry.
According to ContentDB the latest release is
27c3c515b49af91c1dbc427f31a820722854eb24, but that's untagged in git; I
suggest either making a git-version and adding an appropriate comment
or contacting upstream for clarification.

Cheers
M
M
Maxime Devos wrote on 29 May 19:23 +0200
8d8c0d26817a558943786a3b7b0d9d55036a4863.camel@telenet.be
Liliana Marie Prikler schreef op zo 29-05-2022 om 18:39 [+0200]:
Toggle quote (3 lines)
> @Maxime, looking at the result it'd be possible to fetch sources from
> contentdb.  Should we implement contentdb-fetch?

I don't think a separate fetch method is required, url-fetch owuld

You can download a package by building one of the two URLs:


However, this makes --with-commit=... & --with-branch=... not work
so there are some downsides. I also don't know if these zips are
stable, would need to be investigated. Maybe worth it, dunno.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYpOr9RccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7lOSAQCE1DwFAXJrbTspzemAdv/i6K1q
IUczBDJzjcSjyEXavwD/ZNI7cmGjGCSPZxjXbOf1aiXrsSRqAC9867mPW0x3iAY=
=5iCO
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 29 May 19:35 +0200
72144cc27957ea789099aca64515c6aefeeb9d04.camel@telenet.be
Liliana Marie Prikler schreef op zo 29-05-2022 om 18:39 [+0200]:
Toggle quote (4 lines)
> As far as I can see however, minetest-sound-core is a slightly
> different kind of package though.  Like gnulib or GNOME's libgd, the
> authors want it to be included as source code in the target mod.

IMO those need to be unbundled as well because of standard reasons for
unbundling. Though for gnulib there is the complication that some
gnulib-using software makes some important modifications to their
gnulib (e.g. guile modifies lib/localcharset.c).

Toggle quote (4 lines)
> I don't know how this makes a difference in Minetest mods, but there is a
> chance it might.  At the very least, it does not appear as though
> minetest-sound-core is itself a mod (or is it?).

mod.conf is missing, so it's not a mod by itself, from Minetest's
perspective (*).

Some differences though:

There exist (non-bundled) API mods, e.g. 
Minetest also has a standard and well-functioning package manager.

As such, it seems to me that it could conceivably be turned into an API
mod. Maybe if we explain nicely at
agree? Not sure though.

(*) However, Vivien's substitutions have effectively turned it into a
mod!

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYpOu2hccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7ircAQCJQ14Q6IZGYRFNoPitKHKCgNqU
HhlC1mkVdi5YogvyEAD+JbuxoHQJbKJvq/tI6iZKRPSR1rFrhEdrxCLZctQWTw4=
=xsVS
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 29 May 19:44 +0200
883715af4b8a6150a5b72163be77eeffbdf33be5.camel@telenet.be
Vivien Kraus schreef op zo 29-05-2022 om 17:43 [+0200]:
Toggle quote (9 lines)
> Yes. Mesecons was using version numbers and then the latest tag is a
> date. Given that it’s April 1st, maybe there’s something funny
> occuring
> here, but the changes around that day looked reasonable to my
> untrained
> eye. However, one thing I didn’t notice at first was the drop of the
> +
> in the license. Sorry.

My guess is that upstream did some important fixes and decided to tag
it, upstream previously enabled the automatic system for automatically
making ContentDB releases for the latest commit every N days, upstream
then made another commit on the master branch on the same day, then
ContentDB notices the new commit and makes a releases based on the new
commit instead of the tagged commit.

Given that there is only a single date tag after 2017.03.05 but many
ContentDB releases, I don't think the date tags can be used.

More generally, I think it would be best to just use the ContentDB
releases (their version which might be a date, and the commit ContentDB
uses).

Greetings,
Maxime
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYpOxBBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7hAlAQCReTYI9fcXnAnihfapwys//yfc
uF0dPlsmQxr7r5k4pAEA52gxJSBMngyn/NF7EZw92Mw3EZaUj4mAfrpUiK4OqQY=
=OL6K
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 29 May 19:48 +0200
fe84a297a38f9d100b1bf12392fd282baf304929.camel@telenet.be
Vivien Kraus schreef op zo 29-05-2022 om 17:43 [+0200]:
Toggle quote (3 lines)
> +       (patches '())
> +       (snippet '(begin #t))))

Why are the patches and snippet removed? Those snippets remove bundled
binaries and bundled source code of libraries. Libraries such as
bzip2, lzma, zlib, which presumably(?) weren't modified by Minetest.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYpOx0BccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7nbdAP9n0BX/gLbjPn2TcDc/kCrbU14R
MKvt81hlxXIUSoxo3wD/aN3OiPabU4JAXGSExqDar4mirGbguYZxB4siKDTqUwg=
=mPIZ
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 29 May 19:49 +0200
c5f65c0e40dd1aea355aa97f3270ee68371ab086.camel@telenet.be
Liliana Marie Prikler schreef op zo 29-05-2022 om 15:48 [+0200]:
Toggle quote (2 lines)
> ¹ I did not check for hash mismatches or ContenDB version equivalence.

A linter that for each Minetest package looks at ContentDB for the
commit and verifies the commit on ContentDB and the commit in git-
reference would be nice. Future work ...

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYpOyGRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7thBAQCPp6A6DW3zt50j9akUE3L0TVlI
QVxZthlhhiON0qguRgD+K7Gm+WmpZcYDCok8hwEC71WZo9aMBlQQZN5NIviMyQQ=
=Lg7h
-----END PGP SIGNATURE-----


V
V
Vivien Kraus wrote on 29 May 19:50 +0200
50c5af4236bdae5574ed59bf5cfaadbba6123cf7.camel@planete-kraus.eu
Hello Maxime,

Le dimanche 29 mai 2022 à 19:48 +0200, Maxime Devos a écrit :
Toggle quote (9 lines)
> Vivien Kraus schreef op zo 29-05-2022 om 17:43 [+0200]:
> > +       (patches '())
> > +       (snippet '(begin #t))))
>
> Why are the patches and snippet removed?  Those snippets remove
> bundled
> binaries and bundled source code of libraries.  Libraries such as
> bzip2, lzma, zlib, which presumably(?) weren't modified by Minetest.

This is because the original irrlicht downloads a tarball, but we must
work with a git origin for irrlicht-for-minetest. Since the bundled
source code is only provided in the tarball, we don’t need to remove
it.

Vivien
V
V
Vivien Kraus wrote on 5 Jun 10:36 +0200
(name . Maxime Devos)(address . maximedevos@telenet.be)
721968ef33aabe47a37dae8d330a0c2c4a8a7a8c.camel@planete-kraus.eu
Hello,

Le dimanche 29 mai 2022 à 18:39 +0200, Liliana Marie Prikler a écrit :
Toggle quote (15 lines)
>
> > +    (source
> > +     (origin
> > +       (inherit (package-source irrlicht))
> > +       (method git-fetch)
> > +       (uri (git-reference
> > +             (url "https://github.com/minetest/irrlicht")
> > +             (commit version)))
> > +       (sha256
> > +        (base32
> > +         "1jxk1x0f60n8lrz8a6x62aj2pqg0qnbajsld3lqncvwsfbi0xjx1"))
> > +       (patches '())
> > +       (snippet '(begin #t))))
> Instead of inheriting and blanking patches and snippet, you could
> simply not inherit.
That is simpler, yes.

Toggle quote (4 lines)
>
> > +    (arguments
> > +     `(#:tests? #f))
> As with Irrlicht itself, you should write out "; no check target"
Yes.

Toggle quote (20 lines)
>
> > > > * gnu/packages/minetest.scm (minetest-basic-materials): Update to
> > > > 2022-03-28 (commet 9d55f991…).
> > > > [snippet]: Make sound_api_core a dependency, not a submodule.
> > > Again doing two things at once.  I think it'd be wiser to first do
> > > the updates, then add minetest-sound-core, then add the snippets. 
> > > WDYT?
> >
> > minetest-sound-core is introduced as a submodule for the
> > basic_materials update.  So the code for it is not present at all. 
> > If
> > I first update basic_materials, then the tests will fail because it
> > can’t find sound_core. Do you mean that I should first try to respect
> > the will of the author and add it as a submodule (I don’t know how to
> > do that) and then take it out as a separate package?
> Hmm, perhaps I was confused by the commit message.  If changes to the
> package are necessary for the bump, it makes sense to do them in the
> same commit as you did, but the wording would imply that it was
> previously a submodule, which perhaps through strange git magic is no
> longer available in the source (because it has been externalized).
I rewrote the comment and linked to the basic_material issue mentioned
by Maxime elsewhere in the thread:

Toggle quote (19 lines)
>
> > > ² As pointed out by Maxime elsewhere in the mailing list,
> > > Minetest packages usually have flaky tags in their forges, so
> > > someone needs to look closer at whether this is going to break in
> > > the future.
> >
> > Yes. Mesecons was using version numbers and then the latest tag is
> > a
> > date. Given that it’s April 1st, maybe there’s something funny
> > occuring here, but the changes around that day looked reasonable to
> > my untrained eye. However, one thing I didn’t notice at first was
> > the
> > drop of the + in the license. Sorry.
> I'm not sure whether that's the right version to bump to, sorry.
> According to ContentDB the latest release is
> 27c3c515b49af91c1dbc427f31a820722854eb24, but that's untagged in git;
> I
> suggest either making a git-version and adding an appropriate comment
> or contacting upstream for clarification.
Obviously yes that’s the commit to use.

So now the v3 looks like this. What do you think?

Vivien
From 040a1d0062e8433cff8bae2961aaa9f445dcf9ad Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 13:37:27 +0200
Subject: [PATCH v3 1/9] gnu: minetest: Add irrlicht-for-minetest.

* gnu/packages/minetest.scm (irrlichtmt-for-minetest): New variable.
---
gnu/packages/minetest.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index c431942473..6073f83d29 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -48,6 +48,31 @@ (define-module (gnu packages minetest)
   #:use-module (guix build-system minetest)
   #:use-module ((guix licenses) #:prefix license:))
 
+(define-public irrlicht-for-minetest
+  ;; The irrlicht fork and minetest evolve together. This may not be the
+  ;; latest release, but it is the release compatible with the latest minetest
+  ;; release.
+  (package
+    (inherit irrlicht)
+    (name "irrlicht-for-minetest")
+    (version "1.9.0mt5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/minetest/irrlicht")
+             (commit version)))
+       (sha256
+        (base32
+         "1jxk1x0f60n8lrz8a6x62aj2pqg0qnbajsld3lqncvwsfbi0xjx1"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f)) ; No check target.
+    (description
+     "This is a fork of irrlicht tailored for minetest.")
+    (home-page
+     "https://github.com/minetest/irrlicht")))
+
 (define-public minetest
   (package
     (name "minetest")

base-commit: 62da327848311a75723f16642c20d2925919237e
-- 
2.36.1
From 4135f45435e66fc385ce39251ec3b92835a76844 Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 16:58:22 +0200
Subject: [PATCH v3 2/9] gnu: minetest: Update to 5.5.1.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/local.mk (dist_patch_DATA): Remove minetest-add-MINETEST_MOD_PATH.patch.
* gnu/packages/minetest.scm (imports): Import (gnu packages compression) for zstd.
(minetest): Bump version number to 5.5.1 and update hash.
[patches]: Don’t use the patch anymore.
[configure-flags]: Point cmake to irrlicht-for-minetest and zstd.
[inputs]: Use irrlicht-for-minetest instead of irrlicht, and add zstd.
(minetest-data): Update hash.
---
gnu/local.mk | 1 -
gnu/packages/minetest.scm | 27 +--
.../minetest-add-MINETEST_MOD_PATH.patch | 156 ------------------
3 files changed, 16 insertions(+), 168 deletions(-)
delete mode 100644 gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch

Toggle diff (130 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index d814d46b14..d51c1be0d3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1490,7 +1490,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/meson-allow-dirs-outside-of-prefix.patch	\
   %D%/packages/patches/mhash-keygen-test-segfault.patch		\
   %D%/packages/patches/mia-fix-boost-headers.patch		\
-  %D%/packages/patches/minetest-add-MINETEST_MOD_PATH.patch	\
   %D%/packages/patches/mingw-w64-6.0.0-gcc.patch		\
   %D%/packages/patches/mingw-w64-dlltool-temp-prefix.patch	\
   %D%/packages/patches/mingw-w64-reproducible-gendef.patch	\
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 6073f83d29..2e6ae5fccf 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -26,6 +26,7 @@ (define-module (gnu packages minetest)
   #: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)
@@ -76,7 +77,7 @@ (define-public irrlicht-for-minetest
 (define-public minetest
   (package
     (name "minetest")
-    (version "5.4.1")
+    (version "5.5.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -85,11 +86,8 @@ (define-public minetest
               (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.
@@ -102,12 +100,18 @@ (define-public minetest
              "-DENABLE_FREETYPE=1"
              "-DENABLE_GETTEXT=1"
              "-DENABLE_SYSTEM_JSONCPP=TRUE"
-             (string-append "-DIRRLICHT_INCLUDE_DIR="
-                            (assoc-ref %build-inputs "irrlicht")
+             (string-append "-DIRRLICHTMT_INCLUDE_DIR="
+                            (assoc-ref %build-inputs "irrlicht-for-minetest")
                             "/include/irrlicht")
              (string-append "-DCURL_INCLUDE_DIR="
                             (assoc-ref %build-inputs "curl")
-                            "/include/curl"))
+                            "/include/curl")
+             (string-append "-DZSTD_INCLUDE_DIR="
+                            (assoc-ref %build-inputs "zstd")
+                            "/include/zstd")
+             (string-append "-DZSTD_LIBRARY="
+                            (assoc-ref %build-inputs "zstd")
+                            "/lib/libzstd.so"))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-sources
@@ -148,7 +152,7 @@ (define-public minetest
        ("freetype" ,freetype)
        ("gettext" ,gettext-minimal)
        ("gmp" ,gmp)
-       ("irrlicht" ,irrlicht)
+       ("irrlicht-for-minetest" ,irrlicht-for-minetest)
        ("jsoncpp" ,jsoncpp)
        ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
@@ -159,7 +163,8 @@ (define-public minetest
        ("mesa" ,mesa)
        ("ncurses" ,ncurses)
        ("openal" ,openal)
-       ("sqlite" ,sqlite)))
+       ("sqlite" ,sqlite)
+       ("zstd" ,zstd "lib")))
     (propagated-inputs
      (list minetest-data))
     (synopsis "Infinite-world block sandbox game")
@@ -184,7 +189,7 @@ (define minetest-data
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0i45lbnikvgj9kxdp0yphpjjwjcgp4ibn49xkj78j5ic1s9n8jd4"))))
+                "12cpaiww148szvnrc8r8cffwvl33smnrl7k29sh401yv0pbqi3j8"))))
     (build-system trivial-build-system)
     (native-inputs
      `(("source" ,source)))
diff --git a/gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch b/gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch
deleted file mode 100644
index 41338e6e6f..0000000000
--- a/gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch
+++ /dev/null
@@ -1,156 +0,0 @@
-From d10ea2ad7efc2364a8a2007b4c6d3e85511e2f84 Mon Sep 17 00:00:00 2001
-From: Maxime Devos <maximedevos@telenet.be>
-Date: Tue, 3 Aug 2021 01:00:23 +0200
-Subject: [PATCH] Add environment variable MINETEST_MOD_PATH
-
-This adds an environment variable MINETEST_MOD_PATH.
-When it exists, Minetest will look there for mods
-in addition to ~/.minetest/mods/.  Mods can still be
-installed to ~/.minetest/mods/ with the built-in installer.
-
-With thanks to Liliana Marie Prikler.
----
- builtin/mainmenu/pkgmgr.lua       |  7 +++----
- doc/menu_lua_api.txt              |  8 +++++++-
- src/content/subgames.cpp          | 11 +++++++++++
- src/script/lua_api/l_mainmenu.cpp | 23 +++++++++++++++++++++++
- src/script/lua_api/l_mainmenu.h   |  2 ++
- 5 files changed, 46 insertions(+), 5 deletions(-)
-
-diff --git a/builtin/mainmenu/pkgmgr.lua b/builtin/mainmenu/pkgmgr.lua
-index 787936e31..d8fba0ebe 100644
---- a/builtin/mainmenu/pkgmgr.lua
-+++ b/builtin/mainmenu/pkgmgr.lua
-@@ -682,10 +682,9 @@ function pkgmgr.preparemodlist(data)
- 	local game_mods = {}
- 
- 	--read global mods
--	local modpath = core.get_modpath()
--
-- if modpath ~= nil and
-- modpath ~= "" then
-+ local modpaths = core.get_modpaths()
-+ --XXX what was ‘modpath ~= ""’ and ‘modpath ~= nil’ for?
-+ for _,modpath in ipairs(modpaths) do
- get_mods(modpath,global_mods)
- end
-
-diff --git a/doc/menu_lua_api.txt b/doc/menu_lua_api.txt
-index b3975bc1d..132444b14 100644
---- a/doc/menu_lua_api.txt
-+++ b/doc/menu_lua_api.txt
-@@ -218,7 +218,13 @@ Package - content which is downloadable from the content db, may or may not be i
- * returns path to global user data,
- the directory that contains user-provided mods, worlds, games, and texture packs.
- * core.get_modpath() (possible in async calls)
-- * returns path to global modpath
-+ * returns path to global modpath, where mods can be installed
-+* core.get_modpaths() (possible in async calls)
-+ * returns list of paths to global modpaths, where mods have been installed
-+
-+ The difference with "core.get_modpath" is that no mods should be installed in these
-+ directories by Minetest -- they might be read-only.
-+
- * core.get_clientmodpath() (possible in async calls)
- * returns path to global client-side modpath
- * core.get_gamepath() (possible in async calls)
-diff --git a/src/content/subgames.cpp b/src/content/subgames.cpp
-index e9dc609b0..d73f95a1f 100644
---- a/src/content/subgames.cpp
-+++ b/src/content/subgames.cpp
-@@ -61,6 +61,12 @@ std::string getSubgamePathEnv()
- return subgame_path ? std::string(subgame_path) : "";
- }
-
-+std::string getModPathEnv()
-+{
-+ char *mod_path = getenv("MINETEST_MOD_PATH");
-+ return mod_path ? std::string(mod_path) : "";
-+}
-+
- SubgameSpec findSubgame(const std::string &id)
- {
- if (id.empty())
-@@ -110,6 +116,11 @@ SubgameSpec findSubgame(const std::string &id)
- std::set<std::string> mods_paths;
- if (!user_game)
- mods_paths.insert(share + DIR_DELIM + "mods");
-+
-+ Strfnd mod_search_paths(getModPathEnv());
-+ while (!mod_search_paths.at_end())
-+ mods_paths.insert(mod_search_paths.next(PATH_DELIM));
-+
- if (user != share || user_game)
- mods_paths.insert(user + DIR_DELIM + "mods");
-
-diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp
-index 3e9709bde..903ac3a22 100644
---- a/src/script/lua_api/l_mainmenu.cpp
-+++ b/src/script/lua_api/l_mainmenu.cpp
-@@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
- #include "lua_api/l_internal.h"
- #include "common/c_content.h"
- #include "cpp_api/s_async.h"
-+#include "util/strfnd.h"
- #include "gui/guiEngine.h"
- #include "gui/guiMainMenu.h"
- #include "gui/guiKeyChangeMenu.h"
-@@ -502,6 +503,26 @@ int ModApiMainMenu::l_get_modpath(lua_State *L)
- return 1;
- }
-
-+/******************************************************************************/
-+int ModApiMainMenu::l_get_modpaths(lua_State *L)
-+{
-+ const char *c_modpath = getenv("MINETEST_MOD_PATH");
-+ if (c_modpath == NULL)
-+ c_modpath = "";
-+ int index = 1;
-+ lua_newtable(L);
-+ Strfnd mod_search_paths{std::string(c_modpath)};
-+ while (!mod_search_paths.at_end()) {
-+ std::string component = mod_search_paths.next(PATH_DELIM);
-+ lua_pushstring(L, component.c_str());
-+ lua_rawseti(L, -2, index);
-+ index++;
-+ }
-+ ModApiMainMenu::l_get_modpath(L);
-+ lua_rawseti(L, -2, index);
-+ return 1;
-+}
-+
- /******************************************************************************/
- int ModApiMainMenu::l_get_clientmodpath(lua_State *L)
- {
-@@ -949,6 +970,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top)
- API_FCT(get_mapgen_names);
- API_FCT(get_user_path);
- API_FCT(get_modpath);
-+ API_FCT(get_modpaths);
- API_FCT(get_clientmodpath);
- API_FCT(get_gamepath);
- API_FCT(get_texturepath);
-@@ -983,6 +1005,7 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top)
- API_FCT(get_mapgen_names);
- API_FCT(get_user_path);
- API_FCT(get_modpath);
-+ API_FCT(get_modpaths);
- API_FCT(get_clientmodpath);
- API_FCT(get_gamepath);
- API_FCT(get_texturepath);
-diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h
-index 33ac9e721..a6a54a2cb 100644
---- a/src/script/lua_api/l_mainmenu.h
-+++ b/src/script/lua_api/l_mainmenu.h
-@@ -112,6 +112,8 @@ class ModApiMainMenu: public ModApiBase
-
- static int l_get_modpath(lua_State *L);
-
-+ static int l_get_modpaths(lua_State *L);
-+
- static int l_get_clientmodpath(lua_State *L);
-
- static int l_get_gamepath(lua_State *L);
---
-2.32.0
-
--
2.36.1
From c9a22cc0d2d83777950704cec33911324308528e Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:14:15 +0200
Subject: [PATCH v3 3/9] gnu: minetest: Add minetest-sound-api-core.

* gnu/packages/minetest.scm (minetest-sound-api-core): New variable.
---
gnu/packages/minetest.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 2e6ae5fccf..20d1bff850 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -238,6 +238,36 @@ (define-public minetest-moreores
     (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")
-- 
2.36.1
From 174ffc4333d2fc0825c59a08df39e886edcedb71 Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:14:44 +0200
Subject: [PATCH v3 4/9] gnu: minetest-basic-materials: Update to 2022-03-28.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/minetest.scm (minetest-basic-materials): Update to
2022-03-28 (commit 9d55f991…).
[snippet]: Make sound_api_core a dependency, not a submodule.
---
gnu/packages/minetest.scm | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)

Toggle diff (43 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 20d1bff850..b47f4003a1 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -272,21 +272,31 @@ (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
-- 
2.36.1
From 41dd477c6de5873111cb8ba02e43ac5c6bc187ae Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:20:09 +0200
Subject: [PATCH v3 5/9] gnu: minetest-homedecor-modpack: Update to 2022-05-18.

* gnu/packages/minetest.scm (minetest-homedecor-modpack): Update to
2022-05-18 (commit ID from may 17).
---
gnu/packages/minetest.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (25 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index b47f4003a1..cca33a204f 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -369,15 +369,15 @@ (define-public minetest-homedecor-modpack
     (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
-- 
2.36.1
From 8f89600bf6740a92390f1f44d7c9fc11d77aa104 Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:27:44 +0200
Subject: [PATCH v3 6/9] gnu: minetest-mesecons: Update to 2022-04-01.

* gnu/packages/minetest.scm (minetest-mesecons): Update to 2022-05-12.
[license]: The project decided to drop the +.
---
gnu/packages/minetest.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index cca33a204f..06ffc75667 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -396,8 +396,8 @@ (define-public minetest-homedecor-modpack
 
 (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))
@@ -408,7 +408,7 @@ (define-public minetest-mesecons
                (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")
-- 
2.36.1
From 9a604001dc3daebf3ac9fe76313ca7f7b2118ec9 Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:30:23 +0200
Subject: [PATCH v3 7/9] gnu: minetest-mineclone: Update to 0.75.0.

* gnu/packages/minetest.scm (minetest-mineclone): Update to 0.75.0.
---
gnu/packages/minetest.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 06ffc75667..236abc6f01 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -433,16 +433,16 @@ (define-public minetest-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
-- 
2.36.1
From 32a4cbd7682b3784fe6c247c85ac43bca38aa9d0 Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:35:15 +0200
Subject: [PATCH v3 8/9] gnu: minetest-technic: Update to 2022-02-06.

* gnu/packages/minetest.scm (minetest-technic): Update to 2022-02-06.
---
gnu/packages/minetest.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (25 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 236abc6f01..5511e6f640 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -546,15 +546,15 @@ (define-public minetest-technic
     (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
-- 
2.36.1
From e7c18085594f7808ea8ef0359d2e020b21498cf0 Mon Sep 17 00:00:00 2001
From: Vivien Kraus <vivien@planete-kraus.eu>
Date: Sun, 29 May 2022 14:43:28 +0200
Subject: [PATCH v3 9/9] gnu: minetest-advtrains: Update to 2.4.1.

* gnu/packages/minetest.scm (minetest-advtrains): Update to 2.4.1.
---
gnu/packages/minetest.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 5511e6f640..da6e556f4e 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -721,7 +721,7 @@ (define-public minetest-unified-inventory
 (define-public minetest-advtrains
   (package
     (name "minetest-advtrains")
-    (version "2.3.1")
+    (version "2.4.1")
     (source
      (origin
        (method git-fetch)
@@ -729,7 +729,7 @@ (define-public minetest-advtrains
              (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/")
-- 
2.36.1
L
L
Liliana Marie Prikler wrote on 5 Jun 12:14 +0200
(name . Maxime Devos)(address . maximedevos@telenet.be)
c91f2678e2f726109bbb86be67c31356b288c330.camel@gmail.com
Am Sonntag, dem 05.06.2022 um 10:36 +0200 schrieb Vivien Kraus:
Toggle quote (1 lines)
> So now the v3 looks like this. What do you think?
I cleaned up the commits a little, verified that all the mods build,
and pushed.

Cheers
Closed
?
Your comment

This issue is archived.

To comment on this conversation send email to 55703@debbugs.gnu.org