Portage is a package management system used by Gentoo Linux
# ChangeLog for dev-db/pgcluster
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-db/pgcluster/ChangeLog,v 1.11 2008/08/05 16:38:11 ulm Exp $
05 Aug 2008; Ulrich Mueller
Add USE flag description to metadata wrt GLEP 56.
08 Aug 2007; Tiziano Müller
pgcluster-1.3.0c.ebuild:
Removed libg++ USE-flag
28 Apr 2007; Torsten Veller
Fix *initd, *confd and *envd calls (#173884, #174266)
04 Mar 2007; Marius Mauch
Replacing einfo with elog
10 Feb 2007; Tiziano Müller
pgcluster-1.3.0c.ebuild:
Changed tcltk USE-flag to tcl
29 Nov 2006; Tiziano Müller
-files/pgcluster.conf-1.3.0b, -files/pgcluster.init-1.3.0b,
-files/pglb.conf-1.3.0b, -files/pglb.init-1.3.0b,
-files/pgreplicate.conf-1.3.0b, -files/pgreplicate.init-1.3.0b,
-files/pgcluster-1.3.0b-gentoo.patch, -pgcluster-1.3.0b.ebuild:
Dropping old version.
05 Jul 2006; Michael Sterrett
pgcluster-1.3.0b.ebuild, pgcluster-1.3.0c.ebuild:
xml2 use flag changed to xml
16 Dec 2005; Diego Pettenò
pgcluster-1.3.0c.ebuild:
Remove --with-gnu-ld option, bug #108386.
24 Oct 2005; Masatomo Nakano
pgcluster-1.3.0c.ebuild:
Use emerge --config instead of ebuild ... config. #109482
*pgcluster-1.3.0c (10 May 2005)
10 May 2005; Masatomo Nakano
+files/pgcluster.conf-1.3.0c, +files/pgcluster.init-1.3.0c,
+files/pglb.conf-1.3.0c, +files/pglb.init-1.3.0c,
+files/pgreplicate.conf-1.3.0c, +files/pgreplicate.init-1.3.0c,
+files/pgcluster-1.3.0c-gentoo.patch, +pgcluster-1.3.0c.ebuild:
Version bump.
*pgcluster-1.3.0b (27 Feb 2005)
27 Feb 2005; Masatomo Nakano
+files/pgcluster-1.3.0b-gentoo.patch, +files/pgcluster.conf-1.3.0b,
+files/pgcluster.init-1.3.0b, +files/pglb.conf-1.3.0b,
+files/pglb.init-1.3.0b, +files/pgreplicate.conf-1.3.0b,
+files/pgreplicate.init-1.3.0b, +pgcluster-1.3.0b.ebuild:
Initial import.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
AUX pgcluster-1.3.0c-gentoo.patch 1853 RMD160 46bcbf7517e74b1faee2ee35eea734a996db5c37 SHA1 7362ee7dd26371c43b641736bc1b0174b7c0fec4 SHA256 1edeae52947f65f1a66e135661b2006d8689ac1aefe17fbe6ad8300a0e024ebf
AUX pgcluster.conf-1.3.0c 392 RMD160 3d48ef41b0cb2a7b5f99e429f346441f7ff31011 SHA1 7d9ceed937491e3003fa99c9df3737ea6ae20405 SHA256 6b0b7ab495bf9f7b7eae6d7247463067d620bdecc89f73ef4c5864482bd5c771
AUX pgcluster.init-1.3.0c 1701 RMD160 c16811b3d9bd32140a86175814630dcd2fbe5098 SHA1 1eacc2fdf6f80c6d6ac1467248d10850a09535f2 SHA256 5901e49bc8bbcf103b2d0d71197a3591d1ed45a21ac506edff3e7ac5cbb1ceba
AUX pglb.conf-1.3.0c 49 RMD160 e1d3565c4647af46f30d53f9fea8560f1a06c9ac SHA1 5e03b6c363aef4e69409a35cf479e0e40903968a SHA256 e1e4c4909980f540d9c4c67d7fa914aa9b7fa2ddc79bf5822e9652a5c3cb4807
AUX pglb.init-1.3.0c 510 RMD160 2c07d94dffccce24fbdcb56ce5bd625133454e6c SHA1 e158f8aaccbecc49b479e27d9dd809b833fe4918 SHA256 7f33d3a0529e6c11aa9063208785df2837032989051ba32abcfbb563371ae332
AUX pgreplicate.conf-1.3.0c 47 RMD160 04661fadcabba2db86ec8edb4083b92de350ba76 SHA1 2ccd68e45f61d1d48d16c8f19ece9807111a505c SHA256 a242f4b48c3bf0b2a1cb6dd16fb0b0426d2fe079444c8da55e20bddd16fb6d0a
AUX pgreplicate.init-1.3.0c 669 RMD160 8b7850cff156835f4808f1ad6a6517a63af909db SHA1 32ec4d0cc63e3501651cfa670e09e3521598b69d SHA256 b83fbf3fc3d86585ee08b2ea7df82fc492ffb39e8f03b1194901b6bb9210cc61
DIST pgcluster-1.3.0c.tar.gz 14104466 RMD160 c806c1b4714b10dc67597b03e021eea4a071d7d0 SHA1 f02cd187f6f00894ce0d8a26214c27ba62e2c9af SHA256 e0f60874dad0fa39816be7de9082170d626a4e855b1dfdfe7a2bcbcee2f41aac
EBUILD pgcluster-1.3.0c.ebuild 7671 RMD160 1c9a231231ade70a108d75b6b037e937a04dda1d SHA1 3f30103538d2672680a05f636e0cd1c2cb9c3d05 SHA256 ab81de93d6f6f132d8dda8dcb0935b098edc21421f2c188fead2ce49e0b6309f
MISC ChangeLog 2232 RMD160 f516406a373df3ad7389a94df800bf0360a94e2a SHA1 69e7531b98d2d5845cdd213276683b232b4efb1d SHA256 86c1aee08e37bedec415f35fa6a0e51755397dbee261009834f715d4183cb1ea
MISC metadata.xml 329 RMD160 3b8f9c5e1c05696380c649d2f4f6eb3f1d3b688b SHA1 d7d9e8fbd6a509c5016fc764ccc4239af8feb5b8 SHA256 d9eed0f3b1f204ace8472c343d526d6c949124b5fe5ab8174b2e555712b3e831
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAkiYggUACgkQOeoy/oIi7uxeHwCgi2QddUsB0cEz4ZKEub2Y5WsG
mZAAoLZNZul/p4sjiaU5QH5Oxj7JheaJ
=xLf5
-----END PGP SIGNATURE-----
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-db/pgcluster/pgcluster-1.3.0c.ebuild,v 1.10 2007/08/08 11:20:22 dev-zero Exp $
inherit eutils gnuconfig flag-o-matic multilib
DESCRIPTION="the synchronous replication system of the multi-master composition for PostgreSQL"
HOMEPAGE="http://www.csra.co.jp/~mitani/jpug/pgcluster/en/"
MY_PV=${PV/_/}
MY_P=${PN}-${MY_PV}
SRC_URI="http://pgfoundry.org/frs/download.php/218/${P}.tar.gz"
LICENSE="POSTGRESQL"
SLOT="0"
KEYWORDS="~x86 ~ppc ~sparc ~mips ~alpha ~arm ~hppa ~amd64 ~ia64 ~s390 ~ppc64"
IUSE="doc nls pam perl pg-intdatetime python readline ssl tcl xml zlib"
S=${WORKDIR}/${MY_P}
DEPEND="virtual/libc
sys-devel/autoconf
>=sys-libs/ncurses-5.2
>=sys-devel/bison-1.875
zlib? ( >=sys-libs/zlib-1.1.3 )
readline? ( >=sys-libs/readline-4.1 )
tcl? ( >=dev-lang/tcl-8 )
perl? ( >=dev-lang/perl-5.6.1-r2 )
python? ( >=dev-lang/python-2.2 dev-python/egenix-mx-base )
ssl? ( >=dev-libs/openssl-0.9.6-r1 )
xml? ( dev-libs/libxml2 dev-libs/libxslt dev-util/pkgconfig )
nls? ( sys-devel/gettext )"
RDEPEND="virtual/libc
zlib? ( >=sys-libs/zlib-1.1.3 )
tcl? ( >=dev-lang/tcl-8 )
perl? ( >=dev-lang/perl-5.6.1-r2 )
python? ( >=dev-lang/python-2.2 )
ssl? ( >=dev-libs/openssl-0.9.6-r1 )
xml? ( dev-libs/libxml2 dev-libs/libxslt )
!dev-db/postgresql"
PG_DIR="/var/lib/postgresql"
MAX_CONNECTIONS=1024
pkg_setup() {
if [ -f ${PG_DIR}/data/PG_VERSION ] ; then
PG_MAJOR=`cat ${PG_DIR}/data/PG_VERSION | cut -f1 -d.`
PG_MINOR=`cat ${PG_DIR}/data/PG_VERSION | cut -f2 -d.`
if [ ${PG_MAJOR} -lt 8 ] || [ ${PG_MAJOR} -eq 8 -a ${PG_MINOR} -lt 0 ] ; then
eerror "Postgres ${MY_PV} cannot upgrade your existing databases, you must"
eerror "use pg_dump to export your existing databases to a file, and then"
eerror "pg_restore to import them when you have upgraded completely."
eerror "You must remove your entire database directory to continue."
eerror "(database directory = ${PG_DIR})."
exit 1
fi
fi
}
src_unpack() {
unpack ${A} || die
epatch ${FILESDIR}/${P}-gentoo.patch
}
src_compile() {
filter-flags -ffast-math
local myconf
use tcl && myconf="--with-tcl"
use python && myconf="$myconf --with-python"
use perl && myconf="$myconf --with-perl"
use ssl && myconf="$myconf --with-openssl"
use nls && myconf="$myconf --enable-nls"
myconf="$myconf --with-CXX"
use pam && myconf="$myconf --with-pam"
use readline || myconf="$myconf --without-readline"
use zlib || myconf="$myconf --without-zlib"
use pg-intdatetime && myconf="$myconf --enable-integer-datetimes"
myconf="$myconf --enable-thread-safety"
# these are the only working CFLAGS I could get on ppc, so locking them
# down, anything more aggressive fails (i.e. -mcpu or -Ox)
# Gerk - Nov 26, 2002
use ppc && CFLAGS="-pipe -fsigned-char"
# Detect mips systems properly
gnuconfig_update
./configure --prefix=/usr \
--mandir=/usr/share/man \
--host=${CHOST} \
--with-docdir=/usr/share/doc/${PF} \
--libdir=/usr/$(get_libdir) \
--enable-depend \
--with-maxbackends=${MAX_CONNECTIONS} \
--sysconfdir=/etc \
$myconf || die
make || die
cd contrib
make || die
if use xml; then
cd xml2
make || die
fi
}
src_install() {
if use perl; then
mv ${S}/src/pl/plperl/Makefile ${S}/src/pl/plperl/Makefile_orig
sed -e "s:(INST_DYNAMIC) /usr/lib:(INST_DYNAMIC) ${D}/usr/lib:" \
${S}/src/pl/plperl/Makefile_orig > ${S}/src/pl/plperl/Makefile
mv ${S}/src/pl/plperl/GNUmakefile ${S}/src/pl/plperl/GNUmakefile_orig
sed -e "s:\$(DESTDIR)\$(plperl_installdir):\$(plperl_installdir):" \
${S}/src/pl/plperl/GNUmakefile_orig > ${S}/src/pl/plperl/GNUmakefile
fi
make DESTDIR=${D} LIBDIR=${D}/usr/lib install || die
# make DESTDIR=${D} install-all-headers || die
cd ${S}/contrib
make DESTDIR=${D} LIBDIR=${D}/usr/lib install || die
if use xml; then
cd ${S}/contrib/xml2
make DESTDIR=${D} LIBDIR=${D}/usr/lib install || die
fi
cd ${S}
# if use pg-hier; then
# dodoc ${WORKDIR}/README-${P_HIERPG}.html || die
# fi
dodoc README HISTORY COPYRIGHT INSTALL
dodoc contrib/adddepend/*
exeinto /usr/bin
dodir /usr/include/postgresql/pgsql
cp ${D}/usr/include/*.h ${D}/usr/include/postgresql/pgsql
cd ${S}/doc
dodoc FAQ* README.* TODO bug.template
if use doc; then
cd ${S}/doc
docinto FAQ_html || die
dodoc src/FAQ/* || die
docinto sgml || die
dodoc src/sgml/*.{sgml,dsl} || die
docinto sgml/ref || die
dodoc src/sgml/ref/*.sgml || die
docinto TODO.detail || die
dodoc TODO.detail/* || die
fi
mv ${D}/etc/pgcluster/pgreplicate.conf.sample \
${D}/etc/pgcluster/pgreplicate.conf
mv ${D}/etc/pgcluster/pglb.conf.sample \
${D}/etc/pgcluster/pglb.conf
cd ${S}
newinitd ${FILESDIR}/pgcluster.init-${PV} pgcluster || die
newinitd ${FILESDIR}/pglb.init-${PV} pglb || die
newinitd ${FILESDIR}/pgreplicate.init-${PV} pgreplicate || die
# newinitd ${FILESDIR}/pg_autovacuum.init-${PV} pg_autovacuum || die
dosed "s:___DOCDIR___:/usr/share/doc/${PF}:" /etc/init.d/pg_autovacuum
newconfd ${FILESDIR}/pgcluster.conf-${PV} pgcluster || die
newconfd ${FILESDIR}/pglb.conf-${PV} pglb || die
newconfd ${FILESDIR}/pgreplicate.conf-${PV} pgreplicate || die
# newconfd ${FILESDIR}/pg_autovacuum.conf-${PV} pg_autovacuum || die
keepdir $PG_DIR
keepdir /var/log/pgcluster
chown -Rf postgres:postgres ${D}/var/log/pgcluster
keepdir /var/lib/pgcluster
chown -Rf postgres:postgres ${D}/var/lib/pgcluster
chown -Rf postgres:postgres ${D}/etc/pgcluster
}
pkg_postinst() {
elog "Make sure the postgres user in /etc/passwd has an account setup with /bin/bash as the shell"
if [ ! -f ${PG_DIR}/data/PG_VERSION ] ; then
elog
elog "Execute the following command"
elog "emerge --config =${PF}"
elog "to setup the initial database environment."
fi
elog
elog "Python modules was removed from PostgreSQL package."
elog "If you need it, please run \"emerge dev-db/pygresql\"."
elog
}
pkg_config() {
einfo "Creating the data directory ..."
mkdir -p ${PG_DIR}/data
chown -Rf postgres:postgres ${PG_DIR}
chmod 700 ${PG_DIR}/data
einfo "Initializing the database ..."
if [ -f ${PG_DIR}/data/PG_VERSION ] ; then
eerror "Pgcluster ${MY_PV} cannot upgrade your existing databases."
eerror "You must remove your entire database directory to continue."
eerror "(database directory = ${PG_DIR})."
exit 1
else
local SEM=`sysctl -n kernel.sem | cut -f-3`
local SEMMNI=`sysctl -n kernel.sem | cut -f4`
local SEMMNI_MIN=`expr \( ${MAX_CONNECTIONS} + 15 \) / 16`
local SHMMAX=`sysctl -n kernel.shmmax`
local SHMMAX_MIN=134217728 # 128M
if [ ${SEMMNI} -lt ${SEMMNI_MIN} ]; then
eerror "The current value of SEMMNI is too low"
eerror "for postgresql to run ${MAX_CONNECTIONS} connections"
eerror "Temporary setting this value to ${SEMMNI_MIN} while creating the initial database."
echo ${SEM} ${SEMMNI_MIN} > /proc/sys/kernel/sem
fi
su postgres -c "/usr/bin/initdb --pgdata ${PG_DIR}/data"
if [ ! `sysctl -n kernel.sem | cut -f4` -eq ${SEMMNI} ] ; then
echo ${SEM} ${SEMMNI} > /proc/sys/kernel/sem
ewarn "Restoring the SEMMNI value to the previous value"
ewarn "Please edit the last value of kernel.sem in /etc/sysctl.conf"
ewarn "and set it to at least ${SEMMNI_MIN}"
ewarn
ewarn " kernel.sem = ${SEM} ${SEMMNI_MIN}"
ewarn
fi
if [ ${SHMMAX} -lt ${SHMMAX_MIN} ]; then
eerror "The current value of SHMMAX is too low for postgresql to run."
eerror "Please edit /etc/sysctl.conf and set this value to at least ${SHMMAX_MIN}."
eerror
eerror " kernel.shmmax = ${SHMMAX_MIN}"
eerror
fi
fi
}