guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/01: import: cran: Try import via CRAN if package is not on Bioconduct


From: guix-commits
Subject: 01/01: import: cran: Try import via CRAN if package is not on Bioconductor.
Date: Thu, 20 Dec 2018 03:45:31 -0500 (EST)

rekado pushed a commit to branch master
in repository guix.

commit 10a1cacb164fe0f141bd34350ec1250cef06a43c
Author: Ricardo Wurmus <address@hidden>
Date:   Thu Dec 20 09:37:58 2018 +0100

    import: cran: Try import via CRAN if package is not on Bioconductor.
    
    * guix/import/cran.scm (fetch-description): Return #F on failure.
    (cran->guix-package): Retry from CRAN on failure to fetch description from
    bioconductor.
---
 guix/import/cran.scm | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/guix/import/cran.scm b/guix/import/cran.scm
index 8f2c102..aaa1caf 100644
--- a/guix/import/cran.scm
+++ b/guix/import/cran.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <address@hidden>
+;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <address@hidden>
 ;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <address@hidden>
 ;;; Copyright © 2017 Mathieu Othacehe <address@hidden>
 ;;;
@@ -23,6 +23,7 @@
   #:use-module (ice-9 regex)
   #:use-module ((ice-9 rdelim) #:select (read-string read-line))
   #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-2)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
   #:use-module (ice-9 receive)
@@ -180,9 +181,9 @@ from ~s: ~a (~s)~%"
      ;; Currently, the bioconductor project does not offer a way to access a
      ;; package's DESCRIPTION file over HTTP, so we determine the version,
      ;; download the source tarball, and then extract the DESCRIPTION file.
-     (let* ((version (latest-bioconductor-package-version name))
-            (url     (car (bioconductor-uri name version)))
-            (tarball (with-store store (download-to-store store url))))
+     (and-let* ((version (latest-bioconductor-package-version name))
+                (url     (car (bioconductor-uri name version)))
+                (tarball (with-store store (download-to-store store url))))
        (call-with-temporary-directory
         (lambda (dir)
           (parameterize ((current-error-port (%make-void-port "rw+"))
@@ -346,8 +347,12 @@ from the alist META, which was derived from the R 
package's DESCRIPTION file."
    (lambda* (package-name #:optional (repo 'cran))
      "Fetch the metadata for PACKAGE-NAME from REPO and return the `package'
 s-expression corresponding to that package, or #f on failure."
-     (and=> (fetch-description repo package-name)
-            (cut description->package repo <>)))))
+     (let ((description (fetch-description repo package-name)))
+       (if (and (not description)
+                (eq? repo 'bioconductor))
+           ;; Retry import from CRAN
+           (cran->guix-package package-name 'cran)
+           (description->package repo description))))))
 
 (define* (cran-recursive-import package-name #:optional (repo 'gnu))
   (recursive-import package-name repo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]