diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-12-30 22:49:09 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-12-30 23:18:16 +0100 |
commit | c7ca707b59304a978cab8c5c25401259c6c18214 (patch) | |
tree | b9dce786c6068ffd60d3e45b22818de0c96b21d8 | |
parent | ddc291d74bae877d5e030a03d94964a8f3536817 (diff) | |
download | patches-c7ca707b59304a978cab8c5c25401259c6c18214.tar patches-c7ca707b59304a978cab8c5c25401259c6c18214.tar.gz |
import: crate: Honor crate version for recursive imports.
Fixes <https://bugs.gnu.org/38709>.
Reported by Valentin Ignatev <valentignatev@gmail.com>.
* guix/import/crate.scm (crate-recursive-import): Add optional 'version'
parameter and honor it.
* guix/scripts/import/crate.scm (guix-import-crate): Pass VERSION as 2nd
argument to 'crate-recursive-import'.
-rw-r--r-- | guix/import/crate.scm | 9 | ||||
-rw-r--r-- | guix/scripts/import/crate.scm | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/guix/import/crate.scm b/guix/import/crate.scm index 4c3f8000d0..405a26a877 100644 --- a/guix/import/crate.scm +++ b/guix/import/crate.scm @@ -231,10 +231,13 @@ latest version of CRATE-NAME." string->license)) (append cargo-inputs cargo-development-inputs))))) -(define (crate-recursive-import crate-name) +(define* (crate-recursive-import crate-name #:optional version) (recursive-import crate-name #f - #:repo->guix-package (lambda (name repo) - (crate->guix-package name)) + #:repo->guix-package + (lambda (name repo) + (let ((version (and (string=? name crate-name) + version))) + (crate->guix-package name version))) #:guix-name crate-name->package-name)) (define (guix-package->crate-name package) diff --git a/guix/scripts/import/crate.scm b/guix/scripts/import/crate.scm index 92034dab3c..d834518c18 100644 --- a/guix/scripts/import/crate.scm +++ b/guix/scripts/import/crate.scm @@ -100,7 +100,7 @@ Import and convert the crate.io package for PACKAGE-NAME.\n")) `(define-public ,(string->symbol name) ,pkg)) (_ #f)) - (crate-recursive-import name)) + (crate-recursive-import name version)) (let ((sexp (crate->guix-package name version))) (unless sexp (leave (G_ "failed to download meta-data for package '~a'~%") |