diff mbox series

[bug#43745,27/27] gnu: dune: Update to 2.7.1.

Message ID 20201001134133.32105-27-julien@lepiller.eu
State Accepted
Headers show
Series [bug#43745,01/27] gnu: unison: Build with ocaml-4.09. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job

Commit Message

Julien Lepiller Oct. 1, 2020, 1:41 p.m. UTC
* gnu/packages/ocaml.scm (dune): Update to 2.7.1.
(ocaml4.07-dune): Keep version 1.11.3.
(ocaml-result, ocaml-csexp): Use the bootstrap dune on dune
dependencies.
(ocaml-craml, ocaml-bitstring): Run "dune upgrade" before building.
---
 gnu/packages/ocaml.scm | 67 ++++++++++++++++++++++++++++++++++++------
 1 file changed, 58 insertions(+), 9 deletions(-)

Comments

Simon Tournier Oct. 2, 2020, 8:56 a.m. UTC | #1
Hi,

Thank you for all the patch set! :-)


On Thu, 1 Oct 2020 at 16:07, Julien Lepiller <julien@lepiller.eu> wrote:

> -(define-public dune
> +(define dune-bootstrap
>    (package
>      (name "dune")
> -    (version "1.11.3")
> +    (version "2.7.1")
>      (source (origin
>                (method git-fetch)
>                (uri (git-reference
> @@ -1289,17 +1289,19 @@ full_split, cut, rcut, etc..")
>                (file-name (git-file-name name version))
>                (sha256
>                 (base32
> -                "0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr"))))
> +                "10qgx83fq8b522y9mpllrp0l5cgmr2bs5s7aix5img21hlbm34in"))))
>      (build-system ocaml-build-system)
>      (arguments
>       `(#:tests? #f; require odoc
> -       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
> +       #:make-flags (list "release"
> +                          (string-append "PREFIX=" (assoc-ref %outputs "out"))
>                            (string-append "LIBDIR=" (assoc-ref %outputs "out")
>                                           "/lib/ocaml/site-lib"))
>         #:phases
>         (modify-phases %standard-phases
>           (replace 'configure
>             (lambda* (#:key outputs #:allow-other-keys)
> +             (mkdir-p "src/dune")
>               (invoke "./configure")
>               #t)))))
>      (home-page "https://github.com/ocaml/dune")

[...]

> +(define-public dune
> +  (package
> +    (inherit dune-bootstrap)
> +    (propagated-inputs
> +     `(("dune-configurator" ,dune-configurator)))
> +    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-dune))))))
> +
>  (define-public ocaml4.07-dune
> -  (package-with-ocaml4.07 dune))
> +  (package
> +    (inherit (package-with-ocaml4.07 dune-bootstrap))
> +    (version "1.11.3")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                     (url "https://github.com/ocaml/dune")
> +                     (commit version)))
> +              (file-name (git-file-name "dune" version))
> +              (sha256
> +               (base32
> +                "0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr"))))))

Can  the v2.7.1 of 'dune-bootstrap' be compiled with OCaml4.07?

All the best,
simon
Julien Lepiller Oct. 2, 2020, 12:42 p.m. UTC | #2
Yes, it's posssible, but as I said, most of our ocaml4.07-* packages will need to be fixed to work with dune 2.

