Subject: [PATCH] build: minetest-build-system: Improve white space handling in mod name field.

From: Tristan Cottam <[email-masked]>
Date: Thu, 9 Nov 2023 02:33:01 +0100

I'm currently developing a Minetest service, with its configuration
including a field specifying the list of mod packages to install and
enable.

However, certain mods' configuration, beind developed on Windows, have a
trailing carriage return before each newline, which is included in the
Guix store mod directory base name. Such mods can't be programmatically
loaded by a Minetest world, since trailing whitespace is ignored by
Minetest's world configuration parser, leading to the wrong mod path
being used.

This patch fixes certain Minetest mods being stored with a terminating
carriage return in their directory base name.

* guix/build/minetest-build-system.scm (name-regexp): Improve white
space handling.

Change-Id: I95f4c201724991a10efba5c859bfef99779ea495
---
 guix/build/minetest-build-system.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/guix/build/minetest-build-system.scm b/guix/build/minetest-build-system.scm
index 4a7a87ab83..8233d56aca 100644
--- a/guix/build/minetest-build-system.scm
+++ b/guix/build/minetest-build-system.scm
@@ -126,7 +126,7 @@ (define* (minimise-png #:key inputs native-inputs #:allow-other-keys)
                    (/ total-old-size (expt 1024 2))
                    (/ total-new-size (expt 1024 2)))))))
 
-(define name-regexp (make-regexp "^name[ ]*=(.+)$"))
+(define name-regexp (make-regexp "^name[[:space:]]*=[[:space:]]*([[:graph:]]+)"))
 
 (define* (read-mod-name mod.conf #:optional not-found)
   "Read the name of a mod from MOD.CONF.  If MOD.CONF

base-commit: b0bfddd7f937fcefdaeb1de4ccafd415c1df4122
-- 
2.41.0