diff options
author | Mark H Weaver <mhw@netris.org> | 2015-02-20 16:20:38 -0500 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2015-02-20 16:28:05 -0500 |
commit | 431b28d9dc6767b4ecc14d6c7aac9d3fe56673f8 (patch) | |
tree | 9a408af69ac11e0da57f676bf6c04ef21542af9e | |
parent | 2f4646b6f6028e095c3e03898df0fea4d98c1afc (diff) | |
download | guix-431b28d9dc6767b4ecc14d6c7aac9d3fe56673f8.tar.gz |
import: cpan: Change %corelist into a promise.
Fixes compilation failures in 'guix pull'. * guix/import/cpan.scm (%corelist): Change it to a promise by wrapping it with 'delay'. (cpan-module->sexp): Adapt uses of %corelist by wrapping with 'force'.
-rw-r--r-- | guix/import/cpan.scm | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm index 3dc6edab51..37dd3b162c 100644 --- a/guix/import/cpan.scm +++ b/guix/import/cpan.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -98,12 +99,13 @@ or #f on failure. MODULE should be e.g. \"Test::Script\"" (string-append "http://search.cpan.org/dist/" name)) (define %corelist - (let* ((perl (with-store store - (derivation->output-path - (package-derivation store perl)))) - (core (string-append perl "/bin/corelist"))) - (and (access? core X_OK) - core))) + (delay + (let* ((perl (with-store store + (derivation->output-path + (package-derivation store perl)))) + (core (string-append perl "/bin/corelist"))) + (and (access? core X_OK) + core)))) (define (cpan-module->sexp meta) "Return the `package' s-expression for a CPAN module from the metadata in @@ -120,9 +122,9 @@ META." (assoc-ref meta "version")) (define (core-module? name) - (and %corelist + (and (force %corelist) (parameterize ((current-error-port (%make-void-port "w"))) - (let* ((corelist (open-pipe* OPEN_READ %corelist name))) + (let* ((corelist (open-pipe* OPEN_READ (force %corelist) name))) (let loop ((line (read-line corelist))) (if (eof-object? line) (begin (close-pipe corelist) #f) |