[PATCH] gnu: minetest: Update to 5.10.0.

  • Open
  • quality assurance status badge
Details
One participant
  • Parnikkapore
Owner
unassigned
Submitted by
Parnikkapore
Severity
normal
P
P
Parnikkapore wrote 35 hours ago
(address . guix-patches@gnu.org)
f5997e8e14f7d9232f804c785e8157e83073dc5e.1731493615.git.poomklao@yahoo.com
* gnu/packages/minetest.scm (minetest): Update to 5.10.0.
[source] <snippet>: Fix unbundling.
[arguments] <#:configure-flags>: Remove redundant flags.
[arguments] <#:phases>: Remove patches to nonexistent code (or that
breaks stuff).
[inputs]: Remove coreutils and libxxf86vm.

Change-Id: If8720bb51309d7c251e76a1885695851f3a03255
---

Hi Guix!

This is an update + cleanup of Minetest^WLuanti. Some of the
highlights:

- Apparently, the old unbundling code is broken and deleted nothing.
A few packages (catch2 and tiniergltf) are assumed by the CMake files
to be bundled - I don't have time to work around that yet, but it
shouldn't be too difficult.
- Removed substitute*-s for code that no longer exist (+ one that's
now causing a build failure) and unused/redundant dependencies. Also,
redundant CMake flags.

Known issues:
- Will segfault upon exit somewhere within IrrlichtMT
- Incomplete unbundling

As mentioned earlier, [Minetest has been renamed to Luanti][1]. This
would've been a simple rename + deprecated-package job... if not for
the fact that the word "minetest" appears in several places in Guix.
We need to figure out how to handle that...


gnu/packages/minetest.scm | 54 ++++++++++++---------------------------
1 file changed, 16 insertions(+), 38 deletions(-)

