* [bug#74336] [PATCH] gnu: minetest: Update to 5.10.0.
[not found] <f5997e8e14f7d9232f804c785e8157e83073dc5e.1731493615.git.poomklao.ref@yahoo.com>
@ 2024-11-13 10:33 ` Parnikkapore via Guix-patches via
2024-11-13 12:05 ` Parnikkapore via Guix-patches via
2024-11-15 18:10 ` Liliana Marie Prikler
0 siblings, 2 replies; 3+ messages in thread
From: Parnikkapore via Guix-patches via @ 2024-11-13 10:33 UTC (permalink / raw)
To: 74336
Cc: Adam Faiz, Liliana Marie Prikler,
å®ææ¦
* 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...
[1]: https://blog.minetest.net/2024/10/13/Introducing-Our-New-Name/
gnu/packages/minetest.scm | 54 ++++++++++++---------------------------
1 file changed, 16 insertions(+), 38 deletions(-)
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
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [bug#74336] [PATCH] gnu: minetest: Update to 5.10.0.
2024-11-13 10:33 ` [bug#74336] [PATCH] gnu: minetest: Update to 5.10.0 Parnikkapore via Guix-patches via
@ 2024-11-13 12:05 ` Parnikkapore via Guix-patches via
2024-11-15 18:10 ` Liliana Marie Prikler
1 sibling, 0 replies; 3+ messages in thread
From: Parnikkapore via Guix-patches via @ 2024-11-13 12:05 UTC (permalink / raw)
To: 74336
Cc: Parnikkapore, Adam Faiz, Liliana Marie Prikler,
å®ææ¦
* 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(-)
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
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [bug#74336] [PATCH] gnu: minetest: Update to 5.10.0.
2024-11-13 10:33 ` [bug#74336] [PATCH] gnu: minetest: Update to 5.10.0 Parnikkapore via Guix-patches via
2024-11-13 12:05 ` Parnikkapore via Guix-patches via
@ 2024-11-15 18:10 ` Liliana Marie Prikler
1 sibling, 0 replies; 3+ messages in thread
From: Liliana Marie Prikler @ 2024-11-15 18:10 UTC (permalink / raw)
To: Parnikkapore, 74336; +Cc: iyzsong, Adam Faiz
Hi,
Am Mittwoch, dem 13.11.2024 um 18:33 +0800 schrieb Parnikkapore:
> * 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...
You can define minetest-build-system as a deprecated alias and change
all mentions of it. Likewise for the importer. All of those would be
one patch each, I suppose.
> [1]: https://blog.minetest.net/2024/10/13/Introducing-Our-New-Name/
>
> gnu/packages/minetest.scm | 54 ++++++++++++-------------------------
> --
> 1 file changed, 16 insertions(+), 38 deletions(-)
>
> 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")
We typically use scandir and
(unless (member file '("." ".." other exceptions))
…)
to delete those files. Nice catch on the find-files abuse, however.
> #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")))))))
Uhm… why does the build install to ../source? D:
> (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
Cheers
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-11-15 18:12 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <f5997e8e14f7d9232f804c785e8157e83073dc5e.1731493615.git.poomklao.ref@yahoo.com>
2024-11-13 10:33 ` [bug#74336] [PATCH] gnu: minetest: Update to 5.10.0 Parnikkapore via Guix-patches via
2024-11-13 12:05 ` Parnikkapore via Guix-patches via
2024-11-15 18:10 ` Liliana Marie Prikler
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.