diff --git a/guix/import/cran.scm b/guix/import/cran.scm index 13771ec598..bcb37ed250 100644 --- a/guix/import/cran.scm +++ b/guix/import/cran.scm @@ -54,7 +54,10 @@ cran-package? bioconductor-package? bioconductor-data-package? - bioconductor-experiment-package?)) + bioconductor-experiment-package? + + description->alist + description->package)) ;;; Commentary: ;;; @@ -270,6 +273,10 @@ empty list when the FIELD cannot be found." (string-any char-set:whitespace item))) (map string-trim-both items)))))) +;; Trick Guile 3 so that it keeps the 'listify' binding accessible *and* +;; private even though this module is declarative. +(set! listify listify) + (define default-r-packages (list "base" "compiler" diff --git a/tests/cran.scm b/tests/cran.scm index d785ec5db1..70d2277198 100644 --- a/tests/cran.scm +++ b/tests/cran.scm @@ -53,7 +53,7 @@ Date/Publication: 2015-07-14 14:15:16 ") (define description-alist - ((@@ (guix import cran) description->alist) description)) + (description->alist description)) (define simple-alist '(("Key" . "Value") @@ -72,7 +72,7 @@ Date/Publication: 2015-07-14 14:15:16 "Date/Publication"))) (lset= string=? keys (map car description-alist)))) -(test-equal "listify: return empty list if key cannot be found" +(test-equal "listifyx: return empty list if key cannot be found" '() ((@@ (guix import cran) listify) simple-alist "Letters")) @@ -105,7 +105,7 @@ Date/Publication: 2015-07-14 14:15:16 ("mirror://cran/src/contrib/My-Example_1.2.3.tar.gz" "source") (_ (error "Unexpected URL: " url)))))))) - (match ((@@ (guix import cran) description->package) 'cran description-alist) + (match (description->package 'cran description-alist) (('package ('name "r-my-example") ('version "1.2.3")