Toggle diff (121 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 2552596ef8..241fe8588c 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -54,7 +54,7 @@ (define-module (gnu packages minetest)
(define-public minetest
(package
(name "minetest")
- (version "5.9.0")
+ (version "5.10.0")
(source
(origin
(method git-fetch)
@@ -63,20 +63,25 @@ (define-public minetest
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1h4yn4k0wpjr1h24aiqcnc9xsxgxj4bq757pla2pa9zmh2xf45kk"))
+ (base32 "1nsnsf1axiazb8zz51c0742kh0qx2b298pr5mr91m0l9r6dv1sdj"))
(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.
+ ;; TODO: catch2 should be unbundled (but may need to have its version
+ ;; pinned); tiniergltf is separate but Minetest-specific so could
+ ;; go either way.
(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)))
+ (rename-file "lib" "_lib")
+ (mkdir "lib")
+ (for-each (lambda (lib)
+ (rename-file (format #f "_lib/~a" lib)
+ (format #f "lib/~a" lib)))
+ '(sha256 catch2 tiniergltf))
+ (delete-file-recursively "_lib")
#t))))
(build-system cmake-build-system)
(arguments
@@ -84,35 +89,9 @@ (define-public minetest
#:configure-flags
#~(list "-DENABLE_LTO=ON"
"-DENABLE_UPDATE_CHECKER=FALSE"
- (string-append "-DCURL_INCLUDE_DIR="
- (search-input-directory
- %build-inputs "include/curl"))
- (string-append "-DZSTD_INCLUDE_DIR="
- (dirname (search-input-file
- %build-inputs
- "include/zstd.h")))
- (string-append "-DZSTD_LIBRARY="
- (search-input-file
- %build-inputs "lib/libzstd.so")))
+ "-DINSTALL_DEVTEST=TRUE") ; Required for tests
#: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)
@@ -120,7 +99,7 @@ (define-public minetest
;; when invoked on the target outside of `guix build'.
(when tests?
(setenv "HOME" "/tmp")
- (invoke "src/minetest" "--run-unittests")))))))
+ (invoke "../source/bin/luanti" "--run-unittests")))))))
(native-search-paths
(list (search-path-specification
(variable "MINETEST_GAME_PATH")
@@ -129,8 +108,7 @@ (define-public minetest
(variable "MINETEST_MOD_PATH")
(files '("share/minetest/mods")))))
(native-inputs (list pkg-config))
- (inputs (list coreutils
- curl
+ (inputs (list curl
freetype
gettext-minimal
gmp
@@ -139,7 +117,6 @@ (define-public minetest
libpng
libogg
libvorbis
- libxxf86vm
libxi
luajit
mesa
@@ -147,6 +124,7 @@ (define-public minetest
openal
sqlite
`(,zstd "lib")))
+ (outputs '("out" "debug"))
(synopsis "Voxel game engine")
(description
"Minetest is a voxel game engine that supports modding and game creation

base-commit: 1f057603ef59c7b9c32f610a897321fd75dc4dad
--
2.43.0
P
P
Parnikkapore wrote 34 hours ago
(address . 74336@debbugs.gnu.org)
bff12740285837eb1a33064484585f373a2a55d6.1731499381.git.poomklao@yahoo.com
* gnu/packages/minetest.scm (minetest): Update to 5.10.0.
[source] <snippet>: Fix unbundling.
[arguments] <#:configure-flags>: Remove redundant flags.
[arguments] <#:phases>: Remove all patches no longer applicable.
[inputs]: Remove coreutils and libxxf86vm.

Change-Id: If8720bb51309d7c251e76a1885695851f3a03255
---

Small update as I found out how the old package definition made the tests pass.

gnu/packages/minetest.scm | 57 +++++++++++++--------------------------
1 file changed, 18 insertions(+), 39 deletions(-)

Toggle diff (123 lines)
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 2552596ef8..64acdc6a98 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -54,7 +54,7 @@ (define-module (gnu packages minetest)
(define-public minetest
(package
(name "minetest")
- (version "5.9.0")
+ (version "5.10.0")
(source
(origin
(method git-fetch)
@@ -63,56 +63,34 @@ (define-public minetest
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1h4yn4k0wpjr1h24aiqcnc9xsxgxj4bq757pla2pa9zmh2xf45kk"))
+ (base32 "1nsnsf1axiazb8zz51c0742kh0qx2b298pr5mr91m0l9r6dv1sdj"))
(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.
+ ;; TODO: catch2 should be unbundled (but may need to have its version
+ ;; pinned); tiniergltf is separate but Minetest-specific so could
+ ;; go either way.
(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)))
+ (rename-file "lib" "_lib")
+ (mkdir "lib")
+ (for-each (lambda (lib)
+ (rename-file (format #f "_lib/~a" lib)
+ (format #f "lib/~a" lib)))
+ '(sha256 catch2 tiniergltf))
+ (delete-file-recursively "_lib")
#t))))
(build-system cmake-build-system)
(arguments
(list
#:configure-flags
#~(list "-DENABLE_LTO=ON"
- "-DENABLE_UPDATE_CHECKER=FALSE"
- (string-append "-DCURL_INCLUDE_DIR="
- (search-input-directory
- %build-inputs "include/curl"))
- (string-append "-DZSTD_INCLUDE_DIR="
- (dirname (search-input-file
- %build-inputs
- "include/zstd.h")))
- (string-append "-DZSTD_LIBRARY="
- (search-input-file
- %build-inputs "lib/libzstd.so")))
+ "-DENABLE_UPDATE_CHECKER=FALSE")
#: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)
@@ -120,7 +98,9 @@ (define-public minetest
;; when invoked on the target outside of `guix build'.
(when tests?
(setenv "HOME" "/tmp")
- (invoke "src/minetest" "--run-unittests")))))))
+ (setenv "MINETEST_GAME_PATH"
+ (string-append (getcwd) "/../source/games"))
+ (invoke "../source/bin/luanti" "--run-unittests")))))))
(native-search-paths
(list (search-path-specification
(variable "MINETEST_GAME_PATH")
@@ -129,8 +109,7 @@ (define-public minetest
(variable "MINETEST_MOD_PATH")
(files '("share/minetest/mods")))))
(native-inputs (list pkg-config))
- (inputs (list coreutils
- curl
+ (inputs (list curl
freetype
gettext-minimal
gmp
@@ -139,7 +118,6 @@ (define-public minetest
libpng
libogg
libvorbis
- libxxf86vm
libxi
luajit
mesa
@@ -147,6 +125,7 @@ (define-public minetest
openal
sqlite
`(,zstd "lib")))
+ (outputs '("out" "debug"))
(synopsis "Voxel game engine")
(description
"Minetest is a voxel game engine that supports modding and game creation

base-commit: 1f057603ef59c7b9c32f610a897321fd75dc4dad
--
2.46.0
?
Your comment

Commenting via the web interface is currently disabled.

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

To respond to this issue using the mumi CLI, first switch to it
mumi current 74336
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch