From 431b28d9dc6767b4ecc14d6c7aac9d3fe56673f8 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 20 Feb 2015 16:20:38 -0500 Subject: 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'. --- guix/import/cpan.scm | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'guix/import') 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 +;;; Copyright © 2015 Mark H Weaver ;;; ;;; 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) -- cgit v1.2.3