blob: 68f31ccdc88e40dcdbc801f522fa10f897181b7a (
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
WANT_AUTOCONF="latest"
WANT_AUTOMAKE="none"
inherit eutils gnuconfig toolchain-funcs versionator autotools
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd"
DESCRIPTION="PostgreSQL libraries"
HOMEPAGE="http://www.postgresql.org/"
SRC_URI="mirror://postgresql/source/v${PV}/postgresql-base-${PV}.tar.bz2"
LICENSE="POSTGRESQL"
SLOT="$(get_version_component_range 1-2)"
# find . -name \*.po | xargs -n 1 basename | cut -d. -f1|sort|uniq|sed 's/^/linguas_/'
IUSE_LINGUAS="
linguas_cs linguas_de linguas_es linguas_fr linguas_hr linguas_hu
linguas_pt_BR linguas_ru linguas_sv linguas_tr linguas_zh_CN
linguas_zh_TW"
IUSE="doc kerberos nls pam pg-intdatetime readline ssl threads zlib eselect ${IUSE_LINGUAS}"
RESTRICT="test"
wanted_languages() {
for u in ${IUSE_LINGUAS} ; do
use $u && echo ${u#linguas_}
done
}
RDEPEND="kerberos? ( virtual/krb5 )
pam? ( virtual/pam )
readline? ( >=sys-libs/readline-4.1 )
ssl? ( >=dev-libs/openssl-0.9.6-r1 )
zlib? ( >=sys-libs/zlib-1.1.3 )
>=app-admin/eselect-postgresql-0.1
!<dev-db/libpq-99.99.99
"
DEPEND="${RDEPEND}
>=sys-devel/bison-1.875
nls? ( sys-devel/gettext )"
PDEPEND="doc? ( ~dev-db/postgresql-docs-${PV} )"
S="${WORKDIR}/postgresql-${PV}"
src_unpack() {
unpack ${A}
cd "${S}"
epatch "${FILESDIR}/postgresql-${SLOT}-nls.patch"
epatch "${FILESDIR}/postgresql-${SLOT}-libs.patch"
# to avoid collision - it only should be installed by server
rm "${S}/src/backend/nls.mk"
eautoconf
gnuconfig_update
}
src_compile() {
# TODO: test if PPC really cannot work with other CFLAGS settings
# use ppc && CFLAGS="-pipe -fsigned-char"
./configure --prefix=/usr/$(get_libdir)/postgresql-${SLOT} \
--datadir=/usr/share/postgresql-${SLOT} \
--sysconfdir=/etc/postgresql-${SLOT} \
--includedir=/usr/include/postgresql-${SLOT} \
--with-locale-dir=/usr/share/postgresql-${SLOT}/locale \
--mandir=/usr/share/postgresql-${SLOT}/man \
--host=${CHOST} \
--with-docdir=/usr/share/doc/${PF} \
--without-perl \
--without-python \
--without-tcl \
$(use_with kerberos krb5) \
"$(use_enable nls nls "$(wanted_languages)")" \
$(use_with pam) \
$(use_enable pg-intdatetime integer-datetimes ) \
$(use_with readline) \
$(use_with ssl openssl) \
$(use_enable threads thread-safety ) \
$(use_with zlib) \
|| die "configure failed"
emake LD="$(tc-getLD) $(get_abi_LDFLAGS)" || die "emake failed"
}
src_install() {
emake DESTDIR="${D}" install || die "emake install failed"
dodir /usr/share/postgresql-${SLOT}/man/man1
tar -zxf ${S}/doc/man.tar.gz -C "${D}"/usr/share/postgresql-${SLOT}/man man1/{ecpg,pg_config}.1
dodoc README HISTORY doc/{README.*,TODO,bug.template}
dodir /usr/lib/eselect-postgresql/slots/${SLOT}
{
echo "postgres_ebuilds=\"\${postgres_ebuilds} ${PF}\""
echo "postgres_bindir=/usr/$(get_libdir)/postgresql-${SLOT}/bin"
echo "postgres_symlinks=("
IDIR="/usr/include/postgresql-${SLOT}"
echo " " ${IDIR} /usr/include/postgresql
echo " " {${IDIR},/usr/include}/libpq-fe.h
echo " " {${IDIR},/usr/include}/libpq
echo " " {${IDIR},/usr/include}/postgres_ext.h
echo ")"
} >"${D}/usr/lib/eselect-postgresql/slots/${SLOT}/libs"
cat >"${T}/50postgresql-99-${SLOT}" <<-__EOF__
LDPATH=/usr/$(get_libdir)/postgresql-${SLOT}/$(get_libdir)
MANPATH=/usr/share/postgresql-${SLOT}/man
__EOF__
doenvd "${T}/50postgresql-99-${SLOT}"
}
pkg_setup() {
local ff=""
for f in "${ROOT}"/usr/include/{postgresql,libpq-fe.h,libpq,postgres_ext.h} ; do
[[ -e "${f}" ]] || continue
[[ -L "${f}" ]] && continue
if [[ -d "${f}" ]] ; then
if [[ -z "$(find "${f}" -not \( -type l -or -type d \))" ]] ; then
rm -rf "${f}"
else
ff="$ff $f"
fi
else
ff="$ff $f"
fi
done
if [[ ! -z "$ff" ]] ; then
eerror "You have leftovers from previous installations that can't be"
eerror "dealt with automatically. The proper way to treat files is:"
eerror ""
eerror "rm -rf ${ff}"
eerror ""
die "Please, remove the files manually"
fi
}
pkg_postinst() {
use eselect && eselect postgresql set ${SLOT}
eselect postgresql update
elog "If you need a global psqlrc-file, you can place it in '${ROOT}/etc/postgresql-${SLOT}/'."
}
pkg_prerm() {
[[ "$(eselect postgresql show)" = "${SLOT}" ]] && eselect postgresql reset
}
pkg_postrm() {
eselect postgresql update
}
|