summary refs log tree commit diff
diff options
context:
space:
mode:
author宋文武 <iyzsong@gmail.com>2016-08-11 20:59:16 +0800
committer宋文武 <iyzsong@gmail.com>2016-08-12 22:22:43 +0800
commit801d316b20b05a4d0687873ad8e438e6238e23ce (patch)
treeb51620323ba4efdff9294a6973d35b6510580338
parent0d4b5eb1fdd0c84af18bd4beb8f2d1579ca13d4c (diff)
downloadguix-801d316b20b05a4d0687873ad8e438e6238e23ce.tar.gz
profiles: xdg-mime-database: Run the hook when have GLib based applications.
* guix/profiles.scm (xdg-mime-database): Run the hook when GLIB is referenced by
the manifest.  Add SHARED-MIME-INFO to the mime packages of `update-mime-database'.
-rw-r--r--guix/profiles.scm14
1 files changed, 9 insertions, 5 deletions
diff --git a/guix/profiles.scm b/guix/profiles.scm
index db807a8136..cd448e3f25 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -723,9 +723,12 @@ MIME type."
 (define (xdg-mime-database manifest)
   "Return a derivation that builds the @file{mime.cache} database from manifest
 entries.  It's used to query the MIME type of a given file."
-  (mlet %store-monad ((shared-mime-info
+  (define shared-mime-info  ; lazy reference
+    (module-ref (resolve-interface '(gnu packages gnome)) 'shared-mime-info))
+
+  (mlet %store-monad ((glib
                        (manifest-lookup-package
-                        manifest "shared-mime-info")))
+                        manifest "glib")))
     (define build
       (with-imported-modules  '((guix build utils)
                                 (guix build union))
@@ -738,7 +741,8 @@ entries.  It's used to query the MIME type of a given file."
                    (pkgdirs (filter file-exists?
                                     (map (cut string-append <>
                                               "/share/mime/packages")
-                                         '#$(manifest-inputs manifest))))
+                                         (cons #+shared-mime-info
+                                               '#$(manifest-inputs manifest)))))
                    (update-mime-database (string-append
                                           #+shared-mime-info
                                           "/bin/update-mime-database")))
@@ -748,8 +752,8 @@ entries.  It's used to query the MIME type of a given file."
               (setenv "XDG_DATA_HOME" datadir)
               (exit (zero? (system* update-mime-database destdir)))))))
 
-    ;; Don't run the hook when 'shared-mime-info' is referenced.
-    (if shared-mime-info
+    ;; Don't run the hook when there are no GLib based applications.
+    (if glib
         (gexp->derivation "xdg-mime-database" build
                           #:local-build? #t
                           #:substitutable? #f)