git: 9cd57c790d43 - main - security/ocaml-digestif: New port

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

URL: https://cgit.FreeBSD.org/ports/commit/?id=9cd57c790d43c42fa8f518f353feaffe1f50229b

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

    security/ocaml-digestif: New port
    
    Digestif is a hashing library for OCaml supporting the following
    algorithm: BLAKE2B, BLAKE2S, Keccak-256, MD5, RIPEMD160, SHA1, SHA224,
    SHA256, SHA3, SHA384, SHA512 and WHIRLPOOL.
    
    This library permits to link against one of the two provided
    implementations: the pure OCaml implementation ("digestif.ocaml"), or
    one written in the C language ("digestif.c").
    
    WWW: https://github.com/mirage/digestif
---
 security/Makefile                 |   1 +
 security/ocaml-digestif/Makefile  |  29 +++++++++
 security/ocaml-digestif/distinfo  |   3 +
 security/ocaml-digestif/pkg-descr |   7 +++
 security/ocaml-digestif/pkg-plist | 128 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 168 insertions(+)

diff --git a/security/Makefile b/security/Makefile
index 5c058418f577..ace5c867b074 100644
--- a/security/Makefile
+++ b/security/Makefile
@@ -432,6 +432,7 @@
     SUBDIR += obfs4proxy-tor
     SUBDIR += ocaml-cryptgps
     SUBDIR += ocaml-cryptokit
+    SUBDIR += ocaml-digestif
     SUBDIR += ocaml-lwt_ssl
     SUBDIR += ocaml-ssl
     SUBDIR += oidentd
