summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-05-28 14:38:50 +0200
committerLudovic Courtès <ludo@gnu.org>2015-05-28 14:41:15 +0200
commit1ba4796d135ba7a07f2e89126fba673601c321c2 (patch)
treea661e9adeeb54cd4019ca2ea798a092365ec9915
parent6a669bda51acb12b4ae4901c1df04fa5965ef1d0 (diff)
downloadguix-1ba4796d135ba7a07f2e89126fba673601c321c2.tar.gz
profiles: Deal with non-directory items in share/icons.
Reported by Mark H Weaver <mhw@netris.org>.

* guix/profiles.scm (gtk-icon-themes)[build]: Check whether DIR is a directory
  before calling 'ensure-writable-directory'.
-rw-r--r--guix/profiles.scm9
1 files changed, 6 insertions, 3 deletions
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 0f73455d24..28150affb6 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -649,9 +649,12 @@ creates the GTK+ 'icon-theme.cache' file for each theme."
             ;; Update the 'icon-theme.cache' file for each icon theme.
             (for-each
              (lambda (theme)
-               (let ((dir (string-append #$output "/share/icons/" theme)))
-                 (ensure-writable-directory dir)
-                 (system* update-icon-cache "-t" dir)))
+               (let ((dir (string-append destdir "/" theme)))
+                 ;; Occasionally DESTDIR contains plain files, such as
+                 ;; "abiword_48.png".  Ignore these.
+                 (when (file-is-directory? dir)
+                   (ensure-writable-directory dir)
+                   (system* update-icon-cache "-t" dir))))
              (scandir destdir (negate (cut member <> '("." ".."))))))))
 
     ;; Don't run the hook when there's nothing to do.