Subject: [PATCH v2 3/3] gnu: tsukundere: Update to 0.3.0.

From: Leo Prikler <[email-masked]>
Date: Mon, 19 Apr 2021 10:17:44 +0200

* gnu/packages/game-development.scm (tsukundere): Update to 0.3.0.
[patch-command]: Patch path to guile.  Construct load paths directly from
inputs.
[propagated-inputs]: Remove.
[inputs]: Add guile (as guile-runtime) and guile-sdl2.
---
 gnu/packages/game-development.scm | 51 +++++++++++++++++++------------
 1 file changed, 32 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 0d4855d275..ccf1fbdc5d 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -493,7 +493,7 @@ clone.")
 (define-public tsukundere
   (package
     (name "tsukundere")
-    (version "0.2.3")
+    (version "0.3.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -502,10 +502,12 @@ clone.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "05ckds2df810441wfavllx9lsw5jsc9h3nb7m31df01nsj56azdw"))))
+                "06jiaylbnx8khicsaq2gwnd8wspjhjymbb5z6x5445krklk0jx18"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:modules (((guix build guile-build-system)
+     `(#:modules ((ice-9 match)
+                  (srfi srfi-1)
+                  ((guix build guile-build-system)
                    #:select (target-guile-effective-version))
                   ,@%gnu-build-system-modules)
        #:imported-modules ((guix build guile-build-system)
@@ -513,22 +515,32 @@ clone.")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-command
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (version (target-guile-effective-version))
-                    (scm (string-append out "/share/guile/site/"
-                                        version))
-                    (go (string-append out "/lib/guile/"
-                                       version "/site-ccache")))
-
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((scm (lambda (in)
+                           (string-append in "/share/guile/site/"
+                                          (target-guile-effective-version))))
+                    (ccache (lambda (in)
+                              (string-append in "/lib/guile/"
+                                             (target-guile-effective-version)
+                                             "/site-ccache")))
+                    (pkgs
+                     (cons
+                      (assoc-ref outputs "out")
+                      (filter-map
+                       (match-lambda
+                         ((label . pkg)
+                          (and (string-prefix? "guile-" label) pkg)))
+                       inputs))))
                (substitute* "bin/tsukundere"
-                 (("exec guile .*" all)
+                 (("exec guile (.*)" _ args)
                   (string-append
-                   (format #f "export GUILE_LOAD_PATH=~@?~%"
-                           "\"~a:~a\"" scm (getenv "GUILE_LOAD_PATH"))
-                   (format #f "export GUILE_LOAD_COMPILED_PATH=~@?~%"
-                           "\"~a:~a\"" go (getenv "GUILE_LOAD_COMPILED_PATH"))
-                   all)))
+                   (format #f "export GUILE_LOAD_PATH=\"~@?\"~%"
+                           "\"~{~a~^:~}\"" (map scm pkgs))
+                   (format #f "export GUILE_LOAD_COMPILED_PATH=\"~@?\"~%"
+                           "\"~{~a~^:~}\"" (map ccache pkgs))
+                   "exec "
+                   (assoc-ref inputs "guile-runtime")
+                   "/bin/guile " args)))
                #t))))))
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -536,8 +548,9 @@ clone.")
        ("guile" ,guile-3.0)
        ("pkg-config" ,pkg-config)
        ("texinfo" ,texinfo)))
-    (propagated-inputs
-     `(("guile-sdl2" ,guile3.0-sdl2)))
+    (inputs
+     `(("guile-sdl2" ,guile3.0-sdl2)
+       ("guile-runtime" ,guile-3.0)))
     (home-page "https://gitlab.com/leoprikler/tsukundere")
     (synopsis "Visual novel engine")
     (description "Tsukundere is a game engine geared heavily towards the
-- 
2.31.1