summaryrefslogtreecommitdiff
path: root/dev-db/pgbouncer
diff options
context:
space:
mode:
Diffstat (limited to 'dev-db/pgbouncer')
-rw-r--r--dev-db/pgbouncer/Manifest9
-rw-r--r--dev-db/pgbouncer/files/logrotate7
-rw-r--r--dev-db/pgbouncer/files/pgbouncer-dirs.patch26
-rw-r--r--dev-db/pgbouncer/files/pgbouncer.confd12
-rw-r--r--dev-db/pgbouncer/files/pgbouncer.initd88
-rw-r--r--dev-db/pgbouncer/metadata.xml25
-rw-r--r--dev-db/pgbouncer/pgbouncer-1.7.2.ebuild82
7 files changed, 249 insertions, 0 deletions
diff --git a/dev-db/pgbouncer/Manifest b/dev-db/pgbouncer/Manifest
new file mode 100644
index 000000000000..0c9ac49e7469
--- /dev/null
+++ b/dev-db/pgbouncer/Manifest
@@ -0,0 +1,9 @@
+AUX logrotate 119 SHA256 09e12d5f8f026251a0a8532dfc181199085e4cc23a3f4cbb4dd15a4bea5af6ad SHA512 5aa4226ab2d168a88a3b64deb114d3901431d2afb2571cf8ae411c989549bc465ee05104a6863cc8fce6d769d809b4ab536973280f50cb4415c6698c34e1a5b8 WHIRLPOOL 982d153670d43bf5b195988887474cd8b4dc268dc663ce88d430f86d83f6cf5cd3bc0455495eb8d225fe4d6179b5bf6e3136d3d960cb9b1d1dabeb0b2f4288a3
+AUX pgbouncer-dirs.patch 685 SHA256 d5b0875000c89e945b0eb3f3007d68b211d675a4e18872ef7166c76dbd3eb695 SHA512 6a475bf5cff10b464177af619051529ad78e802c56655500ad23130c5989721f41592387f9bf6719810eae2d876a8dd36219b87ae1fdb29304b2adc98c49ae4c WHIRLPOOL ac8df7239880f21479bec1153a4b9a6ab4da937bccec38205785ccc4f951b4d8a227e94c12f564b2694803a2a43c5390c4700944c9ed60f55fdbeeec370439c7
+AUX pgbouncer.confd 425 SHA256 e681f992f6051bc1bb2887f712530c38be1c0a2ffb8ee254d0438b8679f55b9c SHA512 9f997cbfb18f5bb1623aea2a9af706359a973fd2167be91ee6ffb37a22a6dc453280c66b6d2c11ab0174dbf159a195f0a1612be198466633d728a5317a878035 WHIRLPOOL bbad3f2609c638e859e44555e25bef1249a7cbb024a7f6e07f4cee57bfc1571d8100a43715360d2d03a9bf62b0ed65878339cc5f641ac0f3736296a93c597b6f
+AUX pgbouncer.initd 2183 SHA256 2eb70ea8913b52560628a266a0b8bcae59b5e00fddb4cb43f6fe6f2956b5be90 SHA512 ecd34f017316b2c0aad172e5bf5393137da5ab841f4d6de93eb82a07abe9f234a2426ca7dada2dc047c33ea4c7dc0af3040b249ec1f9d7e0c1782fb0463a7293 WHIRLPOOL c7dcec6b8c884ae9b52e988f1d4f38c5b1c65b19f353f2ac0224da5e6fa2dcad5182473c1d4b01bd52c6d684a500dff636e0f580dc01c0095a925abcc1806b32
+DIST pgbouncer-1.7.2.tar.gz 462374 SHA256 de36b318fe4a2f20a5f60d1c5ea62c1ca331f6813d2c484866ecb59265a160ba SHA512 11c89606599f424b34f39a4b072ec6293fea0b14ee52ae4fbc44775e6d83771a22d194f4e8eabe410e0d6a70657508cf1a3b1012543d91873c36f644afb5675d WHIRLPOOL 3b007d6ea8f9c5e7e8ee3e2908839e24c120fa458f127192f40f8f7d37e5e56bcce3501f76b623670a210c96af66a861adf183e62c152e92e030b2cef60f3d03
+EBUILD pgbouncer-1.7.2.ebuild 1786 SHA256 d68c07bbe7308231d3123e59fc2bc04a4c2a969b93faaaa33696808d41631044 SHA512 dabfa3936e5292c14d6aaf44489c4d8b530725328776ac207b90b2b0dbecf6a3767b858848eb3d94be8766cdc496584c5062dda25f2b291e2aec68c05cd29e98 WHIRLPOOL c51faadd3f3b9c29f2b471b74087260b0f0a60cb164ae2ce50a333974ecd9af01d1ee64d25de8f2e17c4bcf7e00bfa48bc6b9ba07ef1d5ca0c1a1882f3e0c1a7
+MISC ChangeLog 3394 SHA256 f8f33fecd5d29016fa9192ef7c69ad036330eb94ead2a7140911ddc1ba72c7b1 SHA512 6bca8609c6a57769b42443709b6948ff9c8171d6e3a1b016af1853983e0f03efd1dbc09d6506c2f9fd3af88124b32d6896000540a6a5184bb0b3b650fb336c97 WHIRLPOOL e1f112fb1cb1f1376c46fd949b699d95c00a96d311f78a6d31fb038c2194410fbe2fd035cadbecb7f97d67efd945b1cf6c19323732288a99626084a6ac87f6a6
+MISC ChangeLog-2015 2800 SHA256 5d899d2830d6ffe1ef3a58aa1161fcada9b09e2ba3bf2d45c5afe1fcfc9e5010 SHA512 4332c8917229ff25709efdd12a97f71596e7b8eab5ff9bc62d2fa5a0b119de9301a5508e2935646bc48d9b31ffe789ed83162e324164e9a39eb68182526507f2 WHIRLPOOL a10f35230f908d9544e1ecfb6df07afda7da448e593d8eafef24e535c3ad92b77d83caa22e48a4f6b1371808f2496800e2ba46bdcab826d0adcec83bf0cbd02d
+MISC metadata.xml 946 SHA256 5f69388f01dbe23c221467fd1aa454b0f833a2ebe4d86bb3ad1beeb6a3cf0517 SHA512 9f147d93f85cd9350ea5e7e8061228e6269baf4766de6ccc2495c071f508a774b6c27e1bf626f192a823a7d28b7cf76f9c20a49a91d3d5618e5d0aebfba5e630 WHIRLPOOL cc47b597b128596e8242fce4e465e678a48e3faeaea4d81c10ed7ded34ffa453d37c5b5af6d03cf1cb94a9fc9c52505391f2d57a047acbf3dc0b52097ce8a900
diff --git a/dev-db/pgbouncer/files/logrotate b/dev-db/pgbouncer/files/logrotate
new file mode 100644
index 000000000000..9617eafa66b0
--- /dev/null
+++ b/dev-db/pgbouncer/files/logrotate
@@ -0,0 +1,7 @@
+/var/log/pgbouncer/pgbouncer.log {
+ missingok
+ sharedscripts
+ postrotate
+ /etc/init.d/pgbouncer -q reload
+ endscript
+} \ No newline at end of file
diff --git a/dev-db/pgbouncer/files/pgbouncer-dirs.patch b/dev-db/pgbouncer/files/pgbouncer-dirs.patch
new file mode 100644
index 000000000000..62bcd0b84409
--- /dev/null
+++ b/dev-db/pgbouncer/files/pgbouncer-dirs.patch
@@ -0,0 +1,26 @@
+diff -Naruw a/etc/pgbouncer.ini b/etc/pgbouncer.ini
+--- a/etc/pgbouncer.ini 2012-06-10 19:57:01.000000000 +0000
++++ b/etc/pgbouncer.ini 2013-07-17 02:25:59.598888628 +0000
+@@ -29,7 +29,7 @@
+ ;;;
+
+ logfile = /var/log/pgbouncer/pgbouncer.log
+-pidfile = /var/run/pgbouncer/pgbouncer.pid
++pidfile = /run/pgbouncer/pgbouncer.pid
+
+ ;;;
+ ;;; Where to wait for clients
+@@ -40,10 +40,9 @@
+ listen_port = 6432
+
+ ; unix socket is also used for -R.
+-; On debian it should be /var/run/postgresql
+-;unix_socket_dir = /tmp
+-;unix_socket_mode = 0777
+-;unix_socket_group =
++unix_socket_dir = /run/postgresql
++unix_socket_mode = 0777
++unix_socket_group = postgres
+
+ ;;;
+ ;;; Authentication settings
diff --git a/dev-db/pgbouncer/files/pgbouncer.confd b/dev-db/pgbouncer/files/pgbouncer.confd
new file mode 100644
index 000000000000..e2c584011884
--- /dev/null
+++ b/dev-db/pgbouncer/files/pgbouncer.confd
@@ -0,0 +1,12 @@
+# Location of configuration file for PgBouncer.
+INIFILE="/etc/pgbouncer.ini"
+
+# How long to wait in seconds for a safe shutdown. Equivalent to
+# issuing 'PAUSE;' and 'SHUTDOWN;' on psql console. (See 'man 1 pgbouncer'.)
+NICE_TIMEOUT=60
+
+# Set to 'YES' to perform an immediate shutdown if the nice shutdown
+# doesn't work. Same as issuing 'SHUTDOWN;' on console. (See 'man 1
+# pgbouncer'.)
+FORCE_QUIT="no"
+FORCE_QUIT_TIMEOUT=2 \ No newline at end of file
diff --git a/dev-db/pgbouncer/files/pgbouncer.initd b/dev-db/pgbouncer/files/pgbouncer.initd
new file mode 100644
index 000000000000..20479dc22dab
--- /dev/null
+++ b/dev-db/pgbouncer/files/pgbouncer.initd
@@ -0,0 +1,88 @@
+#!/sbin/openrc-run
+
+extra_started_commands="reload"
+
+depend() {
+ use net
+ after postgresql
+}
+
+get_config() {
+ [ -f "${INIFILE}" ] || eend 1 "'${INIFILE}' not found"
+
+ eval echo $(sed -e 's:;.*::' "${INIFILE}" | \
+ awk '$1 == "'$1'" { print ($2 == "=" ? $3 : $2) }')
+}
+
+PIDFILE="$(get_config pidfile)"
+UNIX_SOCKET_DIR="$(get_config unix_socket_dir)"
+
+prep() {
+ if [ -n "${UNIX_SOCKET_DIR}" ] ; then
+ checkpath -o postgres:postgres -m 0775 -d "${UNIX_SOCKET_DIR}" \
+ || return 1
+ fi
+ checkpath -o pgbouncer:postgres -m 0755 -d "$(dirname ${PIDFILE})" \
+ || return 1
+ checkpath -o pgbouncer:postgres -m 0644 -f "${PIDFILE}" \
+ || return 1
+ checkpath -o pgbouncer:postgres -m 0755 -d "$(dirname $(get_config logfile))" \
+ || return 1
+ checkpath -o pgbouncer:postgres -m 0640 -f "$(get_config logfile)" \
+ || return 1
+
+ return 0
+}
+
+start() {
+ ebegin "Starting PgBouncer"
+ prep
+ local ret=$?
+ if [ $ret -ne 0 ] ; then
+ eend $ret
+ exit $ret
+ fi
+ start-stop-daemon --start \
+ --pidfile ${PIDFILE} \
+ --user pgbouncer \
+ --exec /usr/bin/pgbouncer -- -q -d "${INIFILE}"
+ eend $?
+}
+
+stop() {
+ local seconds=$(( ${NICE_TIMEOUT} + ${FORCE_QUIT_TIMEOUT} ))
+ ebegin "Stopping PgBouncer (this can take up to ${seconds} seconds)"
+
+ local retries=SIGINT/${NICE_TIMEOUT}
+
+ if [ "${FORCE_QUIT}" = "YES" ] ; then
+ einfo "FORCE_QUIT enabled."
+ retries="${retries}/SIGTERM/${FORCE_QUIT_TIMEOUT}"
+ fi
+
+ # Loops through nice and force quit in one go.
+ start-stop-daemon --stop \
+ --pidfile ${PIDFILE} \
+ --retry ${retries}
+
+ eend $?
+}
+
+restart() {
+ if [ -n "${UNIX_SOCKET_DIR}" ] ; then
+ ebegin "Performing online restart of PgBouncer"
+ start-stop-daemon --start \
+ --pidfile ${PIDFILE} \
+ --user pgbouncer \
+ --exec /usr/bin/pgbouncer -- -q -d -R "${INIFILE}"
+ eend $?
+ else
+ stop && start
+ fi
+}
+
+reload() {
+ ebegin "Reloading PgBouncer configuration from '${INIFILE}'"
+ start-stop-daemon --signal HUP --pidfile ${PIDFILE}
+ eend $?
+}
diff --git a/dev-db/pgbouncer/metadata.xml b/dev-db/pgbouncer/metadata.xml
new file mode 100644
index 000000000000..eccd61517f95
--- /dev/null
+++ b/dev-db/pgbouncer/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>bugs@bergstroem.nu</email>
+ <name>Johan Bergström</name>
+ <description>Proxy-Maintainer, assign bugs</description>
+ </maintainer>
+ <maintainer type="person">
+ <email>titanofold@gentoo.org</email>
+ <name>Aaron W. Swenson</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>pgsql-bugs@gentoo.org</email>
+ <name>PostgreSQL and Related Package Development</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <use>
+ <flag name="libevent">Use libevent 2.0+ and evdns as the DNS backend</flag>
+ <flag name="udns">Use udns as the DNS backend. Supports IPv4 only.</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-db/pgbouncer/pgbouncer-1.7.2.ebuild b/dev-db/pgbouncer/pgbouncer-1.7.2.ebuild
new file mode 100644
index 000000000000..39eec25d1f5d
--- /dev/null
+++ b/dev-db/pgbouncer/pgbouncer-1.7.2.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+# Upstream has *way* broken tests.
+RESTRICT="test"
+
+inherit eutils user
+
+DESCRIPTION="Lightweight connection pooler for PostgreSQL"
+HOMEPAGE="https://pgbouncer.github.io"
+SRC_URI="https://pgbouncer.github.io/downloads/files/${PV}/${P}.tar.gz"
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="debug doc libevent udns"
+REQUIRED_USE="
+ libevent? ( !udns )
+ udns? ( !libevent )
+"
+RDEPEND="
+ >=sys-libs/glibc-2.10
+ libevent? ( >=dev-libs/libevent-2.0 )
+ udns? ( >=net-libs/udns-0.1 )
+"
+
+DEPEND="
+ ${RDEPEND}
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ >=app-text/asciidoc-8.4
+"
+
+pkg_setup() {
+ enewgroup postgres 70
+ enewuser postgres 70 /bin/bash /var/lib/postgresql postgres
+
+ enewuser pgbouncer -1 -1 -1 postgres
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/pgbouncer-dirs.patch"
+}
+
+src_configure() {
+ # --enable-debug is only used to disable stripping
+ econf \
+ --docdir=/usr/share/doc/${PF} \
+ --enable-debug \
+ $(use_enable debug cassert) \
+ $(use_with libevent) \
+ $(use_with udns)
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dodoc AUTHORS
+
+ newconfd "${FILESDIR}/${PN}.confd" "${PN}"
+ newinitd "${FILESDIR}/${PN}.initd" "${PN}"
+
+ insinto /etc
+ doins etc/pgbouncer.ini
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/logrotate" pgbouncer
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]] ; then
+ einfo "Please read the config.txt for Configuration Directives"
+ einfo
+ einfo "For Administration Commands, see:"
+ einfo " man pgbouncer"
+ einfo
+ einfo "By default, PgBouncer does not have access to any database."
+ einfo "GRANT the permissions needed for your application and make sure that it"
+ einfo "exists in PgBouncer's auth_file."
+ fi
+}