Message ID | a06ca6a604f420b4c6a994e4475ab078d1c9c386.1687527699.git.pukkamustard@posteo.net |
---|---|
State | New |
Headers | show |
Series | [bug#64249,ocaml-team,1/2] gnu: ocaml: Update to 4.14.1. | expand |
Hello!
pukkamustard <pukkamustard@posteo.net> skribis:
> This is a WIP v2 for some updates to the OCaml packages.
There’s a cyclic dependency in here:
--8<---------------cut here---------------start------------->8---
(exception %exception (non-self-quoting 140736850154944 "#<&package-cyclic-dependency-error package: #<package ocaml4.07-alcotest@1.0.1 gnu/packages/ocaml.scm:2838 7fffde9308f0> cycle: (#<package ocaml4.07-base64@3.2.0 gnu/packages/ocaml.scm:4565 7fffde93f2c0> #<package ocaml4.07-dose3@7.0.0 gnu/packages/ocaml.scm:714 7fffde2bb6e0> #<package ocaml4.07-opam-solver@2.1.5 gnu/packages/ocaml.scm:897 7fffde2aff20> #<package ocaml4.07-opam-client@2.1.5 gnu/packages/ocaml.scm:909 7fffde2a7210> #<package ocaml4.07-opam@2.1.5 gnu/packages/ocaml.scm:925 7fffde2a74d0> #<package ocaml4.07-astring@0.8.5 gnu/packages/ocaml.scm:2759 7fffde2a7b00> #<package ocaml4.07-alcotest@1.0.1 gnu/packages/ocaml.scm:2838 7fffde9308f0>)>"))
builder for `/gnu/store/qpfyz17ihan78a9cb6ln3c57zs8bwqw9-guix-package-cache.drv' failed to produce output path `/gnu/store/gl6n9k7i6xnvkrnyk799y2bxxw51by75-guix-package-cache'
@ build-failed /gnu/store/qpfyz17ihan78a9cb6ln3c57zs8bwqw9-guix-package-cache.drv - 1 builder for `/gnu/store/qpfyz17ihan78a9cb6ln3c57zs8bwqw9-guix-package-cache.drv' failed to produce output path `/gnu/store/gl6n9k7i6xnvkrnyk799y2bxxw51by75-guix-package-cache'
--8<---------------cut here---------------end--------------->8---
Via <https://qa.guix.gnu.org/issue/64249>.
Could you take a look and submit an updated version?
Ludo’.
Hm, weird. I'm pretty sure this was not the case in my local checkout. In any case, I have a v3 ready that solves some issues - and should be cyclic dependency free. Will send it in asap. Thanks for having a look! -pukkamustard Ludovic Courtès <ludo@gnu.org> writes: > Hello! > > pukkamustard <pukkamustard@posteo.net> skribis: > >> This is a WIP v2 for some updates to the OCaml packages. > > There’s a cyclic dependency in here: > > (exception %exception (non-self-quoting 140736850154944 "#<&package-cyclic-dependency-error package: #<package ocaml4.07-alcotest@1.0.1 gnu/packages/ocaml.scm:2838 7fffde9308f0> cycle: (#<package ocaml4.07-base64@3.2.0 gnu/packages/ocaml.scm:4565 7fffde93f2c0> #<package ocaml4.07-dose3@7.0.0 gnu/packages/ocaml.scm:714 7fffde2bb6e0> #<package ocaml4.07-opam-solver@2.1.5 gnu/packages/ocaml.scm:897 7fffde2aff20> #<package ocaml4.07-opam-client@2.1.5 gnu/packages/ocaml.scm:909 7fffde2a7210> #<package ocaml4.07-opam@2.1.5 gnu/packages/ocaml.scm:925 7fffde2a74d0> #<package ocaml4.07-astring@0.8.5 gnu/packages/ocaml.scm:2759 7fffde2a7b00> #<package ocaml4.07-alcotest@1.0.1 gnu/packages/ocaml.scm:2838 7fffde9308f0>)>")) > builder for `/gnu/store/qpfyz17ihan78a9cb6ln3c57zs8bwqw9-guix-package-cache.drv' failed to produce output path `/gnu/store/gl6n9k7i6xnvkrnyk799y2bxxw51by75-guix-package-cache' > @ build-failed /gnu/store/qpfyz17ihan78a9cb6ln3c57zs8bwqw9-guix-package-cache.drv - 1 builder for `/gnu/store/qpfyz17ihan78a9cb6ln3c57zs8bwqw9-guix-package-cache.drv' failed to produce output path `/gnu/store/gl6n9k7i6xnvkrnyk799y2bxxw51by75-guix-package-cache' > > Via <https://qa.guix.gnu.org/issue/64249>. > > Could you take a look and submit an updated version? > > Ludo’.
Le Fri, 28 Jul 2023 11:08:22 +0000, pukkamustard <pukkamustard@posteo.net> a écrit : > Hello, > > This v4 fixes the previously broken Coq packages. > > As mentioned (https://issues.guix.gnu.org/64249#20) this merges > coq-core and coq-stdlib into coq. > > It turns out that dune allows multiple package to be built at the > same time by providing a comma-seperated list. Our #:package field > can be fed such a comma-seperated list. With this trick only the > 'install phase needs some tweaking. Eventually it would be nice to > allow our #:package field to be a proper Scheme list. > > Some Coq packages need to be updated for 8.17.1 compatibility. I have > not systematically checked all Coq packages. Let's see what CI says. > > opam is still broken. Very gracious if another pair of eyes could > have a look. > > Thanks, > pukkamustard > > pukkamustard (9): > gnu: ocaml: Update to 4.14.1. > gnu: Update coq-flocq to 4.1.1. > gnu: Update coq-gappa to 1.5.3. > gnu: Update coq-mathcomp to 1.17.0. This patch breaks coq-coquelicot, but it can be updated to 1.4.0, and that fixes the issue. > gnu: coq: Update to 8.17.1. You've missed a coq-stdlib reference in coq-mathcomp-finmap, but simply removing it fixes the issue. coq-autosubst-1, coq-equations, coqstdpp, coq-interval and coq-mathcomp-bigenough fail to build with the newer coq. coq-ide also fails, but it used to fail already. > gnu: dune-bootstrap: Update to 3.9.1. > gnu: opam: Split build into smaller sub-packages. there are quite a few more failures with this patch. For instance, ocaml-topkg fails because it can't find the opam-installer binary. > gnu: Add opam-installer. And of course this patch fixes the issue. I haven't followed closely recent changes to policy, but it used to be that, if there were no other solutions we would prefer to have multiple changes in a single patch if separating them would break something, even in an intermediate commit. ocaml-ocb-stubblr still fails because it has opam instead of opam-installer. It can be switche to new style inputs too :) > FIXME: gnu: opam: Update to 2.1.5. You replaced the home-page of dose3 with the http version, but the https version still works. I looked into the build issue, but I can only see deprecation warnings. Did I miss something? > > gnu/local.mk | 4 - > gnu/packages/coq.scm | 77 ++-- > gnu/packages/ocaml.scm | 365 > ++++++++++++------ .../ocaml-dose3-Fix-for-ocaml-4.06.patch | > 52 --- .../ocaml-dose3-Install-mli-cmx-etc.patch | 133 ------- > .../ocaml-dose3-add-unix-dependency.patch | 25 -- > .../ocaml-dose3-dont-make-printconf.patch | 9 - > 7 files changed, 267 insertions(+), 398 deletions(-) > delete mode 100644 > gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch delete mode > 100644 gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch > delete mode 100644 > gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch delete > mode 100644 gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch > > > base-commit: 01412c6c6a98e4da10676560638640d0f33e1a02
Hi Julien, Thanks for your comments! Will send in updated patches as a v5. Julien Lepiller <julien@lepiller.eu> writes: >> pukkamustard (9): >> gnu: ocaml: Update to 4.14.1. >> gnu: Update coq-flocq to 4.1.1. >> gnu: Update coq-gappa to 1.5.3. >> gnu: Update coq-mathcomp to 1.17.0. > > This patch breaks coq-coquelicot, but it can be updated to 1.4.0, and > that fixes the issue. Updated coq-coquelicot to 3.4.0. >> gnu: coq: Update to 8.17.1. > > You've missed a coq-stdlib reference in coq-mathcomp-finmap, but simply > removing it fixes the issue. Done. > coq-autosubst-1, coq-equations, coqstdpp, coq-interval and > coq-mathcomp-bigenough fail to build with the newer coq. coq-ide also > fails, but it used to fail already. - Fixed coq-ide by adding zlib to propagated-inputs. - Fixed coq-autosubst by updating to 1.8 - Fixed coq-equations by updating to 1.3-8.17 (I chose to add the release variant in the version string) - Fixed coq-stdpp by updating to 1.8.0. - Fixed coq-interval by updating to 4.8.0. coq-mathcomp-bigenough is still broken. There is a (to me) cryptic but seemingly related message on the issue tracker: https://github.com/math-comp/bigenough/issues/9. Maybe somebody with more insight/interest in Coq could look into this? >> gnu: dune-bootstrap: Update to 3.9.1. >> gnu: opam: Split build into smaller sub-packages. > > there are quite a few more failures with this patch. For instance, > ocaml-topkg fails because it can't find the opam-installer binary. > >> gnu: Add opam-installer. > > And of course this patch fixes the issue. I haven't followed closely > recent changes to policy, but it used to be that, if there were no > other solutions we would prefer to have multiple changes in a single > patch if separating them would break something, even in an intermediate > commit. > > ocaml-ocb-stubblr still fails because it has opam instead of > opam-installer. It can be switche to new style inputs too :) Merged the commit to add opam-installer to the previous commit and fixed ocaml-ocb-stubblr. >> FIXME: gnu: opam: Update to 2.1.5. > > You replaced the home-page of dose3 with the http version, but the > https version still works. I re-imported dose3 with `guix import opam` and it seems like http is used in the opam metadata. Fixed to use https. > I looked into the build issue, but I can only see deprecation warnings. > Did I miss something? Yes, the error is quite hidden: --8<---------------cut here---------------start------------->8--- (cd _build/default && /gnu/store/qpbrmd6qaakv0zw3f2w2x2cw4nwy5lsg-ocaml-4.14.1/bin/ocamlc.opt -w -40 -w +a-4-40-42-44-48 -safe-string -g -bin-annot -I src/client/.opam_client.objs/byte -I /gnu/store/1zzqn0z6rkgb1bwh2hn5in1wfjjcr7ik-ocaml-opam-format-2.1.5/lib/ocaml/site-lib/opam-format -I /gnu/store/46q0hi0bzinsp4jl4921rfw2yd2hxyhd-ocaml-opam-repository-2.1.5/lib/ocaml/site-lib/opam-repository -I /gnu/store/4ldlmhrq0nrbh9sf29r17d9y3qndwch4-ocaml-mccs-1.1+14/lib/ocaml/site-lib/mccs -I /gnu/store/4ldlmhrq0nrbh9sf29r17d9y3qndwch4-ocaml-mccs-1.1+14/lib/ocaml/site-lib/mccs/glpk/internal -I /gnu/store/5pj64sfvin4apb2364gnza0srm7jwibd-ocaml-re-1.10.4/lib/ocaml/site-lib/re -I /gnu/store/5pj64sfvin4apb2364gnza0srm7jwibd-ocaml-re-1.10.4/lib/ocaml/site-lib/re/pcre -I /gnu/store/7h1nbgpy8c2vyisq6dyvwww2di2xnx9n-ocaml-graph-2.0.0/lib/ocaml/site-lib/ocamlgraph -I /gnu/store/87njknpz4803bcfvx9flwchqf4l8prcj-ocaml-cudf-0.10/lib/ocaml/site-lib/cudf -I /gnu/store/ai8z8r9ykib00039gq0gylyps6xzs55w-ocaml-opam-file-format-2.1.4/lib/ocaml/site-lib/opam-file-format -I /gnu/store/fz8a8plnh2j7z020jljy66fg4mmbp3hv-ocaml-extlib-1.7.9/lib/ocaml/site-lib/extlib -I /gnu/store/hmsqsalxyda0c0g41rl3znj8lqnbc1cy-ocaml-opam-solver-2.1.5/lib/ocaml/site-lib/opam-solver -I /gnu/store/k51jkvxz1smwl3bvi13yh3myg4av3fva-ocaml-dose3-7.0.0/lib/ocaml/site-lib/dose3/algo -I /gnu/store/k51jkvxz1smwl3bvi13yh3myg4av3fva-ocaml-dose3-7.0.0/lib/ocaml/site-lib/dose3/common -I /gnu/store/lvhm3dnkqbacm7gy2r6ppvng9rq8rqzx-ocaml-seq-0.1/lib/ocaml/site-lib/seq -I /gnu/store/qpxf86c2qkyjwidlf5dhj17jwg5pfwz5-ocaml-opam-core-2.1.5/lib/ocaml/site-lib/opam-core -I /gnu/store/rav2kpix7fb1gj9x609qzrd6a3cla9b1-ocaml-base64-3.5.0/lib/ocaml/site-lib/base64 -I /gnu/store/v63rrnbsq9806s8q0qz0fkrw1napqn0f-ocaml-stdlib-shims-0.3.0/lib/ocaml/site-lib/stdlib-shims -I /gnu/store/vw64xzqqkz8gzg6ikrp4ks5bqdbjash3-ocaml-cmdliner-1.1.1/lib/ocaml/site-lib/cmdliner -I /gnu/store/ylwbjd8fmi6mrk2lxsvh7yrjajh7qbi4-ocaml-opam-state-2.1.5/lib/ocaml/site-lib/opam-state -intf-suffix .ml -no-alias-deps -o src/client/.opam_client.objs/byte/opamSwitchCommand.cmo -c -impl src/client/opamSwitchCommand.ml) File "src/client/opamSwitchCommand.ml", line 405, characters 18-35: 405 | let value = Base64.decode_exn content in ^^^^^^^^^^^^^^^^^ Error: Unbound value Base64.decode_exn --8<---------------cut here---------------end--------------->8--- In the meantime dune 3.10.0 was released and the v5 updates to it. So, happy recompiling! :) Thanks, pukkamustard
Hi, I am (very) late to the party, but finally take the time to look at OCaml-related upgrades in Guix. Thank you all for your work (especially with difficulties associated with Coq)! It seems that in the recent patch series (number 19770), the package ocaml-opam-file-format was not upgraded from version 2.1.4 to 2.1.5. Is there a reason for this choice? After applying all patches of the series and with this modification, opam seems to work properly on my machine, but it does not build without the upgrade of ocaml-opam-file-format. Best,
Hi, Thanks for the report! DABY-SEESARAM Arnaud <ds-ac@nanein.fr> writes: > It seems that in the recent patch series (number 19770), the package > ocaml-opam-file-format was not upgraded from version 2.1.4 to 2.1.5. > Is there a reason for this choice? No particular reason. I was unaware that opam 2.1.5 requires an updated ocaml-opam-file-format. I think the v6 of the series built with ocaml-opam-file-format at 2.1.4? Did updating dune mess up something? In any case, I can confirm your findings that opam was not building in the v7 (patchwork series 19770) and updating ocaml-opam-file-format to 2.1.6 fixes it. Hold on for v8! Cheers, pukka
Hi, Just a gentle ping to get your opinions on ocaml4.07. Should Guix keep support for it? (With current Guix, (at least some) ocaml4.07 packages are already broken.) If not, is it possible to move forward with pukkamustard's patch series (optionally after updating why3 and frama-c to limit broken packages)? This would also enable other ocaml-related contributions, such as 67495, 66119, 64209, ... which might need adjustments after the update of dune. Best regards,
Le Sat, 23 Dec 2023 18:53:03 +0100, Arnaud Daby-Seesaram <ds-ac@nanein.fr> a écrit : > Hi, > > Just a gentle ping to get your opinions on ocaml4.07. Should Guix > keep support for it? (With current Guix, (at least some) ocaml4.07 > packages are already broken.) We plan to remove ocaml4.07* packages (except ocaml itself since it represents the first step for a future bootstrap). Since most of them are already failing, we shouldn't care too much about that. At laest, we're not breaking them *more* ;) > > If not, is it possible to move forward with pukkamustard's patch > series (optionally after updating why3 and frama-c to limit broken > packages)? This would also enable other ocaml-related contributions, > such as 67495, 66119, 64209, ... which might need adjustments after > the update of dune. Please send your patches to prevent frama-c breakage. I have already done some work to fix other packages, but it' on another computer. I'll be able to send a (final?) version early January. In the meantime, I will send a series to remove ocaml4.07 packages, since they're no longer of any use, obsolete and mostly broken anyway. It should be independent of this series. Note that the right way to discover impacted packages is with `guix refresh -l ocaml@4`. > > > Best regards, >
Le Sun, 24 Dec 2023 17:43:35 +0100, ds-ac@nanein.fr a écrit : > From: Arnaud Daby-Seesaram <ds-ac@nanein.fr> > > > This patch series is built on top of > 8b5b9fc21ea504eb5d226546884db2ebc6287b7d from > https://git.guix-patches.cbaines.net/guix-patches/. > > It: > - updates Why3 (the non-trivial diff comes from `guix style` changes). > > - adds new dependencies of frama-c. > These definitions come from the Guix importer for opam, with small > edits. I had to disable checks for two of them. > Note: tests are disabled for similar Guix packages and are not run > by opam. > > - updates frama-c to its latest stable version. > I switched the package to dune-build-system. > > Arnaud DABY-SEESARAM (9): > gnu: why3: Update to 1.6.0. > gnu: Add ocaml-ppx-deriving-yojson. > gnu: Add ocaml-junit > gnu: Add ocaml-junit-alcotest > gnu: Add ocaml-yaml > gnu: Add ocaml-ppx-deriving-yaml. > gnu: Add ocaml-ppx-import. > gnu: Add ocaml-dune-site. > gnu: update frama-c to 27.1-Cobalt. > > gnu/packages/maths.scm | 145 +++++++++++++++++++------------------- > gnu/packages/ocaml.scm | 154 > +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 229 > insertions(+), 70 deletions(-) > > > base-commit: 8b5b9fc21ea504eb5d226546884db2ebc6287b7d I managed to perform the complete update without breaking a single dependent of ocaml@4! I used the first 12 patches from pukkamustard, added a few updates of my own (including a more recent ocaml-ppxlib, but not the latest, to ensure compatibility with both janestreet 0.15 and 0.16), added your patches (I reworked the order a bit and merged the first and last one), fixing descriptions, license, source and adding a copyright header for you. I also extended the dune-site definition to run the tests by adding a few more packages. Lastly, I included pukkamustard's last patch, and everything seems to be working now. In total, we get 34 patches, and I checked that each intermediate commit still builds and doesn't break any package. I'm sending them momentarily, so QA can have a chance to build them.
Hi, As, ocaml4.07* packages have been removed, do you think that it is time to apply this patch series on master, or are there checks to perform first? Have a nice day,
Hi, Here is a new remainder to ask you to push the patch series associated with bug 64249 upstream. (I realised that I forgot to CC you on my last email). I do hope that I do not bother you with these mails. Please do tell me if it is the case, in which case I will non longer send remainders :). Best,
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index ab0aa0574a..6ffde41cc0 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -253,7 +253,7 @@ (define-public ocaml-5.0 (define-public ocaml-4.14 (package (name "ocaml") - (version "4.14.0") + (version "4.14.1") (source (origin (method url-fetch) (uri (string-append @@ -262,7 +262,7 @@ (define-public ocaml-4.14 "/ocaml-" version ".tar.xz")) (sha256 (base32 - "0axcc7c23pf4qinz4vxgkba6pwziwbp9i2ydwzar7x9zlp6diarn")))) + "0vxvwxxycpc3r5p7ys59d86vw5vdr2lhmck1f3s6qms2096rf9y1")))) (build-system gnu-build-system) (native-search-paths (list (search-path-specification