diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-10-10 11:13:28 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-10-10 23:12:04 +0200 |
commit | 90eaa9419ae65d0efc34393b9e1bde3a422ec723 (patch) | |
tree | dbfb85365703d02bbd4d9671b24de6701b6bc8ec | |
parent | b719ddbbbb08c8f22b1dd9d7b40951ca5f2b8356 (diff) |
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.scm | 14 |
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) |