Subject: [bug#52233] [PATCH] gnu: godot: Update to 3.4

From: Andy Tai <[email-masked]>
Date: Sun, 5 Dec 2021 23:27:05 -0800

updated patch:

godot built from this can run the master tip of the superstarfighter
git (checked out by itself) successfully

However  the superstarfighter in guix still aborts.

So that still needs more investigation as to what is going on there.

I am using Fedora as the host OS, with guix on it.

On Thu, Dec 2, 2021 at 11:25 AM Leo Famulari <[email-masked]> wrote:
>
> On Thu, Dec 02, 2021 at 12:07:34AM -0800, Andy Tai wrote:
> > I just built  superstarfighter with godot 3.4 and I was able to start
> > the game on my PC.  So I guess it may run successfully or fail due to
> > difference in hardware configurations.  Just a data point.
>
> I'm curious, was that on Guix System? Or Guix on another distro? I
> tested with Guix on Debian.
From 619328a56e451b218733dd8d454dccbae2d89dcf Mon Sep 17 00:00:00 2001
From: Andy Tai <[email-masked]>
Date: Sun, 5 Dec 2021 23:19:31 -0800
Subject: [PATCH] gnu: godot: Update to 3.4.
To: [email-masked]

* gnu/packages/game-development.scm (godot): Update to 3.4.
---
 gnu/packages/game-development.scm | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index a060dc94dc..ed733e317f 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -1846,7 +1846,7 @@ (define-public openmw
 (define-public godot
   (package
     (name "godot")
-    (version "3.2.3")
+    (version "3.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1855,7 +1855,7 @@ (define-public godot
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "19vrp5lhyvxbm6wjxzn28sn3i0s8j08ca7nani8l1nrhvlc8wi0v"))
+                "0y542zla6msgxf31rd0349d9j3ya7f3njnwmmrh8lmzfgxx86qbx"))
               (modules '((guix build utils)
                          (ice-9 ftw)
                          (srfi srfi-1)))
@@ -1870,19 +1870,23 @@ (define-public godot
                               "assimp"
                               "certs"
                               "cvtt"
+                              "embree"
                               "enet"
                               "etc2comp"
                               "fonts"
                               "glad"
                               "jpeg-compressor"
                               "libsimplewebm"
+                              "minimp3"
                               "miniupnpc"
                               "minizip"
                               "misc"
                               "nanosvg"
+                              "oidn"
                               "pvrtccompressor"
                               "recastnavigation"
                               "squish"
+                              "stb_rect_pack"
                               "tinyexr"
                               "vhacd"
                               "xatlas")))
@@ -1950,6 +1954,19 @@ (define-public godot
                (wrap-program (string-append out "/bin/godot")
                  `("PATH" ":" prefix (,(string-append zenity "/bin")))))
              #t))
+         (add-after 'install 'wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             ;; FIXME: Mesa tries to dlopen libudev.so.0 and fails.  Pending a
+             ;; fix of the mesa package we wrap the pcb executable such that
+             ;; Mesa can find libudev.so.0 through LD_LIBRARY_PATH.
+             ;; also append ld path for pulseaudio and alsa-lib
+             (let* ((out (assoc-ref outputs "out"))
+                    (udev_path (string-append (assoc-ref inputs "udev") "/lib"))
+                    (pulseaudio_path (string-append (assoc-ref inputs "pulseaudio") "/lib"))
+                    (alas_lib_path (string-append (assoc-ref inputs "alsa-lib") "/lib")))
+               (wrap-program (string-append out "/bin/godot")
+                 `("LD_LIBRARY_PATH" ":" prefix (,udev_path ,pulseaudio_path ,alas_lib_path))))
+             #t))
          (add-after 'install 'install-godot-desktop
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -1986,6 +2003,7 @@ (define-public godot
               ("opusfile" ,opusfile)
               ("pcre2" ,pcre2)
               ("pulseaudio" ,pulseaudio)
+              ("udev" ,eudev) ;FIXME: required by mesa
               ("wslay" ,wslay)
               ("zenity" ,zenity)
               ("zstd" ,zstd "lib")))

base-commit: 764be13ee62eff202ee2dd711167d0bfa4d2ec3f
-- 
2.34.0