[Bug 282868] [NEW PORT] textproc/sexp: S-expressions processing tool

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 19 Nov 2024 23:39:31 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282868

            Bug ID: 282868
           Summary: [NEW PORT] textproc/sexp: S-expressions processing
                    tool
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: freebsd@dev.thsi.be

Created attachment 255306
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=255306&action=edit
0001-textproc-sexp-New-port-S-expressions-processing-tool.patch

Sexp is a "Swiss Army knife" command-line tool for processing S-expressions.

Most of the patching in this port is to allow building with our ocaml-dune
version. The remaining patches are trivial build fixes (either caused by the
unorthodox mix of versions, a linux miss-compatibility issue of async, and what
looks like to be a bug in the upstream ld.script of the re2 library exposed by
a stricter llvm-ld).

All the build dependencies are vendored, except for devel/ocaml-compiler-libs.
The primary reason for vendoring the build dependencies is that this tool might
turn out to be useful as a PATCH_DEPENDS (e.g. for patching ocaml-dune build
files), and therefore we cannot tolerate the risk of introducing a
cyclic-dependency.

The secondary reason for vendoring is to avoid doing too much packaging work, a
work which might also end up causing more friction when wanting to update other
parts of the ocaml stack (see the last note). The version-set of the vendored
libraries has been verified to allow this package to compile with both OCaml
version 4.14 and 5.2 (for the later, with an updated ocaml-compiler-libs
package).

As a matter of a fact, this port only provides a single executable having no
runtime-lib depedencies from the port tree.

For all those reasons, it is my opinion that the advantage of vendoring the
build dependencies outmatches any down-side.

This port has been tested on current amd64 150027, on a recent-ish main ports
tree.

Note: in their latest incantations (v0.17+), many of the janestreet libraries
do not work on ocaml 4.14 anymore. Upstream has clearly announced that, going
forward, new releases are targetting OCaml 5+ only, and their assumption is
that OCaml 5.3 will be deemed production-grade.

-- 
You are receiving this mail because:
You are the assignee for the bug.