all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#34958] Add a package argument to dune-build-system
@ 2019-03-23 18:49 Julien Lepiller
  2019-03-23 20:50 ` Ludovic Courtès
  0 siblings, 1 reply; 3+ messages in thread
From: Julien Lepiller @ 2019-03-23 18:49 UTC (permalink / raw)
  To: 34958

[-- Attachment #1: Type: text/plain, Size: 479 bytes --]

Hi, these two patches add a new #:package argument to the
dune-build-system. This is required to build a package that comes with
more than one build file, such as packages in a repo with multiple
packages.

This is the case for ocaml-alcotest that is updated in the second
patch. It used the ocaml-build-system, but the build system was changed
upstream to dune, so the first patch is needed to build alcotest. I'd
like some feedback especially on the first patch :)

Thank you!

[-- Attachment #2: 0001-guix-dune-build-system-Add-a-package-parameter.patch --]
[-- Type: text/x-patch, Size: 3873 bytes --]

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.
---
 doc/guix.texi                    |  5 +++++
 guix/build-system/dune.scm       |  2 ++
 guix/build/dune-build-system.scm | 17 ++++++++++-------
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 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-system
diff --git a/guix/build-system/dune.scm b/guix/build-system/dune.scm
index 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-target
diff --git a/guix/build/dune-build-system.scm b/guix/build/dune-build-system.scm
index 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


[-- Attachment #3: 0002-gnu-ocaml-alcotest-Update-to-0.8.5.patch --]
[-- Type: text/x-patch, Size: 2046 bytes --]

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.
---
 gnu/packages/ocaml.scm | 24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 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


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [bug#34958] Add a package argument to dune-build-system
  2019-03-23 18:49 [bug#34958] Add a package argument to dune-build-system Julien Lepiller
@ 2019-03-23 20:50 ` Ludovic Courtès
  2019-03-23 21:59   ` bug#34958: " Julien Lepiller
  0 siblings, 1 reply; 3+ messages in thread
From: Ludovic Courtès @ 2019-03-23 20:50 UTC (permalink / raw)
  To: Julien Lepiller; +Cc: 34958

Hi!

Julien Lepiller <julien@lepiller.eu> skribis:

>>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.

[...]

> +The @code{#:package} parameter can be passed to specify a packagename, which
                                                                   ^^
Missing space.

> +is usefull when a package contains multiple packages and you want to build
            ^
Typo.

Otherwise LGTM.

>>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’.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#34958: Add a package argument to dune-build-system
  2019-03-23 20:50 ` Ludovic Courtès
@ 2019-03-23 21:59   ` Julien Lepiller
  0 siblings, 0 replies; 3+ messages in thread
From: Julien Lepiller @ 2019-03-23 21:59 UTC (permalink / raw)
  To: 34958-done

pushed as 78b3748c1c5446f19e7a74ec424d61a7826fc843 and
23c8a97a5b2766eb853a161c47cc86babf3b4322, thank you!

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-03-23 22:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-23 18:49 [bug#34958] Add a package argument to dune-build-system Julien Lepiller
2019-03-23 20:50 ` Ludovic Courtès
2019-03-23 21:59   ` bug#34958: " Julien Lepiller

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.