summary refs log tree commit diff
path: root/gnu/packages/gnome.scm
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2022-09-10 16:33:49 +0200
committerMarius Bakke <marius@gnu.org>2022-09-10 16:38:16 +0200
commitf0114656876dcf2e09874e4ea0c00cacf31f1bb2 (patch)
tree09696a740969ce2eb8af250d8793009726384a2a /gnu/packages/gnome.scm
parent45c2da38758f1cb75b2044440c78202ed26b881c (diff)
downloadguix-f0114656876dcf2e09874e4ea0c00cacf31f1bb2.tar.gz
gnu: gnome-shell: Remove input labels and use G-expression.
* gnu/packages/gnome.scm (gnome-shell)[native-inputs]: Remove labels.
[arguments]: Convert to G-expressions.  Add (ice-9 match) to #:modules.  Use
SEARCH-INPUT-FILE and #$OUTPUT where appropriate.  Add let-binding for
DISALLOWED-REFERENCES and use them in glib-or-gtk-wrap phase.
Diffstat (limited to 'gnu/packages/gnome.scm')
-rw-r--r--gnu/packages/gnome.scm216
1 files changed, 110 insertions, 106 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index f1ec619ef8..189c2002cb 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8729,113 +8729,117 @@ properties, screen resolution, and other GNOME parameters.")
                 "0ragmcln210zvzhc2br33yprbkj9drjzd7inp5sdxra0a7l73yaj"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
