Skip to content

Commit

Permalink
databases/pgpool-II-44: New port
Browse files Browse the repository at this point in the history
pgpool is a connection pool server for PostgreSQL. pgpool runs between
PostgreSQL's clients(front ends) and servers(back ends). A PostgreSQL
client can connect to pgpool as if it were a standard PostgreSQL server.

pgpool caches the connection to PostgreSQL server to reduce the overhead
to establish the connection to it.
  • Loading branch information
5u623l20 committed Aug 17, 2023
1 parent ce1c924 commit 4198c96
Show file tree
Hide file tree
Showing 7 changed files with 166 additions and 0 deletions.
1 change: 1 addition & 0 deletions databases/Makefile
Expand Up @@ -581,6 +581,7 @@
SUBDIR += pgpool-II-41
SUBDIR += pgpool-II-42
SUBDIR += pgpool-II-43
SUBDIR += pgpool-II-44
SUBDIR += pgreplay
SUBDIR += pgroonga
SUBDIR += pgrouting
Expand Down
50 changes: 50 additions & 0 deletions databases/pgpool-II-44/Makefile
@@ -0,0 +1,50 @@
PORTNAME= pgpool-II
PORTVERSION= 4.4.4
CATEGORIES= databases
MASTER_SITES= http://www.pgpool.net/mediawiki/images/
PKGNAMESUFFIX= -44

MAINTAINER= bofh@FreeBSD.org
COMMENT= Connection pool server for PostgreSQL (4.4.X branch)
WWW= https://pgpool.net/

LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/COPYING

USES= gmake libtool pgsql:11+
USE_LDCONFIG= yes
USE_RC_SUBR= pgpool

GNU_CONFIGURE= yes

CONFLICTS_INSTALL= pgpool-II-[0-9][0-9] pgpool-II[0-9][0-9] # etc/escalation.sh.sample etc/failover.sh.sample etc/pcp.conf.sample

PORTSCOUT= limit:^4.4.[0-9]*

PORTDOCS= *

OPTIONS_DEFINE= DOCS MEMCACHED PAM SSL
OPTIONS_DEFAULT= SSL

MEMCACHED_DESC= Use memcached for in memory query cache
PAM_DESC= Build with PAM support
SSL_DESC= Build with OpenSSL support

MEMCACHED_LIB_DEPENDS= libmemcached.so:databases/libmemcached
MEMCACHED_CONFIGURE_ON= --with-memcached=${LOCALBASE}/include
PAM_CONFIGURE_ON= --with-pam
SSL_USES= ssl
SSL_CONFIGURE_WITH= openssl

post-install:
@${MKDIR} ${STAGEDIR}/var/run/pgpool
${INSTALL_LIB} ${WRKSRC}/src/libs/pcp/.libs/libpcp.so.2.0.0 ${STAGEDIR}${PREFIX}/lib

post-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
cd ${WRKSRC} && ${COPYTREE_SHARE} doc ${STAGEDIR}${DOCSDIR} "-not -name Makefile.\*"
.for f in AUTHORS ChangeLog NEWS TODO
${INSTALL_DATA} ${WRKSRC}/$f ${STAGEDIR}${DOCSDIR}
.endfor

.include <bsd.port.mk>
3 changes: 3 additions & 0 deletions databases/pgpool-II-44/distinfo
@@ -0,0 +1,3 @@
TIMESTAMP = 1692246912
SHA256 (pgpool-II-4.4.4.tar.gz) = 10bed66f8197c74dcb00a0e73f618066d5d5e0adc878865c2fcfa1c945e68f4f
SIZE (pgpool-II-4.4.4.tar.gz) = 4973024
48 changes: 48 additions & 0 deletions databases/pgpool-II-44/files/pgpool.in
@@ -0,0 +1,48 @@
#!/bin/sh

