Created attachment 218814 [details] patch1/2 for asm Updating to the latest ocaml release seems to be fairly straightforward. Hacked at the Makefile a bit to remove stuff that isn't needed for compiling at least on my system, as well as references to postscript documentation that does not exist. Also modified the asm patch for clang11 and made it reflect the new file locations.
Created attachment 218815 [details] patch 2/2 for asm
Created attachment 218816 [details] Makefile patch This is simply a diff for the port Makefile, showing what was changed there to allow it to compile and install on my amd64, 13-CURRENT
It appears I made an error when creating the patches, one of the .rodata should be 16, not 8. However, it appears that ocaml has adding this on their end in trunk and will be in the next release. See this now-merged Pull Request: https://github.com/ocaml/ocaml/pull/9981
^Triage: If there is a changelog or release notes URL available for this version, please add it to the URL field. Thanks!
Do we even need to pass the AS=.. stuff anymore since https://github.com/ocaml/ocaml/pull/9437 landed?
Created attachment 220083 [details] ocaml411.patch - full patch (w/o powerpc) > Do we even need to pass the AS=.. stuff anymore So we don't, at least on amd64 and aarch64. --- Here's a more complete version of the patch (not just makefile) with extra fixes. - remove all BROKEN, aarch64 works with native codegen now, the others should be fine with just the interpreter - remove X11 option, the graphics library is not bundled with OCaml anymore since 4.09! - change '-no-pthread' to '--disable-systhreads', adjust other things for new configure - wait, why do we even support building without threads? - drop spacetime profiler, it will be gone in 4.12 https://github.com/ocaml/ocaml/pull/9948 and we've had some *weird* stuff around it in the port (defined(NO_PROFILE) || ${ARCH:Mpowerpc} || ${ARCH:Mamd64} ---- what? it's actually *only* for amd64 but amd64 is excluded? also the TMPPLIST thing in post-install??) - unfortunately I've had to drop all the powerpc64 patches as they don't apply anymore (mostly because of directory renames, also because lots of non-FreeBSD-specific powerpc64 stuff has landed upstream already) Can the powerpc64 crowd please upstream whatever patches are still necessary?? (Probably mostly just the configure script?)
Created attachment 220275 [details] ocaml411-extras.patch (camlp4/5, labltk, findlib) Corresponding updates for devel/ocaml-camlp4, devel/ocaml-camlp5, devel/ocaml-findlib, x11-toolkits/ocaml-labltk
@danfe: are you still working on it?
(In reply to Mikael Urankar from comment #8) Yes, I am. Regardless of the exact upgrade path (up to the latest version or via 4.07 as I've originally planned), it's not as simple as updating the port on its own, and might also require an exp-run. Current patch also suggests --disable-force-safe-string which I'd like to avoid as well.
Any update on this issue?
(In reply to Mikael Urankar from comment #10) > Any update on this issue? Yes, it's cooking. I might or might need to request an exp-run on this, depending on several more build cycles of my own, stay tuned.
Should this help Mikael Urankar, comment #10, and Alexey Dokuchaev, comment #11, I can confirm Greg'patches from comment #7 and earlier can build successfully (had to patch by hand because the patches are a little misaligned with a recent port tree). The ocaml compiler seems to work (produces depending ports).
(In reply to Alexey Dokuchaev from comment #11) Do you need help on this issue? This is a major blocker on FreeBSD aarch64 for many years now.
Created attachment 227544 [details] update-ocaml-to-4.12-with-dependencies-incomplete.patch Attached is the patch that updates lang/ocaml to 4.12.0 with some dependencies. Some dependencies are still broken, so this patch is incomplete. I will update it when more dependencies are fixed. Yuri
Alexey, Please don't commit changes into lang/ocaml because they cause conflicts. Yuri
Created attachment 227555 [details] update-ocaml-to-4.12-with-dependencies-incomplete.patch More dependencies are fixed for ocaml-4.12. About 18 are remaining.
(In reply to Yuri Victorovich from comment #15) > Please don't commit changes into lang/ocaml because they cause conflicts. I'm in the process of updating the port, so there are no conflicts. And no, we won't be updating to 4.12 directly, changes are too dramatic.
(In reply to Alexey Dokuchaev from comment #17) you've been saying that for almost a year now and no sign of it. ocaml 4.12 was released 6 months ago and you want to use an older version? Are you serious?
Created attachment 227577 [details] update-ocaml-to-4.12-with-dependencies-incomplete.patch More required ocaml-* ports are created, more dependencies now compile for ocaml-4.12,
Now OCaml 4.13 has been released. Is there anything I can help here? One option would be a lang/ocaml405 and lang/ocaml413 port, so some packages can depend on the old version of OCaml while others can depend on the new version. Alternatively, some of the ports using an old version of OCaml could be marked as deprecated and being removed? From browsing the ports, some that use OCaml are still around although they are libraries and the port with an application has been removed -- e.g. audio/liquidsoap has been deleted in 2014, but devel/ocaml-camomile is still around. These could be pruned to simplify the lang/ocaml update. Any pointers (or someone with a hat) how to proceed here?
(In reply to Hannes Mehnert from comment #20) > One option would be a lang/ocaml405 and lang/ocaml413 port, so some packages > can depend on the old version of OCaml while others can depend on the new > version. I really wanted to avoid that and prepared for, and it looks quote doable at this point. I've already converted and committed most of the safe-strings-not-ready ports over past several weeks, now only a few had left, particularly, devel/ocaml-lwt, it's a bit convoluted and volatile beast. The plan is to move to 4.07 first, then, once the dust settles, to 4.13 or any intermediate versions if seamless upgrade would require it. > Is there anything I can help here? Just bear with me, it should not take long at this stage.
Hi, I am unable to have ocaml + dependencies build on aarch64: the proposed patches no longer apply (and the current Makefile marks the base ocaml port as broken on this arch). Is there a more recent patch set I can use? Thank you. BR,
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=317aa0442c9942009c1f9c558f8fb6e49d4568ab commit 317aa0442c9942009c1f9c558f8fb6e49d4568ab Author: Alexey Dokuchaev <danfe@FreeBSD.org> AuthorDate: 2022-04-16 07:19:46 +0000 Commit: Alexey Dokuchaev <danfe@FreeBSD.org> CommitDate: 2022-04-16 07:19:46 +0000 OCaml: transient update of the stack to version 4.07.1 This is the first step in modernizing our OCaml ports infrastructure, as we had accumulated substantial technical debt over the years when many of its consumer ports had not received proper care and updates. It is currently considered as the lowest supported version (baseline) in majority of open-source OCaml projects, which would help to pull up other ports, e.g. `devel/ocaml-dune' in smaller, manageable pieces. For conservative hackers among us and for compatibility with RHEL 8 which is also on it, having 4.07 in the tree would allow users stick to that package (pkg lock it) if needed. PR: 250408, 262781 Exp-run by: antoine devel/cil/Makefile | 3 +- devel/ocaml-camlp4/Makefile | 2 +- devel/ocaml-camlp4/distinfo | 6 +- devel/ocaml-ppx-tools/Makefile | 5 +- devel/ocaml-ppx-tools/distinfo | 6 +- devel/ocaml-sexplib/Makefile | 1 + lang/ocaml/Makefile | 19 +- lang/ocaml/distinfo | 18 +- lang/ocaml/files/patch-675e98a2.c | 42 +- lang/ocaml/files/patch-configure | 43 +- .../files/patch-testsuite_tests_asmcomp_power.S | 4 +- lang/ocaml/pkg-plist | 761 ++++++++++++--------- math/Makefile | 1 + math/alt-ergo/Makefile | 1 + math/coq/Makefile | 3 +- math/ocaml-num/Makefile (new) | 24 + math/ocaml-num/distinfo (new) | 3 + math/ocaml-num/files/patch-src_Makefile (new) | 12 + math/ocaml-num/files/patch-toplevel_Makefile (new) | 21 + math/ocaml-num/pkg-descr (new) | 10 + math/ocaml-num/pkg-plist (new) | 33 + math/orpie/Makefile | 1 + math/scilab/Makefile | 3 +- net-p2p/mldonkey/Makefile | 2 + security/sks/Makefile | 2 + x11-toolkits/ocaml-labltk/Makefile | 4 +- x11-toolkits/ocaml-labltk/distinfo | 6 +- 27 files changed, 618 insertions(+), 418 deletions(-)
Sorry if this is the wrong place to ask, but is there any plan to update the compiler past 4.07? I ran into a problem using opam to install herdtools7, which depends on ocaml-secondary-compiler. See the last few comments here: https://github.com/ocaml/opam-repository/issues/19763
(In reply to Mark Johnston from comment #24) > is there any plan to update the compiler past 4.07? Of course there is, it's an ongoing effort. I've got stuck several weeks ago with some codependent ports where I could not find the clear upgrade path and decided to take a break; I'll revisit it again with hopefully better (clearer) vision.
Hi, What is blocking progress on an update to ocaml? I know very little about the language, but the port net/unison I maintain requires a minimum of 4.08 and new releases are depending more and more on features not available in previous versions. Is there any way to help with this update?
(In reply to Guido Falsi from comment #26) > What is blocking progress on an update to ocaml? The answer is in comment #25: interdependent ports, most notably, devel/ocaml-dune, and a few others. We basically just need to carefully find matching versions of those several ports to move through 4.9~4.11 without breaking the tree. I've started to tie some low-hanging loose ends last week, but haven't got to the main dish yet.
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=8025aa10ceb960b62c9a826fb56eb1ac68ea1ce3 commit 8025aa10ceb960b62c9a826fb56eb1ac68ea1ce3 Author: Benjamin Jacobs <freebsd@dev.thsi.be> AuthorDate: 2024-03-11 21:43:46 +0000 Commit: Guido Falsi <madpilot@FreeBSD.org> CommitDate: 2024-03-11 21:50:58 +0000 lang/ocaml: Update to 4.14.1 The 'force-safe-string; setting is NOT enabled, as opposed to the new upstream default. OCaml users are encouraged to migrate to safe strings as soon as possible. - The X11 library isn't part of lang/ocaml anymore, users should install x11-toolkits/ocaml-graphics. - Add new 'ocaml' USES - Bump PORTREVISION on dependent ports, due to ABI Change. The update includes the following updates to existing ports (needed to keep them working): - devel/ocaml-camlp4: Updated to 4.14+1 - devel/ocaml-camlp5: Updated to 8.02.01, homepage updated - devel/ocaml-dune: Patch to allow overriding the stublibs directory, strip binary and shared libraries - devel/ocaml-findlib: Improve port - devel/ocaml-lwt: Fix build with OCaml 4.14 - deve/ocaml-re: Update to 1.11.0, use new dune USES - devel/ocaml-sdl: Fix build with new ocaml - games/freetennis: Fix build, tidy Makefile - graphics/ocaml-images: Updated to 5.0.4, new homepage, use new dune USES, undeprecate - graphics/ocaml-lablgl: Moved into site-lib, dynamic objects stripped, add missing GL dependencies - math/coq: Updated to 8.19.0 - math/ocaml-zarith: strip shared libraries, fixed usage of USE_OCAML_LDCONFIG, use new dune USES - math/teyjus: Fix build - net/unison240: Fix build with new compiler - net/unison248: Fix build with new compiler, add MAKE_JOBS_UNSAFE - net-p2p/mldonkey: Fix build with new compiler, fix build on i386 - sysutils/ledit: Updated to 2.06, install native binary, Use github, fix man page installation - www/geneweb: Build fix for OCaml and Camlp5 updates - x11-toolkits/ocaml-lablgtk2: Fix build with new compiler - x11-toolkits/ocaml-lablgtk3: Updated to 3.1.4, added ocaml-camlp-stream dependency, build fix patch - x11-toolkits/ocaml-labltk: Updated to 8.06.12, Improve Makefile Added the following ports: - devel/ocaml-astring - devel/ocaml-base - devel/ocaml-bos - devel/ocaml-camlp-streams - devel/ocaml-csexp - devel/ocaml-fmt - devel/ocaml-fpath - devel/ocaml-logs - devel/ocaml-mtime - devel/ocaml-pcre2 - devel/ocaml-rresult - devel/ocaml-seq - devel/ocaml-stdio - x11-toolkits/ocaml-graphics PR: 250408 [1], 262781 [1], 262788 [3], 262789 [1], 262792 [1], 263006 [1], 263162 [3], 263206 [2], 276893 [1], 276945 [4], 276953 [1], 277026 [5], 277241 [1], 277242 [1], 277243 [1], 277244 [1], 277245 [1], 277246 [1], 277247 [1], 277248 [1], 277249 [1], 277250 [1], 277251 [1], 277252 [1], 277253 [1], 277254 [1], 277255 [1], 277256 [4], 277257 [1], 277258 [1] Approved by: maintainer timeout [1], yuri (maintainer) [2], overcome by events, fixit [3], madpilot (maintainer) [4] Reviewed by: madpilot Exp-run by: antoine [5] Differential Revision: https://reviews.freebsd.org/D43861 Mk/Uses/ocaml.mk (new) | 82 + archivers/ocaml-bz2/Makefile | 2 +- archivers/ocaml-zip/Makefile | 2 +- converters/ocaml-base64/Makefile | 2 +- converters/ocaml-jsonm/Makefile | 2 +- databases/ocaml-dbm/Makefile | 2 +- devel/Makefile | 13 + devel/ocaml-annexlib/Makefile | 2 +- devel/ocaml-astring/Makefile (new) | 54 + devel/ocaml-astring/distinfo (new) | 3 + devel/ocaml-astring/pkg-descr (new) | 3 + devel/ocaml-astring/pkg-plist (new) | 22 + devel/ocaml-base/Makefile (new) | 40 + devel/ocaml-base/distinfo (new) | 3 + devel/ocaml-base/pkg-descr (new) | 3 + devel/ocaml-base/pkg-plist (new) | 766 ++ devel/ocaml-bos/Makefile (new) | 57 + devel/ocaml-bos/distinfo (new) | 3 + devel/ocaml-bos/pkg-descr (new) | 4 + devel/ocaml-bos/pkg-plist (new) | 36 + devel/ocaml-calendar/Makefile | 2 +- devel/ocaml-camljava/Makefile | 2 +- devel/ocaml-camlp-streams/Makefile (new) | 31 + devel/ocaml-camlp-streams/distinfo (new) | 3 + devel/ocaml-camlp-streams/pkg-descr (new) | 10 + devel/ocaml-camlp-streams/pkg-plist (new) | 19 + devel/ocaml-camlp4/Makefile | 2 +- devel/ocaml-camlp4/distinfo | 6 +- devel/ocaml-camlp5/Makefile | 21 +- devel/ocaml-camlp5/distinfo | 6 +- devel/ocaml-camlp5/pkg-plist | 30 + devel/ocaml-camomile/Makefile | 8 +- .../ocaml-camomile/files/patch-Camomile_dune (new) | 11 + .../files/patch-Camomile_tools_dune (new) | 10 + devel/ocaml-cfg/Makefile | 2 +- devel/ocaml-classes/Makefile | 2 +- devel/ocaml-cmdliner/Makefile | 2 +- devel/ocaml-cppo/Makefile | 2 +- devel/ocaml-csexp/Makefile (new) | 32 + devel/ocaml-csexp/distinfo (new) | 3 + devel/ocaml-csexp/pkg-descr (new) | 2 + devel/ocaml-csexp/pkg-plist (new) | 13 + devel/ocaml-dune/Makefile | 37 +- devel/ocaml-dune/pkg-plist | 6 +- devel/ocaml-extlib/Makefile | 2 +- devel/ocaml-findlib/Makefile | 25 +- devel/ocaml-findlib/files/patch-configure (new) | 12 + .../files/patch-src_findlib-toolbox_Makefile (new) | 11 + devel/ocaml-findlib/pkg-plist | 4 - devel/ocaml-fmt/Makefile (new) | 48 + devel/ocaml-fmt/distinfo (new) | 3 + devel/ocaml-fmt/pkg-descr (new) | 2 + devel/ocaml-fmt/pkg-plist (new) | 32 + devel/ocaml-fpath/Makefile (new) | 46 + devel/ocaml-fpath/distinfo (new) | 3 + devel/ocaml-fpath/pkg-descr (new) | 4 + devel/ocaml-fpath/pkg-plist (new) | 16 + devel/ocaml-ipaddr/Makefile | 1 + devel/ocaml-lacaml/Makefile | 2 +- devel/ocaml-logs/Makefile (new) | 55 + devel/ocaml-logs/distinfo (new) | 3 + devel/ocaml-logs/pkg-descr (new) | 2 + devel/ocaml-logs/pkg-plist (new) | 49 + devel/ocaml-lwt/Makefile | 4 +- .../files/patch-src_unix_lwt__unix.ml (new) | 10 + .../files/patch-src_unix_lwt__unix.mli (new) | 10 + devel/ocaml-magic/Makefile | 2 +- devel/ocaml-mtime/Makefile (new) | 59 + devel/ocaml-mtime/distinfo (new) | 3 + devel/ocaml-mtime/pkg-descr (new) | 5 + devel/ocaml-mtime/pkg-plist (new) | 27 + devel/ocaml-ocamlbuild/Makefile | 2 +- devel/ocaml-ounit/Makefile | 2 +- devel/ocaml-parmap/Makefile | 1 + devel/ocaml-pcre/Makefile | 2 +- devel/ocaml-pcre2/Makefile (new) | 46 + devel/ocaml-pcre2/distinfo (new) | 3 + devel/ocaml-pcre2/pkg-descr (new) | 2 + devel/ocaml-pcre2/pkg-plist (new) | 15 + devel/ocaml-pomap/Makefile | 2 +- devel/ocaml-ppx-tools/Makefile | 1 + devel/ocaml-re/Makefile | 38 +- devel/ocaml-re/distinfo | 5 +- devel/ocaml-re/pkg-plist (new) | 145 + devel/ocaml-rresult/Makefile (new) | 44 + devel/ocaml-rresult/distinfo (new) | 3 + devel/ocaml-rresult/pkg-descr (new) | 7 + devel/ocaml-rresult/pkg-plist (new) | 16 + devel/ocaml-sdl/Makefile | 4 +- devel/ocaml-sem/Makefile | 2 +- devel/ocaml-seq/Makefile (new) | 27 + devel/ocaml-seq/distinfo (new) | 3 + devel/ocaml-seq/pkg-descr (new) | 2 + devel/ocaml-seq/pkg-plist (new) | 13 + devel/ocaml-sexplib0/Makefile | 1 + devel/ocaml-stdio/Makefile (new) | 32 + devel/ocaml-stdio/distinfo (new) | 3 + devel/ocaml-stdio/pkg-descr (new) | 2 + devel/ocaml-stdio/pkg-plist (new) | 29 + devel/ocaml-topkg/Makefile | 2 +- devel/ocaml-type_conv/Makefile | 2 +- devel/ocaml-uchar/Makefile | 2 +- devel/ocaml-ulex/Makefile | 2 +- devel/ocaml-uutf/Makefile | 2 +- devel/ocaml-xstr/Makefile | 2 +- devel/ocaml-xstrp4/Makefile | 2 +- ftp/ocaml-ocurl/Makefile | 2 +- games/freetennis/Makefile | 27 +- games/freetennis/files/patch-Makefile | 4 +- games/freetennis/files/patch-freetennis.ml (new) | 63 + graphics/ocaml-cairo/Makefile | 1 + graphics/ocaml-images/Makefile | 91 +- graphics/ocaml-images/distinfo | 5 +- graphics/ocaml-images/files/patch-OMakefile (gone) | 46 - graphics/ocaml-images/files/patch-configure (gone) | 13 - .../ocaml-images/files/patch-src_OMakefile (gone) | 15 - .../ocaml-images/files/patch-src_bitmap.ml (gone) | 11 - .../ocaml-images/files/patch-src_gifread.c (gone) | 34 - .../ocaml-images/files/patch-src_gifwrite.c (gone) | 55 - .../ocaml-images/files/patch-src_jpegread.c (gone) | 11 - .../ocaml-images/files/patch-src_pngread.c (gone) | 38 - .../ocaml-images/files/patch-src_pngwrite.c (gone) | 20 - .../ocaml-images/files/patch-src_tiffread.c (gone) | 36 - .../files/patch-src_tiffwrite.c (gone) | 39 - graphics/ocaml-images/pkg-plist | 471 +- graphics/ocaml-lablgl/Makefile | 24 +- graphics/ocaml-lablgl/pkg-plist | 200 +- lang/ocaml/Makefile | 120 +- lang/ocaml/distinfo | 14 +- lang/ocaml/files/patch-asmcomp_power_arch.ml | 4 +- lang/ocaml/files/patch-configure | 111 +- lang/ocaml/files/patch-runtime_amd64.S (gone) | 11 - lang/ocaml/files/patch-runtime_backtrace.c (gone) | 12 - lang/ocaml/files/patch-runtime_power.S | 62 +- .../files/patch-runtime_startup__nat.c (gone) | 10 - .../files/patch-testsuite_tools_asmgen__power.S | 11 +- lang/ocaml/pkg-plist | 1625 ++-- math/coq/Makefile | 91 +- math/coq/distinfo | 6 +- math/coq/files/patch-Makefile.build (gone) | 29 - math/coq/files/patch-Makefile.install (gone) | 11 - math/coq/pkg-plist | 9825 ++++++++++++++------ math/facile/Makefile | 2 +- math/ocaml-num/Makefile | 2 +- math/ocaml-ocamlgraph/Makefile | 2 +- math/ocaml-zarith/Makefile | 10 +- math/teyjus/Makefile | 13 +- net-p2p/mldonkey/Makefile | 5 + ...patch-src_networks_donkey_donkeyClient.ml (new) | 11 + .../mldonkey/files/patch-src_utils_lib_CryptoPP.h | 12 +- net/unison240/files/patch-Makefile.OCaml | 15 +- net/unison240/files/patch-hash__compat.c (new) | 168 + net/unison240/files/patch-uutil.ml (new) | 11 + net/unison248/Makefile | 1 + net/unison248/files/patch-Makefile.OCaml | 15 +- net/unison248/files/patch-hash__compat.c (new) | 168 + net/unison248/files/patch-uutil.ml (new) | 11 + security/ocaml-ssl/Makefile | 1 + sysutils/ledit/Makefile | 29 +- sysutils/ledit/distinfo | 6 +- sysutils/ledit/files/patch-go.ml (new) | 11 + textproc/ocaml-text/Makefile | 2 +- www/geneweb/Makefile | 4 +- www/geneweb/files/patch-ged2gwb_Makefile (new) | 18 + www/geneweb/files/patch-ged2gwb_ged2gwb.ml (new) | 11 + www/geneweb/files/patch-ged2gwb_ged2gwb2.ml (new) | 11 + www/geneweb/files/patch-setup_Makefile (new) | 11 + www/geneweb/files/patch-src__Makefile | 9 + www/geneweb/files/patch-src_dag.ml (new) | 52 + www/geneweb/files/patch-src_date.ml (new) | 26 + www/geneweb/files/patch-src_db2disk.ml (new) | 20 + www/geneweb/files/patch-src_gwd.ml (new) | 38 + www/geneweb/files/patch-src_mutil.ml (new) | 20 + www/geneweb/files/patch-src_relation.ml (new) | 16 + .../files/patch-tools_camlp5__comm.sh (new) | 11 + www/geneweb/files/patch-wserver_Makefile (new) | 17 + www/geneweb/files/patch-wserver_wserver.ml (new) | 61 + x11-toolkits/Makefile | 1 + x11-toolkits/ocaml-graphics/Makefile (new) | 39 + x11-toolkits/ocaml-graphics/distinfo (new) | 3 + x11-toolkits/ocaml-graphics/pkg-descr (new) | 3 + x11-toolkits/ocaml-graphics/pkg-plist (new) | 21 + x11-toolkits/ocaml-lablgtk2/Makefile | 3 +- x11-toolkits/ocaml-lablgtk3/Makefile | 6 +- x11-toolkits/ocaml-lablgtk3/distinfo | 6 +- .../ocaml-lablgtk3/files/patch-src_ml__gtk.c (new) | 11 + x11-toolkits/ocaml-labltk/Makefile | 38 +- x11-toolkits/ocaml-labltk/distinfo | 6 +- x11-toolkits/ocaml-labltk/pkg-plist | 676 +- 189 files changed, 11825 insertions(+), 5225 deletions(-)