Le 2 octobre 2020 04:56:20 GMT-04:00, zimoun <zimon.toutoune@gmail.com> a écrit :
>Hi,
>
>Thank you for all the patch set! :-)
>
>
>On Thu, 1 Oct 2020 at 16:07, Julien Lepiller <julien@lepiller.eu>
>wrote:
>
>> -(define-public dune
>> +(define dune-bootstrap
>>    (package
>>      (name "dune")
>> -    (version "1.11.3")
>> +    (version "2.7.1")
>>      (source (origin
>>                (method git-fetch)
>>                (uri (git-reference
>> @@ -1289,17 +1289,19 @@ full_split, cut, rcut, etc..")
>>                (file-name (git-file-name name version))
>>                (sha256
>>                 (base32
>> -               
>"0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr"))))
>> +               
>"10qgx83fq8b522y9mpllrp0l5cgmr2bs5s7aix5img21hlbm34in"))))
>>      (build-system ocaml-build-system)
>>      (arguments
>>       `(#:tests? #f; require odoc
>> -       #:make-flags (list (string-append "PREFIX=" (assoc-ref
>%outputs "out"))
>> +       #:make-flags (list "release"
>> +                          (string-append "PREFIX=" (assoc-ref
>%outputs "out"))
>>                            (string-append "LIBDIR=" (assoc-ref
>%outputs "out")
>>                                           "/lib/ocaml/site-lib"))
>>         #:phases
>>         (modify-phases %standard-phases
>>           (replace 'configure
>>             (lambda* (#:key outputs #:allow-other-keys)
>> +             (mkdir-p "src/dune")
>>               (invoke "./configure")
>>               #t)))))
>>      (home-page "https://github.com/ocaml/dune")
>
>[...]
>
>> +(define-public dune
>> +  (package
>> +    (inherit dune-bootstrap)
>> +    (propagated-inputs
>> +     `(("dune-configurator" ,dune-configurator)))
>> +    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-dune))))))
>> +
>>  (define-public ocaml4.07-dune
>> -  (package-with-ocaml4.07 dune))
>> +  (package
>> +    (inherit (package-with-ocaml4.07 dune-bootstrap))
>> +    (version "1.11.3")
>> +    (source (origin
>> +              (method git-fetch)
>> +              (uri (git-reference
>> +                     (url "https://github.com/ocaml/dune")
>> +                     (commit version)))
>> +              (file-name (git-file-name "dune" version))
>> +              (sha256
>> +               (base32
>> +               
>"0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr"))))))
>
>Can  the v2.7.1 of 'dune-bootstrap' be compiled with OCaml4.07?
>
>All the best,
>simon
Simon Tournier Oct. 5, 2020, 2:55 p.m. UTC | #3
On Fri, 2 Oct 2020 at 14:42, Julien Lepiller <julien@lepiller.eu> wrote:
>
> Yes, it's posssible, but as I said, most of our ocaml4.07-* packages will need to be fixed to work with dune 2.

Thanks for explaining and sorry I have overlooked your cover letter.

Cheers,
simon
Simon Tournier Oct. 13, 2020, 11:57 a.m. UTC | #4
On Thu, 01 Oct 2020 at 15:41, Julien Lepiller <julien@lepiller.eu> wrote:
> * gnu/packages/ocaml.scm (dune): Update to 2.7.1.
> (ocaml4.07-dune): Keep version 1.11.3.
> (ocaml-result, ocaml-csexp): Use the bootstrap dune on dune
> dependencies.
> (ocaml-craml, ocaml-bitstring): Run "dune upgrade" before building.
> ---
>  gnu/packages/ocaml.scm | 67 ++++++++++++++++++++++++++++++++++++------
>  1 file changed, 58 insertions(+), 9 deletions(-)

LGTM.

Noticing the ’ocaml-bitstring’ is not reproducible and ’ocaml-craml’
rebuild some dependencies.
diff mbox series