# PROVIDE: pgpool
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# pgpool_enable (bool): Set to NO by default.
# Set it to YES to enable pgpool.
# pgpool_conf (file): Set location of your config.
# Default is "%%PREFIX%%/etc/pgpool.conf"
# pgpool_hba (file): Set location of your pool hba file.
# Default is "%%PREFIX%%/etc/pool_hba.conf"
# pgpool_pcp (file): Set location of your pcp conf file.
# Default is "%%PREFIX%%/etc/pcp.conf"
# pgpool_user (uid): User ID to run as (default nobody)
# pgpool_stop_mode (string): Shutdown mode
# Default is "smart"
# Possibilities are "smart", "fast", or "immediate"
#

. /etc/rc.subr

name=pgpool
rcvar=pgpool_enable

load_rc_config $name

: ${pgpool_enable="NO"}
: ${pgpool_conf="%%PREFIX%%/etc/pgpool.conf"}
: ${pgpool_hba="%%PREFIX%%/etc/pool_hba.conf"}
: ${pgpool_pcp="%%PREFIX%%/etc/pcp.conf"}
: ${pgpool_user="nobody"}
: ${pgpool_stop_mode="smart"}

command="%%PREFIX%%/bin/pgpool"
command_args="-f ${pgpool_conf} -a ${pgpool_hba} -F ${pgpool_pcp}"
stop_cmd="${command} -m ${pgpool_stop_mode} ${command_args} stop"
reload_cmd="${command} ${command_args} reload"
extra_commands="reload"

required_files="${pgpool_conf}"


run_rc_command "$1"

6 changes: 6 additions & 0 deletions databases/pgpool-II-44/pkg-descr
@@ -0,0 +1,6 @@
pgpool is a connection pool server for PostgreSQL. pgpool runs between
PostgreSQL's clients(front ends) and servers(back ends). A PostgreSQL client can
connect to pgpool as if it were a standard PostgreSQL server.

pgpool caches the connection to PostgreSQL server to reduce the overhead to
establish the connection to it.
15 changes: 15 additions & 0 deletions databases/pgpool-II-44/pkg-message
@@ -0,0 +1,15 @@
[
{ type: install
message: <<EOM
In order to start pgpool you need some more configuration:

# sysrc -f /etc/rc.conf pgpool_enable="YES"
# sysrc -f /etc/rc.conf pgpool_user="root"

Please consider the usage of another user. The user is
required to have read/write access to /var/run/pgpool.

Using the root user is - as always - an security issue.
EOM
}
]
43 changes: 43 additions & 0 deletions databases/pgpool-II-44/pkg-plist
@@ -0,0 +1,43 @@
bin/pcp_attach_node
bin/pcp_detach_node
bin/pcp_health_check_stats
bin/pcp_node_count
bin/pcp_node_info
bin/pcp_pool_status
bin/pcp_proc_count
bin/pcp_proc_info
bin/pcp_promote_node
bin/pcp_recovery_node
bin/pcp_reload_config
bin/pcp_stop_pgpool
bin/pcp_watchdog_info
bin/pg_enc
bin/pg_md5
bin/pgpool
bin/pgpool_setup
bin/pgproto
bin/watchdog_setup
bin/wd_cli
@sample etc/aws_eip_if_cmd.sh.sample
@sample etc/aws_rtb_if_cmd.sh.sample
@sample etc/escalation.sh.sample
@sample etc/failover.sh.sample
@sample etc/follow_primary.sh.sample
@sample etc/pcp.conf.sample
@sample etc/pgpool.conf.sample
@sample etc/pgpool_remote_start.sample
@sample etc/pool_hba.conf.sample
@sample etc/replication_mode_recovery_1st_stage.sample
@sample etc/replication_mode_recovery_2nd_stage.sample
etc/recovery_1st_stage.sample
include/libpcp_ext.h
include/pcp.h
include/pool_process_reporting.h
include/pool_type.h
lib/libpcp.a
lib/libpcp.so
lib/libpcp.so.2
lib/libpcp.so.2.0.0
%%DATADIR%%/insert_lock.sql
%%DATADIR%%/pgpool.pam
@dir /var/run/pgpool

0 comments on commit 4198c96

Please sign in to comment.