diff mbox series

[bug#52521] gnu: Make GNOME Shell Extensions configurable again.

Message ID 9594ebfc0ddb823ce5a55724644b42508e00abb2.camel@gmail.com
State Accepted
Headers show
Series [bug#52521] gnu: Make GNOME Shell Extensions configurable again. | expand

Commit Message

Liliana Marie Prikler Dec. 15, 2021, 7:40 p.m. UTC
* gnu/packages/gnome.scm (gnome-shell)[#:phases]: Adjust ‘wrap’ phase, so
that “gnome-extensions-app” gets GI_TYPELIB_PATH set.
Add ‘rewire’ phase to replace the blurb that deprecated commands print in
favour of one that doesn't point towards external packages.
---
 gnu/packages/gnome.scm | 30 +++++++++++++++++++++++++++---
 1 file changed, 27 insertions(+), 3 deletions(-)

Comments

Liliana Marie Prikler Dec. 31, 2021, 2:07 p.m. UTC | #1
Am Mittwoch, dem 15.12.2021 um 20:40 +0100 schrieb Liliana Marie
Prikler:
> * gnu/packages/gnome.scm (gnome-shell)[#:phases]: Adjust ‘wrap’
> phase, so
> that “gnome-extensions-app” gets GI_TYPELIB_PATH set.
> Add ‘rewire’ phase to replace the blurb that deprecated commands
> print in
> favour of one that doesn't point towards external packages.
Done and pushed.
diff mbox series

Patch

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index bbc768527d..46ab07c7ac 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8710,14 +8710,38 @@  (define-public gnome-shell
              (let ((out              (assoc-ref outputs "out"))
                    (gi-typelib-path  (getenv "GI_TYPELIB_PATH"))
                    (python-path      (getenv "GUIX_PYTHONPATH")))
-               (wrap-program (string-append out "/bin/gnome-shell")
-                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
+               (for-each
+                (lambda (prog)
+                  (wrap-program (string-append out "/bin/" prog)
+                    `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+                '("gnome-shell" "gnome-extensions-app"))
+               (substitute* (string-append out "/share/gnome-shell/"
+                                           "org.gnome.Shell.Extensions")
+                 (("imports\\.package\\.start" all)
+                  (string-append "'" gi-typelib-path "'.split(':').forEach("
+                                 "path => imports.gi.GIRepository.Repository."
+                                 "prepend_search_path(path));\n"
+                                 all)))
                (for-each
                 (lambda (prog)
                   (wrap-program (string-append out "/bin/" prog)
                     `("GUIX_PYTHONPATH"      ":" prefix (,python-path))
                     `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
-                '("gnome-shell-extension-tool" "gnome-shell-perf-tool")))))
+                '("gnome-shell-perf-tool")))))
+         (add-after 'install 'rewire
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (for-each
+              (lambda (tool)
+                (call-with-output-file (string-append
+                                        (assoc-ref outputs "out")
+                                        "/bin/" tool)
+                  (lambda (port)
+                    (format port "#!~a
+printf '~a is deprecated.  Use the \"gnome-extensions\" CLI or \
+\"gnome-extensions-app\" instead.\\n'"
+                            (search-input-file inputs "bin/bash")
+                            tool))))
+              '("gnome-shell-extension-tool" "gnome-shell-extension-prefs"))))
          (replace 'glib-or-gtk-wrap
            (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
              (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)