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.
This commit is contained in:
Ludovic Courtès 2015-05-27 22:31:56 +02:00
parent 1e2644bb25
commit 102f7101b9
1 changed files with 7 additions and 6 deletions

View File

@ -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)))))))