unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again)
@ 2024-08-31 10:52 Jan Wielkiewicz
  2024-08-31 10:54 ` [bug#72912] [PATCH 1/1] gnu: minetest: update to 5.9.0 Jan Wielkiewicz
  2024-08-31 11:40 ` [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again) Liliana Marie Prikler
  0 siblings, 2 replies; 13+ messages in thread
From: Jan Wielkiewicz @ 2024-08-31 10:52 UTC (permalink / raw)
  To: 72912
  Cc: Jan Wielkiewicz, Adam Faiz, Liliana Marie Prikler,
	宋文武

Sending again after sending guix lint messages.

Minetest got updated to 5.9.0. This was a big update with major changes.
Minetest Game (MTG) got dropped - is not longer the official game for the
Minetest engine, and got debundled from default Minetest (engine) shipped
to players. Hence I'm debundling it from this Guix package renamed from
"minetest-data" to "minetest-minetest-game" and deprecated the former package.
In this release irrlicht-for-minetest got merged into Minetest's tree, so
I'm deprecating the package. I also had to adjust the minetest build system
to use the new "minetest-minetest-game" package for testing.
MTG also entered maintenance-only mode and became a rolling release,
so I picked the latest commit from the master branch for it instead of git tags.

Minetest build system actually makes a pretty ugly assumption -
that all minetest mods are mods for MTG, while the game supports
mods for any minetest game (for example Voxelibre, Nodecore and such).
So testing all mods against MTG makes no sense, but it will addressed in
future commits.

Jan Wielkiewicz (1):
  gnu: minetest: update to 5.9.0.

 gnu/packages/games.scm         |  24 +---
 gnu/packages/minetest.scm      | 239 +++++++++++++++++----------------
 guix/build-system/minetest.scm |   4 +
 3 files changed, 130 insertions(+), 137 deletions(-)


base-commit: d5312370b46ace47e138d84e1bb28e5651cee94b
-- 
2.45.2





^ permalink raw reply	[flat|nested] 13+ messages in thread

* [bug#72912] [PATCH 1/1] gnu: minetest: update to 5.9.0.
  2024-08-31 10:52 [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again) Jan Wielkiewicz
@ 2024-08-31 10:54 ` Jan Wielkiewicz
  2024-08-31 11:40 ` [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again) Liliana Marie Prikler
  1 sibling, 0 replies; 13+ messages in thread
From: Jan Wielkiewicz @ 2024-08-31 10:54 UTC (permalink / raw)
  To: 72912
  Cc: Jan Wielkiewicz, Adam Faiz, Liliana Marie Prikler,
	宋文武

* gnu/packages/minetest.scm (minetest): Update to 5.9.0.
(minetest-data): Update to 88ecab3.
Rename to (minetest-minetest-game),
deprecate (minetest-data). Minetest Game stopped being
the official game for the Minetest engine.

* gnu/packages/games.scm (irrlicht-for-minetest):
deprecate as it was merged into upstream minetest.

* guix/build-system/minetest.scm:
add (default-minetest-game), use in
(standard-minetest-packages).

Change-Id: I0117bd33a2ce5eb1c79fdb29878682081f61dd4e
---
 gnu/packages/games.scm         |  24 +---
 gnu/packages/minetest.scm      | 239 +++++++++++++++++----------------
 guix/build-system/minetest.scm |   4 +
 3 files changed, 130 insertions(+), 137 deletions(-)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 8e35df0278..3b5c6c9544 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -83,6 +83,7 @@
 ;;; Copyright © 2024 Vagrant Cascadian <vagrant@debian.org>
 ;;; Copyright © 2024 Sébastien Lerique <sl@eauchat.org>
 ;;; Copyright © 2024 James Smith <jsubuntuxp@disroot.org>
+;;; Copyright © 2024 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3954,29 +3955,6 @@ (define-public irrlicht
     (home-page "https://irrlicht.sourceforge.io/")
     (license license:zlib)))
 
