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'.
This commit is contained in:
Ludovic Courtès 2017-10-10 11:13:28 +02:00
parent b719ddbbbb
commit 90eaa9419a
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -38,7 +38,6 @@ (define-module (guix import cpan)
#: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 @@ (define (cpan-version meta)
(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)