From 59873d94ceb97b5ca95d3dc7ea91332c66c753d2 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Tue, 8 Dec 2020 13:41:47 +0100 Subject: guix: opam: Filter implicit inputs. * guix/import/opam.scm (opam->guix-package, depends->inputs): Filter out implicit inputs. --- guix/import/opam.scm | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'guix/import/opam.scm') diff --git a/guix/import/opam.scm b/guix/import/opam.scm index 78d72df2ce..4f366a9384 100644 --- a/guix/import/opam.scm +++ b/guix/import/opam.scm @@ -235,12 +235,15 @@ (define (ocaml-names->guix-names names) (equal? "ocaml" name)) names))) -(define (depends->inputs depends) +(define (filter-dependencies depends) + "Remove implicit dependencies from the list of dependencies in @var{depends}." (filter (lambda (name) - (and (not (equal? "" name)) - (not (equal? "ocaml" name)) - (not (equal? "ocamlfind" name)))) - (map dependency->input depends))) + (and (not (member name '("" "ocaml" "ocamlfind" "dune" "jbuilder"))) + (not (string-prefix? "base-" name)))) + depends)) + +(define (depends->inputs depends) + (filter-dependencies (map dependency->input depends))) (define (depends->native-inputs depends) (filter (lambda (name) (not (equal? "" name))) @@ -272,7 +275,8 @@ (define* (opam->guix-package name #:key (repository (get-opam-repository)) versi (source-url (or (metadata-ref url-dict "src") (metadata-ref url-dict "archive"))) (requirements (metadata-ref opam-content "depends")) - (dependencies (dependency-list->names requirements)) + (names (dependency-list->names requirements)) + (dependencies (filter-dependencies names)) (native-dependencies (depends->native-inputs requirements)) (inputs (dependency-list->inputs (depends->inputs requirements))) (native-inputs (dependency-list->inputs @@ -282,10 +286,7 @@ (define* (opam->guix-package name #:key (repository (get-opam-repository)) versi (lambda (name) (not (member name '("dune" "jbuilder")))) native-dependencies)))) - ;; If one of these are required at build time, it means we - ;; can use the much nicer dune-build-system. - (let ((use-dune? (or (member "dune" (append dependencies native-dependencies)) - (member "jbuilder" (append dependencies native-dependencies))))) + (let ((use-dune? (member "dune" names))) (call-with-temporary-output-file (lambda (temp port) (and (url-fetch source-url temp) -- cgit v1.2.3