Archived
1
0
Fork 0

import cran: description->package: Also return package dependencies.

* guix/import/cran.scm (description->package): Return package
  dependencies in addition to generated package expression.
This commit is contained in:
Ricardo Wurmus 2016-05-17 15:17:54 +02:00 committed by Ricardo Wurmus
parent bfa0c752bc
commit ad68f7fa58
No known key found for this signature in database
GPG key ID: 197A5888235FACAC

View file

@ -23,6 +23,7 @@
#:use-module ((ice-9 rdelim) #:select (read-string)) #:use-module ((ice-9 rdelim) #:select (read-string))
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:use-module (ice-9 receive)
#:use-module (guix http-client) #:use-module (guix http-client)
#:use-module (guix hash) #:use-module (guix hash)
#:use-module (guix store) #:use-module (guix store)
@ -179,33 +180,36 @@ from the alist META, which was derived from the R package's DESCRIPTION file."
(_ #f))) (_ #f)))
(tarball (with-store store (download-to-store store source-url))) (tarball (with-store store (download-to-store store source-url)))
(sysdepends (map string-downcase (listify meta "SystemRequirements"))) (sysdepends (map string-downcase (listify meta "SystemRequirements")))
(propagate (map guix-name (lset-union equal? (propagate (lset-union equal?
(listify meta "Imports") (listify meta "Imports")
(listify meta "LinkingTo") (listify meta "LinkingTo")
(delete "R" (delete "R"
(listify meta "Depends")))))) (listify meta "Depends")))))
`(package (values
(name ,(guix-name name)) `(package
(version ,version) (name ,(guix-name name))
(source (origin (version ,version)
(method url-fetch) (source (origin
(uri (,(procedure-name uri-helper) ,name version)) (method url-fetch)
(sha256 (uri (,(procedure-name uri-helper) ,name version))
(base32 (sha256
,(bytevector->nix-base32-string (file-sha256 tarball)))))) (base32
,@(if (not (equal? (string-append "r-" name) ,(bytevector->nix-base32-string (file-sha256 tarball))))))
(guix-name name))) ,@(if (not (equal? (string-append "r-" name)
`((properties ,`(,'quasiquote ((,'upstream-name . ,name))))) (guix-name name)))
'()) `((properties ,`(,'quasiquote ((,'upstream-name . ,name)))))
(build-system r-build-system) '())
,@(maybe-inputs sysdepends) (build-system r-build-system)
,@(maybe-inputs propagate 'propagated-inputs) ,@(maybe-inputs sysdepends)
(home-page ,(if (string-null? home-page) ,@(maybe-inputs (map guix-name propagate) 'propagated-inputs)
(string-append base-url name) (home-page ,(if (string-null? home-page)
home-page)) (string-append base-url name)
(synopsis ,synopsis) home-page))
(description ,(beautify-description (assoc-ref meta "Description"))) (synopsis ,synopsis)
(license ,license)))) (description ,(beautify-description (or (assoc-ref meta "Description")
"")))
(license ,license))
propagate)))
(define* (cran->guix-package package-name #:optional (repo 'cran)) (define* (cran->guix-package package-name #:optional (repo 'cran))
"Fetch the metadata for PACKAGE-NAME from REPO and return the `package' "Fetch the metadata for PACKAGE-NAME from REPO and return the `package'