git: 23f722bfd824 - main - devel/ocaml-eqaf: New port

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

URL: https://cgit.FreeBSD.org/ports/commit/?id=23f722bfd82401ca4e98c3cb1a6d4c58fb8f2428

commit 23f722bfd82401ca4e98c3cb1a6d4c58fb8f2428
Author:     Benjamin Jacobs <freebsd@dev.thsi.be>
AuthorDate: 2026-06-28 19:15:19 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2026-06-28 22:08:52 +0000

    devel/ocaml-eqaf: New port
    
    This OCaml library provides an equal function operating on strings in
    constant-time. It may be used by cryptographic code to mitigate
    timing-attacks.
    
    WWW: https://github.com/mirage/ocaml-eqaf
---
 devel/Makefile             |  1 +
 devel/ocaml-eqaf/Makefile  | 39 +++++++++++++++++++++++++++++++++
 devel/ocaml-eqaf/distinfo  |  3 +++
 devel/ocaml-eqaf/pkg-descr |  3 +++
 devel/ocaml-eqaf/pkg-plist | 54 ++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 100 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 6e2363f9a586..7f28708f38ca 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -1791,6 +1791,7 @@
     SUBDIR += ocaml-dolmen
     SUBDIR += ocaml-domain-name
     SUBDIR += ocaml-dune
+    SUBDIR += ocaml-eqaf
     SUBDIR += ocaml-extlib
     SUBDIR += ocaml-findlib
     SUBDIR += ocaml-fmt
