From ef54ba410edd25fcda7f0dc326346a7e4b366d0e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 25 Nov 2019 17:58:05 +0200 Subject: [PATCH 1/3] import: crate: Don't include optional dependencies. * guix/import/crate.scm (define-json-mapping): Match 'optional' keyword. (crate->guix-package): Remove optional dependencies from listed dependencies. --- guix/import/crate.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/guix/import/crate.scm b/guix/import/crate.scm index 8dc014d232..9eca176b08 100644 --- a/guix/import/crate.scm +++ b/guix/import/crate.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016 David Craven ;;; Copyright © 2019 Ludovic Courtès ;;; Copyright © 2019 Martin Becze +;;; Copyright © 2019 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -87,6 +88,7 @@ (id crate-dependency-id "crate_id") ;string (kind crate-dependency-kind "kind" ;'normal | 'dev string->symbol) + (optional crate-dependency-optional "optional") ; 'true | 'false (requirement crate-dependency-requirement "req")) ;string (define (lookup-crate name) @@ -197,6 +199,9 @@ latest version of CRATE-NAME." (define (normal-dependency? dependency) (eq? (crate-dependency-kind dependency) 'normal)) + (define (optional-dependency? dependency) + (eq? (crate-dependency-optional dependency) #t)) + (define crate (lookup-crate crate-name)) @@ -211,7 +216,8 @@ latest version of CRATE-NAME." (crate-versions crate))) (and crate version* - (let* ((dependencies (crate-version-dependencies version*)) + (let* ((all-deps (crate-version-dependencies version*)) + (dependencies (remove optional-dependency? all-deps)) (dep-crates (filter normal-dependency? dependencies)) (dev-dep-crates (remove normal-dependency? dependencies)) (cargo-inputs (sort (map crate-dependency-id dep-crates) -- 2.24.0