summaryrefslogtreecommitdiff
path: root/dev-db/pgbouncer/pgbouncer-1.25.2.ebuild
blob: b29a90070d46182655dae9737f4d49047178ff2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# Copyright 2022-2026 BaldEagleOS Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8

inherit systemd

DESCRIPTION="Lightweight connection pooler for PostgreSQL"
HOMEPAGE="https://www.pgbouncer.org/"
SRC_URI="https://www.pgbouncer.org/downloads/files/${PV}/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="+c-ares debug doc libressl pam ssl systemd 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
	app-text/pandoc
	acct-user/pgbouncer
	c-ares? ( >=net-dns/c-ares-1.10 )
	ssl? (
		libressl? ( >=dev-libs/libressl-3.5.0:= )
		!libressl? ( >=dev-libs/openssl-1.0.1:=[-bindist(-)] )
	)
	systemd? ( sys-apps/systemd )
	udns? ( >=net-libs/udns-0.1 )
"

DEPEND="${RDEPEND}"

# Tests require a local database server, wants to fiddle with iptables,
# and doesn't support overriding.
RESTRICT="test"

src_prepare() {
	if use libressl; then
		eapply "${FILESDIR}"/pgbouncer-1.12-dirs.patch
		eapply "${FILESDIR}"/pgbouncer-1.16.1-libressl.patch
		eapply "${FILESDIR}"/lib_usual_tls_tls_compat_c.patch
	fi

	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 systemd) \
		$(use_with udns)
}

src_install() {
	emake DESTDIR="${D}" install

	dodoc AUTHORS
	use doc && dodoc doc/*.md

	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
}