diff --git a/devel/ocaml-eqaf/Makefile b/devel/ocaml-eqaf/Makefile
new file mode 100644
index 000000000000..8acf291466d3
--- /dev/null
+++ b/devel/ocaml-eqaf/Makefile
@@ -0,0 +1,39 @@
+PORTNAME=	eqaf
+DISTVERSION=	0.10
+CATEGORIES=	devel
+MASTER_SITES=	https://github.com/mirage/${PORTNAME}/releases/download/v${DISTVERSION}/
+PKGNAMEPREFIX=	ocaml-
+
+MAINTAINER=	freebsd@dev.thsi.be
+COMMENT=	Constant-time string equality function for OCaml
+WWW=		https://github.com/mirage/ocaml-eqaf
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE.md
+
+BUILD_DEPENDS=	${SA_DIR}/cstruct/META:devel/ocaml-cstruct
+RUN_DEPENDS=	${SA_DIR}/cstruct/META:devel/ocaml-cstruct
+
+USES=		ocaml:dune tar:tbz
+OCAML_PACKAGES=	eqaf eqaf-cstruct
+DUNE_INSTALL_TARGETS=	${OCAML_PACKAGES}
+
+DOCSDIR=	${OCAML_DOCSDIR}
+PORTDOCS=	${OCAML_PACKAGES:@p@$p/CHANGES.md $p/LICENSE.md $p/README.md@}
+
+OPTIONS_DEFINE=	DOCS
+
+SA_DIR=		${LOCALBASE}/${OCAML_SITELIBDIR}
+
+post-patch:
+	@${REINPLACE_CMD} \
+		-e "s/(version v.*)/(version ${DISTVERSION})/" \
+		${WRKSRC}/dune-project
+
+post-install:
+	(cd ${STAGEDIR}${PREFIX}/${OCAML_SITELIBDIR}; \
+	${STRIP_CMD} \
+		eqaf/bigstring/eqaf_bigstring.cmxs eqaf/eqaf.cmxs \
+		eqaf-cstruct/eqaf_cstruct.cmxs)
+
+.include <bsd.port.mk>
diff --git a/devel/ocaml-eqaf/distinfo b/devel/ocaml-eqaf/distinfo
new file mode 100644
index 000000000000..9daa98adc4ed
--- /dev/null
+++ b/devel/ocaml-eqaf/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1752071990
+SHA256 (eqaf-0.10.tbz) = 67d1369c57c4d2d14a10d02632d45e355224abeb98aec08979c0bae5843092ee
+SIZE (eqaf-0.10.tbz) = 30706
diff --git a/devel/ocaml-eqaf/pkg-descr b/devel/ocaml-eqaf/pkg-descr
new file mode 100644
index 000000000000..42634deceabd
--- /dev/null
+++ b/devel/ocaml-eqaf/pkg-descr
@@ -0,0 +1,3 @@
+This OCaml library provides an equal function operating on strings in
+constant-time. It may be used by cryptographic code to mitigate
+timing-attacks.
diff --git a/devel/ocaml-eqaf/pkg-plist b/devel/ocaml-eqaf/pkg-plist
new file mode 100644
index 000000000000..cb02338d7fb5
--- /dev/null
+++ b/devel/ocaml-eqaf/pkg-plist
@@ -0,0 +1,54 @@
+%%OCAML_SITELIBDIR%%/eqaf/META
+%%OCAML_SITELIBDIR%%/eqaf/bigstring/eqaf_bigstring.a
+%%OCAML_SITELIBDIR%%/eqaf/bigstring/eqaf_bigstring.cma
+%%OCAML_SITELIBDIR%%/eqaf/bigstring/eqaf_bigstring.cmi
+%%OCAML_SITELIBDIR%%/eqaf/bigstring/eqaf_bigstring.cmt
+%%OCAML_SITELIBDIR%%/eqaf/bigstring/eqaf_bigstring.cmti
+%%OCAML_SITELIBDIR%%/eqaf/bigstring/eqaf_bigstring.cmx
+%%OCAML_SITELIBDIR%%/eqaf/bigstring/eqaf_bigstring.cmxa
+%%OCAML_SITELIBDIR%%/eqaf/bigstring/eqaf_bigstring.cmxs
+%%OCAML_SITELIBDIR%%/eqaf/bigstring/eqaf_bigstring.ml
+%%OCAML_SITELIBDIR%%/eqaf/bigstring/eqaf_bigstring.mli
+%%OCAML_SITELIBDIR%%/eqaf/bytes/eqaf_bytes.a
+%%OCAML_SITELIBDIR%%/eqaf/bytes/eqaf_bytes.cma
+%%OCAML_SITELIBDIR%%/eqaf/bytes/eqaf_bytes.cmi
+%%OCAML_SITELIBDIR%%/eqaf/bytes/eqaf_bytes.cmt
+%%OCAML_SITELIBDIR%%/eqaf/bytes/eqaf_bytes.cmti
+%%OCAML_SITELIBDIR%%/eqaf/bytes/eqaf_bytes.cmx
+%%OCAML_SITELIBDIR%%/eqaf/bytes/eqaf_bytes.cmxa
+%%OCAML_SITELIBDIR%%/eqaf/bytes/eqaf_bytes.cmxs
+%%OCAML_SITELIBDIR%%/eqaf/bytes/eqaf_bytes.ml
+%%OCAML_SITELIBDIR%%/eqaf/bytes/eqaf_bytes.mli
+%%OCAML_SITELIBDIR%%/eqaf/dune-package
+%%OCAML_SITELIBDIR%%/eqaf/eqaf.a
+%%OCAML_SITELIBDIR%%/eqaf/eqaf.cma
+%%OCAML_SITELIBDIR%%/eqaf/eqaf.cmi
+%%OCAML_SITELIBDIR%%/eqaf/eqaf.cmt
+%%OCAML_SITELIBDIR%%/eqaf/eqaf.cmti
+%%OCAML_SITELIBDIR%%/eqaf/eqaf.cmx
+%%OCAML_SITELIBDIR%%/eqaf/eqaf.cmxa
+%%OCAML_SITELIBDIR%%/eqaf/eqaf.cmxs
+%%OCAML_SITELIBDIR%%/eqaf/eqaf.ml
+%%OCAML_SITELIBDIR%%/eqaf/eqaf.mli
+%%OCAML_SITELIBDIR%%/eqaf/eqaf__.cmi
+%%OCAML_SITELIBDIR%%/eqaf/eqaf__.cmt
+%%OCAML_SITELIBDIR%%/eqaf/eqaf__.cmx
+%%OCAML_SITELIBDIR%%/eqaf/eqaf__.ml
+%%OCAML_SITELIBDIR%%/eqaf/eqaf__Unsafe.cmi
+%%OCAML_SITELIBDIR%%/eqaf/eqaf__Unsafe.cmt
+%%OCAML_SITELIBDIR%%/eqaf/eqaf__Unsafe.cmx
+%%OCAML_SITELIBDIR%%/eqaf/opam
+%%OCAML_SITELIBDIR%%/eqaf/unsafe.ml
+%%OCAML_SITELIBDIR%%/eqaf-cstruct/META
+%%OCAML_SITELIBDIR%%/eqaf-cstruct/dune-package
+%%OCAML_SITELIBDIR%%/eqaf-cstruct/eqaf_cstruct.a
+%%OCAML_SITELIBDIR%%/eqaf-cstruct/eqaf_cstruct.cma
+%%OCAML_SITELIBDIR%%/eqaf-cstruct/eqaf_cstruct.cmi
+%%OCAML_SITELIBDIR%%/eqaf-cstruct/eqaf_cstruct.cmt
+%%OCAML_SITELIBDIR%%/eqaf-cstruct/eqaf_cstruct.cmti
+%%OCAML_SITELIBDIR%%/eqaf-cstruct/eqaf_cstruct.cmx
+%%OCAML_SITELIBDIR%%/eqaf-cstruct/eqaf_cstruct.cmxa
+%%OCAML_SITELIBDIR%%/eqaf-cstruct/eqaf_cstruct.cmxs
+%%OCAML_SITELIBDIR%%/eqaf-cstruct/eqaf_cstruct.ml
+%%OCAML_SITELIBDIR%%/eqaf-cstruct/eqaf_cstruct.mli
+%%OCAML_SITELIBDIR%%/eqaf-cstruct/opam