summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-10-10 11:13:28 +0200
committerLudovic Courtès <ludo@gnu.org>2017-10-10 23:12:04 +0200
commit90eaa9419ae65d0efc34393b9e1bde3a422ec723 (patch)
treedbfb85365703d02bbd4d9671b24de6701b6bc8ec
parentb719ddbbbb08c8f22b1dd9d7b40951ca5f2b8356 (diff)
downloadguix-90eaa9419ae65d0efc34393b9e1bde3a422ec723.tar.gz
import: cpan: Load (gnu packages perl) lazily.
* guix/import/cpan.scm: Remove dependency on (gnu packages perl).
(perl-package): New procedure.
(%corelist, core-module?): Use it instead of referring to 'perl'.
-rw-r--r--guix/import/cpan.scm14
1 files changed, 10 insertions, 4 deletions
diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm
index 01acc6f36e..6261e3e924 100644
--- a/guix/import/cpan.scm
+++ b/guix/import/cpan.scm
@@ -38,7 +38,6 @@
   #:use-module (guix packages)
   #:use-module (guix upstream)
   #:use-module (guix derivations)
-  #:use-module (gnu packages perl)
   #:export (cpan->guix-package
             %cpan-updater))
 
@@ -133,21 +132,28 @@ or #f on failure.  MODULE should be e.g. \"Test::Script\""
      (number->string version))
     (version version)))
 
+(define (perl-package)
+  "Return the 'perl' package.  This is a lazy reference so that we don't
+depend on (gnu packages perl)."
+  (module-ref (resolve-interface '(gnu packages perl)) 'perl))
+
 (define %corelist
   (delay
     (let* ((perl (with-store store
                    (derivation->output-path
-                    (package-derivation store perl))))
+                    (package-derivation store (perl-package)))))
            (core (string-append perl "/bin/corelist")))
       (and (access? core X_OK)
            core))))
 
 (define core-module?
-  (let ((perl-version (package-version perl))
-        (rx (make-regexp
+  (let ((rx (make-regexp
              (string-append "released with perl v?([0-9\\.]*)"
                             "(.*and removed from v?([0-9\\.]*))?"))))
     (lambda (name)
+      (define perl-version
+        (package-version (perl-package)))
+
       (define (version-between? lower version upper)
         (and (version>=? version lower)
              (or (not upper)