diff mbox series

[bug#62902,2/3] gnu: laby: Make laby function in pure environments.

Message ID GV2PR03MB94492FC088500D31AF64774589629@GV2PR03MB9449.eurprd03.prod.outlook.com
State New
Headers show
Series None | expand

Commit Message

Ivana Drazovic April 19, 2023, 7:53 p.m. UTC
* gnu/packages/games.scm (laby)
[build-system]: Switch to 'glib-or-gtk-build-system'.
[inputs]: Add 'gdk-pixbuf' and 'librsvg-for-system'.
[arguments]: Wrap to use SVG-enabled pixbuf loaders.cache.

Co-authored-by: Florian Pelz <pelzflorian@pelzflorian.de>
---
 gnu/packages/games.scm | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 6a404d7712..ed06a57636 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -218,6 +218,7 @@  (define-module (gnu packages games)
   #:use-module (gnu packages xml)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
   #:use-module (guix build-system meson)
@@ -5775,9 +5776,15 @@  (define-public laby
               (base32
                "1y6nfxcjhqg9bb81hs0wijg7kcwk5kff81rgd8bsv5ps7ia9nj6b"))
              (patches (search-patches "laby-make-install.patch"))))
-    (build-system gnu-build-system)
+    (build-system glib-or-gtk-build-system)
     (inputs
-     (list lablgtk3 ocaml-lablgtk3-sourceview3 ocaml ocaml-findlib ocamlbuild))
+     (list gdk-pixbuf
+           lablgtk3
+           (librsvg-for-system)
+           ocaml-lablgtk3-sourceview3
+           ocaml
+           ocaml-findlib
+           ocamlbuild))
     (arguments
      (list #:phases
            #~(modify-phases %standard-phases
@@ -5786,7 +5793,15 @@  (define-public laby
                  (lambda* (#:key inputs #:allow-other-keys)
                    (let ((lablgtk #$(this-package-input "lablgtk")))
                      (setenv "LD_LIBRARY_PATH"
-                             (string-append lablgtk "/lib/ocaml/stublibs"))))))
+                             (string-append lablgtk "/lib/ocaml/stublibs")))))
+               (add-after 'glib-or-gtk-wrap 'wrap-pixbuf
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (let ((laby (string-append #$output "/bin/laby")))
+                      (wrap-program laby
+                        ;; Wrapping GDK_PIXBUF_MODULE_FILE allows laby to
+                        ;; function in pure environments.
+                        `("GDK_PIXBUF_MODULE_FILE" =
+                          (,(getenv "GDK_PIXBUF_MODULE_FILE"))))))))
            #:tests? #f ; no 'check' target
            #:make-flags
            #~(list (string-append "PREFIX=" #$output) "all")))