~ruther/guix-local

90eaa9419ae65d0efc34393b9e1bde3a422ec723 — Ludovic Courtès 8 years ago b719ddb
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'.
1 files changed, 10 insertions(+), 4 deletions(-)

M guix/import/cpan.scm
M guix/import/cpan.scm => guix/import/cpan.scm +10 -4
@@ 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)