git: a08d587db946 - main - databases/ocaml-pgocaml: New port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 28 Jun 2026 22:09:26 UTC
The branch main has been updated by bofh:
URL: https://cgit.FreeBSD.org/ports/commit/?id=a08d587db9467a5ec5d39058e76c6ab52e3081ee
commit a08d587db9467a5ec5d39058e76c6ab52e3081ee
Author: Benjamin Jacobs <freebsd@dev.thsi.be>
AuthorDate: 2026-06-28 19:23:51 +0000
Commit: Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2026-06-28 22:08:53 +0000
databases/ocaml-pgocaml: New port
This library implements the PostgreSQL wire protocol (version 2, for
PostgreSQL 7 and above) in pure OCaml. In addition to a low-level
interface, this library provides a PPX syntax extension to type-check
and validate SQL expressions at build time.
WWW: https://github.com/darioteixeira/pgocaml
---
databases/Makefile | 1 +
databases/ocaml-pgocaml/Makefile | 57 +++++++++++++++++++++++++++++++++++++++
databases/ocaml-pgocaml/distinfo | 3 +++
databases/ocaml-pgocaml/pkg-descr | 4 +++
databases/ocaml-pgocaml/pkg-plist | 51 +++++++++++++++++++++++++++++++++++
5 files changed, 116 insertions(+)
diff --git a/databases/Makefile b/databases/Makefile
index bea3ee60372a..3123c00989a8 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -222,6 +222,7 @@
SUBDIR += neo4j
SUBDIR += ocaml-dbm
SUBDIR += ocaml-mysql
+ SUBDIR += ocaml-pgocaml
SUBDIR += ocaml-sqlite3
SUBDIR += octosql
SUBDIR += odbc-cpp-wrapper
diff --git a/databases/ocaml-pgocaml/Makefile b/databases/ocaml-pgocaml/Makefile
new file mode 100644
index 000000000000..a2ffd5a00c4d
--- /dev/null
+++ b/databases/ocaml-pgocaml/Makefile
@@ -0,0 +1,57 @@
+PORTNAME= pgocaml
+PORTVERSION= 4.4.0+git20250314
+CATEGORIES= databases
+PKGNAMEPREFIX= ocaml-
+
+MAINTAINER= freebsd@dev.thsi.be
+COMMENT= PostgreSQL client library for OCaml with a type-safe query syntax extension
+WWW= https://github.com/darioteixeira/pgocaml
+
+LICENSE= LGPL20 # with a special exception to clause 6
+
+BUILD_DEPENDS= ${SA_DIR}/base64/META:converters/ocaml-base64 \
+ ${SA_DIR}/calendar/META:devel/ocaml-calendar \
+ ${SA_DIR}/camlp-streams/META:devel/ocaml-camlp-streams \
+ ${SA_DIR}/csv/META:textproc/ocaml-csv \
+ ${SA_DIR}/digestif/META:security/ocaml-digestif \
+ ${SA_DIR}/hex/META:converters/ocaml-hex \
+ ${SA_DIR}/re/META:devel/ocaml-re \
+ ${SA_DIR}/parsexp/META:devel/ocaml-parsexp \
+ ${SA_DIR}/ppx_deriving/META:devel/ocaml-ppx_deriving \
+ ${SA_DIR}/ppx_optcomp/META:devel/ocaml-ppx_optcomp \
+ ${SA_DIR}/ppx_sexp_conv/META:devel/ocaml-ppx_sexp_conv \
+ ${SA_DIR}/rresult/META:devel/ocaml-rresult \
+ ${SA_DIR}/sexplib/META:devel/ocaml-sexplib
+RUN_DEPENDS= ${SA_DIR}/base64/META:converters/ocaml-base64 \
+ ${SA_DIR}/calendar/META:devel/ocaml-calendar \
+ ${SA_DIR}/camlp-streams/META:devel/ocaml-camlp-streams \
+ ${SA_DIR}/csv/META:textproc/ocaml-csv \
+ ${SA_DIR}/digestif/META:security/ocaml-digestif \
+ ${SA_DIR}/hex/META:converters/ocaml-hex \
+ ${SA_DIR}/re/META:devel/ocaml-re \
+ ${SA_DIR}/parsexp/META:devel/ocaml-parsexp \
+ ${SA_DIR}/ppx_deriving/META:devel/ocaml-ppx_deriving \
+ ${SA_DIR}/ppx_sexp_conv/META:devel/ocaml-ppx_sexp_conv \
+ ${SA_DIR}/rresult/META:devel/ocaml-rresult \
+ ${SA_DIR}/sexplib/META:devel/ocaml-sexplib
+
+USES= ocaml:dune
+USE_GITHUB= yes
+GH_ACCOUNT= darioteixeira
+GH_TAGNAME= 572dd886b975872b28f89944246d14e983f7d181
+OCAML_PACKAGES= pgocaml pgocaml_ppx
+DUNE_INSTALL_TARGETS= ${OCAML_PACKAGES}
+
+DOCSDIR= ${OCAML_DOCSDIR}
+PORTDOCS= ${OCAML_PACKAGES:@p@$p/CHANGELOG.txt $p/LICENSE.txt $p/README.md@}
+
+OPTIONS_DEFINE= DOCS
+
+SA_DIR= ${LOCALBASE}/${OCAML_SITELIBDIR}
+
+post-install:
+ (cd ${STAGEDIR}${PREFIX}/${OCAML_SITELIBDIR}; ${STRIP_CMD} \
+ pgocaml_ppx/pgocaml_ppx.cmxs pgocaml_ppx/ppx.exe \
+ pgocaml/PGOCaml.cmxs)
+
+.include <bsd.port.mk>
diff --git a/databases/ocaml-pgocaml/distinfo b/databases/ocaml-pgocaml/distinfo
new file mode 100644
index 000000000000..8c0631afa509
--- /dev/null
+++ b/databases/ocaml-pgocaml/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1752327869
+SHA256 (darioteixeira-pgocaml-4.4.0+git20250314-572dd886b975872b28f89944246d14e983f7d181_GH0.tar.gz) = bb107a3f53565591a3ad435f73d340c4098340558712af4a0c8af9e61c9639c4
+SIZE (darioteixeira-pgocaml-4.4.0+git20250314-572dd886b975872b28f89944246d14e983f7d181_GH0.tar.gz) = 55836
diff --git a/databases/ocaml-pgocaml/pkg-descr b/databases/ocaml-pgocaml/pkg-descr
new file mode 100644
index 000000000000..e9d39edf2612
--- /dev/null
+++ b/databases/ocaml-pgocaml/pkg-descr
@@ -0,0 +1,4 @@
+This library implements the PostgreSQL wire protocol (version 2, for
+PostgreSQL 7 and above) in pure OCaml. In addition to a low-level
+interface, this library provides a PPX syntax extension to type-check
+and validate SQL expressions at build time.
diff --git a/databases/ocaml-pgocaml/pkg-plist b/databases/ocaml-pgocaml/pkg-plist
new file mode 100644
index 000000000000..cdf7f6929c57
--- /dev/null
+++ b/databases/ocaml-pgocaml/pkg-plist
@@ -0,0 +1,51 @@
+%%OCAML_SITELIBDIR%%/pgocaml/META
+%%OCAML_SITELIBDIR%%/pgocaml/PGOCaml.a
+%%OCAML_SITELIBDIR%%/pgocaml/PGOCaml.cma
+%%OCAML_SITELIBDIR%%/pgocaml/PGOCaml.cmxa
+%%OCAML_SITELIBDIR%%/pgocaml/PGOCaml.cmxs
+%%OCAML_SITELIBDIR%%/pgocaml/PGOCaml.ml
+%%OCAML_SITELIBDIR%%/pgocaml/PGOCaml.mli
+%%OCAML_SITELIBDIR%%/pgocaml/PGOCaml_aux.ml
+%%OCAML_SITELIBDIR%%/pgocaml/PGOCaml_aux.mli
+%%OCAML_SITELIBDIR%%/pgocaml/PGOCaml_config.ml
+%%OCAML_SITELIBDIR%%/pgocaml/PGOCaml_generic.ml
+%%OCAML_SITELIBDIR%%/pgocaml/PGOCaml_generic.mli
+%%OCAML_SITELIBDIR%%/pgocaml/dune-package
+%%OCAML_SITELIBDIR%%/pgocaml/opam
+%%OCAML_SITELIBDIR%%/pgocaml/pGOCaml.cmi
+%%OCAML_SITELIBDIR%%/pgocaml/pGOCaml.cmt
+%%OCAML_SITELIBDIR%%/pgocaml/pGOCaml.cmti
+%%OCAML_SITELIBDIR%%/pgocaml/pGOCaml.cmx
+%%OCAML_SITELIBDIR%%/pgocaml/pGOCaml_aux.cmi
+%%OCAML_SITELIBDIR%%/pgocaml/pGOCaml_aux.cmt
+%%OCAML_SITELIBDIR%%/pgocaml/pGOCaml_aux.cmti
+%%OCAML_SITELIBDIR%%/pgocaml/pGOCaml_aux.cmx
+%%OCAML_SITELIBDIR%%/pgocaml/pGOCaml_config.cmi
+%%OCAML_SITELIBDIR%%/pgocaml/pGOCaml_config.cmt
+%%OCAML_SITELIBDIR%%/pgocaml/pGOCaml_config.cmx
+%%OCAML_SITELIBDIR%%/pgocaml/pGOCaml_generic.cmi
+%%OCAML_SITELIBDIR%%/pgocaml/pGOCaml_generic.cmt
+%%OCAML_SITELIBDIR%%/pgocaml/pGOCaml_generic.cmti
+%%OCAML_SITELIBDIR%%/pgocaml/pGOCaml_generic.cmx
+%%OCAML_SITELIBDIR%%/pgocaml/scram.cmi
+%%OCAML_SITELIBDIR%%/pgocaml/scram.cmt
+%%OCAML_SITELIBDIR%%/pgocaml/scram.cmti
+%%OCAML_SITELIBDIR%%/pgocaml/scram.cmx
+%%OCAML_SITELIBDIR%%/pgocaml/scram.ml
+%%OCAML_SITELIBDIR%%/pgocaml/scram.mli
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/META
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/dune-package
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/opam
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/pgocaml_ppx.a
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/pgocaml_ppx.cma
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/pgocaml_ppx.cmi
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/pgocaml_ppx.cmt
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/pgocaml_ppx.cmx
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/pgocaml_ppx.cmxa
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/pgocaml_ppx.cmxs
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/pgocaml_ppx.ml
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/pgocaml_ppx__Ppx_pgsql.cmi
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/pgocaml_ppx__Ppx_pgsql.cmt
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/pgocaml_ppx__Ppx_pgsql.cmx
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/ppx.exe
+%%OCAML_SITELIBDIR%%/pgocaml_ppx/ppx_pgsql.ml