~ruther/guix-local

102f7101b965be55ef1f80e80eec127a982b20a1 — Ludovic Courtès 10 years ago 1e2644b
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.
1 files changed, 7 insertions(+), 6 deletions(-)

M guix/profiles.scm
M guix/profiles.scm => guix/profiles.scm +7 -6
@@ 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)))))))