summary refs log tree commit diff
diff options
context:
space:
mode:
authorIvana Drazovic <iv.dra@hotmail.com>2023-04-19 21:53:55 +0200
committerLudovic Courtès <ludo@gnu.org>2023-05-11 16:38:28 +0200
commit8cb6fc32a6dfae42086e352c3be7f1ff856fe284 (patch)
treee740fc8ebce5c537a21e037b3c0f1289560607f9
parent420b6a85558204f3261d81e443e0c2c81e9c790b (diff)
downloadguix-8cb6fc32a6dfae42086e352c3be7f1ff856fe284.tar.gz
gnu: laby: Make laby function in pure environments.
* 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>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/packages/games.scm21
1 files changed, 18 insertions, 3 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 58c09a5b3b..25f328f736 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -219,6 +219,7 @@
   #: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)
@@ -5901,9 +5902,15 @@ Linux / Mac OS X servers, and an auto mapper with a VT100 map display.")
               (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
@@ -5912,7 +5919,15 @@ Linux / Mac OS X servers, and an auto mapper with a VT100 map display.")
                  (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")))