forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Also fixes PIDFILE in init.d/conf.d to allow multi-instance operation Package-Manager: Portage-2.3.48, Repoman-2.3.10
- Loading branch information
1 parent
2fae7cb
commit f3013a2
Showing
4 changed files
with
183 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
DIST pgbouncer-1.8.1.tar.gz 465930 BLAKE2B 692c551cb7bfb56bfe1b354791b06bdf61866197150a78a7fa9688891a2e4cd3c015abc5fbe33bf66dc85ab0ae83745f2db852eae91ae99596c97be0154e8bd5 SHA512 595a94db98866cec211f2b8c1ad13d209dba00e5fd41f2e9025aabdcb660194f0f772810270a1d9f067c3039c9fee630e8ff2d56f231935add17207aecc10bee | ||
DIST pgbouncer-1.9.0.tar.gz 469300 BLAKE2B 466f171a49ec9ce9be9a9d3208780cfbff956da7c74ec4332c7104ea537cb47a5cfdc0d80bbd96d233769b6f430f1ad99b623caefa2dc93af7ba336dd0f49514 SHA512 b127f4cb60ca5cdf339da76727918f0a3797a3e0a89f8ed6fdcaa80f3391d2c5bb51e19731915775210c0e5070dd611ee2e410c9a947624e45b5cf11aecdacf9 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# Location of configuration file for PgBouncer. | ||
INIFILE="/etc/pgbouncer.ini" | ||
|
||
PIDFILE="/run/pgbouncer.pid" | ||
|
||
|
||
# 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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
#!/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) }') | ||
} | ||
|
||
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 $? | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
# Copyright 1999-2018 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-r1" "${PN}" | ||
newinitd "${FILESDIR}/${PN}.initd-r2" "${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 | ||
} |