diff --git a/security/ocaml-digestif/Makefile b/security/ocaml-digestif/Makefile
new file mode 100644
index 000000000000..716a238e4532
--- /dev/null
+++ b/security/ocaml-digestif/Makefile
@@ -0,0 +1,29 @@
+PORTNAME=	digestif
+DISTVERSION=	1.3.0
+CATEGORIES=	security
+MASTER_SITES=	https://github.com/mirage/${PORTNAME}/releases/download/v${DISTVERSION}/
+PKGNAMEPREFIX=	ocaml-
+
+MAINTAINER=	freebsd@dev.thsi.be
+COMMENT=	Cryptographic hashing library for OCaml
+WWW=		https://github.com/mirage/digestif
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE.md
+
+BUILD_DEPENDS=	${RUN_DEPENDS}
+RUN_DEPENDS=	${LOCALBASE}/${OCAML_SITELIBDIR}/eqaf/META:devel/ocaml-eqaf
+
+USES=		ocaml:dune,ldconfig tar:tbz
+
+DOCSDIR=	${OCAML_DOCSDIR}/${PORTNAME}
+PORTDOCS=	CHANGES.md LICENSE.md README.md
+
+OPTIONS_DEFINE=	DOCS
+
+post-install:
+	cd ${STAGEDIR}${PREFIX}/${OCAML_SITELIBDIR}/${PORTNAME} && \
+		${STRIP_CMD} c/digestif_c.cmxs ocaml/digestif_ocaml.cmxs \
+		dlldigestif_c_stubs.so
+
+.include <bsd.port.mk>
diff --git a/security/ocaml-digestif/distinfo b/security/ocaml-digestif/distinfo
new file mode 100644
index 000000000000..cf05528a4239
--- /dev/null
+++ b/security/ocaml-digestif/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1751314841
+SHA256 (digestif-1.3.0.tbz) = 9a6cdcb332539c87f4723fc3bd73626b2675a7b1161fdf0fed309186ce18f427
+SIZE (digestif-1.3.0.tbz) = 3334564
diff --git a/security/ocaml-digestif/pkg-descr b/security/ocaml-digestif/pkg-descr
new file mode 100644
index 000000000000..14f4a5b57759
--- /dev/null
+++ b/security/ocaml-digestif/pkg-descr
@@ -0,0 +1,7 @@
+Digestif is a hashing library for OCaml supporting the following
+algorithm: BLAKE2B, BLAKE2S, Keccak-256, MD5, RIPEMD160, SHA1, SHA224,
+SHA256, SHA3, SHA384, SHA512 and WHIRLPOOL.
+
+This library permits to link against one of the two provided
+implementations: the pure OCaml implementation ("digestif.ocaml"), or
+one written in the C language ("digestif.c").
diff --git a/security/ocaml-digestif/pkg-plist b/security/ocaml-digestif/pkg-plist
new file mode 100644
index 000000000000..103e2aa550cf
--- /dev/null
+++ b/security/ocaml-digestif/pkg-plist
@@ -0,0 +1,128 @@
+%%OCAML_SITELIBDIR%%/digestif/META
+%%OCAML_SITELIBDIR%%/digestif/c/digestif_native.cmx
+%%OCAML_SITELIBDIR%%/digestif/c/digestif_conv.cmx
+%%OCAML_SITELIBDIR%%/digestif/c/digestif_bi.ml
+%%OCAML_SITELIBDIR%%/digestif/c/libdigestif_c_stubs.a
+%%OCAML_SITELIBDIR%%/digestif/c/digestif_c.cma
+%%OCAML_SITELIBDIR%%/digestif/c/digestif.cmi
+%%OCAML_SITELIBDIR%%/digestif/c/digestif.cmt
+%%OCAML_SITELIBDIR%%/digestif/c/digestif.cmx
+%%OCAML_SITELIBDIR%%/digestif/c/digestif_eq.cmx
+%%OCAML_SITELIBDIR%%/digestif/c/digestif_eq.ml
+%%OCAML_SITELIBDIR%%/digestif/c/digestif_by.ml
+%%OCAML_SITELIBDIR%%/digestif/c/digestif_conv.ml
+%%OCAML_SITELIBDIR%%/digestif/c/digestif_bi.cmx
+%%OCAML_SITELIBDIR%%/digestif/c/digestif_by.cmx
+%%OCAML_SITELIBDIR%%/digestif/c/digestif_native.ml
+%%OCAML_SITELIBDIR%%/digestif/c/.private/digestif_native.cmi
+%%OCAML_SITELIBDIR%%/digestif/c/.private/digestif_native.cmt
+%%OCAML_SITELIBDIR%%/digestif/c/.private/digestif_conv.cmt
+%%OCAML_SITELIBDIR%%/digestif/c/.private/digestif_conv.cmi
+%%OCAML_SITELIBDIR%%/digestif/c/.private/digestif_eq.cmi
+%%OCAML_SITELIBDIR%%/digestif/c/.private/digestif_eq.cmt
+%%OCAML_SITELIBDIR%%/digestif/c/.private/digestif_bi.cmt
+%%OCAML_SITELIBDIR%%/digestif/c/.private/digestif_bi.cmi
+%%OCAML_SITELIBDIR%%/digestif/c/.private/digestif_by.cmi
+%%OCAML_SITELIBDIR%%/digestif/c/.private/digestif_by.cmt
+%%OCAML_SITELIBDIR%%/digestif/c/digestif_c.a
+%%OCAML_SITELIBDIR%%/digestif/c/digestif.ml
+%%OCAML_SITELIBDIR%%/digestif/c/digestif_c.cmxa
+%%OCAML_SITELIBDIR%%/digestif/c/digestif_c.cmxs
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha3_256.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha3_256.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha3_256.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif_ocaml.cma
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_md5.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha3_512.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha3_512.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif_conv.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha3_384.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/xor.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_blake2s.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_keccak_256.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_keccak_256.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_keccak_256.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha3_224.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif_bi.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha1.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_whirlpool.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha3.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha3.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha3.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif_eq.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/xor.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha3_224.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_blake2b.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif_eq.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha384.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif_by.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif_conv.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha256.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha256.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_md5.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif_bi.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_whirlpool.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha224.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_rmd160.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha3_384.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif_by.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha512.cmx
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_rmd160.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha3_256.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_md5.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_md5.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha3_512.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha3_512.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/digestif_conv.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/digestif_conv.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_blake2s.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_blake2s.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha1.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha1.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/digestif_eq.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/digestif_eq.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/xor.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/xor.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha3_224.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha3_224.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_blake2b.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_blake2b.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha384.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha384.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha256.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha256.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/digestif_bi.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/digestif_bi.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_whirlpool.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_whirlpool.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha224.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha224.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_rmd160.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_rmd160.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha3_384.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha3_384.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/digestif_by.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/digestif_by.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha512.cmi
+%%OCAML_SITELIBDIR%%/digestif/ocaml/.private/baijiu_sha512.cmt
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif_ocaml.cmxs
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif_ocaml.cmxa
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha1.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif_ocaml.a
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_keccak_256.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha224.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/digestif.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_blake2s.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_blake2b.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha512.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha3.ml
+%%OCAML_SITELIBDIR%%/digestif/ocaml/baijiu_sha384.ml
+%%OCAML_SITELIBDIR%%/digestif/digestif.cmi
+%%OCAML_SITELIBDIR%%/digestif/digestif.mli
+%%OCAML_SITELIBDIR%%/digestif/dune-package
+%%OCAML_SITELIBDIR%%/digestif/digestif.cmti
+%%OCAML_SITELIBDIR%%/digestif/opam
+%%OCAML_SITELIBDIR%%/digestif/dlldigestif_c_stubs.so