-(define-public irrlicht-for-minetest
-  (package
-    (inherit irrlicht)
-    (name "irrlicht-for-minetest")
-    (version "1.9.0mt13")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/minetest/irrlicht")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "11pxg0yh50ym1hvh8va5jbbcjz5dsshj3xxvm3qhkgg96vpism06"))))
-    (build-system cmake-build-system)
-    (arguments
-     ;; No check target.
-     (list #:tests? #f))
-    (inputs
-     (modify-inputs (package-inputs irrlicht)
-       (prepend libxi)))))
-
 (define-public mars
   ;; The latest release on SourceForge relies on an unreleased version of SFML
   ;; with a different API, so we take the latest version from the official
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 831ccf6e72..26764bfba8 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2021 Trevor Hass <thass@okstate.edu>
 ;;; Copyright © 2020, 2021, 2022 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2024 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 ;;; This file is part of GNU Guix.
 ;;;
 ;;; GNU Guix is free software; you can redistribute it and/or modify it
@@ -29,7 +30,6 @@ (define-module (gnu packages minetest)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages fontutils)
-  #:use-module (gnu packages games)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages image)
@@ -53,105 +53,106 @@ (define-module (gnu packages minetest)
 (define-public minetest
   (package
     (name "minetest")
-    (version "5.8.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/minetest/minetest")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1sww17h8z77w38jk19nsqxn8xcj27msq0glbil7pyj4i0ffprjrr"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; Delete bundled libraries.
-                  (delete-file-recursively "lib")
-                  #t))))
+    (version "5.9.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/minetest/minetest")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1h4yn4k0wpjr1h24aiqcnc9xsxgxj4bq757pla2pa9zmh2xf45kk"))
+       (modules '((guix build utils)))
+       ;; Delete bundled libraries, keep lib/sha256 because there's no good
+       ;; upstream, see:
+       ;; https://github.com/openssl/openssl/blob/master/crypto/sha/sha512.c
+       ;; "SHA512 low level APIs are deprecated for public use,
+       ;; but still ok for internal use." Also asked MT devs on IRC for this.
+       (snippet
+        '(begin
+           (with-directory-excursion "lib"
+             (for-each (lambda (file)
+                         (if (not (string=? file "sha256"))
+                             (delete-file-recursively file)))
+                       (find-files (string-append "lib") #:directories? #t)))
+           #t))))
     (build-system cmake-build-system)
     (arguments
      (list
       #:configure-flags
-      #~(list "-DRUN_IN_PLACE=0"
-              "-DENABLE_FREETYPE=1"
-              "-DENABLE_GETTEXT=1"
-              "-DENABLE_SYSTEM_JSONCPP=TRUE"
-              (string-append "-DIRRLICHTMT_INCLUDE_DIR="
-                             (search-input-directory %build-inputs
-                                                     "include/irrlichtmt"))
+      #~(list "-DENABLE_LTO=ON"
+              "-DENABLE_UPDATE_CHECKER=FALSE"
               (string-append "-DCURL_INCLUDE_DIR="
-                             (search-input-directory %build-inputs
-                                                     "include/curl"))
+                             (search-input-directory
+                              %build-inputs "include/curl"))
               (string-append "-DZSTD_INCLUDE_DIR="
-                             (dirname
-                              (search-input-file %build-inputs
-                                                 "include/zstd.h")))
+                             (dirname (search-input-file
+                                       %build-inputs
+                                       "include/zstd.h")))
               (string-append "-DZSTD_LIBRARY="
-                             (search-input-file %build-inputs
-                                                "lib/libzstd.so")))
-       #:phases
-       #~(modify-phases %standard-phases
-           (add-after 'unpack 'patch-sources
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "src/filesys.cpp"
-                 ;; Use store-path for "rm" instead of non-existing FHS path.
-                 (("\"/bin/rm\"")
-                  (format #f "~s" (search-input-file inputs "bin/rm"))))
-               (substitute* "src/CMakeLists.txt"
-                 ;; Let minetest binary remain in build directory.
-                 (("set\\(EXECUTABLE_OUTPUT_PATH .*\\)") ""))
-               (substitute* "src/unittest/test_servermodmanager.cpp"
-                 ;; do no override MINETEST_SUBGAME_PATH
-                 (("(un)?setenv\\(\"MINETEST_SUBGAME_PATH\".*\\);")
-                  "(void)0;"))
-               (setenv "MINETEST_SUBGAME_PATH" ; for check
-                       (string-append (getcwd) "/games"))))
-           (delete 'check)
-           (add-after 'install 'check
-             (lambda* (#:key tests? #:allow-other-keys)
-               ;; Thanks to our substitutions, the tests should also run
-               ;; when invoked on the target outside of `guix build'.
-               (when tests?
-                 (setenv "HOME" "/tmp")
-                 (invoke "src/minetest" "--run-unittests")))))))
+                             (search-input-file
+                              %build-inputs "lib/libzstd.so")))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-sources
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "src/filesys.cpp"
+                ;; Use store-path for "rm" instead of non-existing FHS path.
+                (("\"/bin/rm\"")
+                 (format #f "~s"
+                         (search-input-file inputs "bin/rm"))))
+              (substitute* "src/CMakeLists.txt"
+                ;; Let minetest binary remain in build directory.
+                (("set\\(EXECUTABLE_OUTPUT_PATH .*\\)")
+                 ""))
+              (substitute* "src/unittest/test_servermodmanager.cpp"
+                ;; do no override MINETEST_GAME_PATH
+                (("(un)?setenv\\(\"MINETEST_GAME_PATH\".*\\);")
+                 "(void)0;"))
+              (setenv "MINETEST_GAME_PATH" ;for check
+                      (string-append (getcwd) "/games"))))
+          (delete 'check)
+          (add-after 'install 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              ;; Thanks to our substitutions, the tests should also run
+              ;; when invoked on the target outside of `guix build'.
+              (when tests?
+                (setenv "HOME" "/tmp")
+                (invoke "src/minetest" "--run-unittests")))))))
     (native-search-paths
      (list (search-path-specification
-            (variable "MINETEST_SUBGAME_PATH")
+            (variable "MINETEST_GAME_PATH")
             (files '("share/minetest/games")))
            (search-path-specification
             (variable "MINETEST_MOD_PATH")
             (files '("share/minetest/mods")))))
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     (list coreutils
-           curl
-           freetype
-           gettext-minimal
-           gmp
-           irrlicht-for-minetest
-           jsoncpp
-           libjpeg-turbo
-           libpng
-           libogg
-           libvorbis
-           libxxf86vm
-           luajit
-           mesa
-           ncurses
-           openal
-           sqlite
-           `(,zstd "lib")))
-    (propagated-inputs
-     (list minetest-data))
-    (synopsis "Infinite-world block sandbox game")
+    (native-inputs (list pkg-config))
+    (inputs (list coreutils
+                  curl
+                  freetype
+                  gettext-minimal
+                  gmp
+                  jsoncpp
+                  libjpeg-turbo
+                  libpng
+                  libogg
+                  libvorbis
+                  libxxf86vm
+                  libxi
+                  luajit
+                  mesa
+                  ncurses
+                  openal
+                  sqlite
+                  `(,zstd "lib")))
+    (synopsis "Voxel game and game engine")
     (description
-     "Minetest is a sandbox construction game.  Players can create and destroy
-various types of blocks in a three-dimensional open world.  This allows
-forming structures in every possible creation, on multiplayer servers or as a
-single player.  Mods and texture packs allow players to personalize the game
-in different ways.")
+     "Minetest is a voxel game engine with easy 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).")
     (home-page "https://www.minetest.net/")
     (license license:lgpl2.1+)))
 
@@ -183,35 +184,45 @@ (define-public minetest-server
                "openal")))
     (synopsis "Infinite-world block sandbox game (server)")
     (description
-     "Minetest is a sandbox construction game.  Players can create and destroy
-various types of blocks in a three-dimensional open world.  This allows
-forming structures in every possible creation, on multiplayer servers or as a
-single player.  Mods and texture packs allow players to personalize the game
-in different ways.  This package provides @command{minetestserver} to run a
-Minetest server.")))
+     "Server for Minetest game engine and gaming platform. Allows hosting
+Minetest games with multiplayer support.  This package provides
+@command{minetestserver} to run a Minetest server.")))
 
-(define minetest-data
-  (package
-    (name "minetest-data")
-    (version (package-version minetest))
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/minetest/minetest_game")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1pq4rm15lzwcqv6npgyz6v89hi3zj8zybw25n9i0d27qj786xc4z"))))
-    (build-system copy-build-system)
-    (arguments
-     (list #:install-plan
-           #~'(("." "/share/minetest/games/minetest_game"))))
-    (synopsis "Main game data for the Minetest game engine")
-    (description
-     "Game data for the Minetest infinite-world block sandbox game.")
-    (home-page "https://www.minetest.net/")
-    (license license:lgpl2.1+)))
+(define-public minetest-minetest-game
+  (let ((branch "master")
+        (commit "88ecab34d98550c8eb77f49ac2866b480a6e707a"))
+    (package
+      (name "minetest-minetest-game")
+      (version (git-version branch "0" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/minetest/minetest_game")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0pvr3m7kxrriabw20sy6rhx0givh5ic85dk5g88cbbsy83admsp0"))))
+      (build-system copy-build-system)
+      (arguments
+       (list
+        #:install-plan #~'(("." "/share/minetest/games/minetest_game"))))
+      (synopsis "Ex-official game for Minetest game engine")
+      (description
+       "A game for the Minetest voxel game platform. It provides a very basic
+Minecraft-like base for some mods. It is currently in maintenance mode
+and gets no new features.")
+      (home-page "https://www.minetest.net/")
+      (license license:lgpl2.1+))))
+
+;; This package is deprecated. 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))
 
 (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 1fae3a47e9..85459f905c 100644
--- a/guix/build-system/minetest.scm
+++ b/guix/build-system/minetest.scm
@@ -37,6 +37,9 @@ (define (default-optipng)
 (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))
+
 (define (default-xvfb-run)
   (module-ref (resolve-interface '(gnu packages xorg)) 'xvfb-run))
 
@@ -57,6 +60,7 @@ (define (standard-minetest-packages)
   `(("xvfb-run" ,(default-xvfb-run))
     ("optipng" ,(default-optipng))
     ("minetest" ,(default-minetest))
+    ("minetest-game" ,(default-minetest-game))
     ,@(filter (lambda (input)
                 (member (car input)
                         '("libc" "tar" "gzip" "bzip2" "xz" "locales")))
-- 
2.45.2





^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again)
  2024-08-31 10:52 [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again) Jan Wielkiewicz
  2024-08-31 10:54 ` [bug#72912] [PATCH 1/1] gnu: minetest: update to 5.9.0 Jan Wielkiewicz
@ 2024-08-31 11:40 ` Liliana Marie Prikler
  2024-08-31 12:26   ` Jan Wielkiewicz
  1 sibling, 1 reply; 13+ messages in thread
From: Liliana Marie Prikler @ 2024-08-31 11:40 UTC (permalink / raw)
  To: Jan Wielkiewicz, 72912; +Cc: 宋文武, Adam Faiz

Am Samstag, dem 31.08.2024 um 12:52 +0200 schrieb Jan Wielkiewicz:
> Sending again after sending guix lint messages.
Note for future submissions: it's okay (and even expected) to use --
reroll-count while sending the revised patch to the same address as the
original one. 

> Minetest got updated to 5.9.0. This was a big update with major
> changes.  Minetest Game (MTG) got dropped - is not longer the
> official game for the Minetest engine, and got debundled from default
> Minetest (engine) shipped to players. Hence I'm debundling it from
> this Guix package renamed from "minetest-data" to "minetest-minetest-
> game" and deprecated the former package.
That's a somewhat unfortunate name.  Is there no better name to choose?
Is there a reason not to use "minetest-game" for example?

> In this release irrlicht-for-minetest got merged into Minetest's
> tree, so I'm deprecating the package. I also had to adjust the
> minetest build system to use the new "minetest-minetest-game" package
> for testing. MTG also entered maintenance-only mode and became a
> rolling release, so I picked the latest commit from the master branch
> for it instead of git tags.
We also like to unbundle such dependencies.  Is there a way forward for
doing so?

> Minetest build system actually makes a pretty ugly assumption -
> that all minetest mods are mods for MTG, while the game supports
> mods for any minetest game (for example Voxelibre, Nodecore and
> such). So testing all mods against MTG makes no sense, but it will
> addressed in future commits.
Sounds like a plan.

Cheers




^ permalink raw reply	[flat|nested] 13+ messages in thread

* [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again)
  2024-08-31 11:40 ` [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again) Liliana Marie Prikler
@ 2024-08-31 12:26   ` Jan Wielkiewicz
  2024-09-05 19:17     ` Leo Famulari
  0 siblings, 1 reply; 13+ messages in thread
From: Jan Wielkiewicz @ 2024-08-31 12:26 UTC (permalink / raw)
  To: Liliana Marie Prikler; +Cc: 72912, 宋文武, Adam Faiz

On Sat, 31 Aug 2024 13:40:02 +0200
Liliana Marie Prikler <liliana.prikler@gmail.com> wrote:

> Am Samstag, dem 31.08.2024 um 12:52 +0200 schrieb Jan Wielkiewicz:
> > Sending again after sending guix lint messages.
> Note for future submissions: it's okay (and even expected) to use --
> reroll-count while sending the revised patch to the same address as
> the original one. 

Okay, will do so. I missed that in documentation.

> > Minetest got updated to 5.9.0. This was a big update with major
> > changes.  Minetest Game (MTG) got dropped - is not longer the
> > official game for the Minetest engine, and got debundled from
> > default Minetest (engine) shipped to players. Hence I'm debundling
> > it from this Guix package renamed from "minetest-data" to
> > "minetest-minetest- game" and deprecated the former package.
> That's a somewhat unfortunate name.  Is there no better name to
> choose? Is there a reason not to use "minetest-game" for example?

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

I know it's convoluted, but the naming ambiguity is inherited from the
upstream project. I believe this redundant name makes it clearer.

> > In this release irrlicht-for-minetest got merged into Minetest's
> > tree, so I'm deprecating the package. I also had to adjust the
> > minetest build system to use the new "minetest-minetest-game"
> > package for testing. MTG also entered maintenance-only mode and
> > became a rolling release, so I picked the latest commit from the
> > master branch for it instead of git tags.
> We also like to unbundle such dependencies.  Is there a way forward
> for doing so?

There's no unbundling to be done here. Minetest was the sole user of
irrlicht-for-minetest. Minetest developers moved irrlicht directly into
the game's code and the two components are tightly coupled. The
irrlicht fork has been archived: https://github.com/minetest/irrlicht
So the irrlicht-for-minetest code that was moved into Minetest is now
considered to be a non-replaceable non-modular part of the code that's
not meant to be anywhere but in Minetest only. On top of that it's not
longer possible to use upstream irrlicht in Minetest, hence the
decision to move the fork into the game's tree directly.

> 
> > Minetest build system actually makes a pretty ugly assumption -
> > that all minetest mods are mods for MTG, while the game supports
> > mods for any minetest game (for example Voxelibre, Nodecore and
> > such). So testing all mods against MTG makes no sense, but it will
> > addressed in future commits.
> Sounds like a plan.
> 
> Cheers

Hope this makes it clear.

--

Jan Wielkiewicz





^ permalink raw reply	[flat|nested] 13+ messages in thread

* [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again)
  2024-08-31 12:26   ` Jan Wielkiewicz
@ 2024-09-05 19:17     ` Leo Famulari
  2024-09-05 23:05       ` Jan Wielkiewicz
  0 siblings, 1 reply; 13+ messages in thread
From: Leo Famulari @ 2024-09-05 19:17 UTC (permalink / raw)
  To: Jan Wielkiewicz
  Cc: Adam Faiz, 72912, Liliana Marie Prikler, 宋文武

[-- Attachment #1: Type: text/plain, Size: 2324 bytes --]

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?

[-- Attachment #2: 0001-WIP.patch --]
[-- Type: text/plain, Size: 3393 bytes --]

From f29b6d80484f6d702a023a85bc51e55b83175e62 Mon Sep 17 00:00:00 2001
Message-ID: <f29b6d80484f6d702a023a85bc51e55b83175e62.1725563587.git.leo@famulari.name>
From: Leo Famulari <leo@famulari.name>
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


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again)
  2024-09-05 19:17     ` Leo Famulari
@ 2024-09-05 23:05       ` Jan Wielkiewicz
  2024-09-06  2:48         ` Leo Famulari
  0 siblings, 1 reply; 13+ messages in thread
From: Jan Wielkiewicz @ 2024-09-05 23:05 UTC (permalink / raw)
  To: Leo Famulari
  Cc: Adam Faiz, 72912, Liliana Marie Prikler, 宋文武

Hi,

On Thu, 5 Sep 2024 15:17:56 -0400
Leo Famulari <leo@famulari.name> wrote:

> 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".

Well, I guess "minetest-game" should be fine then.

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

Do I need to apply the patch and resend it or will a maintainer take
care of that?

> 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

Looks good.

> 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?

There are multiple games for Minetest, most of them listed on ContentDB
https://content.minetest.net/packages/?type=game
The general idea is that after dropping MTG as the default, it's up to
the user to pick what they want to play. ContentDB can be also accessed
in the game and the game upon the first startup instructs the user to
install a game. ContentDB has a relatively strict policy for package
inclusion: https://content.minetest.net/policy_and_guidance/
Most games/mods are free software, some packages that aren't are
clearly marked as such with red text. Most importantly Minetest by
default hides non-free packages from ContentDB in the game. So it
should be fine to let users pick a game they like from ContentDB.

I think that Mineclone is not the best default game because it does a
1:1 copy of Minecraft. It is free software and assets are free, but a
1:1 copy is legally questionable. That's why I believe we shouldn't ship
Minetest with any game preinstalled.

On a side note, I plan updating existing Minetest packages and adding
more games for it, but this work should be merged first.

> 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.

Makes sense.

> 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.

People still play this, in fact it has hundreds of mods and is still
the second most popular game, it's just not official anymore. Also the
input was propagated so it makes sense to replace it with the new
"minetest-game" package I guess? If people don't want it they can still
remove it. But new installs shouldn't get this installed by default.
Long story short Minetest devs considered MTG was a bad advertisement
for the project also a waste of their resources and decided to focus on
the engine instead.

> What do you think?

Looks good.

--

Jan





^ permalink raw reply	[flat|nested] 13+ messages in thread

* [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again)
  2024-09-05 23:05       ` Jan Wielkiewicz
@ 2024-09-06  2:48         ` Leo Famulari
  2024-09-06 15:15           ` Jan Wielkiewicz
  0 siblings, 1 reply; 13+ messages in thread
From: Leo Famulari @ 2024-09-06  2:48 UTC (permalink / raw)
  To: Jan Wielkiewicz
  Cc: Adam Faiz, 72912, Liliana Marie Prikler, 宋文武

[-- Attachment #1: Type: text/plain, Size: 550 bytes --]

On Fri, Sep 06, 2024 at 01:05:48AM +0200, Jan Wielkiewicz wrote:
> Do I need to apply the patch and resend it or will a maintainer take
> care of that?

I prepared an updated patch (attached).

There's something I don't quite understand:

The "minetest-game" package doesn't provide any executables. It's just
data.

The "minetest" package still runs and lets me play the basic minetest
game locally or on a server.

Is that expected? I would have expected differently based on the news
about the removal of the game from the engine's codebase.

Leo

[-- Attachment #2: 0001-gnu-minetest-Update-to-5.9.0.patch --]
[-- Type: text/plain, Size: 15910 bytes --]

From 6cbd545902644d18204ed9db6b8de6de24f7b62d Mon Sep 17 00:00:00 2001
Message-ID: <6cbd545902644d18204ed9db6b8de6de24f7b62d.1725590913.git.leo@famulari.name>
From: Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
Date: Sat, 31 Aug 2024 12:54:59 +0200
Subject: [PATCH] gnu: minetest: Update to 5.9.0.

The Minetest engine and the "Minetest Game" have been decoupled upstream
in Minetest 5.9.0:

https://dev.minetest.net/Changelog#Minetest_Game

* gnu/packages/minetest.scm (minetest): Update to 5.9.0.
[arguments]: Adjust #:configure-flags and #:phases to account for the
removal of the Minetest Game from the Minetest codebase.
[native-search-paths, synopsis, description]: Likewise.
[inputs]: Remove IRRLICHT-FOR-MINETEST.
(minetest-data): Update to 0.0.0-0.88ecab3.  Rename to MINETEST-GAME and
deprecate MINETEST-DATA.
[synopsis, description]: Adjust to account for the decoupling of the game from
the engine.
* gnu/packages/games.scm (irrlicht-for-minetest): Remove variable.
* guix/build-system/minetest.scm (default-minetest-game): New variable.
(%default-modules): Use it.

Change-Id: I0117bd33a2ce5eb1c79fdb29878682081f61dd4e
Signed-off-by: Leo Famulari <leo@famulari.name>
---
 gnu/packages/games.scm         |  24 +---
 gnu/packages/minetest.scm      | 235 +++++++++++++++++----------------
 guix/build-system/minetest.scm |   4 +
 3 files changed, 126 insertions(+), 137 deletions(-)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 30057a4f4a..7f0debac07 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -83,6 +83,7 @@
 ;;; Copyright © 2024 Vagrant Cascadian <vagrant@debian.org>
 ;;; Copyright © 2024 Sébastien Lerique <sl@eauchat.org>
 ;;; Copyright © 2024 James Smith <jsubuntuxp@disroot.org>
+;;; Copyright © 2024 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3961,29 +3962,6 @@ (define-public irrlicht
     (home-page "https://irrlicht.sourceforge.io/")
     (license license:zlib)))
 
-(define-public irrlicht-for-minetest
-  (package
-    (inherit irrlicht)
-    (name "irrlicht-for-minetest")
-    (version "1.9.0mt13")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/minetest/irrlicht")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "11pxg0yh50ym1hvh8va5jbbcjz5dsshj3xxvm3qhkgg96vpism06"))))
-    (build-system cmake-build-system)
-    (arguments
-     ;; No check target.
-     (list #:tests? #f))
-    (inputs
-     (modify-inputs (package-inputs irrlicht)
-       (prepend libxi)))))
-
 (define-public mars
   ;; The latest release on SourceForge relies on an unreleased version of SFML
   ;; with a different API, so we take the latest version from the official
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 831ccf6e72..4ea4854695 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2021 Trevor Hass <thass@okstate.edu>
 ;;; Copyright © 2020, 2021, 2022 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2024 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 ;;; This file is part of GNU Guix.
 ;;;
 ;;; GNU Guix is free software; you can redistribute it and/or modify it
@@ -29,7 +30,6 @@ (define-module (gnu packages minetest)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages fontutils)
-  #:use-module (gnu packages games)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages image)
@@ -53,105 +53,107 @@ (define-module (gnu packages minetest)
 (define-public minetest
   (package
     (name "minetest")
-    (version "5.8.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/minetest/minetest")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1sww17h8z77w38jk19nsqxn8xcj27msq0glbil7pyj4i0ffprjrr"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; Delete bundled libraries.
-                  (delete-file-recursively "lib")
-                  #t))))
+    (version "5.9.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/minetest/minetest")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1h4yn4k0wpjr1h24aiqcnc9xsxgxj4bq757pla2pa9zmh2xf45kk"))
+       (modules '((guix build utils)))
+       ;; Delete bundled libraries, keep lib/sha256 because there's no good
+       ;; upstream, see:
+       ;; https://github.com/openssl/openssl/blob/master/crypto/sha/sha512.c
+       ;; "SHA512 low level APIs are deprecated for public use,
+       ;; but still ok for internal use." Also asked MT devs on IRC for this.
+       (snippet
+        '(begin
+           (with-directory-excursion "lib"
+             (for-each (lambda (file)
+                         (if (not (string=? file "sha256"))
+                             (delete-file-recursively file)))
+                       (find-files (string-append "lib") #:directories? #t)))
+           #t))))
     (build-system cmake-build-system)
     (arguments
      (list
       #:configure-flags
-      #~(list "-DRUN_IN_PLACE=0"
-              "-DENABLE_FREETYPE=1"
-              "-DENABLE_GETTEXT=1"
-              "-DENABLE_SYSTEM_JSONCPP=TRUE"
-              (string-append "-DIRRLICHTMT_INCLUDE_DIR="
-                             (search-input-directory %build-inputs
-                                                     "include/irrlichtmt"))
+      #~(list "-DENABLE_LTO=ON"
+              "-DENABLE_UPDATE_CHECKER=FALSE"
               (string-append "-DCURL_INCLUDE_DIR="
-                             (search-input-directory %build-inputs
-                                                     "include/curl"))
+                             (search-input-directory
+                              %build-inputs "include/curl"))
               (string-append "-DZSTD_INCLUDE_DIR="
-                             (dirname
-                              (search-input-file %build-inputs
-                                                 "include/zstd.h")))
+                             (dirname (search-input-file
+                                       %build-inputs
+                                       "include/zstd.h")))
               (string-append "-DZSTD_LIBRARY="
-                             (search-input-file %build-inputs
-                                                "lib/libzstd.so")))
-       #:phases
-       #~(modify-phases %standard-phases
-           (add-after 'unpack 'patch-sources
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "src/filesys.cpp"
-                 ;; Use store-path for "rm" instead of non-existing FHS path.
-                 (("\"/bin/rm\"")
-                  (format #f "~s" (search-input-file inputs "bin/rm"))))
-               (substitute* "src/CMakeLists.txt"
-                 ;; Let minetest binary remain in build directory.
-                 (("set\\(EXECUTABLE_OUTPUT_PATH .*\\)") ""))
-               (substitute* "src/unittest/test_servermodmanager.cpp"
-                 ;; do no override MINETEST_SUBGAME_PATH
-                 (("(un)?setenv\\(\"MINETEST_SUBGAME_PATH\".*\\);")
-                  "(void)0;"))
-               (setenv "MINETEST_SUBGAME_PATH" ; for check
-                       (string-append (getcwd) "/games"))))
-           (delete 'check)
-           (add-after 'install 'check
-             (lambda* (#:key tests? #:allow-other-keys)
-               ;; Thanks to our substitutions, the tests should also run
-               ;; when invoked on the target outside of `guix build'.
-               (when tests?
-                 (setenv "HOME" "/tmp")
-                 (invoke "src/minetest" "--run-unittests")))))))
+                             (search-input-file
+                              %build-inputs "lib/libzstd.so")))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-sources
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "src/filesys.cpp"
+                ;; Use store-path for "rm" instead of non-existing FHS path.
+                (("\"/bin/rm\"")
+                 (format #f "~s"
+                         (search-input-file inputs "bin/rm"))))
+              (substitute* "src/CMakeLists.txt"
+                ;; Let minetest binary remain in build directory.
+                (("set\\(EXECUTABLE_OUTPUT_PATH .*\\)")
+                 ""))
+              (substitute* "src/unittest/test_servermodmanager.cpp"
+                ;; do no override MINETEST_GAME_PATH
+                (("(un)?setenv\\(\"MINETEST_GAME_PATH\".*\\);")
+                 "(void)0;"))
+              (setenv "MINETEST_GAME_PATH" ;for check
+                      (string-append (getcwd) "/games"))))
+          (delete 'check)
+          (add-after 'install 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              ;; Thanks to our substitutions, the tests should also run
+              ;; when invoked on the target outside of `guix build'.
+              (when tests?
+                (setenv "HOME" "/tmp")
+                (invoke "src/minetest" "--run-unittests")))))))
     (native-search-paths
      (list (search-path-specification
-            (variable "MINETEST_SUBGAME_PATH")
+            (variable "MINETEST_GAME_PATH")
             (files '("share/minetest/games")))
            (search-path-specification
             (variable "MINETEST_MOD_PATH")
             (files '("share/minetest/mods")))))
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     (list coreutils
-           curl
-           freetype
-           gettext-minimal
-           gmp
-           irrlicht-for-minetest
-           jsoncpp
-           libjpeg-turbo
-           libpng
-           libogg
-           libvorbis
-           libxxf86vm
-           luajit
-           mesa
-           ncurses
-           openal
-           sqlite
-           `(,zstd "lib")))
-    (propagated-inputs
-     (list minetest-data))
-    (synopsis "Infinite-world block sandbox game")
+    (native-inputs (list pkg-config))
+    (inputs (list coreutils
+                  curl
+                  freetype
+                  gettext-minimal
+                  gmp
+                  jsoncpp
+                  libjpeg-turbo
+                  libpng
+                  libogg
+                  libvorbis
+                  libxxf86vm
+                  libxi
+                  luajit
+                  mesa
+                  ncurses
+                  openal
+                  sqlite
+                  `(,zstd "lib")))
+    (synopsis "Voxel game engine")
     (description
-     "Minetest is a sandbox construction game.  Players can create and destroy
-various types of blocks in a three-dimensional open world.  This allows
-forming structures in every possible creation, on multiplayer servers or as a
-single player.  Mods and texture packs allow players to personalize the game
-in different ways.")
+     "Minetest is a voxel game engine that supports modding and game creation
+using its Lua modding API.  It allows playing a wide range of voxel-based
+games, installing mods and texture packs.  This package only provides the base
+platform, users need to install games themselves (for example,
+@code{minetest-game}), either through Guix, the built-in interface or other
+sources.")
     (home-page "https://www.minetest.net/")
     (license license:lgpl2.1+)))
 
@@ -183,35 +185,40 @@ (define-public minetest-server
                "openal")))
     (synopsis "Infinite-world block sandbox game (server)")
     (description
-     "Minetest is a sandbox construction game.  Players can create and destroy
-various types of blocks in a three-dimensional open world.  This allows
-forming structures in every possible creation, on multiplayer servers or as a
-single player.  Mods and texture packs allow players to personalize the game
-in different ways.  This package provides @command{minetestserver} to run a
-Minetest server.")))
+     "Server for Minetest game engine and gaming platform. Allows hosting
+Minetest games with multiplayer support.  This package provides
+@command{minetestserver} to run a Minetest server.")))
 
-(define minetest-data
-  (package
-    (name "minetest-data")
-    (version (package-version minetest))
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/minetest/minetest_game")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1pq4rm15lzwcqv6npgyz6v89hi3zj8zybw25n9i0d27qj786xc4z"))))
-    (build-system copy-build-system)
-    (arguments
-     (list #:install-plan
-           #~'(("." "/share/minetest/games/minetest_game"))))
-    (synopsis "Main game data for the Minetest game engine")
-    (description
-     "Game data for the Minetest infinite-world block sandbox game.")
-    (home-page "https://www.minetest.net/")
-    (license license:lgpl2.1+)))
+(define-public minetest-game
+  (let ((commit "88ecab34d98550c8eb77f49ac2866b480a6e707a")
+        (revision "0"))
+    (package
+      (name "minetest-game")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/minetest/minetest_game")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0pvr3m7kxrriabw20sy6rhx0givh5ic85dk5g88cbbsy83admsp0"))))
+      (build-system copy-build-system)
+      (arguments
+       (list
+        #:install-plan #~'(("." "/share/minetest/games/minetest_game"))))
+      (synopsis "Ex-official game for Minetest game engine")
+      (description
+       "A game for the Minetest voxel game platform. It provides a very basic
+Minecraft-like base for some mods. It is currently in maintenance mode
+and gets no new features.")
+      (home-page "https://www.minetest.net/")
+      (license license:lgpl2.1+))))
+
+;; This package is deprecated. "Minetest Game" is no longer the official game.
+(define-public minetest-data
+  (deprecated-package "minetest-data" minetest-game))
 
 (define-public (minetest-topic topic-id)
   "Return an URL (as a string) pointing to the forum topic with
diff --git a/guix/build-system/minetest.scm b/guix/build-system/minetest.scm
index 1fae3a47e9..9774c5882a 100644
--- a/guix/build-system/minetest.scm
+++ b/guix/build-system/minetest.scm
@@ -37,6 +37,9 @@ (define (default-optipng)
 (define (default-minetest)
   (module-ref (resolve-interface '(gnu packages minetest)) 'minetest))
 
+(define (default-minetest-game)
+  (module-ref (resolve-interface '(gnu packages minetest)) 'minetest-game))
+
 (define (default-xvfb-run)
   (module-ref (resolve-interface '(gnu packages xorg)) 'xvfb-run))
 
@@ -57,6 +60,7 @@ (define (standard-minetest-packages)
   `(("xvfb-run" ,(default-xvfb-run))
     ("optipng" ,(default-optipng))
     ("minetest" ,(default-minetest))
+    ("minetest-game" ,(default-minetest-game))
     ,@(filter (lambda (input)
                 (member (car input)
                         '("libc" "tar" "gzip" "bzip2" "xz" "locales")))

base-commit: 392a552524b7801b4a5517e40d860c05f010c655
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again)
  2024-09-06  2:48         ` Leo Famulari
@ 2024-09-06 15:15           ` Jan Wielkiewicz
  2024-09-06 17:45             ` Leo Famulari
  0 siblings, 1 reply; 13+ messages in thread
From: Jan Wielkiewicz @ 2024-09-06 15:15 UTC (permalink / raw)
  To: Leo Famulari
  Cc: Adam Faiz, 72912, Liliana Marie Prikler, 宋文武

On Thu, 5 Sep 2024 22:48:40 -0400
Leo Famulari <leo@famulari.name> wrote:

> On Fri, Sep 06, 2024 at 01:05:48AM +0200, Jan Wielkiewicz wrote:
> > Do I need to apply the patch and resend it or will a maintainer take
> > care of that?
> 
> I prepared an updated patch (attached).
> 
> There's something I don't quite understand:
> 
> The "minetest-game" package doesn't provide any executables. It's just
> data.
> 
> The "minetest" package still runs and lets me play the basic minetest
> game locally or on a server.
> 
> Is that expected? I would have expected differently based on the news
> about the removal of the game from the engine's codebase.

The Minetest engine is written in C++ but provides a modding Lua API.
Games and mods are written in Lua and Minetest (the engine) executes
them in a similar fashion as Emacs does to Elisp scripts or a web
browser does to JavaScript. Minetest Game (MTG) was previously the
default game and came preinstalled with the engine (the minetest-data
package).

So doing "guix install minetest" should give you only the "engine" and
this is what you should see after starting:
https://p.mort.coffee/4Og.png

If you see the minetest game installed along minetest that probably
means you had the older Minetest install in your profile and that
minetest-data got replaced by "minetest-game". An alternative
explanation is having MTG installed manually in
~/.minetest/games/minetest_game

> Leo





^ permalink raw reply	[flat|nested] 13+ messages in thread

* [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again)
  2024-09-06 15:15           ` Jan Wielkiewicz
@ 2024-09-06 17:45             ` Leo Famulari
  2024-09-06 18:19               ` Liliana Marie Prikler
  0 siblings, 1 reply; 13+ messages in thread
From: Leo Famulari @ 2024-09-06 17:45 UTC (permalink / raw)
  To: Jan Wielkiewicz
  Cc: Adam Faiz, 72912, Liliana Marie Prikler, 宋文武

On Fri, Sep 06, 2024 at 05:15:13PM +0200, Jan Wielkiewicz wrote:
> So doing "guix install minetest" should give you only the "engine" and
> this is what you should see after starting:
> https://p.mort.coffee/4Og.png

Okay, I don't see that but rather the interface to launch the Minetest
game.

> If you see the minetest game installed along minetest that probably
> means you had the older Minetest install in your profile and that
> minetest-data got replaced by "minetest-game". An alternative
> explanation is having MTG installed manually in
> ~/.minetest/games/minetest_game

That must be it.

So, I'm wondering if minetest-game should depend on or even propagate
minetest? Like, what is the correct method for a new user to install and
run the Minetest game with Minetest 5.9.0?




^ permalink raw reply	[flat|nested] 13+ messages in thread

* [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again)
  2024-09-06 17:45             ` Leo Famulari
@ 2024-09-06 18:19               ` Liliana Marie Prikler
  2024-09-09 21:37                 ` Jan Wielkiewicz
  0 siblings, 1 reply; 13+ messages in thread
From: Liliana Marie Prikler @ 2024-09-06 18:19 UTC (permalink / raw)
  To: Leo Famulari, Jan Wielkiewicz; +Cc: 72912, Adam Faiz, 宋文武

Am Freitag, dem 06.09.2024 um 13:45 -0400 schrieb Leo Famulari:
> So, I'm wondering if minetest-game should depend on or even propagate
> minetest? Like, what is the correct method for a new user to install
> and run the Minetest game with Minetest 5.9.0?
I would guess it's `guix install minetest minetest-game', but note that
you could also have `guix install minetest minetest-mineclone`.  I
would use the same pattern that we already use for Guile, Emacs, etc.
and just require that the base package be in the profile.

Cheers




^ permalink raw reply	[flat|nested] 13+ messages in thread

* [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again)
  2024-09-06 18:19               ` Liliana Marie Prikler
@ 2024-09-09 21:37                 ` Jan Wielkiewicz
  2024-09-10  4:29                   ` Liliana Marie Prikler
  2024-09-11  1:57                   ` bug#72912: " Leo Famulari
  0 siblings, 2 replies; 13+ messages in thread
From: Jan Wielkiewicz @ 2024-09-09 21:37 UTC (permalink / raw)
  To: Liliana Marie Prikler
  Cc: 72912, Adam Faiz, 宋文武, Leo Famulari

On Fri, 06 Sep 2024 20:19:06 +0200
Liliana Marie Prikler <liliana.prikler@gmail.com> wrote:

> Am Freitag, dem 06.09.2024 um 13:45 -0400 schrieb Leo Famulari:
> > So, I'm wondering if minetest-game should depend on or even
> > propagate minetest? Like, what is the correct method for a new user
> > to install and run the Minetest game with Minetest 5.9.0?
> I would guess it's `guix install minetest minetest-game', but note
> that you could also have `guix install minetest minetest-mineclone`.
> I would use the same pattern that we already use for Guile, Emacs,
> etc. and just require that the base package be in the profile.
> 
> Cheers

By this you mean I'd have to add minetest as a propagated input for
each package that needs it to run? I could do that, but I believe this
is out of the scope of the current work. I'll update minetest packages
in a future PR and while doing so I'll add minetest to propagated
inputs.

But right now packages don't depend on minetest and putting that in
this issue would be scope creep.

Is there anything else I need to do in order to get this merged?

--

Jan Wielkiewicz




^ permalink raw reply	[flat|nested] 13+ messages in thread

* [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again)
  2024-09-09 21:37                 ` Jan Wielkiewicz
@ 2024-09-10  4:29                   ` Liliana Marie Prikler
  2024-09-11  1:57                   ` bug#72912: " Leo Famulari
  1 sibling, 0 replies; 13+ messages in thread
From: Liliana Marie Prikler @ 2024-09-10  4:29 UTC (permalink / raw)
  To: Jan Wielkiewicz; +Cc: 72912, Adam Faiz, 宋文武, Leo Famulari

Am Montag, dem 09.09.2024 um 23:37 +0200 schrieb Jan Wielkiewicz:
> On Fri, 06 Sep 2024 20:19:06 +0200
> Liliana Marie Prikler <liliana.prikler@gmail.com> wrote:
> 
> > Am Freitag, dem 06.09.2024 um 13:45 -0400 schrieb Leo Famulari:
> > > So, I'm wondering if minetest-game should depend on or even
> > > propagate minetest? Like, what is the correct method for a new
> > > user
> > > to install and run the Minetest game with Minetest 5.9.0?
> > I would guess it's `guix install minetest minetest-game', but note
> > that you could also have `guix install minetest minetest-
> > mineclone`.
> > I would use the same pattern that we already use for Guile, Emacs,
> > etc. and just require that the base package be in the profile.
> > 
> > Cheers
> 
> By this you mean I'd have to add minetest as a propagated input for
> each package that needs it to run? I could do that, but I believe
> this is out of the scope of the current work. I'll update minetest
> packages in a future PR and while doing so I'll add minetest to
> propagated inputs.
No, I mean that it'd be the user who adds minetest on top of whatever
minetest-* they want to their profile, which can be done as-is.

> But right now packages don't depend on minetest and putting that in
> this issue would be scope creep.
> 
> Is there anything else I need to do in order to get this merged?
You would have to look for that in other discussions – I'll check at a
later time.

Cheers




^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#72912: [PATCH 0/1] Update Minetest to 5.9.0 (again)
  2024-09-09 21:37                 ` Jan Wielkiewicz
  2024-09-10  4:29                   ` Liliana Marie Prikler
@ 2024-09-11  1:57                   ` Leo Famulari
  1 sibling, 0 replies; 13+ messages in thread
From: Leo Famulari @ 2024-09-11  1:57 UTC (permalink / raw)
  To: Jan Wielkiewicz
  Cc: Adam Faiz, 72912-done, Liliana Marie Prikler,
	宋文武

On Mon, Sep 09, 2024 at 11:37:30PM +0200, Jan Wielkiewicz wrote:
> Liliana Marie Prikler <liliana.prikler@gmail.com> wrote:
> > Am Freitag, dem 06.09.2024 um 13:45 -0400 schrieb Leo Famulari:
> > > So, I'm wondering if minetest-game should depend on or even
> > > propagate minetest? Like, what is the correct method for a new user
> > > to install and run the Minetest game with Minetest 5.9.0?
> > I would guess it's `guix install minetest minetest-game', but note
> > that you could also have `guix install minetest minetest-mineclone`.
> > I would use the same pattern that we already use for Guile, Emacs,
> > etc. and just require that the base package be in the profile.

Sounds good to me.

> By this you mean I'd have to add minetest as a propagated input for
> each package that needs it to run? I could do that, but I believe this
> is out of the scope of the current work. I'll update minetest packages
> in a future PR and while doing so I'll add minetest to propagated
> inputs.

Okay, if you like. As Liliana pointed out, propagation may not be
expected in cases like this.

> Is there anything else I need to do in order to get this merged?

Pushed as ef428cf721861c01e21c96db61330a44e9a5ee28

Thanks again!




^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2024-09-11  1:59 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-31 10:52 [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again) Jan Wielkiewicz
2024-08-31 10:54 ` [bug#72912] [PATCH 1/1] gnu: minetest: update to 5.9.0 Jan Wielkiewicz
2024-08-31 11:40 ` [bug#72912] [PATCH 0/1] Update Minetest to 5.9.0 (again) Liliana Marie Prikler
2024-08-31 12:26   ` Jan Wielkiewicz
2024-09-05 19:17     ` Leo Famulari
2024-09-05 23:05       ` Jan Wielkiewicz
2024-09-06  2:48         ` Leo Famulari
2024-09-06 15:15           ` Jan Wielkiewicz
2024-09-06 17:45             ` Leo Famulari
2024-09-06 18:19               ` Liliana Marie Prikler
2024-09-09 21:37                 ` Jan Wielkiewicz
2024-09-10  4:29                   ` Liliana Marie Prikler
2024-09-11  1:57                   ` bug#72912: " Leo Famulari

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).