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 |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
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
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
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
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 --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)