Add a package argument to dune-build-system

DoneSubmitted by Julien Lepiller.
Details
2 participants
  • Julien Lepiller
  • Ludovic Courtès
Owner
unassigned
Severity
normal
J
J
Julien Lepiller wrote on 23 Mar 2019 19:49
(address . guix-patches@gnu.org)
20190323194934.07e3d48e@lepiller.eu
Hi, these two patches add a new #:package argument to thedune-build-system. This is required to build a package that comes withmore than one build file, such as packages in a repo with multiplepackages.
This is the case for ocaml-alcotest that is updated in the secondpatch. It used the ocaml-build-system, but the build system was changedupstream to dune, so the first patch is needed to build alcotest. I'dlike some feedback especially on the first patch :)
Thank you!
From 619eb1219ac34d4974da4a3794df0e5a6098e48f Mon Sep 17 00:00:00 2001From: Julien Lepiller <julien@lepiller.eu>Date: Sat, 23 Mar 2019 19:18:31 +0100Subject: [PATCH 1/2] guix: dune-build-system: Add a package parameter.
* guix/build-system/dune.scm: Add a package parameter.* guix/build/dune.scm (build, test, install): Use it.* doc/guix.texi: Document it.--- doc/guix.texi | 5 +++++ guix/build-system/dune.scm | 2 ++ guix/build/dune-build-system.scm | 17 ++++++++++------- 3 files changed, 17 insertions(+), 7 deletions(-)
Toggle diff (80 lines)diff --git a/doc/guix.texi b/doc/guix.texiindex 8fa714ee54..be3ee1364e 100644--- a/doc/guix.texi+++ b/doc/guix.texi@@ -5816,6 +5816,11 @@ list of flags passed to the @code{dune} command during the build. The @code{#:jbuild?} parameter can be passed to use the @code{jbuild} command instead of the more recent @code{dune} command while building a package. Its default value is @code{#f}.++The @code{#:package} parameter can be passed to specify a packagename, which+is usefull when a package contains multiple packages and you want to build+only one of them. This is equivalent to passing the @code{-p} argument to+@code{dune}. @end defvr @defvr {Scheme Variable} go-build-systemdiff --git a/guix/build-system/dune.scm b/guix/build-system/dune.scmindex 8bd41c89f0..6a2f3d16de 100644--- a/guix/build-system/dune.scm+++ b/guix/build-system/dune.scm@@ -87,6 +87,7 @@ (build-flags ''()) (out-of-source? #t) (jbuild? #f)+ (package #f) (tests? #t) (test-flags ''()) (test-target "test")@@ -125,6 +126,7 @@ provides a 'setup.ml' file as its build system." #:build-flags ,build-flags #:out-of-source? ,out-of-source? #:jbuild? ,jbuild?+ #:package ,package #:tests? ,tests? #:test-target ,test-target #:install-target ,install-targetdiff --git a/guix/build/dune-build-system.scm b/guix/build/dune-build-system.scmindex 00b0c7c406..7e2ec1e3e1 100644--- a/guix/build/dune-build-system.scm+++ b/guix/build/dune-build-system.scm@@ -31,27 +31,30 @@ ;; Code: (define* (build #:key (build-flags '()) (jbuild? #f)- (use-make? #f) #:allow-other-keys)+ (use-make? #f) (package #f) #:allow-other-keys) "Build the given package." (let ((program (if jbuild? "jbuilder" "dune")))- (apply invoke program "build" "@install" build-flags))+ (apply invoke program "build" "@install"+ (append (if package (list "-p" package) '()) build-flags))) #t) (define* (check #:key (test-flags '()) (test-target "test") tests?- (jbuild? #f) #:allow-other-keys)+ (jbuild? #f) (package #f) #:allow-other-keys) "Test the given package." (when tests? (let ((program (if jbuild? "jbuilder" "dune")))- (apply invoke program "runtest" test-target test-flags)))+ (apply invoke program "runtest" test-target+ (append (if package (list "-p" package) '()) test-flags)))) #t) (define* (install #:key outputs (install-target "install") (jbuild? #f)- #:allow-other-keys)+ (package #f) #:allow-other-keys) "Install the given package." (let ((out (assoc-ref outputs "out")) (program (if jbuild? "jbuilder" "dune")))- (invoke program install-target "--prefix" out "--libdir"- (string-append out "/lib/ocaml/site-lib")))+ (apply invoke program install-target "--prefix" out "--libdir"+ (string-append out "/lib/ocaml/site-lib")+ (if package (list package) '()))) #t) (define %standard-phases-- 2.21.0
From 6ac1b059ef2c46ea6ac80070e6a49f79bdddbdc4 Mon Sep 17 00:00:00 2001From: Julien Lepiller <julien@lepiller.eu>Date: Sat, 23 Mar 2019 19:22:37 +0100Subject: [PATCH 2/2] gnu: ocaml-alcotest: Update to 0.8.5.
* gnu/packages/ocaml.scm (ocaml-alcotest): Update to 0.8.5.--- gnu/packages/ocaml.scm | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-)
Toggle diff (46 lines)diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scmindex 801611beb1..a6889c642e 100644--- a/gnu/packages/ocaml.scm+++ b/gnu/packages/ocaml.scm@@ -1724,28 +1724,26 @@ immutability.") (define-public ocaml-alcotest (package (name "ocaml-alcotest")- (version "0.7.2")+ (version "0.8.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/mirage/alcotest/releases/" "download/" version "/alcotest-" version ".tbz")) (sha256 (base32- "0g5lzk0gpfx4q8hyhr460gr4lab5wakfxsmhfwvb3yinxwzs95gc"))))- (build-system ocaml-build-system)+ "0szwjxvaahgynsx0apj81jxj3ki6yz4is9mh2wkcbx66qy7n6fvb"))))+ (build-system dune-build-system) (arguments- `(#:tests? #f- #:build-flags (list "build")- #:phases- (modify-phases %standard-phases- (delete 'configure))))+ `(#:package "alcotest"+ #:test-target ".")) (native-inputs- `(("ocamlbuild" ,ocamlbuild)- ("opam" ,opam)- ("topkg" ,ocaml-topkg)))+ `(("ocamlbuild" ,ocamlbuild))) (propagated-inputs- `(("fmt" ,ocaml-fmt)- ("astring" ,ocaml-astring)))+ `(("ocaml-astring" ,ocaml-astring)+ ("ocaml-cmdliner" ,ocaml-cmdliner)+ ("ocaml-fmt" ,ocaml-fmt)+ ("ocaml-result" ,ocaml-result)+ ("ocaml-uuidm" ,ocaml-uuidm))) (home-page "https://github.com/mirage/alcotest") (synopsis "Lightweight OCaml test framework") (description "Alcotest exposes simple interface to perform unit tests. It-- 2.21.0
L
L
Ludovic Courtès wrote on 23 Mar 2019 21:50
(name . Julien Lepiller)(address . julien@lepiller.eu)(address . 34958@debbugs.gnu.org)
87ftrduxhf.fsf@gnu.org
Hi!
Julien Lepiller <julien@lepiller.eu> skribis:
Toggle quote (9 lines)>>From 619eb1219ac34d4974da4a3794df0e5a6098e48f Mon Sep 17 00:00:00 2001> From: Julien Lepiller <julien@lepiller.eu>> Date: Sat, 23 Mar 2019 19:18:31 +0100> Subject: [PATCH 1/2] guix: dune-build-system: Add a package parameter.>> * guix/build-system/dune.scm: Add a package parameter.> * guix/build/dune.scm (build, test, install): Use it.> * doc/guix.texi: Document it.
[...]
Toggle quote (1 lines)> +The @code{#:package} parameter can be passed to specify a packagename, which
^^Missing space.
Toggle quote (1 lines)> +is usefull when a package contains multiple packages and you want to build
^Typo.
Otherwise LGTM.
Toggle quote (7 lines)>>From 6ac1b059ef2c46ea6ac80070e6a49f79bdddbdc4 Mon Sep 17 00:00:00 2001> From: Julien Lepiller <julien@lepiller.eu>> Date: Sat, 23 Mar 2019 19:22:37 +0100> Subject: [PATCH 2/2] gnu: ocaml-alcotest: Update to 0.8.5.>> * gnu/packages/ocaml.scm (ocaml-alcotest): Update to 0.8.5.
LGTM!
Thank you,Ludo’.
J
J
Julien Lepiller wrote on 23 Mar 2019 22:59
(address . 34958-done@debbugs.gnu.org)
20190323225953.166970a3@lepiller.eu
pushed as 78b3748c1c5446f19e7a74ec424d61a7826fc843 and23c8a97a5b2766eb853a161c47cc86babf3b4322, thank you!
Closed
?
Your comment

This issue is archived.

To comment on this conversation send email to 34958@debbugs.gnu.org