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

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 ;; Return as a monadic value the GTK+ package or store path referenced by the
;; manifest ENTRY, or #f if not referenced. ;; manifest ENTRY, or #f if not referenced.
(define (entry-lookup-gtk+ entry) (define (entry-lookup-gtk+ entry)
(define (find-among-packages packages) (define (find-among-inputs inputs)
(find (lambda (package) (find (lambda (input)
(equal? "gtk+" (package-name package))) (and (package? input)
packages)) (string=? "gtk+" (package-name input))))
inputs))
(define (find-among-store-items items) (define (find-among-store-items items)
(find (lambda (item) (find (lambda (item)
@ -615,8 +616,8 @@ creates the GTK+ 'icon-theme.cache' file for each theme."
(match (manifest-entry-item entry) (match (manifest-entry-item entry)
((? package? package) ((? package? package)
(match (package-transitive-inputs package) (match (package-transitive-inputs package)
(((labels packages . _) ...) (((labels inputs . _) ...)
(return (find-among-packages packages))))) (return (find-among-inputs inputs)))))
((? string? item) ((? string? item)
(mlet %store-monad ((refs (references* item))) (mlet %store-monad ((refs (references* item)))
(return (find-among-store-items refs))))))) (return (find-among-store-items refs)))))))