diff options
Diffstat (limited to 'databases')
-rw-r--r-- | databases/Makefile | 1 | ||||
-rw-r--r-- | databases/proxysql/Makefile | 80 | ||||
-rw-r--r-- | databases/proxysql/distinfo | 3 | ||||
-rw-r--r-- | databases/proxysql/files/proxysql.conf | 2 | ||||
-rw-r--r-- | databases/proxysql/files/proxysql.conf-newsyslog | 1 | ||||
-rw-r--r-- | databases/proxysql/files/proxysql.in | 62 | ||||
-rw-r--r-- | databases/proxysql/pkg-descr | 9 | ||||
-rw-r--r-- | databases/proxysql/pkg-message | 9 | ||||
-rw-r--r-- | databases/proxysql/pkg-plist | 10 |
9 files changed, 177 insertions, 0 deletions
diff --git a/databases/Makefile b/databases/Makefile index 3a97008d17a3..e196510964d4 100644 --- a/databases/Makefile +++ b/databases/Makefile @@ -696,6 +696,7 @@ SUBDIR += proftpd-mod_sql_sqlite SUBDIR += proftpd-mod_sql_tds SUBDIR += prometheus-postgresql-adapter + SUBDIR += proxysql SUBDIR += pspg SUBDIR += puppetdb-terminus7 SUBDIR += puppetdb-terminus8 diff --git a/databases/proxysql/Makefile b/databases/proxysql/Makefile new file mode 100644 index 000000000000..b611737d97d8 --- /dev/null +++ b/databases/proxysql/Makefile @@ -0,0 +1,80 @@ +PORTNAME= proxysql +PORTVERSION= 2.6.1 +CATEGORIES= databases + +MAINTAINER= zi@FreeBSD.org +COMMENT= High performance, high availability, protocol-aware proxy for MySQL +WWW= https://www.proxysql.com/ + +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= aclocal:devel/automake \ + autoreconf:devel/autoconf \ + bash:shells/bash \ + cmake:devel/cmake-core \ + ${LOCALBASE}/bin/grep:textproc/gnugrep \ + libgcrypt>0:security/libgcrypt \ + libtoolize:devel/libtool \ + e2fsprogs-libuuid>0:misc/e2fsprogs-libuuid \ + gnutls>0:security/gnutls +RUN_DEPENDS= libgcrypt>0:security/libgcrypt \ + e2fsprogs-libuuid>0:misc/e2fsprogs-libuuid \ + gnutls>0:security/gnutls + +USES= compiler:gcc-c++11-lib gmake libtool perl5 python:build shebangfix +USE_PERL5= build +USE_GCC= yes +MAKE_ENV= GIT_VERSION=${PORTVERSION} +USE_GITHUB= yes +ALL_TARGET= build_deps default +SHEBANG_FILES= deps/libssl/verify-bio_st-match.sh +MAKE_JOBS_UNSAFE=yes +LDFLAGS+= -L${LOCALBASE}/lib +CFLAGS+= -fPIC +CXXFLAGS+= -fPIC +BINARY_ALIAS= python3=${PYTHON_CMD} +USE_RC_SUBR= ${PORTNAME} + +USERS= ${PORTNAME} +GROUPS= ${PORTNAME} + +GH_ACCOUNT= sysown + +post-patch: + @${REINPLACE_CMD} -e 's,/etc/,${ETCDIR}/,g' ${WRKSRC}/lib/ProxySQL_GloVars.cpp + @${REINPLACE_CMD} \ + -e 's|strftime(__buffer, 25, "%Y-%m-%d %H:%M:%S", __tm_info);|snprintf(__buffer, 3, "%s", "");|g' \ + -e 's,"%s \[,"%s\[,g' \ + -e '/__timer/d' \ + -e '/__tm_info/d' \ + ${WRKSRC}/include/proxysql_debug.h + @${REINPLACE_CMD} \ + -e 's,/var/lib,/var/db,g' \ + -e '7s/^/errorlog="\/var\/log\/proxysql\/proxysql-error.log"\n\n/g' \ + -e '7s/^/pid="\/var\/run\/${PORTNAME}\/${PORTNAME}.pid"\n/g' \ + ${WRKSRC}/src/proxysql.cfg + @${REINPLACE_CMD} \ + -e 's,grep,${LOCALBASE}/bin/grep,g' \ + -e 's,ln -fsT,ln -fs,' \ + -e 's,PROXYSQLCLICKHOUSE=1 ,,g' \ + ${WRKSRC}/Makefile ${WRKSRC}/deps/Makefile \ + ${WRKSRC}/lib/Makefile ${WRKSRC}/src/Makefile + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/src/proxysql ${STAGEDIR}${LOCALBASE}/sbin + +post-install: + ${MKDIR} ${STAGEDIR}${ETCDIR} ${STAGEDIR}/var/db/${PORTNAME} \ + ${STAGEDIR}/var/run/${PORTNAME} \ + ${STAGEDIR}${LOCALBASE}/etc/syslog.d \ + ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d \ + ${STAGEDIR}/var/log/${PORTNAME} + ${INSTALL_DATA} ${FILESDIR}/${PORTNAME}.conf \ + ${STAGEDIR}${LOCALBASE}/etc/syslog.d + ${INSTALL_DATA} ${FILESDIR}/proxysql.conf-newsyslog \ + ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d/proxysql.conf.sample + ${INSTALL_DATA} ${WRKSRC}/src/proxysql.cfg \ + ${STAGEDIR}${ETCDIR}/proxysql.cfg.sample + +.include <bsd.port.mk> diff --git a/databases/proxysql/distinfo b/databases/proxysql/distinfo new file mode 100644 index 000000000000..663665b2cd2a --- /dev/null +++ b/databases/proxysql/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1711406812 +SHA256 (sysown-proxysql-2.6.1_GH0.tar.gz) = b4021fd4bd27ef2c506da91396ed995fa1d6ee8f3d421fcb200331716f9a8979 +SIZE (sysown-proxysql-2.6.1_GH0.tar.gz) = 50028685 diff --git a/databases/proxysql/files/proxysql.conf b/databases/proxysql/files/proxysql.conf new file mode 100644 index 000000000000..68fbfbcf23e8 --- /dev/null +++ b/databases/proxysql/files/proxysql.conf @@ -0,0 +1,2 @@ +!proxysql +*.* /var/log/proxysql.log diff --git a/databases/proxysql/files/proxysql.conf-newsyslog b/databases/proxysql/files/proxysql.conf-newsyslog new file mode 100644 index 000000000000..8a51ca3a6927 --- /dev/null +++ b/databases/proxysql/files/proxysql.conf-newsyslog @@ -0,0 +1 @@ +/var/log/proxysql.log root:wheel 640 10 1000 * JC diff --git a/databases/proxysql/files/proxysql.in b/databases/proxysql/files/proxysql.in new file mode 100644 index 000000000000..781d5b4bdf1f --- /dev/null +++ b/databases/proxysql/files/proxysql.in @@ -0,0 +1,62 @@ +#!/bin/sh + +# PROVIDE: proxysql +# REQUIRE: LOGIN mysql +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# proxysql_enable (bool): Set to NO by default. +# Set it to YES to enable proxysql. +# proxysql_user (string): Set user that proxysql will run under +# Default is "proxysql". +# proxysql_group (string): Set group that proxysql will run under +# Default is "proxysql". +# proxysql_config (string): Set path to config file +# Default is "%%ETCDIR%%/proxysql.cfg". +# proxysql_args (string): Set extra arguments to pass to proxysql +# Default is "". + +. /etc/rc.subr + +name=proxysql +rcvar=proxysql_enable + +load_rc_config $name + +: ${proxysql_enable:="NO"} +: ${proxysql_user:="proxysql"} +: ${proxysql_group:="proxysql"} +: ${proxysql_config:="%%ETCDIR%%/proxysql.cfg"} +: ${proxysql_socket:="/var/run/proxysql/proxysql.sock"} +: ${proxysql_datadir:="/var/db/proxysql"} +: ${proxysql_args:=""} +: ${proxysql_restart_delay:="10"} + + +pidfile="/var/run/proxysql/proxysql.pid" +command="/usr/sbin/daemon" +proxysql_command="%%PREFIX%%/sbin/proxysql" +command_args="-rP ${pidfile} -S -R ${proxysql_restart_delay} \ + -T ${name} ${proxysql_command} \ + -f -c ${proxysql_config} -S ${proxysql_socket} \ + -D ${proxysql_datadir} \ + --no-version-check ${proxysql_args}" +required_files="${proxysql_config}" +extra_commands="reload initialize" +reload_cmd=proxysql_reload +initialize_cmd=proxysql_initialize + +proxysql_initialize() +{ + su -m ${proxysql_user} -c "${proxysql_command} --initial" +} + +proxysql_reload() +{ + su -m ${proxysql_user} -c "${proxysql_command} --reload" +} + +load_rc_config $name +run_rc_command "$1" diff --git a/databases/proxysql/pkg-descr b/databases/proxysql/pkg-descr new file mode 100644 index 000000000000..265692c0bee4 --- /dev/null +++ b/databases/proxysql/pkg-descr @@ -0,0 +1,9 @@ +ProxySQL is a high performance, high availability, protocol aware proxy for +MySQL and forks (like Percona Server and MariaDB). + +With its ability to intelligently route queries, balance loads, and provide +failover handling, ProxySQL empowers organizations to harness the full +potential of their database infrastructure. Whether grappling with +scalability challenges, striving to enhance performance, or seeking to +ensure high availability, ProxySQL emerges as a versatile ally, capable of +addressing diverse needs across various database environments. diff --git a/databases/proxysql/pkg-message b/databases/proxysql/pkg-message new file mode 100644 index 000000000000..f8af81593652 --- /dev/null +++ b/databases/proxysql/pkg-message @@ -0,0 +1,9 @@ +[ +{ type: install + message: <<EOM +In order for logging to function, you must restart syslogd: + +# service syslogd restart +EOM +} +] diff --git a/databases/proxysql/pkg-plist b/databases/proxysql/pkg-plist new file mode 100644 index 000000000000..f49b893c5a16 --- /dev/null +++ b/databases/proxysql/pkg-plist @@ -0,0 +1,10 @@ +etc/syslog.d/proxysql.conf +sbin/proxysql +@dir(,proxysql,0750) %%ETCDIR%% +@sample(,proxysql,0640) %%ETCDIR%%/proxysql.cfg.sample +@sample %%LOCALBASE%%/etc/newsyslog.conf.d/proxysql.conf.sample +@dir(proxysql,proxysql,0750) /var/db/proxysql +@dir(proxysql,proxysql,0750) /var/run/proxysql +@dir(proxysql,proxysql,0750) /var/log/proxysql +@postexec test -f /var/log/proxysql.log || touch /var/log/proxysql.log +@postexec chmod 600 /var/log/proxysql.log |