-       #:disallowed-references ,(list (gexp-input glib "bin")
-                                      (gexp-input libxslt)
-                                      (gexp-input ruby-sass))
-       #:configure-flags
-       (list "-Dsystemd=false"
-             ;; Otherwise, the RUNPATH will lack the final path component.
-             (string-append "-Dc_link_args=-Wl,-rpath="
-                            (assoc-ref %outputs "out")
-                            "/lib/gnome-shell"))
-
-       #:modules ((guix build meson-build-system)
-                  (guix build utils)
-                  (srfi srfi-1))
-
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-keysdir
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out     (assoc-ref outputs "out"))
-                    (keysdir (string-append
-                              out "/share/gnome-control-center/keybindings")))
-               (substitute* "meson.build"
-                 (("keysdir =.*")
-                  (string-append "keysdir = '" keysdir "'\n"))))))
-         (add-after 'unpack 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
-           (lambda _
-             (substitute* "meson/postinstall.py"
-               (("gtk-update-icon-cache") "true"))))
-         (add-before 'configure 'record-absolute-file-names
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "js/misc/ibusManager.js"
-               (("'ibus-daemon'")
-                (string-append "'" (assoc-ref inputs "ibus")
-                               "/bin/ibus-daemon'")))
-             (substitute* "js/ui/status/keyboard.js"
-               (("'gkbd-keyboard-display'")
-                (string-append "'" (assoc-ref inputs "libgnomekbd")
-                               "/bin/gkbd-keyboard-display'")))))
-         (add-before 'check 'pre-check
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; Tests require a running X server.
-             (system "Xvfb :1 &")
-             (setenv "DISPLAY" ":1")
-             (setenv "HOME" "/tmp")))   ;to avoid "fatal" warnings
-         (add-after 'install 'wrap-programs
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out              (assoc-ref outputs "out"))
-                   (gi-typelib-path  (getenv "GI_TYPELIB_PATH"))
-                   (python-path      (getenv "GUIX_PYTHONPATH")))
-               (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-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
+     (let ((disallowed-references
+            (list (gexp-input glib "bin")
+                  (gexp-input libxslt)
+                  (gexp-input ruby-sass))))
+       (list
+        #:glib-or-gtk? #t
+        #:disallowed-references disallowed-references
+        #:configure-flags
+        #~(list "-Dsystemd=false"
+                ;; Otherwise, the RUNPATH will lack the final path component.
+                (string-append "-Dc_link_args=-Wl,-rpath="
+                               #$output "/lib/gnome-shell"))
+        #:modules '((guix build meson-build-system)
+                    (guix build utils)
+                    (ice-9 match)
+                    (srfi srfi-1))
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'fix-keysdir
+              (lambda _
+                (let ((keysdir
+                       (string-append #$output
+                                      "/share/gnome-control-center/keybindings")))
+                  (substitute* "meson.build"
+                    (("keysdir =.*")
+                     (string-append "keysdir = '" keysdir "'\n"))))))
+            (add-after 'unpack 'skip-gtk-update-icon-cache
+              ;; Don't create 'icon-theme.cache'.
+              (lambda _
+                (substitute* "meson/postinstall.py"
+                  (("gtk-update-icon-cache") "true"))))
+            (add-before 'configure 'record-absolute-file-names
+              (lambda* (#:key inputs #:allow-other-keys)
+                (let ((ibus-daemon (search-input-file inputs "bin/ibus-daemon"))
+                      (gkbd-keyboard-display
+                       (search-input-file inputs "bin/gkbd-keyboard-display")))
+                  (substitute* "js/misc/ibusManager.js"
+                    (("'ibus-daemon'")
+                     (string-append "'" ibus-daemon "'")))
+                  (substitute* "js/ui/status/keyboard.js"
+                    (("'gkbd-keyboard-display'")
+                     (string-append "'" gkbd-keyboard-display "'"))))))
+            (add-before 'check 'pre-check
+              (lambda* (#:key inputs #:allow-other-keys)
+                ;; Tests require a running X server.
+                (system "Xvfb :1 &")
+                (setenv "DISPLAY" ":1")
+                (setenv "HOME" "/tmp"))) ;to avoid "fatal" warnings
+            (add-after 'install 'wrap-programs
+              (lambda* (#:key inputs #:allow-other-keys)
+                (let ((gi-typelib-path  (getenv "GI_TYPELIB_PATH"))
+                      (python-path      (getenv "GUIX_PYTHONPATH")))
+                  (for-each
+                   (lambda (prog)
+                     (wrap-program (string-append #$output "/bin/" prog)
+                       `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+                   '("gnome-shell" "gnome-extensions-app"))
+                  (substitute* (string-append #$output "/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 #$output "/bin/" prog)
+                       `("GUIX_PYTHONPATH"      ":" prefix (,python-path))
+                       `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+                   '("gnome-shell-perf-tool")))))
+            (add-after 'install 'rewire
+              (lambda* (#:key inputs #:allow-other-keys)
+                (for-each
+                 (lambda (tool)
+                   (call-with-output-file (string-append #$output
+                                                         "/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)
-               ;; By default glib:bin et al. would end up in the XDG_DATA_DIRS
-               ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
-               ;; phase.  Fix that since we don't need these.
-               (wrap #:inputs (fold alist-delete inputs
-                                    '("glib:bin"))
-                     #:outputs outputs)))))))
-    (native-inputs
-     `(("asciidoc" ,asciidoc)
-       ("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
-       ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
-       ("gobject-introspection" ,gobject-introspection)
-       ("hicolor-icon-theme" ,hicolor-icon-theme)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("ruby-sass" ,ruby-sass)
-       ("sassc" ,sassc)
-       ("xsltproc" ,libxslt)
-       ;; For tests
-       ("xorg-server" ,xorg-server-for-tests)))
+                               (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)
+                  ;; By default glib:bin et al. would end up in the XDG_DATA_DIRS
+                  ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
+                  ;; phase.  Fix that since we don't need these.
+                  (wrap #:inputs
+                        (filter (match-lambda
+                                  ((label . output)
+                                   (not (member output
+                                                '#$disallowed-references))))
+                                inputs)
+                        #:outputs outputs))))))))
+    (native-inputs
+     (list asciidoc
+           gettext-minimal
+           `(,glib "bin")               ;for glib-compile-schemas, etc.
+           desktop-file-utils           ;for update-desktop-database
+           gobject-introspection
+           hicolor-icon-theme
+           libxslt
+           perl
+           pkg-config
+           python
+           ruby-sass
+           sassc
+           ;; For tests
+           xorg-server-for-tests))
     (inputs
      (list accountsservice
            caribou
@@ -8855,7 +8859,7 @@ printf '~a is deprecated.  Use the \"gnome-extensions\" CLI or \
            ibus
            libcanberra
            libcroco
-           libgnomekbd ;for gkbd-keyboard-display
+           libgnomekbd                  ;for gkbd-keyboard-display
            libgweather
            libnma
            libsoup