[bug#75470,gnome-team,01/59] gnu: gjs: Wrap GI_TYPELIB_PATH to include necessary typelibs.

Message ID b5465ebee7623584a95b27da0d5aca6d403e9968.1736458798.git.liliana.prikler@gmail.com
State New
Headers
Series To 46.7 and beyond |

Commit Message

Liliana Marie Prikler Jan. 9, 2025, 9:38 p.m. UTC
  Some packages, like gnome-maps rely on being able to patch the GIRepository
search path from inside gjs.  For this to work, however, gjs must be able to
load GIRepository, needing both glib and gobject-introspection to do so.

* gnu/packages/gnome.scm (gjs)[#:phases]: Add ‘wrap-gi’.
---
 gnu/packages/gnome.scm | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)
  

Patch

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index dd61b544d5..134b1b75ac 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7922,7 +7922,20 @@  (define-public gjs
              (setenv "DISPLAY" ":1")
 
              ;; For the missing /etc/machine-id.
-             (setenv "DBUS_FATAL_WARNINGS" "0"))))))
+             (setenv "DBUS_FATAL_WARNINGS" "0")))
+         (add-after 'install 'wrap-gi
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (wrap-program (string-append (assoc-ref outputs "out")
+                                          "/bin/gjs")
+               `("GI_TYPELIB_PATH" suffix
+                 (,(dirname
+                    (search-input-file
+                     inputs
+                     "lib/girepository-1.0/GObject-2.0.typelib"))
+                  ,(dirname
+                    (search-input-file
+                     inputs
+                     "lib/girepository-1.0/GIRepository-2.0.typelib"))))))))))
     (native-inputs
      (list `(,glib "bin")               ;for glib-compile-resources
            pkg-config