git: ad47ed371cbb - main - databases/postgresql-wal2json: Add new port

From: Juraj Lutter <otis_at_FreeBSD.org>
Date: Tue, 22 Aug 2023 08:16:45 UTC
The branch main has been updated by otis:

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

commit ad47ed371cbbbc06f45722d6ac3afcdb3f6465a4
Author:     Daniel Morante <daniel@morante.net>
AuthorDate: 2023-08-22 08:13:29 +0000
Commit:     Juraj Lutter <otis@FreeBSD.org>
CommitDate: 2023-08-22 08:16:26 +0000

    databases/postgresql-wal2json: Add new port
    
    Add postgresql-wal2json, an output plugin for logical decoding.
    
    WWW:            https://github.com/eulerto/wal2json
    
    PR:             257904
---
 databases/Makefile                        |  1 +
 databases/postgresql-wal2json/Makefile    | 23 +++++++++++++++++++++++
 databases/postgresql-wal2json/distinfo    |  3 +++
 databases/postgresql-wal2json/pkg-descr   |  5 +++++
 databases/postgresql-wal2json/pkg-message | 17 +++++++++++++++++
 5 files changed, 49 insertions(+)

diff --git a/databases/Makefile b/databases/Makefile
index 60e6efc6ef0c..25d125b8eab0 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -672,6 +672,7 @@
     SUBDIR += postgresql-rum
     SUBDIR += postgresql-semver
     SUBDIR += postgresql-tds_fdw
+    SUBDIR += postgresql-wal2json
     SUBDIR += postgresql-zhparser
     SUBDIR += postgresql11-client
     SUBDIR += postgresql11-contrib
diff --git a/databases/postgresql-wal2json/Makefile b/databases/postgresql-wal2json/Makefile
new file mode 100644
index 000000000000..1fc6676ee1ce
--- /dev/null
+++ b/databases/postgresql-wal2json/Makefile
@@ -0,0 +1,23 @@
+PORTNAME=	wal2json
+PORTVERSION=	2.5
+CATEGORIES=	databases
+PKGNAMEPREFIX=	postgresql${PGSQL_VER:S/.//}-
+
+MAINTAINER=	daniel@morante.net
+COMMENT=	JSON output plugin for changeset extraction for PostgreSQL databases
+WWW=		https://github.com/getsentry/wal2json/
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		gmake pgsql:11-14
+WANT_PGSQL=	server
+USE_GITHUB=	yes
+GH_ACCOUNT=	eulerto
+GH_TAGNAME=	${PORTNAME}_${PORTVERSION:S/./_/}
+
+MAKE_ARGS=	PG_CONFIG=${LOCALBASE}/bin/pg_config
+
+PLIST_FILES=	lib/postgresql/wal2json.so
+
+.include <bsd.port.mk>
diff --git a/databases/postgresql-wal2json/distinfo b/databases/postgresql-wal2json/distinfo
new file mode 100644
index 000000000000..27c45dc415dc
--- /dev/null
+++ b/databases/postgresql-wal2json/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1692687620
+SHA256 (eulerto-wal2json-2.5-wal2json_2_5_GH0.tar.gz) = b516653575541cf221b99cf3f8be9b6821f6dbcfc125675c85f35090f824f00e
+SIZE (eulerto-wal2json-2.5-wal2json_2_5_GH0.tar.gz) = 91040
diff --git a/databases/postgresql-wal2json/pkg-descr b/databases/postgresql-wal2json/pkg-descr
new file mode 100644
index 000000000000..dc54712928f1
--- /dev/null
+++ b/databases/postgresql-wal2json/pkg-descr
@@ -0,0 +1,5 @@
+wal2json is an output plugin for logical decoding. It means that the plugin have
+access to tuples produced by INSERT and UPDATE. Also, UPDATE/DELETE old row
+versions can be accessed depending on the configured replica identity.
+Changes can be consumed using the streaming protocol (logical replication slots)
+or by a special SQL API.
diff --git a/databases/postgresql-wal2json/pkg-message b/databases/postgresql-wal2json/pkg-message
new file mode 100644
index 000000000000..9d3553ba00e8
--- /dev/null
+++ b/databases/postgresql-wal2json/pkg-message
@@ -0,0 +1,17 @@
+[
+{ type: install
+  message: <<EOM
+You need to set up at least two parameters in postgresql.conf:
+
+	wal_level = logical
+	#
+	# these parameters only need to set in versions 9.4, 9.5 and 9.6
+	# default values are ok in version 10 or later
+	#
+	max_replication_slots = 10
+	max_wal_senders = 10
+
+After changing these parameters, a restart is needed.
+EOM
+}
+]