me
/
guix
Archived
1
0
Fork 0

guix: opam: Filter implicit inputs.

* guix/import/opam.scm (opam->guix-package, depends->inputs): Filter out
implicit inputs.
master
Julien Lepiller 2020-12-08 13:41:47 +01:00
parent 4e110f61ac
commit 59873d94ce
No known key found for this signature in database
GPG Key ID: 53D457B2D636EE82
1 changed files with 11 additions and 10 deletions

View File

@ -235,12 +235,15 @@ path to the repository."
(equal? "ocaml" name)) (equal? "ocaml" name))
names))) names)))
(define (depends->inputs depends) (define (filter-dependencies depends)
"Remove implicit dependencies from the list of dependencies in @var{depends}."
(filter (lambda (name) (filter (lambda (name)
(and (not (equal? "" name)) (and (not (member name '("" "ocaml" "ocamlfind" "dune" "jbuilder")))
(not (equal? "ocaml" name)) (not (string-prefix? "base-" name))))
(not (equal? "ocamlfind" name)))) depends))
(map dependency->input depends)))
(define (depends->inputs depends)
(filter-dependencies (map dependency->input depends)))
(define (depends->native-inputs depends) (define (depends->native-inputs depends)
(filter (lambda (name) (not (equal? "" name))) (filter (lambda (name) (not (equal? "" name)))
@ -272,7 +275,8 @@ or #f on failure."
(source-url (or (metadata-ref url-dict "src") (source-url (or (metadata-ref url-dict "src")
(metadata-ref url-dict "archive"))) (metadata-ref url-dict "archive")))
(requirements (metadata-ref opam-content "depends")) (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)) (native-dependencies (depends->native-inputs requirements))
(inputs (dependency-list->inputs (depends->inputs requirements))) (inputs (dependency-list->inputs (depends->inputs requirements)))
(native-inputs (dependency-list->inputs (native-inputs (dependency-list->inputs
@ -282,10 +286,7 @@ or #f on failure."
(lambda (name) (lambda (name)
(not (member name '("dune" "jbuilder")))) (not (member name '("dune" "jbuilder"))))
native-dependencies)))) native-dependencies))))
;; If one of these are required at build time, it means we (let ((use-dune? (member "dune" names)))
;; can use the much nicer dune-build-system.
(let ((use-dune? (or (member "dune" (append dependencies native-dependencies))
(member "jbuilder" (append dependencies native-dependencies)))))
(call-with-temporary-output-file (call-with-temporary-output-file
(lambda (temp port) (lambda (temp port)
(and (url-fetch source-url temp) (and (url-fetch source-url temp)