Subject: Re: [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again)

From: Leo Famulari <[email-masked]>
Date: Thu, 5 Sep 2024 15:17:56 -0400

Hi Jan,

Thanks so much for performing this complicated upgrade! I confirm it
works fine to play Minetest.

On Sat, Aug 31, 2024 at 02:26:05PM +0200, Jan Wielkiewicz wrote:
> The minetest-something convention is for packages that are either
> games for minetest or mods for any minetest game. Minetest - the engine
> executes games. Previously "Minetest Game" was the default game for
> Minetest (the engine), but is not anymore. A similar example would be a
> game called "MineClone" for Minetest, the package is then called
> minetest-mineclone. But "Minetest Game" is indeed the name of the
> ex-default game, hence minetest-minetest-game. "minetest-game" would
> suggest it's a game for minetest named "game" also could make it
> possible to confuse it with simply "minetest" - the engine.
> The name of the package: https://github.com/minetest/minetest_game

We have similar conventions for other packages in Guix, such as Python
modules.

But if a Python program is named by its authors "python-foo", we do not
package it as "python-python-foo". Well, there is one package like this
currently, but that's one mistake, after we avoided the repetitive names
many times.

I think that if somebody wants to play the basic Minetest game, they
will not have much trouble choosing the package called "minetest-game".

I've attached a diff against your patch that makes that change and some
other minor changes.

Specifically:

It tweaks the description of the minetest engine packages to remove the
"marketing" word "easy", as requested in the guidelines on writing
package descriptions:

https://guix.gnu.org/manual/devel/en/html_node/Synopses-and-Descriptions.html

It also uses "minetest-game" as an example of a game that could be
installed based on this engine. Or should we use mineclone? We don't
have any other games packaged, right?

It adjusts the version procedure of minetest-game to respect the
guidlines in the manual section Version Numbers:

https://guix.gnu.org/manual/en/html_node/Version-Numbers.html

It removes irrlicht-for-minetest entirely. I don't think we need to
deprecate libraries that wouldn't have been installed into someone's
profile.

I'm not as sure about minetest-data. Was that something that people
would install? I never needed to in order to play the minetest game.

What do you think?
>From f29b6d80484f6d702a023a85bc51e55b83175e62 Mon Sep 17 00:00:00 2001
Message-ID: <[email-masked]>
From: Leo Famulari <[email-masked]>
Date: Thu, 5 Sep 2024 15:00:10 -0400
Subject: [PATCH] WIP

Change-Id: Iaa3ae3314de1da287f296648699ff26cdb59c96e
---
 gnu/packages/minetest.scm      | 24 ++++++++++--------------
 guix/build-system/minetest.scm |  2 +-
 2 files changed, 11 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 26764bfba8..d3c7fcde5d 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -148,11 +148,12 @@ (define-public minetest
                   `(,zstd "lib")))
     (synopsis "Voxel game and game engine")
     (description
-     "Minetest is a voxel game engine with easy modding and game creation
+     "Minetest is a voxel game engine that supports modding and game creation
 using its Lua modding API.  It allows playing a wide range of voxel-based
 games, installing mods and texture packs.  This package only provides the base
-platform, users need to install games themselves (either through Guix, the
-built-in interface or other sources).")
+platform, users need to install games themselves (for example,
+@code{minetest-game}), either through Guix, the built-in interface or other
+sources.")
     (home-page "https://www.minetest.net/")
     (license license:lgpl2.1+)))
 
@@ -188,12 +189,12 @@ (define-public minetest-server
 Minetest games with multiplayer support.  This package provides
 @command{minetestserver} to run a Minetest server.")))
 
-(define-public minetest-minetest-game
-  (let ((branch "master")
-        (commit "88ecab34d98550c8eb77f49ac2866b480a6e707a"))
+(define-public minetest-game
+  (let ((commit "88ecab34d98550c8eb77f49ac2866b480a6e707a")
+        (revision "0"))
     (package
-      (name "minetest-minetest-game")
-      (version (git-version branch "0" commit))
+      (name "minetest-game")
+      (version (git-version "0.0.0" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -217,12 +218,7 @@ (define-public minetest-minetest-game
 
 ;; This package is deprecated. MTG is no longer the official game.
 (define-public minetest-data
-  (deprecated-package "minetest-data" minetest-minetest-game))
-
-;; Minetest merged its irrlicht fork into the minetest repo
-;; this package is not used outside of minetest, hence I deprecate it.
-(define-public irrlicht-for-minetest
-  (deprecated-package "irrlicht-for-minetest" minetest))
+  (deprecated-package "minetest-data" minetest-game))
 
 (define-public (minetest-topic topic-id)
   "Return an URL (as a string) pointing to the forum topic with
diff --git a/guix/build-system/minetest.scm b/guix/build-system/minetest.scm
index 85459f905c..9774c5882a 100644
--- a/guix/build-system/minetest.scm
+++ b/guix/build-system/minetest.scm
@@ -38,7 +38,7 @@ (define (default-minetest)
   (module-ref (resolve-interface '(gnu packages minetest)) 'minetest))
 
 (define (default-minetest-game)
-  (module-ref (resolve-interface '(gnu packages minetest)) 'minetest-minetest-game))
+  (module-ref (resolve-interface '(gnu packages minetest)) 'minetest-game))
 
 (define (default-xvfb-run)
   (module-ref (resolve-interface '(gnu packages xorg)) 'xvfb-run))

base-commit: 2d54ea6c8cc0a0bbb0c39d90d080fcf572533205
-- 
2.45.2