Patch

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index d2e2e61863..025badb031 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -1277,10 +1277,10 @@  full_split, cut, rcut, etc..")
     ;; where it says `mit'.
     (license license:expat)))
 
-(define-public dune
+(define dune-bootstrap
   (package
     (name "dune")
-    (version "1.11.3")
+    (version "2.7.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1289,17 +1289,19 @@  full_split, cut, rcut, etc..")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr"))))
+                "10qgx83fq8b522y9mpllrp0l5cgmr2bs5s7aix5img21hlbm34in"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:tests? #f; require odoc
-       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+       #:make-flags (list "release"
+                          (string-append "PREFIX=" (assoc-ref %outputs "out"))
                           (string-append "LIBDIR=" (assoc-ref %outputs "out")
                                          "/lib/ocaml/site-lib"))
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
+             (mkdir-p "src/dune")
              (invoke "./configure")
              #t)))))
     (home-page "https://github.com/ocaml/dune")
@@ -1309,8 +1311,41 @@  release of Jane Street packages.  It reads metadata from @file{dune} files
 following a very simple s-expression syntax.")
     (license license:expat)))
 
+(define-public dune-configurator
+  (package
+    (inherit dune-bootstrap)
+    (name "dune-configurator")
+    (build-system dune-build-system)
+    (arguments
+     `(#:package "dune-configurator"
+       #:dune ,dune-bootstrap
+       ; require ppx_expect
+       #:tests? #f))
+    (propagated-inputs
+     `(("ocaml-csexp" ,ocaml-csexp)))
+    (synopsis "")
+    (description "")))
+
+(define-public dune
+  (package
+    (inherit dune-bootstrap)
+    (propagated-inputs
+     `(("dune-configurator" ,dune-configurator)))
+    (properties `((ocaml4.07-variant . ,(delay ocaml4.07-dune))))))
+
 (define-public ocaml4.07-dune
-  (package-with-ocaml4.07 dune))
+  (package
+    (inherit (package-with-ocaml4.07 dune-bootstrap))
+    (version "1.11.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/ocaml/dune")
+                     (commit version)))
+              (file-name (git-file-name "dune" version))
+              (sha256
+               (base32
+                "0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr"))))))
 
 (define-public ocaml-csexp
   (package
@@ -1328,6 +1363,7 @@  following a very simple s-expression syntax.")
     (build-system dune-build-system)
     (arguments
      `(#:tests? #f; FIXME: needs ppx_expect, but which version?
+       #:dune ,dune-bootstrap
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'chmod
@@ -1335,8 +1371,7 @@  following a very simple s-expression syntax.")
              (for-each (lambda (file) (chmod file #o644)) (find-files "." ".*"))
              #t)))))
     (propagated-inputs
-     `(("dune" ,dune)
-       ("ocaml-result" ,ocaml-result)))
+     `(("ocaml-result" ,ocaml-result)))
     (home-page "https://github.com/ocaml-dune/csexp")
     (synopsis "Parsing and printing of S-expressions in Canonical form")
     (description "This library provides minimal support for Canonical
@@ -1428,7 +1463,13 @@  ocaml-migrate-parsetree")
      `(("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned)))
     (arguments
      `(#:package "bitstring"
-       #:tests? #f)); Tests fail to build
+       #:tests? #f; Tests fail to build
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'upgrade
+           (lambda _
+             (invoke "dune" "upgrade")
+             #t)))))
     (home-page "https://github.com/xguerin/bitstring")
     (synopsis "Bitstrings and bitstring matching for OCaml")
     (description "Adds Erlang-style bitstrings and matching over bitstrings as
@@ -1453,7 +1494,8 @@  powerful.")
                 "166laj8qk7466sdl037c6cjs4ac571hglw4l5qpyll6df07h6a7q"))))
     (build-system dune-build-system)
     (arguments
-     `(#:test-target "."))
+     `(#:test-target "."
+       #:dune ,dune-bootstrap))
     (home-page "https://github.com/janestreet/result")
     (synopsis "Compatibility Result module")
     (description "Uses the new result type defined in OCaml >= 4.03 while
@@ -3813,6 +3855,13 @@  serializers and deserializers from type definitions.")
         (base32
          "197xjp4vmzdymf2ndinw271ihpf45h04mx8gqj8ypspxdr5fj1a5"))))
     (build-system dune-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'upgrade
+           (lambda _
+             (invoke "dune" "upgrade")
+             #t)))))
     (inputs
      `(("ocaml-fmt" ,ocaml-fmt)
        ("ocaml-astring" ,ocaml-astring)