guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/07: gnu: gnome-shell-extensions: Wrap the extensions.


From: guix-commits
Subject: 02/07: gnu: gnome-shell-extensions: Wrap the extensions.
Date: Sun, 4 Feb 2024 15:29:49 -0500 (EST)

lilyp pushed a commit to branch gnome-team
in repository guix.

commit 5243985aa2509b7dc3236d88b5c22626e2a76be9
Author: Vivien Kraus <vivien@planete-kraus.eu>
AuthorDate: Fri Jan 19 23:36:05 2024 +0100

    gnu: gnome-shell-extensions: Wrap the extensions.
    
    The top-level modules that are wrapped are the /extension.js and /prefs.js 
of
    every extension sub-directory. The GI_TYPELIB_PATH used contains glib for
    every extension, and gnome-menus for Applications Menu.
    
    * gnu/packages/gnome.scm (gnome-shell-extensions) [#:phases]: Add
    'wrap-extensions.
    [native-inputs]: Add gobject-introspection.
    [inputs]: Add gnome-menus and glib.
    [propagated-imputs]: Remove glib.
    
    Change-Id: I58b79ca92fbceebb9bbb150102fa428022e3eb63
---
 gnu/packages/gnome.scm | 28 +++++++++++++++++++++++++---
 1 file changed, 25 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 6919576eae..e98f4ac15f 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -10726,13 +10726,35 @@ GNOME Shell appearance and extension, etc.")
                 "1aq1n75m1svsv0ppg66n9qch26rhjxcv3q33a3skf7hsydr5wd4c"))))
     (build-system meson-build-system)
     (arguments
-     '(#:configure-flags '("-Dextension_set=all")))
+     (list
+      #:configure-flags #~'("-Dextension_set=all")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'wrap-extensions
+            (lambda _
+              (use-modules (ice-9 textual-ports)
+                           (guix build utils))
+              (for-each
+               (lambda (file-to-wrap)
+                 (with-atomic-file-replacement file-to-wrap
+                   (lambda (source wrapped)
+                     (format wrapped "'~a'.split(':').forEach("
+                             (getenv "GI_TYPELIB_PATH"))
+                     (display
+                      (string-append
+                       "path => imports.gi.GIRepository.Repository"
+                       ".prepend_search_path(path));\n")
+                      wrapped)
+                     (dump-port source wrapped))))
+               (find-files "extensions" "(extension|prefs)\\.js")))))))
     (native-inputs
      (list `(,glib "bin")
            gettext-minimal
+           gobject-introspection        ; to set GI_TYPELIB_PATH
            pkg-config))
-    (propagated-inputs
-     (list glib))
+    (inputs
+     (list glib
+           gnome-menus))                ; for Applications Menu
     (synopsis "Extensions for GNOME Shell")
     (description "GNOME Shell extensions modify and extend GNOME Shell
 functionality and behavior.")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]