~ruther/guix-local

37c32caf2cd21c8b7ca764c262efc7be49f26c86 — Ludovic Courtès 9 years ago ba41f87
packages: Simplify patch instantiation.

* guix/packages.scm (patch-and-repack)[instantiate-patch]: Use
'local-file' instead of 'interned-file'.  When PATCH is a struct, return
it.  Use 'let' instead of 'mlet'.
1 files changed, 12 insertions(+), 14 deletions(-)

M guix/packages.scm
M guix/packages.scm => guix/packages.scm +12 -14
@@ 642,21 642,19 @@ specifies modules in scope when evaluating SNIPPET."
  (define instantiate-patch
    (match-lambda
      ((? string? patch)                          ;deprecated
       (interned-file patch #:recursive? #t))
       (local-file patch #:recursive? #t))
      ((? struct? patch)                          ;origin, local-file, etc.
       (lower-object patch system))))

  (mlet %store-monad ((tar ->     (lookup-input "tar"))
                      (gzip ->    (lookup-input "gzip"))
                      (bzip2 ->   (lookup-input "bzip2"))
                      (lzip ->    (lookup-input "lzip"))
                      (xz ->      (lookup-input "xz"))
                      (patch ->   (lookup-input "patch"))
                      (locales -> (lookup-input "locales"))
                      (comp ->    (and=> (compressor source-file-name)
                                         lookup-input))
                      (patches    (sequence %store-monad
                                            (map instantiate-patch patches))))
       patch)))

  (let ((tar     (lookup-input "tar"))
        (gzip    (lookup-input "gzip"))
        (bzip2   (lookup-input "bzip2"))
        (lzip    (lookup-input "lzip"))
        (xz      (lookup-input "xz"))
        (patch   (lookup-input "patch"))
        (locales (lookup-input "locales"))
        (comp    (and=> (compressor source-file-name) lookup-input))
        (patches (map instantiate-patch patches)))
    (define build
      (with-imported-modules '((guix build utils))
        #~(begin