summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-05-27 22:31:56 +0200
committerLudovic Courtès <ludo@gnu.org>2015-05-27 22:31:56 +0200
commit102f7101b965be55ef1f80e80eec127a982b20a1 (patch)
tree7572fc831f13f8b416b20212971b77576e920ce2
parent1e2644bb25c3b4528289423f593d8baea6578e53 (diff)
downloadguix-102f7101b965be55ef1f80e80eec127a982b20a1.tar.gz
profiles: Don't assume all the inputs are of a package are packages.
Reported by Ricardo Wurmus.

* guix/profiles.scm (gtk-icon-themes)[entry-lookup-gtk+](find-among-packages):
  Rename to...
  (find-among-inputs): ... this.  Check whether INPUT is a package before
  calling 'package-name'.  Fixes a regression introduced in b04af0e.
-rw-r--r--guix/profiles.scm13
1 files changed, 7 insertions, 6 deletions
diff --git a/guix/profiles.scm b/guix/profiles.scm
index aaf693363a..c2cf1bf070 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -595,10 +595,11 @@ creates the GTK+ 'icon-theme.cache' file for each theme."
   ;; Return as a monadic value the GTK+ package or store path referenced by the
   ;; manifest ENTRY, or #f if not referenced.
   (define (entry-lookup-gtk+ entry)
-    (define (find-among-packages packages)
-      (find (lambda (package)
-              (equal? "gtk+" (package-name package)))
-            packages))
+    (define (find-among-inputs inputs)
+      (find (lambda (input)
+              (and (package? input)
+                   (string=? "gtk+" (package-name input))))
+            inputs))
 
     (define (find-among-store-items items)
       (find (lambda (item)
@@ -615,8 +616,8 @@ creates the GTK+ 'icon-theme.cache' file for each theme."
       (match (manifest-entry-item entry)
         ((? package? package)
          (match (package-transitive-inputs package)
-           (((labels packages . _) ...)
-            (return (find-among-packages packages)))))
+           (((labels inputs . _) ...)
+            (return (find-among-inputs inputs)))))
         ((? string? item)
          (mlet %store-monad ((refs (references* item)))
            (return (find-among-store-items refs)))))))