Message ID | 87mub64q2x.fsf@gnu.org |
---|---|
State | Accepted |
Headers | show |
Series | [bug#38861,WIP,1/1] gnu: Add ocaml-4.09. | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | Apply failed |
Brett Gilio <brettg@gnu.org> writes: >>From 1f3f55c2482fb33912a38829f0c2b981d835d80f Mon Sep 17 00:00:00 2001 > From: Brett Gilio <brettg@gnu.org> > Date: Wed, 1 Jan 2020 19:06:13 -0600 > Subject: [WIP 1/1] gnu: Add ocaml-4.09. > To: guix-patches@gnu.org > > * gnu/packages/ocaml.scm (ocaml-4.09): New variable inherits from ocaml-4.07 > with changes to configuration and checks. > --- > gnu/packages/ocaml.scm | 37 +++++++++++++++++++++++++++++++++++++ > 1 file changed, 37 insertions(+) > > diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm > index 2988810fc7..0ee8fdd508 100644 > --- a/gnu/packages/ocaml.scm > +++ b/gnu/packages/ocaml.scm > @@ -13,6 +13,7 @@ > ;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com> > ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net> > ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> > +;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -212,6 +213,42 @@ functional, imperative and object-oriented styles of programming.") > ;; distributed under lgpl2.0. > (license (list license:qpl license:lgpl2.0)))) > > +(define-public ocaml-4.09 > + (package (inherit ocaml-4.07) > + (name "ocaml") > + (version "4.09.0") > + (source (origin > + (method url-fetch) > + (uri (string-append > + "http://caml.inria.fr/pub/distrib/ocaml-" > + (version-major+minor version) > + "/ocaml-" version ".tar.xz")) > + (sha256 > + (base32 > + "1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj")))) > + (arguments > + `(#:phases > + (modify-phases %standard-phases > + (add-after 'unpack 'delete-failing-tests > + (lambda _ > + (with-directory-excursion "testsuite" > + (for-each delete-file-recursively > + '(;; This test group does not terminate. > + "tests/tool-debugger" > + ;; These test groups fail. > + "tests/lib-unix/common" > + "tests/lib-scanf-2" > + "tests/lib-threads"))) > + #t)) > + (replace 'build > + (lambda _ > + (invoke "make" "-j" (number->string (parallel-job-count)) > + "world.opt"))) > + (replace 'check > + (lambda _ > + (with-directory-excursion "testsuite" > + (invoke "make" "all"))))))))) > + > (define-public ocaml ocaml-4.07) > > (define-public ocamlbuild Hello all who are interested. I'd really like to get OCaml up to 4.09 (and all of the OCaml-dependent packages in better shape). I am unsure of the approach to take. Should I offer two versions of OCaml? If so, should I subsequently offer two versions of each ocaml-* package built against each respective toolchain or what is our protocol here?
Le 8 janvier 2020 01:39:21 GMT-05:00, Brett Gilio <brettg@gnu.org> a écrit : >Brett Gilio <brettg@gnu.org> writes: > >>>From 1f3f55c2482fb33912a38829f0c2b981d835d80f Mon Sep 17 00:00:00 >2001 >> From: Brett Gilio <brettg@gnu.org> >> Date: Wed, 1 Jan 2020 19:06:13 -0600 >> Subject: [WIP 1/1] gnu: Add ocaml-4.09. >> To: guix-patches@gnu.org >> >> * gnu/packages/ocaml.scm (ocaml-4.09): New variable inherits from >ocaml-4.07 >> with changes to configuration and checks. >> --- >> gnu/packages/ocaml.scm | 37 +++++++++++++++++++++++++++++++++++++ >> 1 file changed, 37 insertions(+) >> >> diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm >> index 2988810fc7..0ee8fdd508 100644 >> --- a/gnu/packages/ocaml.scm >> +++ b/gnu/packages/ocaml.scm >> @@ -13,6 +13,7 @@ >> ;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com> >> ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net> >> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> >> +;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> >> ;;; >> ;;; This file is part of GNU Guix. >> ;;; >> @@ -212,6 +213,42 @@ functional, imperative and object-oriented >styles of programming.") >> ;; distributed under lgpl2.0. >> (license (list license:qpl license:lgpl2.0)))) >> >> +(define-public ocaml-4.09 >> + (package (inherit ocaml-4.07) >> + (name "ocaml") >> + (version "4.09.0") >> + (source (origin >> + (method url-fetch) >> + (uri (string-append >> + "http://caml.inria.fr/pub/distrib/ocaml-" >> + (version-major+minor version) >> + "/ocaml-" version ".tar.xz")) >> + (sha256 >> + (base32 >> + >"1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj")))) >> + (arguments >> + `(#:phases >> + (modify-phases %standard-phases >> + (add-after 'unpack 'delete-failing-tests >> + (lambda _ >> + (with-directory-excursion "testsuite" >> + (for-each delete-file-recursively >> + '(;; This test group does not >terminate. >> + "tests/tool-debugger" >> + ;; These test groups fail. >> + "tests/lib-unix/common" >> + "tests/lib-scanf-2" >> + "tests/lib-threads"))) >> + #t)) >> + (replace 'build >> + (lambda _ >> + (invoke "make" "-j" (number->string >(parallel-job-count)) >> + "world.opt"))) >> + (replace 'check >> + (lambda _ >> + (with-directory-excursion "testsuite" >> + (invoke "make" "all"))))))))) >> + >> (define-public ocaml ocaml-4.07) >> >> (define-public ocamlbuild > >Hello all who are interested. I'd really like to get OCaml up to 4.09 >(and all of the OCaml-dependent packages in better shape). I am unsure >of the approach to take. Should I offer two versions of OCaml? If so, >should I subsequently offer two versions of each ocaml-* package built >against each respective toolchain or what is our protocol here? I tried to do that not so long ago, but failed because of two packages: bap and another one I can't remember. The whole janestreet stuff (core and ppx-*) needs to be re-imported: many dependencies changed. I think we can have two versions of ocaml if some packages don't support the latest. In that case, I would only duplicate packages that are dependencies of these packages. In general, you can use a procedure to recursively modify ocaml packages so they use the older version. See package-with-ocaml4.02 that existed at some point.
Julien Lepiller <julien@lepiller.eu> writes: > > I tried to do that not so long ago, but failed because of two > packages: bap and another one I can't remember. The whole janestreet > stuff (core and ppx-*) needs to be re-imported: many dependencies > changed. > > I think we can have two versions of ocaml if some packages don't > support the latest. In that case, I would only duplicate packages that > are dependencies of these packages. In general, you can use a > procedure to recursively modify ocaml packages so they use the older > version. See package-with-ocaml4.02 that existed at some point. > Thanks for your help Julien. I am trying some things on my channel. Will report back here in a few days.
Brett Gilio <brettg@gnu.org> writes: > Julien Lepiller <julien@lepiller.eu> writes: > >> >> I tried to do that not so long ago, but failed because of two >> packages: bap and another one I can't remember. The whole janestreet >> stuff (core and ppx-*) needs to be re-imported: many dependencies >> changed. >> >> I think we can have two versions of ocaml if some packages don't >> support the latest. In that case, I would only duplicate packages that >> are dependencies of these packages. In general, you can use a >> procedure to recursively modify ocaml packages so they use the older >> version. See package-with-ocaml4.02 that existed at some point. >> > > Thanks for your help Julien. I am trying some things on my channel. Will > report back here in a few days. Development is occuring now on branch 'wip-ocaml4.09'. Closing.
From 1f3f55c2482fb33912a38829f0c2b981d835d80f Mon Sep 17 00:00:00 2001 From: Brett Gilio <brettg@gnu.org> Date: Wed, 1 Jan 2020 19:06:13 -0600 Subject: [WIP 1/1] gnu: Add ocaml-4.09. To: guix-patches@gnu.org * gnu/packages/ocaml.scm (ocaml-4.09): New variable inherits from ocaml-4.07 with changes to configuration and checks. --- gnu/packages/ocaml.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 2988810fc7..0ee8fdd508 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com> ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -212,6 +213,42 @@ functional, imperative and object-oriented styles of programming.") ;; distributed under lgpl2.0. (license (list license:qpl license:lgpl2.0)))) +(define-public ocaml-4.09 + (package (inherit ocaml-4.07) + (name "ocaml") + (version "4.09.0") + (source (origin + (method url-fetch) + (uri (string-append + "http://caml.inria.fr/pub/distrib/ocaml-" + (version-major+minor version) + "/ocaml-" version ".tar.xz")) + (sha256 + (base32 + "1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj")))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-failing-tests + (lambda _ + (with-directory-excursion "testsuite" + (for-each delete-file-recursively + '(;; This test group does not terminate. + "tests/tool-debugger" + ;; These test groups fail. + "tests/lib-unix/common" + "tests/lib-scanf-2" + "tests/lib-threads"))) + #t)) + (replace 'build + (lambda _ + (invoke "make" "-j" (number->string (parallel-job-count)) + "world.opt"))) + (replace 'check + (lambda _ + (with-directory-excursion "testsuite" + (invoke "make" "all"))))))))) + (define-public ocaml ocaml-4.07) (define-public ocamlbuild -- 2.24.1