[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/09: import: opam: Use dune-build-system when possible.
From: |
guix-commits |
Subject: |
02/09: import: opam: Use dune-build-system when possible. |
Date: |
Wed, 10 Apr 2019 15:40:07 -0400 (EDT) |
roptat pushed a commit to branch master
in repository guix.
commit 7b1c7ecdfbe26b56dbb19aa82874f3ef2df8ab08
Author: Julien Lepiller <address@hidden>
Date: Wed Apr 3 20:19:24 2019 +0200
import: opam: Use dune-build-system when possible.
* guix/import/opam.scm (opam->guix-package): Detect when dune can be used.
---
guix/import/opam.scm | 80 +++++++++++++++++++++++++++++++---------------------
1 file changed, 48 insertions(+), 32 deletions(-)
diff --git a/guix/import/opam.scm b/guix/import/opam.scm
index b5069cd..5dcc0e9 100644
--- a/guix/import/opam.scm
+++ b/guix/import/opam.scm
@@ -247,39 +247,55 @@ path to the repository."
(url-dict (metadata-ref opam-content "url"))
(source-url (metadata-ref url-dict "src"))
(requirements (metadata-ref opam-content "depends"))
- (dependencies (dependency-list->names requirements))
+ (dependencies (filter
+ (lambda (name)
+ (not (member name '("dune" "jbuilder"))))
+ (dependency-list->names requirements)))
+ (native-dependencies (depends->native-inputs requirements))
(inputs (dependency-list->inputs (depends->inputs requirements)))
- (native-inputs (dependency-list->inputs (depends->native-inputs
requirements))))
- (call-with-temporary-output-file
- (lambda (temp port)
- (and (url-fetch source-url temp)
- (values
- `(package
- (name ,(ocaml-name->guix-name name))
- (version ,(if (string-prefix? "v" version)
- (substring version 1)
- version))
- (source
- (origin
- (method url-fetch)
- (uri ,source-url)
- (sha256 (base32 ,(guix-hash-url temp)))))
- (build-system ocaml-build-system)
- ,@(if (null? inputs)
- '()
- `((inputs ,(list 'quasiquote inputs))))
- ,@(if (null? native-inputs)
- '()
- `((native-inputs ,(list 'quasiquote native-inputs))))
- ,@(if (equal? name (guix-name->opam-name
(ocaml-name->guix-name name)))
- '()
- `((properties
- ,(list 'quasiquote `((upstream-name . ,name))))))
- (home-page ,(metadata-ref opam-content "homepage"))
- (synopsis ,(metadata-ref opam-content "synopsis"))
- (description ,(metadata-ref opam-content "description"))
- (license #f))
- dependencies))))))
+ (native-inputs (dependency-list->inputs
+ ;; Do not add dune nor jbuilder since they are
+ ;; implicit inputs of the dune-build-system.
+ (filter
+ (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" native-dependencies)
+ (member "jbuilder" native-dependencies))))
+ (call-with-temporary-output-file
+ (lambda (temp port)
+ (and (url-fetch source-url temp)
+ (values
+ `(package
+ (name ,(ocaml-name->guix-name name))
+ (version ,(if (string-prefix? "v" version)
+ (substring version 1)
+ version))
+ (source
+ (origin
+ (method url-fetch)
+ (uri ,source-url)
+ (sha256 (base32 ,(guix-hash-url temp)))))
+ (build-system ,(if use-dune?
+ 'dune-build-system
+ 'ocaml-build-system))
+ ,@(if (null? inputs)
+ '()
+ `((inputs ,(list 'quasiquote inputs))))
+ ,@(if (null? native-inputs)
+ '()
+ `((native-inputs ,(list 'quasiquote
native-inputs))))
+ ,@(if (equal? name (guix-name->opam-name
(ocaml-name->guix-name name)))
+ '()
+ `((properties
+ ,(list 'quasiquote `((upstream-name .
,name))))))
+ (home-page ,(metadata-ref opam-content "homepage"))
+ (synopsis ,(metadata-ref opam-content "synopsis"))
+ (description ,(metadata-ref opam-content "description"))
+ (license #f))
+ dependencies)))))))
(define (opam-recursive-import package-name)
(recursive-import package-name #f
- branch master updated (81a9ab8 -> e9b86fa), guix-commits, 2019/04/10
- 05/09: gnu: Add ocaml-extlib., guix-commits, 2019/04/10
- 06/09: gnu: Add ocaml-cudf., guix-commits, 2019/04/10
- 03/09: gnu: Add ocaml-opam-file-format., guix-commits, 2019/04/10
- 09/09: gnu: opam: Unbundle dependencies., guix-commits, 2019/04/10
- 07/09: gnu: Add ocaml-mccs., guix-commits, 2019/04/10
- 02/09: import: opam: Use dune-build-system when possible.,
guix-commits <=
- 01/09: import: opam: Add more patterns to opam file parser., guix-commits, 2019/04/10
- 08/09: gnu: Add ocaml-dose3., guix-commits, 2019/04/10
- 04/09: gnu: ocaml-cmdliner: Update to 1.0.3., guix-commits, 2019/04/10