Page MenuHomeFreeBSD

lang/ocaml: Update to 4.08.1
ClosedPublic

Authored by madpilot on Jun 18 2023, 2:38 PM.
Tags
None
Referenced Files
F89289854: D40599.id.diff
Fri, Jul 26, 5:29 AM
Unknown Object (File)
Tue, Jul 16, 7:03 AM
Unknown Object (File)
Mon, Jul 15, 12:45 AM
Unknown Object (File)
Sat, Jun 29, 4:46 PM
Unknown Object (File)
Jun 17 2024, 6:49 AM
Unknown Object (File)
May 17 2024, 3:56 PM
Unknown Object (File)
May 7 2024, 8:28 AM
Unknown Object (File)
May 2 2024, 3:05 PM
Subscribers

Details

Summary

This version of ocaml is now the minimum requirement for most dependent projects. This will also allow to update most ports depending on ocaml to much newer versions, most of the time the latest version.

So I think this small update will make it much easier to step to much more recent versions of ocaml in the near future.

I had to update some dependent ports to keep them working. Sometimes I was able to use the latest version, some other times I had to choose some older versions working with ocaml 4.08-1.

I tried to keep the patch minimal so further updates and incremental improvements will be possible.

I have not bumped PORTVERSION for ports I did not update the version, or did not touch, but I guess I will need to bump PORTVERSION for all ports depending on ocaml. Will do that on final commit, so patches here can be kept reasonable.

Some specific notes:

devel/ocaml-sexplib project was split upstream, and the part we have in the ports now corresponds to what upstream calls "sexplib0" and I decided to rename the port accordingly. Updated to version 0.16.0

BTW, WHen moving the port I kept the PORTEPOCH value, not sure if this is correct.

unison latest versions have a minimum requirement for ocaml 4.08. The author has very kindly provided patches for the latest few updates to keep compatibility, but will not be able to in the future, this was my main motivation to create this patch.

Test Plan

I've tested compiling all ocaml ports multiple times in poudriere and am now running with this patch applied (I use unison daily).

I've also tested running mldonkey which works fine.

No new failure has been observed in my tests, except for unison 2.32.

I plan to ask for an exp-run to confirm my findings.

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 52256
Build 49147: arc lint + arc unit

Event Timeline

This is amazing amount and quality of work, thank you for this effort Guido!

Seeing several of those LIBDIR="${PREFIX}/${OCAML_SITELIBDIR}" now contain ${PREFIX}, do I understand correctly that this is to make LIBDIR coherent with other FOODIR variables which are relative to /? I remember there were some inconsistencies which had to be mapped to our Mk/bsd.ocaml.mk ones, cf. make -V OCAML_SITELIBDIR vs. make -V OCAML_DOCSDIR.

BTW, when moving the port I kept the PORTEPOCH value, not sure if this is correct.

Since the PKGNAME is now different and never existed before, I believe you can safely drop it (in fact, it would be silly not to use this chance to get rid of it).

This revision is now accepted and ready to land.Jun 20 2023, 8:30 AM

This is amazing amount and quality of work, thank you for this effort Guido!

Thank you! I'd really like to kick-start the update of ocaml. Once we get this one in further steps should become easier.

Seeing several of those LIBDIR="${PREFIX}/${OCAML_SITELIBDIR}" now contain ${PREFIX}, do I understand correctly that this is to make LIBDIR coherent with other FOODIR variables which are relative to /? I remember there were some inconsistencies which had to be mapped to our Mk/bsd.ocaml.mk ones, cf. make -V OCAML_SITELIBDIR vs. make -V OCAML_DOCSDIR.

Yes, the new dune version expects an absolute path, so I had to fix that.

I'll take a better look at Mk/bsd.ocaml.mk to see if this can be fixed there.

BTW, when moving the port I kept the PORTEPOCH value, not sure if this is correct.

Since the PKGNAME is now different and never existed before, I believe you can safely drop it (in fact, it would be silly not to use this chance to get rid of it).

Good suggestion, I'll change this too.

The exp-run in bug 272067 uncovered a failure on i386 which I need to fix.

Update patch to fix build on i386 and other arches.

This new version build system was ignoring LDFLAGS.

This is amazing amount and quality of work, thank you for this effort Guido!

Seeing several of those LIBDIR="${PREFIX}/${OCAML_SITELIBDIR}" now contain ${PREFIX}, do I understand correctly that this is to make LIBDIR coherent with other FOODIR variables which are relative to /? I remember there were some inconsistencies which had to be mapped to our Mk/bsd.ocaml.mk ones, cf. make -V OCAML_SITELIBDIR vs. make -V OCAML_DOCSDIR.

I had a look, but OCAML_SITELIBDIR needs to sty relative to ${PREFIX}, because it's used also in PLIST_SUB. I could add an absolute version of the variable, but it looks overkill and unnecessarily complicates the makefile. So I left everything as is.

BTW, when moving the port I kept the PORTEPOCH value, not sure if this is correct.

Since the PKGNAME is now different and never existed before, I believe you can safely drop it (in fact, it would be silly not to use this chance to get rid of it).

The new patch also resets PORTEPOCH.

Exp-run was successfull.

I'll wait for approval or timeout (starting when I first posted this review and exp-run bug) to commit.

BTW the commit will also include a PORTREVISION bump for ports depending on ocaml.

This revision is now accepted and ready to land.Jul 5 2023, 10:24 AM