[Top][All Lists]

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

02/48: profiles: gtk-icon-themes: Use 'gtk-update-icon-cache' from 'gtk+

From: ???
Subject: 02/48: profiles: gtk-icon-themes: Use 'gtk-update-icon-cache' from 'gtk+:bin'.
Date: Tue, 23 Aug 2016 12:11:48 +0000 (UTC)

iyzsong pushed a commit to branch core-updates
in repository guix.

commit d1fb4af6b8118b62213f722a0bbeec3dddcec5a3
Author: 宋文武 <address@hidden>
Date:   Sat Aug 6 18:28:57 2016 +0800

    profiles: gtk-icon-themes: Use 'gtk-update-icon-cache' from 'gtk+:bin'.
    This is a followup to commit 7b808d7.
    * guix/profiles.scm (gtk-icon-themes): Use 'gtk-update-icon-cache' from
    the "bin" output of gtk+ package.
 guix/profiles.scm |   21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/guix/profiles.scm b/guix/profiles.scm
index cd448e3..169c700 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -642,7 +642,18 @@ MANIFEST.  Single-file bundles are required by programs 
such as Git and Lynx."
 (define (gtk-icon-themes manifest)
   "Return a derivation that unions all icon themes from manifest entries and
 creates the GTK+ 'icon-theme.cache' file for each theme."
-  (mlet %store-monad ((gtk+ (manifest-lookup-package manifest "gtk+")))
+  (define gtk+  ; lazy reference
+    (module-ref (resolve-interface '(gnu packages gtk)) 'gtk+))
+  (mlet %store-monad ((%gtk+ (manifest-lookup-package manifest "gtk+"))
+                      ;; XXX: Can't use gtk-update-icon-cache corresponding
+                      ;; to the gtk+ referenced by 'manifest'.  Because
+                      ;; '%gtk+' can be either a package or store path, and
+                      ;; there's no way to get the "bin" output for the later.
+                      (gtk-update-icon-cache
+                       -> #~(string-append #+gtk+:bin
+                                           "/bin/gtk-update-icon-cache")))
     (define build
       (with-imported-modules '((guix build utils)
                                (guix build union)
@@ -659,9 +670,7 @@ creates the GTK+ 'icon-theme.cache' file for each theme."
             (let* ((destdir  (string-append #$output "/share/icons"))
                    (icondirs (filter file-exists?
                                      (map (cut string-append <> "/share/icons")
-                                          '#$(manifest-inputs manifest))))
-                   (update-icon-cache (string-append
-                                       #+gtk+ "/bin/gtk-update-icon-cache")))
+                                          '#$(manifest-inputs manifest)))))
               ;; Union all the icons.
               (mkdir-p (string-append #$output "/share"))
@@ -676,11 +685,11 @@ creates the GTK+ 'icon-theme.cache' file for each theme."
                    ;; "abiword_48.png".  Ignore these.
                    (when (file-is-directory? dir)
                      (ensure-writable-directory dir)
-                     (system* update-icon-cache "-t" dir "--quiet"))))
+                     (system* #+gtk-update-icon-cache "-t" dir "--quiet"))))
                (scandir destdir (negate (cut member <> '("." "..")))))))))
     ;; Don't run the hook when there's nothing to do.
-    (if gtk+
+    (if %gtk+
         (gexp->derivation "gtk-icon-themes" build
                           #:local-build? #t
                           #:substitutable? #f)

reply via email to

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