import cran: Ignore default R packages.
authorRicardo Wurmus <ricardo.wurmus@mdc-berlin.de>
Tue, 17 May 2016 13:22:30 +0000 (15:22 +0200)
committerRicardo Wurmus <rekado@elephly.net>
Sat, 17 Dec 2016 14:56:48 +0000 (15:56 +0100)
* guix/import/cran.scm (default-r-packages): New variable.
(description->package): Drop default R packages from list of inputs.

guix/import/cran.scm

index 313e26b..09796e0 100644 (file)
@@ -149,6 +149,38 @@ empty list when the FIELD cannot be found."
                         (string-any char-set:whitespace item)))
                   (map string-trim-both items))))))
 
+(define default-r-packages
+  (list "KernSmooth"
+        "MASS"
+        "Matrix"
+        "base"
+        "boot"
+        "class"
+        "cluster"
+        "codetools"
+        "compiler"
+        "datasets"
+        "foreign"
+        "grDevices"
+        "graphics"
+        "grid"
+        "lattice"
+        "methods"
+        "mgcv"
+        "nlme"
+        "nnet"
+        "parallel"
+        "rpart"
+        "spatial"
+        "splines"
+        "stats"
+        "stats4"
+        "survival"
+        "tcltk"
+        "tools"
+        "translations"
+        "utils"))
+
 (define (guix-name name)
   "Return a Guix package name for a given R package name."
   (string-append "r-" (string-map (match-lambda
@@ -180,11 +212,13 @@ from the alist META, which was derived from the R package's DESCRIPTION file."
                        (_ #f)))
          (tarball    (with-store store (download-to-store store source-url)))
          (sysdepends (map string-downcase (listify meta "SystemRequirements")))
-         (propagate  (lset-union equal?
-                                 (listify meta "Imports")
-                                 (listify meta "LinkingTo")
-                                 (delete "R"
-                                         (listify meta "Depends")))))
+         (propagate  (filter (lambda (name)
+                               (not (member name default-r-packages)))
+                             (lset-union equal?
+                                         (listify meta "Imports")
+                                         (listify meta "LinkingTo")
+                                         (delete "R"
+                                                 (listify meta "Depends"))))))
     (values
      `(package
         (name ,(guix-name name))