summaryrefslogtreecommitdiff
path: root/dev-db/pgbouncer
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-12-21 20:47:17 +0000
committerV3n3RiX <venerix@redcorelinux.org>2017-12-21 20:47:17 +0000
commit4ab6db5717ef23f29320d4c6fb9ebdb8dec1f193 (patch)
treef7640b8b96a04499f1ce44a2cad122d45a8373bd /dev-db/pgbouncer
parent48bdeb0db9c7ffed22c6eb859ee40b55ba598b86 (diff)
gentoo resync : 21.12.2017
Diffstat (limited to 'dev-db/pgbouncer')
-rw-r--r--dev-db/pgbouncer/Manifest6
-rw-r--r--dev-db/pgbouncer/files/pgbouncer-1.8-dirs.patch32
-rwxr-xr-xdev-db/pgbouncer/files/pgbouncer.initd-r183
-rw-r--r--dev-db/pgbouncer/metadata.xml26
-rw-r--r--dev-db/pgbouncer/pgbouncer-1.8.1.ebuild86
5 files changed, 220 insertions, 13 deletions
diff --git a/dev-db/pgbouncer/Manifest b/dev-db/pgbouncer/Manifest
index daa53a8715b3..a7de926a31ca 100644
--- a/dev-db/pgbouncer/Manifest
+++ b/dev-db/pgbouncer/Manifest
@@ -1,7 +1,11 @@
AUX logrotate 119 BLAKE2B 7ed90c0272410e5a37411f78aaa446d1688ceb5a5a0cfa652f8ea3d043f693af2b963aaf18bb230ec4cd5ae34f09219f02b9ee0ca5b43fe61489f46aa7a8d505 SHA512 5aa4226ab2d168a88a3b64deb114d3901431d2afb2571cf8ae411c989549bc465ee05104a6863cc8fce6d769d809b4ab536973280f50cb4415c6698c34e1a5b8
+AUX pgbouncer-1.8-dirs.patch 984 BLAKE2B 0e9a3550efad0669e4598513197c50460326f701dae628ae8c9fb201e08ae3f0c5826515c6a884a00f2b0afd048490b16d87f9b3b9cf836ca4c77284cd705334 SHA512 2c9ddd2ae193b032435f97d41e789283ae69d99fefeb3829e80a90be296ccd2a754a9d00e6930985408758dfa3349d65f3c2ddf1f74053424bc8d8d09b2fa0e2
AUX pgbouncer-dirs.patch 685 BLAKE2B 6a12d056f9a61a637d491cee28ec00cd9f6e24f0278176392775102a3a2e37e11fe7873654854311132bffab82db02a54a8db41a8c71b657235ae8cc3a53adcb SHA512 6a475bf5cff10b464177af619051529ad78e802c56655500ad23130c5989721f41592387f9bf6719810eae2d876a8dd36219b87ae1fdb29304b2adc98c49ae4c
AUX pgbouncer.confd 425 BLAKE2B f9b7065c043474f2208b44eecefb9cd1d6544295a47c3aee51f340f522eb4ba87bb270c99e18183541aca144eb16487a622ff5f2b5d5b87b2d1c7dd950262afd SHA512 9f997cbfb18f5bb1623aea2a9af706359a973fd2167be91ee6ffb37a22a6dc453280c66b6d2c11ab0174dbf159a195f0a1612be198466633d728a5317a878035
AUX pgbouncer.initd 2183 BLAKE2B 1a1cf76abf1de076aa7c4362a52ff84d754306d51a8da19f6d7c320ebdd64b7bea5c1e914cb947d55ea274220543ce5adbd2969656f582dc439f2b73c0be2914 SHA512 ecd34f017316b2c0aad172e5bf5393137da5ab841f4d6de93eb82a07abe9f234a2426ca7dada2dc047c33ea4c7dc0af3040b249ec1f9d7e0c1782fb0463a7293
+AUX pgbouncer.initd-r1 2216 BLAKE2B cfc489a5db03b6e4c56c79036d070152a6f78ce6c300fdc52049aaf91c41db1e2a41af409e701ab8dc2a24a5ca4e8b89b38cc61c52885a1330a04ef727d7585e SHA512 c2af62daf4e7c8e5a25acd17237de2134f1e496a51bd054abecc020a65b39c309c85572c17105431fd598a80ada187fb32fa8f2b1db229d2207c59607748220a
DIST pgbouncer-1.7.2.tar.gz 462374 BLAKE2B 0fea85063e30dad3b7e5d145ecd8660d260c6c09202af3661e8acfdcb5ab25f5c23a2f4e02fcfdfcee872ddeb92b78e157457aafa158ee759a1d73a3d33eb009 SHA512 11c89606599f424b34f39a4b072ec6293fea0b14ee52ae4fbc44775e6d83771a22d194f4e8eabe410e0d6a70657508cf1a3b1012543d91873c36f644afb5675d
+DIST pgbouncer-1.8.1.tar.gz 465930 BLAKE2B 692c551cb7bfb56bfe1b354791b06bdf61866197150a78a7fa9688891a2e4cd3c015abc5fbe33bf66dc85ab0ae83745f2db852eae91ae99596c97be0154e8bd5 SHA512 595a94db98866cec211f2b8c1ad13d209dba00e5fd41f2e9025aabdcb660194f0f772810270a1d9f067c3039c9fee630e8ff2d56f231935add17207aecc10bee
EBUILD pgbouncer-1.7.2.ebuild 1786 BLAKE2B 00dc4c138a598a44bed9fedd366eead98f0d0f560e3dd941cfd472989c88824f8193839732b146b989c2d0f906424155f8d7d7be530d8f3941c04fb540bf5201 SHA512 dabfa3936e5292c14d6aaf44489c4d8b530725328776ac207b90b2b0dbecf6a3767b858848eb3d94be8766cdc496584c5062dda25f2b291e2aec68c05cd29e98
-MISC metadata.xml 617 BLAKE2B d4e539b4dbf35b0be4c9435fb595464406e45dc23cf1b404bad47d5c81900560c66e23e9b8c222819220002c0503dd0fc20d7d04b56a01814fd4da9977cb4e65 SHA512 55348cd751a6d896a112a750609bcb2d68f1f2079eeb460f87a14eeff15c8bf70cd7da86d0e0fd81b6fbc704e6dbc17102a9d8a49e348cab6713e6b95815646d
+EBUILD pgbouncer-1.8.1.ebuild 1894 BLAKE2B 9ab35b90aead2714dbefaea801bfa13d9c3f83926124f368b39614edefa7f0e77e7c1321fc50aab884ddcdcf6a919dc32382676772ac5fd35b854286d7e85136 SHA512 84323f9ee97ff31a1ca8014aa3a1b90ae2dcb8382566192f3ab854ac0a461d46d513c5b592695b3a80c5866539dd5cf45316244b5898d85f38dd07ce64310059
+MISC metadata.xml 550 BLAKE2B 62cc3b07c70773656e24c6a90af4d0e19869f4472f3de01221b08a2361ba1c00080677f3bf07cf25734e280250821710e6281038b263cb4656790c7332cfe40a SHA512 7639d610c12de943d4b7c7b77e832a1e47865dc3deb934f9d23a2d521ea1c72a8c481dd9e3c1fbe5b88863e37e19a5a6229184791f4a0a04ef7989a91300bb7b
diff --git a/dev-db/pgbouncer/files/pgbouncer-1.8-dirs.patch b/dev-db/pgbouncer/files/pgbouncer-1.8-dirs.patch
new file mode 100644
index 000000000000..cc4d0634b6b3
--- /dev/null
+++ b/dev-db/pgbouncer/files/pgbouncer-1.8-dirs.patch
@@ -0,0 +1,32 @@
+diff -Naruw pgbouncer-1.8.orig/etc/pgbouncer.ini pgbouncer-1.8/etc/pgbouncer.ini
+--- pgbouncer-1.8.orig/etc/pgbouncer.ini 2017-12-18 11:03:18.000000000 -0500
++++ pgbouncer-1.8/etc/pgbouncer.ini 2017-12-20 06:48:25.935839539 -0500
+@@ -34,7 +34,9 @@
+ ;;;
+
+ logfile = /var/log/pgbouncer/pgbouncer.log
+-pidfile = /var/run/pgbouncer/pgbouncer.pid
++
++; Leave unset. This is handled in the initscript.
++;pidfile =
+
+ ;;;
+ ;;; Where to wait for clients
+@@ -44,11 +46,12 @@
+ listen_addr = 127.0.0.1
+ 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 is also used for -R (online restart), but the
++; initscripts can't do that. Generally, you'll want to leave these
++; alone. System-wide default is: /run/postgresql
++unix_socket_dir = /run/postgresql
++unix_socket_mode = 0777
++unix_socket_group = postgres
+
+ ;;;
+ ;;; TLS settings for accepting clients
diff --git a/dev-db/pgbouncer/files/pgbouncer.initd-r1 b/dev-db/pgbouncer/files/pgbouncer.initd-r1
new file mode 100755
index 000000000000..7392918593bb
--- /dev/null
+++ b/dev-db/pgbouncer/files/pgbouncer.initd-r1
@@ -0,0 +1,83 @@
+#!/sbin/openrc-run
+
+extra_started_commands="reload"
+
+PIDFILE="/run/pgbouncer.pid"
+
+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) }')
+}
+
+start_pre() {
+ local s="$(get_config unix_socket_dir)"
+
+ if [ -n "${s}" ] ; then
+ checkpath -o root:postgres -m 1775 -d "${s}" || return 1
+
+ local listen_port="$(get_config listen_port)"
+
+ if [ -e "${s%/}/.s.PGSQL.${listen_port}" ] ; then
+ eerror "Socket conflict."
+ eerror "A server is already listening on:"
+ eerror " ${s%/}/.s.PGSQL.${listen_port}"
+ eerror "HINT: Change listen_port in pgbouncer.ini to listen on a"
+ eerror "different socket."
+ return 1
+ fi
+ fi
+
+ 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"
+ [ -f ${PIDFILE} ] && rm ${PIDFILE}
+
+ start-stop-daemon --start \
+ --pidfile ${PIDFILE} \
+ --background \
+ --make-pidfile \
+ --user pgbouncer \
+ --exec /usr/bin/pgbouncer \
+ -- -q "${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 \
+ --user pgbouncer \
+ --pidfile ${PIDFILE} \
+ --retry ${retries}
+
+ eend $?
+}
+
+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
index 0d24afdb221a..29bfef0ab645 100644
--- a/dev-db/pgbouncer/metadata.xml
+++ b/dev-db/pgbouncer/metadata.xml
@@ -1,16 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <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>
- <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>
+ <maintainer type="project">
+ <email>pgsql-bugs@gentoo.org</email>
+ <name>PostgreSQL</name>
+ </maintainer>
+ <use>
+ <flag name="c-ares">
+ Use c-ares as the DNS backend instead of evdns (libevent).
+ </flag>
+ <flag name="libevent">Use libevent 2.0+ and evdns as the DNS backend</flag>
+ <flag name="udns">
+ Use udns as the DNS backend instead of evdns (libevent). Supports
+ IPv4 only.
+ </flag>
+ </use>
</pkgmetadata>
diff --git a/dev-db/pgbouncer/pgbouncer-1.8.1.ebuild b/dev-db/pgbouncer/pgbouncer-1.8.1.ebuild
new file mode 100644
index 000000000000..69a361cbeaeb
--- /dev/null
+++ b/dev-db/pgbouncer/pgbouncer-1.8.1.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit 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="+c-ares debug doc pam ssl -udns"
+
+# At-most-one-of, one can be enabled but not both
+REQUIRED_USE="?? ( c-ares udns )"
+
+RDEPEND="
+ >=dev-libs/libevent-2.0
+ >=sys-libs/glibc-2.10
+ c-ares? ( >=net-dns/c-ares-1.10 )
+ ssl? ( >=dev-libs/openssl-1.0.1:=[-bindist] )
+ udns? ( >=net-libs/udns-0.1 )
+"
+
+DEPEND="${RDEPEND}"
+
+pkg_setup() {
+ enewgroup postgres 70
+ enewuser postgres 70 /bin/bash /var/lib/postgresql postgres
+
+ enewuser pgbouncer -1 -1 -1 postgres
+}
+
+src_prepare() {
+ eapply "${FILESDIR}/pgbouncer-1.8-dirs.patch"
+
+ default
+}
+
+src_configure() {
+ # --enable-debug is only used to disable stripping
+ econf \
+ --docdir=/usr/share/doc/${PF} \
+ --enable-debug \
+ $(use_with c-ares cares) \
+ $(use_enable debug cassert) \
+ $(use_with pam) \
+ $(use_with ssl openssl) \
+ $(use_with udns)
+}
+
+src_test() {
+ cd "${S}/test"
+ emake
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dodoc AUTHORS
+ use doc && dodoc doc/*.rst
+
+ newconfd "${FILESDIR}/${PN}.confd" "${PN}"
+ newinitd "${FILESDIR}/${PN}.initd-r1" "${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
+}