git: 9632515f6a64 - main - devel/ocaml-mew_vi: New port

From: Muhammad Moinur Rahman <bofh_at_FreeBSD.org>
Date: Sun, 28 Jun 2026 22:09:39 UTC
The branch main has been updated by bofh:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9632515f6a6458d4a4844cee29a451099032f2f8

commit 9632515f6a6458d4a4844cee29a451099032f2f8
Author:     Benjamin Jacobs <freebsd@dev.thsi.be>
AuthorDate: 2026-06-28 21:21:17 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2026-06-28 22:08:55 +0000

    devel/ocaml-mew_vi: New port
    
    Mew_vi - Modal Editing Witch, VI interpreter - is an VI-like modal
    editing engine generator. Users must provide an implementation for
    Key, Mode, Concurrent modules to the functor.
    
    WWW: https://github.com/kandu/mew_vi
---
 devel/Makefile                              |  1 +
 devel/ocaml-mew_vi/Makefile                 | 33 ++++++++++++++++++++++
 devel/ocaml-mew_vi/distinfo                 |  3 ++
 devel/ocaml-mew_vi/files/patch-dune-project |  7 +++++
 devel/ocaml-mew_vi/pkg-descr                |  3 ++
 devel/ocaml-mew_vi/pkg-plist                | 43 +++++++++++++++++++++++++++++
 6 files changed, 90 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index b4287ac7e18f..6a129263dd6a 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -1813,6 +1813,7 @@
     SUBDIR += ocaml-magic-mime
     SUBDIR += ocaml-merlin
     SUBDIR += ocaml-mew
+    SUBDIR += ocaml-mew_vi
     SUBDIR += ocaml-mtime
     SUBDIR += ocaml-ocamlbuild
     SUBDIR += ocaml-ocplib-endian
diff --git a/devel/ocaml-mew_vi/Makefile b/devel/ocaml-mew_vi/Makefile
new file mode 100644
index 000000000000..7fe397e490bd
--- /dev/null
+++ b/devel/ocaml-mew_vi/Makefile
@@ -0,0 +1,33 @@
+PORTNAME=	mew_vi
+PORTVERSION=	0.5.0
+CATEGORIES=	devel
+PKGNAMEPREFIX=	ocaml-
+
+MAINTAINER=	freebsd@dev.thsi.be
+COMMENT=	VI-like modal editing engine for OCaml
+WWW=		https://github.com/kandu/mew_vi
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${SA_DIR}/mew/META:devel/ocaml-mew \
+		${SA_DIR}/react/META:devel/ocaml-react
+RUN_DEPENDS=	${SA_DIR}/mew/META:devel/ocaml-mew \
+		${SA_DIR}/react/META:devel/ocaml-react
+
+USES=		ocaml:dune
+USE_GITHUB=	yes
+GH_ACCOUNT=	kandu
+
+DOCSDIR=	${OCAML_DOCSDIR}/${PORTNAME}
+PORTDOCS=	CHANGES.md LICENSE README.md
+
+OPTIONS_DEFINE=	DOCS
+
+SA_DIR=		${LOCALBASE}/${OCAML_SITELIBDIR}
+
+post-install:
+	@${STRIP_CMD} \
+		${STAGEDIR}${PREFIX}/${OCAML_SITELIBDIR}/mew_vi/mew_vi.cmxs
+
+.include <bsd.port.mk>
diff --git a/devel/ocaml-mew_vi/distinfo b/devel/ocaml-mew_vi/distinfo
new file mode 100644
index 000000000000..ce974261727d
--- /dev/null
+++ b/devel/ocaml-mew_vi/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1711116928
+SHA256 (kandu-mew_vi-0.5.0_GH0.tar.gz) = a692fa7cdcc9e80fd9387c4f61677776b9fc15f9f7175b4220fcd1a73d1bafda
+SIZE (kandu-mew_vi-0.5.0_GH0.tar.gz) = 8605
diff --git a/devel/ocaml-mew_vi/files/patch-dune-project b/devel/ocaml-mew_vi/files/patch-dune-project
new file mode 100644
index 000000000000..d540f0d5c080
--- /dev/null
+++ b/devel/ocaml-mew_vi/files/patch-dune-project
@@ -0,0 +1,7 @@
+--- dune-project.orig	2024-03-22 15:15:33 UTC
++++ dune-project
+@@ -1 +1,3 @@
+-(lang dune 1.1)
++(lang dune 2.5)
++(name mew_vi)
++(version 0.5.0)
diff --git a/devel/ocaml-mew_vi/pkg-descr b/devel/ocaml-mew_vi/pkg-descr
new file mode 100644
index 000000000000..a1e2495e4892
--- /dev/null
+++ b/devel/ocaml-mew_vi/pkg-descr
@@ -0,0 +1,3 @@
+Mew_vi - Modal Editing Witch, VI interpreter - is an VI-like modal
+editing engine generator. Users must provide an implementation for
+Key, Mode, Concurrent modules to the functor.
diff --git a/devel/ocaml-mew_vi/pkg-plist b/devel/ocaml-mew_vi/pkg-plist
new file mode 100644
index 000000000000..38120929b997
--- /dev/null
+++ b/devel/ocaml-mew_vi/pkg-plist
@@ -0,0 +1,43 @@
+%%OCAML_SITELIBDIR%%/mew_vi/META
+%%OCAML_SITELIBDIR%%/mew_vi/core.ml
+%%OCAML_SITELIBDIR%%/mew_vi/dune-package
+%%OCAML_SITELIBDIR%%/mew_vi/edit_action.ml
+%%OCAML_SITELIBDIR%%/mew_vi/interpret.ml
+%%OCAML_SITELIBDIR%%/mew_vi/key.ml
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi.a
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi.cma
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi.cmi
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi.cmt
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi.cmx
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi.cmxa
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi.cmxs
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi.ml
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__.cmi
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__.cmt
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__.cmx
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__.ml
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Core.cmi
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Core.cmt
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Core.cmx
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Edit_action.cmi
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Edit_action.cmt
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Edit_action.cmx
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Interpret.cmi
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Interpret.cmt
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Interpret.cmx
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Key.cmi
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Key.cmt
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Key.cmx
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Modal.cmi
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Modal.cmt
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Modal.cmx
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Mode.cmi
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Mode.cmt
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Mode.cmx
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Vi_action.cmi
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Vi_action.cmt
+%%OCAML_SITELIBDIR%%/mew_vi/mew_vi__Vi_action.cmx
+%%OCAML_SITELIBDIR%%/mew_vi/modal.ml
+%%OCAML_SITELIBDIR%%/mew_vi/mode.ml
+%%OCAML_SITELIBDIR%%/mew_vi/opam
+%%OCAML_SITELIBDIR%%/mew_vi/vi_action.ml