Re: Updating minetest to 5.6.0?

2022-09-16 Thread Jan Wielkiewicz

Forgot the patches...From 0ec48989fd8cf47c20c2c7181f05469335753514 Mon Sep 17 00:00:00 2001
From: Jan Wielkiewicz 
Date: Sat, 17 Sep 2022 01:10:58 +0200
Subject: [PATCH 2/2] gnu: Add minetest-exile, minetest-naturalslopeslib.

* gnu/packages/minetest.scm (minetest-exile,
minetest-naturalslopeslib): New variables.
---
 gnu/packages/minetest.scm | 61 +++
 1 file changed, 61 insertions(+)

diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 82c0b352bb..dc5dee11bd 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -747,3 +747,64 @@ (define-public minetest-basic-trains
 advtrains up to version 2.2.1.")
 (license (list license:cc-by-sa3.0 license:agpl3+))
 (properties `((upstream-name . "orwell/basic_trains")
+
+(define-public minetest-naturalslopeslib
+  (package
+(name "minetest-naturalslopeslib")
+(version "1.5")
+(source (origin
+  (method git-fetch)
+  (uri (git-reference
+(url
+ "https://files.creativekara.fr/git/naturalslopeslib.git;)
+(commit version)))
+  (sha256
+   (base32
+"19j223lld415496ppk0q0d4g45hxrvygl3axxlmbvqilflsqp6n0"))
+  (file-name (git-file-name name version
+(build-system minetest-mod-build-system)
+(home-page
+ "https://content.minetest.net/packages/karamel/naturalslopeslib/;)
+(synopsis "Natural slopes library for Minetest")
+(description
+ "This Minetest mod is a library that adds stair-like nodes from soft
+ground nodes (sand, dirt, gravel...) that may change shape automatically
+according to their surroundings.")
+(license license:lgpl2.1)))
+
+(define-public minetest-exile
+  (package
+(name "minetest-exile")
+(version "v0.3.8d")
+(source (origin
+  (method git-fetch)
+  (uri (git-reference
+(url "https://github.com/jeremyshannon/Exile/;)
+(commit version)))
+  (file-name (git-file-name name version))
+  (modules '((guix build utils)))
+  (snippet #~(delete-file-recursively "mods/naturalslopeslib"))
+  (sha256
+   (base32
+"1h7792kznhcqrvxn127318dx1v4xbwvffxw7vav22fd85c839c5g"
+(build-system copy-build-system)
+(arguments
+ (list #:install-plan #~'(("." "share/minetest/games/exile"))
+   #:phases #~(modify-phases %standard-phases
+(add-after 'install 'install-dependencies
+  (lambda _
+(symlink (string-append
+  #$(this-package-input
+ "minetest-naturalslopeslib")
+  "/share/minetest/mods/naturalslopeslib")
+ (string-append
+  #$output
+  "/share/minetest/games/exile/"
+  "mods/naturalslopeslib")))
+(inputs (list minetest-naturalslopeslib))
+(synopsis "A survival game for Minetest")
+(description
+ "Exile is a wilderness survival game with simple technology using
+the Minetest game engine.")
+(home-page "https://content.minetest.net/packages/Mantar/exile/;)
+(license license:gpl3)))
-- 
2.37.3

From cf3af84978f8b630d432c2f042ee9b041aa9118d Mon Sep 17 00:00:00 2001
From: Jan Wielkiewicz 
Date: Thu, 15 Sep 2022 22:19:05 +0200
Subject: [PATCH 1/2] gnu: minetest: update to 5.6.0.

* gnu/packages/minetest.scm (minetest, minetest-data): Update to 5.6.0.
* gnu/packages/games.scm (irrlicht-for-minetest): Update to 1.9.0mt7,
[inputs]: add libxi.
---
 gnu/packages/games.scm| 7 +--
 gnu/packages/minetest.scm | 7 ---
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 60ce0167a6..1e2ec71da3 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -73,6 +73,7 @@
 ;;; Copyright © 2022 zamfofex 
 ;;; Copyright © 2022 Gabriel Arazas 
 ;;; Copyright © 2022 Maxim Cournoyer 
+;;; Copyright © 2022 Jan Wielkiewicz 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3626,7 +3627,7 @@ (define-public irrlicht-for-minetest
   (package
 (inherit irrlicht)
 (name "irrlicht-for-minetest")
-(version "1.9.0mt5")
+(version "1.9.0mt7")
 (source
  (origin
(method git-fetch)
@@ -3635,8 +3636,10 @@ (define-public irrlicht-for-minetest
  (commit version)))
(sha256
 (base32
- "1jxk1x0f60n8lrz8a6x62aj2pqg0qnbajsld3lqncvwsfbi0xjx1"
+ "0pgvwfbp9df3xi4fjqngh7mikyklgwxjmrv28s7v35wpg5dz7vhj"
 (build-system cmake-build-system)
+(inputs (modify-inputs (package-inputs irrlicht)
+   (prepend libxi)))
 (arguments
  ;; No check 

Re: Updating minetest to 5.6.0?

2022-09-16 Thread Jan Wielkiewicz




On 16.09.2022 20:18, Maxime Devos wrote:

How about modifying minetest-exile's phases to add a symlink in
#$output /share/minetest/games/exile/mods/naturalslopeslib
pointing to #$(this-package-input "minetest-naturalslopeslib")?

(I don't know how to do that with copy-build-system though, does that 
build system support phases?  I was thinking of a post-install phase or 
a post-unpack)


(Also I don't know if Minetest allows symlinks inside mods)

That way:

   * it doesn't have to be propagated (so naturalslopeslib only appears
 in the (non-game) mod if the user actually asked to install the Guix
 package, and not as a consequence of installing something else

   * by using a symlink instead of a copy, a little space, network IO,
 disk IO and build time is saved, e.g. when the user installs both
 minetest-exile and minetest-naturalslopeslib



Done. See the patches (I can't really find "git send-email" on Guix for 
some odd reason). The hacks in the Exile package are quite ugly, but I 
don't know a better way, see below.


I think it would be feasible to write a 'minetest-game-build-system' to 
mostly automatically do such things, but currently such a thing does not 
exist yet.


Minetest has a pretty ugly way of managing dependencies, actually it 
doesn't manage them at all. So it's either up to (sub)game developers to 
bundle everything into their games or up to users to download all the 
dependencies they want. In the future the game will download 
dependencies automatically which is even worse from our perspective. I 
could possibly try hacking the build system to do something but I'm 
unfamiliar with Guix's guts.




Greetings,
Maxime.



Jan Wielkiewicz



Re: guix news

2022-09-16 Thread Josselin Poiret
Hey jgart, 

jgart  writes:

> Hi,
>
> Can anyone update the guix news?
>
> Do we have a doc that formalizes how/when we update the guix news?

Guix news are specified in the `etc/news.scm` file, and can thus be
updated by anyone by submitting a patch :).  As an example, I wrote the
entry for GDM Wayland myself, and it was among my first patches.

Best,
-- 
Josselin Poiret



Re: Updating minetest to 5.6.0?

2022-09-16 Thread Maxime Devos

On 16-09-2022 19:57, Jan Wielkiewicz wrote:
Last one question before sending the patches: I'm adding a minetest game 
called Exile and it uses a mod called naturalslopeslib. I packaged both 
of them but Exile expects the lib to be installed in 
"/.guix-profile/share/minetest/games/exile/mods/naturalslopeslib/". 
Should I add the mod as a propagated-input of Exile or should I directly 
copy/link the lib into Exile's tree (if so, how do I go about that)?


How about modifying minetest-exile's phases to add a symlink in
#$output /share/minetest/games/exile/mods/naturalslopeslib
pointing to #$(this-package-input "minetest-naturalslopeslib")?

(I don't know how to do that with copy-build-system though, does that 
build system support phases?  I was thinking of a post-install phase or 
a post-unpack)


(Also I don't know if Minetest allows symlinks inside mods)

That way:

  * it doesn't have to be propagated (so naturalslopeslib only appears
in the (non-game) mod if the user actually asked to install the Guix
package, and not as a consequence of installing something else

  * by using a symlink instead of a copy, a little space, network IO,
disk IO and build time is saved, e.g. when the user installs both
minetest-exile and minetest-naturalslopeslib

I think it would be feasible to write a 'minetest-game-build-system' to 
mostly automatically do such things, but currently such a thing does not 
exist yet.


Greetings,
Maxime.


OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


guix news

2022-09-16 Thread jgart
Hi,

Can anyone update the guix news?

Do we have a doc that formalizes how/when we update the guix news?



Re: Updating minetest to 5.6.0?

2022-09-16 Thread Jan Wielkiewicz




On 16.09.2022 10:59, Maxime Devos wrote:



On 16-09-2022 00:45, Jan wrote:

The minetest-mod-build-system has some (very basic) tests for testing
that the mods at least load with the new Minetest.
About that, I can never see mods installed with Guix in Minetest. Is 
the build system really working as intended? I'm running the latest 
Guix. Am I missing something? I don't see the mods on the current 
version nor the latest I packaged.


Seems to work over here:

$ guix shell --pure minetest minetest-mesecons
[ in the GUI: ‘Select Mods’ ]
[ GUI: ]
+ mesecons
+ Minetest Game mods

[ in the GUI: select +mesecons ]
[ ...]

Make sure to install Minetest and its mods in the same profile, and to 
log out and in again if it's not done with "guix shell" or "guix 
environment --ad-hoc" but with "guix home" or "guix install", such that 
Guix can set appropriate environment variables (MINETEST_MOD_PATH).


I tried installing a mod by force installing it into 
"share/minetest/mods/modname" using the copy-build-system just like 
mineclone2 is installed, but it doesn't work this way.


minetest-mod-build-system does this too, in 'mod-install-plan'

Greetings,
Maxime.


Thanks, it works now.
I made a mistake and installed it from "guix shell -D guix --pure". Now 
that I installed it from my profile, both mods and games are visible in 
Minetest without a reboot. I also did a quick check and mods appear to work.


Last one question before sending the patches: I'm adding a minetest game 
called Exile and it uses a mod called naturalslopeslib. I packaged both 
of them but Exile expects the lib to be installed in 
"/.guix-profile/share/minetest/games/exile/mods/naturalslopeslib/". 
Should I add the mod as a propagated-input of Exile or should I directly 
copy/link the lib into Exile's tree (if so, how do I go about that)? 
Users can easily download naturalslopeslib through Guix and enable it in 
the game's GUI but some may expect the dependency to be already there. 
My Exile package uses copy-build-system just like mineclone2.



Jan Wielkiewicz



Re: Guix and Coleslaw Home Recipe!

2022-09-16 Thread Guillaume Le Vaillant
jgart  skribis:

> jgart ponders to self:
>
> Will this package build the `coleslaw` CLI command with our current 
> asdf-build-system?
>
> What's missing?
>
> https://github.com/coleslaw-org/coleslaw
>
> Here's my attempt but there's no executable in the store for `coleslaw`:
>
> https://git.sr.ht/~whereiseveryone/guixrus/commit/9f8a48141c5e6c4bcdde21164db733c66d189724

By default, unless upstream put code in the ASDF system definition to
make a standalone binary automatically, asdf-build-system will only
compile the files of the library. To make a binary, you can add a phase
using the 'build-program' function, as in the stumpwm package for
example.
It might be better separate the library and the CLI program, for example
{sbcl,cl,ecl}-coleslaw packages for the libraries and a coleslaw package
for the CLI, or a single coleslaw package with several outputs ('out'
for the CLI and 'lib' for the library). 


> Guillaume, what do you think if I add documentation or a tutorial
> somewhere for how to deal with common lisp packages that require to build
> an executable? Before I do that though, I'd like to first understand
> fully what I'll be writing about ;()
>
> any advice much appreciated,
>
> jgart

There is a little paragraph about the 'build-program' function in the
"Build Systems" section of the manual. You could improve it by adding
more details or examples.


signature.asc
Description: PGP signature


Re: Updating minetest to 5.6.0?

2022-09-16 Thread Maxime Devos



On 16-09-2022 00:45, Jan wrote:

The minetest-mod-build-system has some (very basic) tests for testing
that the mods at least load with the new Minetest.

About that, I can never see mods installed with Guix in Minetest. Is the build 
system really working as intended? I'm running the latest Guix. Am I missing 
something? I don't see the mods on the current version nor the latest I 
packaged.


Seems to work over here:

$ guix shell --pure minetest minetest-mesecons
[ in the GUI: ‘Select Mods’ ]
[ GUI: ]
+ mesecons
+ Minetest Game mods

[ in the GUI: select +mesecons ]
[ ...]

Make sure to install Minetest and its mods in the same profile, and to 
log out and in again if it's not done with "guix shell" or "guix 
environment --ad-hoc" but with "guix home" or "guix install", such that 
Guix can set appropriate environment variables (MINETEST_MOD_PATH).



I tried installing a mod by force installing it into 
"share/minetest/mods/modname" using the copy-build-system just like mineclone2 
is installed, but it doesn't work this way.


minetest-mod-build-system does this too, in 'mod-install-plan'

Greetings,
Maxime.


OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature