Ebuilds de Postgres 8.1
This commit is contained in:
parent
d8d14bf137
commit
415a580352
15 changed files with 1662 additions and 0 deletions
7
dev-db/postgresql-base/Manifest
Normal file
7
dev-db/postgresql-base/Manifest
Normal file
|
@ -0,0 +1,7 @@
|
|||
AUX postgresql-8.1-base.patch 3846 RMD160 93f3b396158a03a7d4c9c2dc098491b349d24a91 SHA1 45e4a43039cfb683012653e6bf343e89f9d86415 SHA256 a4877b46d6c4f3421d8593973196862cf1790d7dce8485f207e0563531118d12
|
||||
AUX postgresql-8.1-common.patch 2290 RMD160 ba1f803b045a8d3f430231b0c22b8817e2eb8cf6 SHA1 facf27b2c396fe9f2347eb4cec3b2714a8587b70 SHA256 f80c8dd5a31b88df330c15de4331db1600ae078a789650ab28d61620f27056f5
|
||||
AUX postgresql-8.x-relax_ssl_perms.patch 764 RMD160 d1ce5164779c0b0c9229dc13d2eebe6b8c960616 SHA1 f28af41e549bbe3a0b4b8669a2762f71bf3e8a9e SHA256 98bc99954521db083320bd9a6b3a0a5d6eb960af3699527c16e53c567e22394a
|
||||
DIST postgresql-8.1.22.tar.bz2 11905401 RMD160 d3429d35d63933b9ec052c4e4ef94cc898de77d8 SHA1 019602660b4184402f77004e03ab178a8de99745 SHA256 a01e6baa2ee08868f5318cdaec592d8ca68b5a8ef956b8304a07b3a1c208fefc
|
||||
DIST postgresql-8.1.23.tar.bz2 11920401 RMD160 cb2c9572ecefe49303e49f458116d51d3f1e6c36 SHA1 418b8c2e5a076e2e3c3e28455ee16b6550210352 SHA256 5a79eb814b4933f95deb704dfbbd6e1966b520ec12b8f4b48bcea9c3266c10ea
|
||||
EBUILD postgresql-base-8.1.22.ebuild 4466 RMD160 87d46bff5a065227303f9505835614149368b8aa SHA1 d4b7596d5957d2f356ce5d26966a0d41f859ca56 SHA256 73e3bd970c58bb555ef59f62a520f27efd9109c815196f93a8cbb3b2ae6aa30a
|
||||
EBUILD postgresql-base-8.1.23.ebuild 4476 RMD160 d380592cf81ffaeb809b4afe0ad7580a806f4e00 SHA1 6e5f612f66b3493b9f622df75e9c335bef51772a SHA256 bed4ecf857f5ba98a2a264ce25870570701a02d7d2fbdb1d6f71a21b620ff633
|
132
dev-db/postgresql-base/files/postgresql-8.1-base.patch
Normal file
132
dev-db/postgresql-base/files/postgresql-8.1-base.patch
Normal file
|
@ -0,0 +1,132 @@
|
|||
=== contrib/Makefile
|
||||
==================================================================
|
||||
--- contrib/Makefile (revision 10)
|
||||
+++ contrib/Makefile (local)
|
||||
@@ -5,32 +5,8 @@
|
||||
include $(top_builddir)/src/Makefile.global
|
||||
|
||||
WANTED_DIRS = \
|
||||
- btree_gist \
|
||||
- chkpass \
|
||||
- cube \
|
||||
- dbase \
|
||||
- dblink \
|
||||
- dbmirror \
|
||||
- earthdistance \
|
||||
- fulltextindex \
|
||||
- fuzzystrmatch \
|
||||
- intagg \
|
||||
- intarray \
|
||||
- isbn_issn \
|
||||
- lo \
|
||||
- ltree \
|
||||
oid2name \
|
||||
- pg_buffercache \
|
||||
- pg_trgm \
|
||||
pgbench \
|
||||
- pgcrypto \
|
||||
- pgstattuple \
|
||||
- seg \
|
||||
- spi \
|
||||
- tablefunc \
|
||||
- tips \
|
||||
- tsearch2 \
|
||||
- userlock \
|
||||
vacuumlo
|
||||
|
||||
# Missing:
|
||||
=== src/Makefile
|
||||
==================================================================
|
||||
--- src/Makefile (revision 10)
|
||||
+++ src/Makefile (local)
|
||||
@@ -15,15 +15,11 @@
|
||||
|
||||
all install installdirs uninstall dep depend distprep:
|
||||
$(MAKE) -C port $@
|
||||
- $(MAKE) -C timezone $@
|
||||
$(MAKE) -C backend $@
|
||||
- $(MAKE) -C backend/utils/mb/conversion_procs $@
|
||||
$(MAKE) -C include $@
|
||||
$(MAKE) -C interfaces $@
|
||||
$(MAKE) -C bin $@
|
||||
- $(MAKE) -C pl $@
|
||||
$(MAKE) -C makefiles $@
|
||||
- $(MAKE) -C utils $@
|
||||
|
||||
install: install-local
|
||||
|
||||
=== src/backend/Makefile
|
||||
==================================================================
|
||||
--- src/backend/Makefile (revision 10)
|
||||
+++ src/backend/Makefile (local)
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
##########################################################################
|
||||
|
||||
-all: submake-libpgport postgres $(POSTGRES_IMP)
|
||||
+all: someheaders
|
||||
|
||||
ifneq ($(PORTNAME), cygwin)
|
||||
ifneq ($(PORTNAME), win32)
|
||||
@@ -106,8 +106,7 @@
|
||||
|
||||
.PHONY: $(DIRS:%=%-recursive)
|
||||
# Update the commonly used headers before building the subdirectories
|
||||
-$(DIRS:%=%-recursive): $(top_builddir)/src/include/parser/parse.h $(top_builddir)/src/include/utils/fmgroids.h
|
||||
- $(MAKE) -C $(subst -recursive,,$@) all
|
||||
+someheaders $(DIRS:%=%-recursive): $(top_builddir)/src/include/parser/parse.h $(top_builddir)/src/include/utils/fmgroids.h
|
||||
|
||||
|
||||
$(DLLINIT): $(DLLINIT:%.o=%.c)
|
||||
@@ -153,22 +152,7 @@
|
||||
|
||||
##########################################################################
|
||||
|
||||
-install: all installdirs install-bin
|
||||
-ifeq ($(PORTNAME), cygwin)
|
||||
-ifeq ($(MAKE_DLL), true)
|
||||
- $(INSTALL_DATA) libpostgres.a $(DESTDIR)$(libdir)/libpostgres.a
|
||||
-endif
|
||||
-endif
|
||||
-ifeq ($(PORTNAME), win32)
|
||||
-ifeq ($(MAKE_DLL), true)
|
||||
- $(INSTALL_DATA) libpostgres.a $(DESTDIR)$(libdir)/libpostgres.a
|
||||
-endif
|
||||
-endif
|
||||
- $(MAKE) -C catalog install-data
|
||||
- $(INSTALL_DATA) $(srcdir)/libpq/pg_hba.conf.sample $(DESTDIR)$(datadir)/pg_hba.conf.sample
|
||||
- $(INSTALL_DATA) $(srcdir)/libpq/pg_ident.conf.sample $(DESTDIR)$(datadir)/pg_ident.conf.sample
|
||||
- $(INSTALL_DATA) $(srcdir)/utils/misc/postgresql.conf.sample $(DESTDIR)$(datadir)/postgresql.conf.sample
|
||||
- $(INSTALL_DATA) $(srcdir)/access/transam/recovery.conf.sample $(DESTDIR)$(datadir)/recovery.conf.sample
|
||||
+install:
|
||||
|
||||
install-bin: postgres $(POSTGRES_IMP) installdirs
|
||||
$(INSTALL_PROGRAM) postgres$(X) $(DESTDIR)$(bindir)/postgres$(X)
|
||||
=== src/bin/Makefile
|
||||
==================================================================
|
||||
--- src/bin/Makefile (revision 10)
|
||||
+++ src/bin/Makefile (local)
|
||||
@@ -13,8 +13,8 @@
|
||||
top_builddir = ../..
|
||||
include $(top_builddir)/src/Makefile.global
|
||||
|
||||
-DIRS := initdb ipcclean pg_ctl pg_dump \
|
||||
- psql scripts pg_config pg_controldata pg_resetxlog
|
||||
+DIRS := pg_dump \
|
||||
+ psql scripts pg_config
|
||||
ifeq ($(PORTNAME), win32)
|
||||
DIRS+=pgevent
|
||||
endif
|
||||
=== src/include/pg_config_manual.h
|
||||
==================================================================
|
||||
--- src/include/pg_config_manual.h (revision 10)
|
||||
+++ src/include/pg_config_manual.h (local)
|
||||
@@ -175,7 +175,7 @@
|
||||
* here's where to twiddle it. You can also override this at runtime
|
||||
* with the postmaster's -k switch.
|
||||
*/
|
||||
-#define DEFAULT_PGSOCKET_DIR "/tmp"
|
||||
+#define DEFAULT_PGSOCKET_DIR "/var/run/postgresql"
|
||||
|
||||
/*
|
||||
* The random() function is expected to yield values between 0 and
|
74
dev-db/postgresql-base/files/postgresql-8.1-common.patch
Normal file
74
dev-db/postgresql-base/files/postgresql-8.1-common.patch
Normal file
|
@ -0,0 +1,74 @@
|
|||
diff --git a/config/programs.m4 b/config/programs.m4
|
||||
index 3f87396..9c7fbf0 100644
|
||||
--- a/config/programs.m4
|
||||
+++ b/config/programs.m4
|
||||
@@ -153,13 +153,13 @@ AC_DEFUN([PGAC_CHECK_GETTEXT],
|
||||
dnl FIXME: We should probably check for version >=0.10.36.
|
||||
AC_CHECK_PROGS(XGETTEXT, xgettext)
|
||||
|
||||
- # Note: share/locale is always the default, independent of $datadir
|
||||
- localedir='${prefix}/share/locale'
|
||||
- if test x"$prefix" = x"NONE"; then
|
||||
- exp_localedir="$ac_default_prefix/share/locale"
|
||||
- else
|
||||
- exp_localedir="$prefix/share/locale"
|
||||
- fi
|
||||
+ # Note: share/locale *WAS* always the default, independent of $datadir
|
||||
+ AC_ARG_WITH([locale-dir],
|
||||
+ AC_HELP_STRING([--with-locale-dir],[Set path to locale files]),
|
||||
+ [ localedir="${withval}" ],
|
||||
+ [ localedir='${prefix}/share/locale' ]
|
||||
+ )
|
||||
+ exp_localedir="${localedir}"
|
||||
|
||||
AC_SUBST(localedir)
|
||||
AC_DEFINE_UNQUOTED(LOCALEDIR, ["$exp_localedir"],
|
||||
diff --git a/configure.in b/configure.in
|
||||
index d071f00..b203648 100644
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -19,10 +19,6 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
|
||||
|
||||
AC_INIT([PostgreSQL], [8.1.11], [pgsql-bugs@postgresql.org])
|
||||
|
||||
-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.59], [], [m4_fatal([Autoconf version 2.59 is required.
|
||||
-Untested combinations of 'autoconf' and PostgreSQL versions are not
|
||||
-recommended. You can remove the check from 'configure.in' but it is then
|
||||
-your responsibility whether the result works or not.])])
|
||||
AC_COPYRIGHT([Copyright (c) 1996-2005, PostgreSQL Global Development Group])
|
||||
AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
|
||||
AC_CONFIG_AUX_DIR(config)
|
||||
diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
|
||||
index c5731fd..8ec70b4 100644
|
||||
--- a/src/include/storage/s_lock.h
|
||||
+++ b/src/include/storage/s_lock.h
|
||||
@@ -299,6 +299,29 @@ tas(volatile slock_t *lock)
|
||||
|
||||
#endif /* __s390__ || __s390x__ */
|
||||
|
||||
+#if defined(__sh__)
|
||||
+#define HAS_TEST_AND_SET
|
||||
+
|
||||
+typedef unsigned char slock_t;
|
||||
+
|
||||
+#define TAS(lock) tas(lock)
|
||||
+
|
||||
+static __inline__ int
|
||||
+tas(volatile slock_t *lock)
|
||||
+{
|
||||
+ register int _res = 1;
|
||||
+
|
||||
+ __asm__ __volatile__(
|
||||
+ "tas.b @%1\n\t"
|
||||
+ "movt %0\n\t"
|
||||
+ "xor #1,%0"
|
||||
+: "=z"(_res)
|
||||
+: "r"(lock)
|
||||
+: "t","memory");
|
||||
+ return _res;
|
||||
+}
|
||||
+
|
||||
+#endif /* __sh__ */
|
||||
|
||||
#if defined(__sparc__)
|
||||
#define HAS_TEST_AND_SET
|
|
@ -0,0 +1,14 @@
|
|||
diff -ur postgresql-8.0.15.orig/src/backend/libpq/be-secure.c postgresql-8.0.15/src/backend/libpq/be-secure.c
|
||||
--- postgresql-8.0.15.orig/src/backend/libpq/be-secure.c 2008-02-21 04:06:04.334289203 +0100
|
||||
+++ postgresql-8.0.15/src/backend/libpq/be-secure.c 2008-02-21 04:08:47.309426324 +0100
|
||||
@@ -737,8 +737,8 @@
|
||||
* data directory permission check in postmaster.c)
|
||||
*/
|
||||
#if !defined(WIN32) && !defined(__CYGWIN__)
|
||||
- if (!S_ISREG(buf.st_mode) || (buf.st_mode & (S_IRWXG | S_IRWXO)) ||
|
||||
- buf.st_uid != geteuid())
|
||||
+ if (!S_ISREG(buf.st_mode) || (buf.st_mode & (S_IWGRP | S_IRWXO)) ||
|
||||
+ (buf.st_uid != geteuid()) && buf.st_uid != 0)
|
||||
ereport(FATAL,
|
||||
(errcode(ERRCODE_CONFIG_FILE_ERROR),
|
||||
errmsg("unsafe permissions on private key file \"%s\"",
|
144
dev-db/postgresql-base/postgresql-base-8.1.22.ebuild
Normal file
144
dev-db/postgresql-base/postgresql-base-8.1.22.ebuild
Normal file
|
@ -0,0 +1,144 @@
|
|||
# Copyright 1999-2011 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-db/postgresql-base/Attic/postgresql-base-8.1.22.ebuild,v 1.8 2011/01/08 12:54:03 armin76 Exp $
|
||||
|
||||
EAPI="2"
|
||||
|
||||
WANT_AUTOMAKE="none"
|
||||
|
||||
inherit eutils multilib versionator autotools
|
||||
|
||||
KEYWORDS="alpha amd64 arm hppa ia64 ppc s390 sh sparc x86"
|
||||
|
||||
DESCRIPTION="PostgreSQL libraries and clients"
|
||||
HOMEPAGE="http://www.postgresql.org/"
|
||||
SRC_URI="mirror://postgresql/source/v${PV}/postgresql-${PV}.tar.bz2"
|
||||
LICENSE="POSTGRESQL"
|
||||
SLOT="$(get_version_component_range 1-2)"
|
||||
IUSE_LINGUAS="
|
||||
linguas_af linguas_cs linguas_de linguas_es linguas_fa linguas_fr
|
||||
linguas_hr linguas_hu linguas_it linguas_ko linguas_nb linguas_pl
|
||||
linguas_pt_BR linguas_ro linguas_ru linguas_sk linguas_sl linguas_sv
|
||||
linguas_tr linguas_zh_CN linguas_zh_TW"
|
||||
IUSE="doc kerberos nls pam pg-intdatetime readline ssl threads zlib ${IUSE_LINGUAS}"
|
||||
RESTRICT="test"
|
||||
|
||||
wanted_languages() {
|
||||
for u in ${IUSE_LINGUAS} ; do
|
||||
use $u && echo -n "${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.3
|
||||
virtual/libintl
|
||||
!!dev-db/postgresql-libs
|
||||
!!dev-db/postgresql-client
|
||||
!!dev-db/libpq
|
||||
!!dev-db/postgresql"
|
||||
DEPEND="${RDEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-devel/bison-1.875
|
||||
nls? ( sys-devel/gettext )"
|
||||
PDEPEND="doc? ( ~dev-db/postgresql-docs-${PV} )"
|
||||
|
||||
S="${WORKDIR}/postgresql-${PV}"
|
||||
|
||||
src_prepare() {
|
||||
|
||||
epatch "${FILESDIR}/postgresql-${SLOT}-common.patch" \
|
||||
"${FILESDIR}/postgresql-${SLOT}-base.patch" \
|
||||
"${FILESDIR}/postgresql-8.x-relax_ssl_perms.patch"
|
||||
|
||||
# to avoid collision - it only should be installed by server
|
||||
rm "${S}/src/backend/nls.mk"
|
||||
|
||||
# because psql/help.c includes the file
|
||||
ln -s "${S}/src/include/libpq/pqsignal.h" "${S}/src/bin/psql/"
|
||||
|
||||
eautoconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
export LDFLAGS_SL="${LDFLAGS}"
|
||||
econf --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 \
|
||||
--without-docdir \
|
||||
--without-tcl \
|
||||
--without-perl \
|
||||
--without-python \
|
||||
$(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"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake || die "emake failed"
|
||||
|
||||
cd "${S}/contrib"
|
||||
emake || die "emake failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install || die "emake install failed"
|
||||
insinto /usr/include/postgresql-${SLOT}/postmaster
|
||||
doins "${S}"/src/include/postmaster/*.h
|
||||
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
|
||||
|
||||
rm "${D}/usr/share/postgresql-${SLOT}/man/man1"/{initdb,ipcclean,pg_controldata,pg_ctl,pg_resetxlog,pg_restore,postgres,postmaster}.1
|
||||
dodoc README HISTORY doc/{README.*,TODO,bug.template}
|
||||
|
||||
cd "${S}/contrib"
|
||||
emake DESTDIR="${D}" install || die "emake install failed"
|
||||
cd "${S}"
|
||||
|
||||
dodir /etc/eselect/postgresql/slots/${SLOT}
|
||||
|
||||
IDIR="/usr/include/postgresql-${SLOT}"
|
||||
cat > "${D}/etc/eselect/postgresql/slots/${SLOT}/base" <<-__EOF__
|
||||
postgres_ebuilds="\${postgres_ebuilds} ${PF}"
|
||||
postgres_prefix=/usr/$(get_libdir)/postgresql-${SLOT}
|
||||
postgres_datadir=/usr/share/postgresql-${SLOT}
|
||||
postgres_bindir=/usr/$(get_libdir)/postgresql-${SLOT}/bin
|
||||
postgres_symlinks=(
|
||||
${IDIR} /usr/include/postgresql
|
||||
${IDIR}/libpq-fe.h /usr/include/libpq-fe.h
|
||||
${IDIR}/pg_config_manual.h /usr/include/pg_config_manual.h
|
||||
${IDIR}/libpq /usr/include/libpq
|
||||
${IDIR}/postgres_ext.h /usr/include/postgres_ext.h
|
||||
)
|
||||
__EOF__
|
||||
|
||||
cat >"${T}/50postgresql-96-${SLOT}" <<-__EOF__
|
||||
LDPATH=/usr/$(get_libdir)/postgresql-${SLOT}/$(get_libdir)
|
||||
MANPATH=/usr/share/postgresql-${SLOT}/man
|
||||
__EOF__
|
||||
doenvd "${T}/50postgresql-96-${SLOT}"
|
||||
|
||||
keepdir /etc/postgresql-${SLOT}
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect postgresql update
|
||||
[[ "$(eselect postgresql show)" = "(none)" ]] && eselect postgresql set ${SLOT}
|
||||
elog "If you need a global psqlrc-file, you can place it in '${ROOT}/etc/postgresql-${SLOT}/'."
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect postgresql update
|
||||
}
|
144
dev-db/postgresql-base/postgresql-base-8.1.23.ebuild
Normal file
144
dev-db/postgresql-base/postgresql-base-8.1.23.ebuild
Normal file
|
@ -0,0 +1,144 @@
|
|||
# Copyright 1999-2011 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-db/postgresql-base/Attic/postgresql-base-8.1.23.ebuild,v 1.1 2011/01/06 12:23:35 patrick Exp $
|
||||
|
||||
EAPI="2"
|
||||
|
||||
WANT_AUTOMAKE="none"
|
||||
|
||||
inherit eutils multilib versionator autotools
|
||||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~s390 ~sh ~sparc ~x86"
|
||||
|
||||
DESCRIPTION="PostgreSQL libraries and clients"
|
||||
HOMEPAGE="http://www.postgresql.org/"
|
||||
SRC_URI="mirror://postgresql/source/v${PV}/postgresql-${PV}.tar.bz2"
|
||||
LICENSE="POSTGRESQL"
|
||||
SLOT="$(get_version_component_range 1-2)"
|
||||
IUSE_LINGUAS="
|
||||
linguas_af linguas_cs linguas_de linguas_es linguas_fa linguas_fr
|
||||
linguas_hr linguas_hu linguas_it linguas_ko linguas_nb linguas_pl
|
||||
linguas_pt_BR linguas_ro linguas_ru linguas_sk linguas_sl linguas_sv
|
||||
linguas_tr linguas_zh_CN linguas_zh_TW"
|
||||
IUSE="doc kerberos nls pam pg-intdatetime readline ssl threads zlib ${IUSE_LINGUAS}"
|
||||
RESTRICT="test"
|
||||
|
||||
wanted_languages() {
|
||||
for u in ${IUSE_LINGUAS} ; do
|
||||
use $u && echo -n "${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.3
|
||||
virtual/libintl
|
||||
!!dev-db/postgresql-libs
|
||||
!!dev-db/postgresql-client
|
||||
!!dev-db/libpq
|
||||
!!dev-db/postgresql"
|
||||
DEPEND="${RDEPEND}
|
||||
sys-devel/flex
|
||||
>=sys-devel/bison-1.875
|
||||
nls? ( sys-devel/gettext )"
|
||||
PDEPEND="doc? ( ~dev-db/postgresql-docs-${PV} )"
|
||||
|
||||
S="${WORKDIR}/postgresql-${PV}"
|
||||
|
||||
src_prepare() {
|
||||
|
||||
epatch "${FILESDIR}/postgresql-${SLOT}-common.patch" \
|
||||
"${FILESDIR}/postgresql-${SLOT}-base.patch" \
|
||||
"${FILESDIR}/postgresql-8.x-relax_ssl_perms.patch"
|
||||
|
||||
# to avoid collision - it only should be installed by server
|
||||
rm "${S}/src/backend/nls.mk"
|
||||
|
||||
# because psql/help.c includes the file
|
||||
ln -s "${S}/src/include/libpq/pqsignal.h" "${S}/src/bin/psql/"
|
||||
|
||||
eautoconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
export LDFLAGS_SL="${LDFLAGS}"
|
||||
econf --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 \
|
||||
--without-docdir \
|
||||
--without-tcl \
|
||||
--without-perl \
|
||||
--without-python \
|
||||
$(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"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake || die "emake failed"
|
||||
|
||||
cd "${S}/contrib"
|
||||
emake || die "emake failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install || die "emake install failed"
|
||||
insinto /usr/include/postgresql-${SLOT}/postmaster
|
||||
doins "${S}"/src/include/postmaster/*.h
|
||||
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
|
||||
|
||||
rm "${D}/usr/share/postgresql-${SLOT}/man/man1"/{initdb,ipcclean,pg_controldata,pg_ctl,pg_resetxlog,pg_restore,postgres,postmaster}.1
|
||||
dodoc README HISTORY doc/{README.*,TODO,bug.template}
|
||||
|
||||
cd "${S}/contrib"
|
||||
emake DESTDIR="${D}" install || die "emake install failed"
|
||||
cd "${S}"
|
||||
|
||||
dodir /etc/eselect/postgresql/slots/${SLOT}
|
||||
|
||||
IDIR="/usr/include/postgresql-${SLOT}"
|
||||
cat > "${D}/etc/eselect/postgresql/slots/${SLOT}/base" <<-__EOF__
|
||||
postgres_ebuilds="\${postgres_ebuilds} ${PF}"
|
||||
postgres_prefix=/usr/$(get_libdir)/postgresql-${SLOT}
|
||||
postgres_datadir=/usr/share/postgresql-${SLOT}
|
||||
postgres_bindir=/usr/$(get_libdir)/postgresql-${SLOT}/bin
|
||||
postgres_symlinks=(
|
||||
${IDIR} /usr/include/postgresql
|
||||
${IDIR}/libpq-fe.h /usr/include/libpq-fe.h
|
||||
${IDIR}/pg_config_manual.h /usr/include/pg_config_manual.h
|
||||
${IDIR}/libpq /usr/include/libpq
|
||||
${IDIR}/postgres_ext.h /usr/include/postgres_ext.h
|
||||
)
|
||||
__EOF__
|
||||
|
||||
cat >"${T}/50postgresql-96-${SLOT}" <<-__EOF__
|
||||
LDPATH=/usr/$(get_libdir)/postgresql-${SLOT}/$(get_libdir)
|
||||
MANPATH=/usr/share/postgresql-${SLOT}/man
|
||||
__EOF__
|
||||
doenvd "${T}/50postgresql-96-${SLOT}"
|
||||
|
||||
keepdir /etc/postgresql-${SLOT}
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect postgresql update
|
||||
[[ "$(eselect postgresql show)" = "(none)" ]] && eselect postgresql set ${SLOT}
|
||||
elog "If you need a global psqlrc-file, you can place it in '${ROOT}/etc/postgresql-${SLOT}/'."
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect postgresql update
|
||||
}
|
4
dev-db/postgresql-server/Manifest
Normal file
4
dev-db/postgresql-server/Manifest
Normal file
|
@ -0,0 +1,4 @@
|
|||
DIST postgresql-9.1.1.tar.bz2 14884071 RMD160 294c0e04bebcf07fa88fb5d5e5837c99f736edd3 SHA1 4df7b6f6b23acdac5ea198e3623796a2b62fc7a4 SHA256 c794016bcf3fc1f561bc86796c6c9d050e3d8d2d55356515126e048275ae56f2
|
||||
DIST postgresql-initscript-1.2.tbz2 2776 RMD160 137a737c928a73886192c822fe31be18e9ee0b85 SHA1 9140008e07c0c71e0fdbc8c2f6d40ab729d094a3 SHA256 19600139714738552e4b6880f6349df27b275814c62954103f20984b607e357f
|
||||
DIST postgresql-patches-9.1.tbz2 4563 RMD160 1516ee0d26fffe5e275428d08ba926bad9b45407 SHA1 5ff25d423386b476c60bbccfda93b82bfc5e5cc9 SHA256 be0dc8be6029443c9de31b61002c128447d53f8fb4b05e89b86d900ced647c16
|
||||
EBUILD postgresql-server-9.1.1.ebuild 10782 RMD160 24a14e9e3f9bba48d8b0ecfbb14d685271c75ded SHA1 9276084f103f12134ac076ac91eac43d7ebdf7b4 SHA256 42899db043b1f0f8bf415bbbc79b30dcdd0a84ddc75c15bc96a7b46e0e8f6f46
|
74
dev-db/postgresql-server/files/postgresql-8.1-common.patch
Normal file
74
dev-db/postgresql-server/files/postgresql-8.1-common.patch
Normal file
|
@ -0,0 +1,74 @@
|
|||
diff --git a/config/programs.m4 b/config/programs.m4
|
||||
index 3f87396..9c7fbf0 100644
|
||||
--- a/config/programs.m4
|
||||
+++ b/config/programs.m4
|
||||
@@ -153,13 +153,13 @@ AC_DEFUN([PGAC_CHECK_GETTEXT],
|
||||
dnl FIXME: We should probably check for version >=0.10.36.
|
||||
AC_CHECK_PROGS(XGETTEXT, xgettext)
|
||||
|
||||
- # Note: share/locale is always the default, independent of $datadir
|
||||
- localedir='${prefix}/share/locale'
|
||||
- if test x"$prefix" = x"NONE"; then
|
||||
- exp_localedir="$ac_default_prefix/share/locale"
|
||||
- else
|
||||
- exp_localedir="$prefix/share/locale"
|
||||
- fi
|
||||
+ # Note: share/locale *WAS* always the default, independent of $datadir
|
||||
+ AC_ARG_WITH([locale-dir],
|
||||
+ AC_HELP_STRING([--with-locale-dir],[Set path to locale files]),
|
||||
+ [ localedir="${withval}" ],
|
||||
+ [ localedir='${prefix}/share/locale' ]
|
||||
+ )
|
||||
+ exp_localedir="${localedir}"
|
||||
|
||||
AC_SUBST(localedir)
|
||||
AC_DEFINE_UNQUOTED(LOCALEDIR, ["$exp_localedir"],
|
||||
diff --git a/configure.in b/configure.in
|
||||
index d071f00..b203648 100644
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -19,10 +19,6 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
|
||||
|
||||
AC_INIT([PostgreSQL], [8.1.11], [pgsql-bugs@postgresql.org])
|
||||
|
||||
-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.59], [], [m4_fatal([Autoconf version 2.59 is required.
|
||||
-Untested combinations of 'autoconf' and PostgreSQL versions are not
|
||||
-recommended. You can remove the check from 'configure.in' but it is then
|
||||
-your responsibility whether the result works or not.])])
|
||||
AC_COPYRIGHT([Copyright (c) 1996-2005, PostgreSQL Global Development Group])
|
||||
AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
|
||||
AC_CONFIG_AUX_DIR(config)
|
||||
diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
|
||||
index c5731fd..8ec70b4 100644
|
||||
--- a/src/include/storage/s_lock.h
|
||||
+++ b/src/include/storage/s_lock.h
|
||||
@@ -299,6 +299,29 @@ tas(volatile slock_t *lock)
|
||||
|
||||
#endif /* __s390__ || __s390x__ */
|
||||
|
||||
+#if defined(__sh__)
|
||||
+#define HAS_TEST_AND_SET
|
||||
+
|
||||
+typedef unsigned char slock_t;
|
||||
+
|
||||
+#define TAS(lock) tas(lock)
|
||||
+
|
||||
+static __inline__ int
|
||||
+tas(volatile slock_t *lock)
|
||||
+{
|
||||
+ register int _res = 1;
|
||||
+
|
||||
+ __asm__ __volatile__(
|
||||
+ "tas.b @%1\n\t"
|
||||
+ "movt %0\n\t"
|
||||
+ "xor #1,%0"
|
||||
+: "=z"(_res)
|
||||
+: "r"(lock)
|
||||
+: "t","memory");
|
||||
+ return _res;
|
||||
+}
|
||||
+
|
||||
+#endif /* __sh__ */
|
||||
|
||||
#if defined(__sparc__)
|
||||
#define HAS_TEST_AND_SET
|
219
dev-db/postgresql-server/files/postgresql-8.1-server.patch
Normal file
219
dev-db/postgresql-server/files/postgresql-8.1-server.patch
Normal file
|
@ -0,0 +1,219 @@
|
|||
=== GNUmakefile.in
|
||||
==================================================================
|
||||
--- GNUmakefile.in (revision 14)
|
||||
+++ GNUmakefile.in (local)
|
||||
@@ -11,19 +11,16 @@
|
||||
all:
|
||||
$(MAKE) -C doc all
|
||||
$(MAKE) -C src all
|
||||
- $(MAKE) -C config all
|
||||
@echo "All of PostgreSQL successfully made. Ready to install."
|
||||
|
||||
install:
|
||||
$(MAKE) -C doc $@
|
||||
$(MAKE) -C src $@
|
||||
- $(MAKE) -C config $@
|
||||
@echo "PostgreSQL installation complete."
|
||||
|
||||
installdirs uninstall distprep:
|
||||
$(MAKE) -C doc $@
|
||||
$(MAKE) -C src $@
|
||||
- $(MAKE) -C config $@
|
||||
|
||||
# clean, distclean, etc should apply to contrib too, even though
|
||||
# it's not built by default
|
||||
=== contrib/Makefile
|
||||
==================================================================
|
||||
--- contrib/Makefile (revision 14)
|
||||
+++ contrib/Makefile (local)
|
||||
@@ -19,10 +19,8 @@
|
||||
isbn_issn \
|
||||
lo \
|
||||
ltree \
|
||||
- oid2name \
|
||||
pg_buffercache \
|
||||
pg_trgm \
|
||||
- pgbench \
|
||||
pgcrypto \
|
||||
pgstattuple \
|
||||
seg \
|
||||
@@ -30,8 +28,7 @@
|
||||
tablefunc \
|
||||
tips \
|
||||
tsearch2 \
|
||||
- userlock \
|
||||
- vacuumlo
|
||||
+ userlock
|
||||
|
||||
# Missing:
|
||||
# adddepend \ (does not have a makefile)
|
||||
=== src/Makefile
|
||||
==================================================================
|
||||
--- src/Makefile (revision 14)
|
||||
+++ src/Makefile (local)
|
||||
@@ -18,14 +18,10 @@
|
||||
$(MAKE) -C timezone $@
|
||||
$(MAKE) -C backend $@
|
||||
$(MAKE) -C backend/utils/mb/conversion_procs $@
|
||||
- $(MAKE) -C include $@
|
||||
- $(MAKE) -C interfaces $@
|
||||
$(MAKE) -C bin $@
|
||||
$(MAKE) -C pl $@
|
||||
- $(MAKE) -C makefiles $@
|
||||
- $(MAKE) -C utils $@
|
||||
|
||||
-install: install-local
|
||||
+install:
|
||||
|
||||
install-local: installdirs-local
|
||||
$(INSTALL_DATA) Makefile.global $(DESTDIR)$(pgxsdir)/$(subdir)/Makefile.global
|
||||
=== src/Makefile.global.in
|
||||
==================================================================
|
||||
--- src/Makefile.global.in (revision 14)
|
||||
+++ src/Makefile.global.in (local)
|
||||
@@ -360,10 +360,10 @@
|
||||
|
||||
|
||||
submake-libpq:
|
||||
- $(MAKE) -C $(libpq_builddir) all
|
||||
+ @true $(MAKE) -C $(libpq_builddir) all
|
||||
|
||||
submake-libpgport:
|
||||
- $(MAKE) -C $(top_builddir)/src/port all
|
||||
+ @true $(MAKE) -C $(top_builddir)/src/port all
|
||||
|
||||
.PHONY: submake-libpq submake-libpgport
|
||||
|
||||
=== src/bin/Makefile
|
||||
==================================================================
|
||||
--- src/bin/Makefile (revision 14)
|
||||
+++ src/bin/Makefile (local)
|
||||
@@ -13,8 +13,8 @@
|
||||
top_builddir = ../..
|
||||
include $(top_builddir)/src/Makefile.global
|
||||
|
||||
-DIRS := initdb ipcclean pg_ctl pg_dump \
|
||||
- psql scripts pg_config pg_controldata pg_resetxlog
|
||||
+DIRS := initdb ipcclean pg_ctl \
|
||||
+ pg_controldata pg_resetxlog
|
||||
ifeq ($(PORTNAME), win32)
|
||||
DIRS+=pgevent
|
||||
endif
|
||||
=== src/include/pg_config_manual.h
|
||||
==================================================================
|
||||
--- src/include/pg_config_manual.h (revision 14)
|
||||
+++ src/include/pg_config_manual.h (local)
|
||||
@@ -175,7 +175,7 @@
|
||||
* here's where to twiddle it. You can also override this at runtime
|
||||
* with the postmaster's -k switch.
|
||||
*/
|
||||
-#define DEFAULT_PGSOCKET_DIR "/tmp"
|
||||
+#define DEFAULT_PGSOCKET_DIR "/var/run/postgresql"
|
||||
|
||||
/*
|
||||
* The random() function is expected to yield values between 0 and
|
||||
=== src/port/Makefile
|
||||
==================================================================
|
||||
--- src/port/Makefile (revision 14)
|
||||
+++ src/port/Makefile (local)
|
||||
@@ -29,11 +29,10 @@
|
||||
# Replace all object files so they use FRONTEND define
|
||||
LIBOBJS_SRV := $(LIBOBJS:%.o=%_srv.o)
|
||||
|
||||
-all: libpgport.a libpgport_srv.a
|
||||
+all: libpgport_srv.a
|
||||
|
||||
# libpgport is needed by some contrib
|
||||
-install: all
|
||||
- $(INSTALL_STLIB) libpgport.a $(DESTDIR)$(libdir)
|
||||
+install:
|
||||
|
||||
uninstall:
|
||||
$(RM) $(DESTDIR)$(libdir)/libpgport.a
|
||||
=== src/test/regress/GNUmakefile
|
||||
==================================================================
|
||||
--- src/test/regress/GNUmakefile (revision 14)
|
||||
+++ src/test/regress/GNUmakefile (local)
|
||||
@@ -137,7 +137,7 @@
|
||||
check: all
|
||||
-rm -rf ./testtablespace
|
||||
mkdir ./testtablespace
|
||||
- $(SHELL) ./pg_regress --temp-install --top-builddir=$(top_builddir) --temp-port=$(TEMP_PORT) --schedule=$(srcdir)/parallel_schedule --multibyte=$(MULTIBYTE) --load-language=plpgsql $(MAXCONNOPT) $(NOLOCALE)
|
||||
+ clientbindir="/usr/lib/postgresql-${SLOT}/bin/" $(SHELL) ./pg_regress --temp-install --top-builddir=$(top_builddir) --temp-port=$(TEMP_PORT) --schedule=$(srcdir)/parallel_schedule --multibyte=$(MULTIBYTE) --load-language=plpgsql $(MAXCONNOPT) $(NOLOCALE)
|
||||
|
||||
installcheck: all
|
||||
-rm -rf ./testtablespace
|
||||
=== src/test/regress/pg_regress.sh
|
||||
==================================================================
|
||||
--- src/test/regress/pg_regress.sh (revision 14)
|
||||
+++ src/test/regress/pg_regress.sh (local)
|
||||
@@ -91,6 +91,8 @@
|
||||
enable_shared='@enable_shared@'
|
||||
GCC=@GCC@
|
||||
|
||||
+test -z "${clientbindir}" && clientbindir="${bindir}"
|
||||
+
|
||||
if [ "$GCC" = yes ]; then
|
||||
compiler=gcc
|
||||
else
|
||||
@@ -441,7 +443,7 @@
|
||||
# wait forever, however.
|
||||
i=0
|
||||
max=60
|
||||
- until "$bindir/psql" -X $psql_options postgres </dev/null 2>/dev/null
|
||||
+ until "$clientbindir/psql" -X $psql_options postgres </dev/null 2>/dev/null
|
||||
do
|
||||
i=`expr $i + 1`
|
||||
if [ $i -ge $max ]
|
||||
@@ -498,7 +500,7 @@
|
||||
fi
|
||||
|
||||
message "dropping database \"$dbname\""
|
||||
- "$bindir/dropdb" $psql_options "$dbname"
|
||||
+ "$clientbindir/dropdb" $psql_options "$dbname"
|
||||
# errors can be ignored
|
||||
fi
|
||||
|
||||
@@ -507,7 +509,7 @@
|
||||
# Set up SQL shell for the test.
|
||||
# ----------
|
||||
|
||||
-PSQL="$bindir/psql -a -q -X $psql_options"
|
||||
+PSQL="$clientbindir/psql -a -q -X $psql_options"
|
||||
|
||||
|
||||
# ----------
|
||||
@@ -538,13 +540,13 @@
|
||||
# ----------
|
||||
|
||||
message "creating database \"$dbname\""
|
||||
-"$bindir/createdb" $encoding_opt $psql_options --template template0 "$dbname"
|
||||
+"$clientbindir/createdb" $encoding_opt $psql_options --template template0 "$dbname"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "$me: createdb failed"
|
||||
(exit 2); exit
|
||||
fi
|
||||
|
||||
-"$bindir/psql" -q -X $psql_options -c "\
|
||||
+"$clientbindir/psql" -q -X $psql_options -c "\
|
||||
alter database \"$dbname\" set lc_messages to 'C';
|
||||
alter database \"$dbname\" set lc_monetary to 'C';
|
||||
alter database \"$dbname\" set lc_numeric to 'C';
|
||||
@@ -560,7 +562,7 @@
|
||||
# ----------
|
||||
|
||||
message "dropping regression test user accounts"
|
||||
-"$bindir/psql" -q -X $psql_options -c 'DROP GROUP regressgroup1; DROP GROUP regressgroup2; DROP USER regressuser1, regressuser2, regressuser3, regressuser4;' $dbname 2>/dev/null
|
||||
+"$clientbindir/psql" -q -X $psql_options -c 'DROP GROUP regressgroup1; DROP GROUP regressgroup2; DROP USER regressuser1, regressuser2, regressuser3, regressuser4;' $dbname 2>/dev/null
|
||||
if [ $? -eq 2 ]; then
|
||||
echo "$me: could not drop user accounts"
|
||||
(exit 2); exit
|
||||
@@ -575,7 +577,7 @@
|
||||
for lang in xyzzy $load_langs ; do
|
||||
if [ "$lang" != "xyzzy" ]; then
|
||||
message "installing $lang"
|
||||
- "$bindir/createlang" $psql_options $lang $dbname
|
||||
+ "$clientbindir/createlang" $psql_options $lang $dbname
|
||||
if [ $? -ne 0 ] && [ $? -ne 2 ]; then
|
||||
echo "$me: createlang $lang failed"
|
||||
(exit 2); exit
|
48
dev-db/postgresql-server/files/postgresql.conf-8.1
Normal file
48
dev-db/postgresql-server/files/postgresql.conf-8.1
Normal file
|
@ -0,0 +1,48 @@
|
|||
# PostgreSQL's Database Directory
|
||||
PGDATA="/var/lib/postgresql/8.1/data"
|
||||
|
||||
# PostgreSQL User
|
||||
PGUSER="postgres"
|
||||
|
||||
# PostgreSQL Group
|
||||
PGGROUP="postgres"
|
||||
|
||||
# Extra options to run postmaster with, e.g.:
|
||||
# -N is the maximal number of client connections
|
||||
# -B is the number of shared buffers and has to be at least 2x the value for -N
|
||||
# Please read the man-page to postmaster for more options. Many of these options
|
||||
# can be set directly in the configuration-file.
|
||||
#PGOPTS="-N 512 -B 1024"
|
||||
|
||||
|
||||
# SERVER SHUTDOWN:
|
||||
# The server will receive 3 signals in the worst case:
|
||||
# 1. SIGTERM
|
||||
# This signals the server to ignore new connections and to
|
||||
# wait for all clients to end their transactions before shutting down.
|
||||
# Use WAIT_FOR_DISCONNECT to control how much time the clients
|
||||
# should have until the next signal is being sent.
|
||||
# 2. SIGINT
|
||||
# Tell the server to forcefully disconnect all clients.
|
||||
# Terminating a client results in a rollback of the open transactions for this client.
|
||||
# Use WAIT_FOR_CLEANUP to determine how much time the server has
|
||||
# for cleanup.
|
||||
# 3. SIGQUIT
|
||||
# This will terminate the server immediately and results in a recovery run for the next start.
|
||||
|
||||
# Wait for clients to disconnect
|
||||
WAIT_FOR_DISCONNECT=30
|
||||
|
||||
# Time the server has to clean up
|
||||
WAIT_FOR_CLEANUP=60
|
||||
|
||||
# Time the server has to quit (with a recover-run on next startup)
|
||||
# Set to 0 to deactivate it
|
||||
WAIT_FOR_QUIT=60
|
||||
|
||||
|
||||
# If you have to export environment variables for the database process,
|
||||
# this can be done here.
|
||||
#
|
||||
# Example:
|
||||
# export R_HOME="/usr/lib/R"
|
44
dev-db/postgresql-server/files/postgresql.conf-8.1-r1
Normal file
44
dev-db/postgresql-server/files/postgresql.conf-8.1-r1
Normal file
|
@ -0,0 +1,44 @@
|
|||
# PostgreSQL's Database Directory
|
||||
PGDATA="/var/lib/postgresql/8.1/data"
|
||||
|
||||
# Options to pass to PostgreSQL's initdb.
|
||||
#PG_INITDB_OPTS="--locale=en_US.UTF-8"
|
||||
|
||||
# PostgreSQL User
|
||||
PGUSER="postgres"
|
||||
|
||||
# Which port and socket to bind PostgreSQL
|
||||
PGPORT="5432"
|
||||
|
||||
# Extra options to run postmaster with, e.g.:
|
||||
# -N is the maximal number of client connections
|
||||
# -B is the number of shared buffers and has to be at least 2x the value for -N
|
||||
# Please read the man-page to postmaster for more options. Many of these options
|
||||
# can be set directly in the configuration-file.
|
||||
#PGOPTS="-N 512 -B 1024"
|
||||
|
||||
# Allow server 60 seconds to start or stop.
|
||||
# Can disable waiting by changing to '-W' (capital W)
|
||||
WAIT_FOR_START="-w"
|
||||
WAIT_FOR_STOP="-w"
|
||||
|
||||
# Ignore new connections and wait for clients to disconnect from server
|
||||
# before shutting down.
|
||||
# Set NICE_QUIT to "NO" to disable.
|
||||
NICE_QUIT="YES"
|
||||
|
||||
# Forecfully disconnect clients from server and shut down. This is performed
|
||||
# after NICE_QUIT. Terminating a client results in a rollback of open
|
||||
# transactions for that client.
|
||||
# Set RUDE_QUIT to "NO" to disable.
|
||||
RUDE_QUIT="YES"
|
||||
|
||||
# If the server still fails to shutdown, you can force it to quit by setting
|
||||
# this to yes and a recover-run will execute on the next startup.
|
||||
# Set FORCE_QUIT to "YES" to enable.
|
||||
FORCE_QUIT="NO"
|
||||
|
||||
# Pass extra environment variables. If you have to export environment variables
|
||||
# for the database process, this can be done here.
|
||||
# Don't forget to escape quotes.
|
||||
#PG_EXTRA_ENV="PGPASSFILE=\"/path/to/.pgpass\""
|
96
dev-db/postgresql-server/files/postgresql.init-8.1
Normal file
96
dev-db/postgresql-server/files/postgresql.init-8.1
Normal file
|
@ -0,0 +1,96 @@
|
|||
#!/sbin/runscript
|
||||
# Copyright 1999-2008 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-db/postgresql-server/files/Attic/postgresql.init-8.1,v 1.4 2010/01/06 23:36:01 patrick Exp $
|
||||
|
||||
opts="${opts} reload"
|
||||
|
||||
depend() {
|
||||
use net
|
||||
if [ -L /etc/eselect/postgresql/service ] ; then
|
||||
local p_service="$(for f in /etc/eselect/postgresql/service/* ; do . $f ; done ; echo $postgres_service )"
|
||||
test "${p_service}" = "${SVCNAME}" && provide postgresql
|
||||
fi
|
||||
}
|
||||
|
||||
checkconfig() {
|
||||
if [ ! -d "$PGDATA" ] ; then
|
||||
eerror "Directory not found: $PGDATA"
|
||||
eerror "Please make sure that PGDATA points to the right path."
|
||||
eerror "You can run 'emerge postgresql-server --config' to setup a new database cluster."
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
start() {
|
||||
checkconfig || return 1
|
||||
|
||||
ebegin "Starting PostgreSQL"
|
||||
|
||||
if [ -f "$PGDATA/postmaster.pid" ] ; then
|
||||
rm -f "$PGDATA/postmaster.pid"
|
||||
fi
|
||||
|
||||
local retval
|
||||
|
||||
su -l ${PGUSER} \
|
||||
-c "env PGDATA=\"${PGDATA}\" /usr/lib/postgresql-8.1/bin/pg_ctl start -w -o '--silent-mode=true ${PGOPTS}'"
|
||||
retval=$?
|
||||
[ $retval -ne 0 ] && eend $retval && return $retval
|
||||
|
||||
# The following is to catch the case of an already running server
|
||||
# in which pg_ctl doesn't know to which server it connected to and false reports the server as 'up'
|
||||
sleep 2
|
||||
if [ ! -f "$PGDATA/postmaster.pid" ] ; then
|
||||
eerror "The pid-file doesn't exist but pg_ctl reported a running server."
|
||||
eerror "Please check whether there is another server running on the same port or read the log-file."
|
||||
eend 1
|
||||
return 1
|
||||
fi
|
||||
|
||||
local pid=$(grep "^[0-9]\+" "$PGDATA/postmaster.pid")
|
||||
ps -p "${pid}" &> /dev/null
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Stopping PostgreSQL (this can take up to $(( ${WAIT_FOR_DISCONNECT} + ${WAIT_FOR_CLEANUP} )) seconds)"
|
||||
|
||||
local retval
|
||||
|
||||
start-stop-daemon --stop --pidfile "${PGDATA}/postmaster.pid" \
|
||||
--retry -TERM/${WAIT_FOR_DISCONNECT}
|
||||
retval=$?
|
||||
[ $retval -eq 0 ] && eend $retval && return $retval
|
||||
|
||||
ewarn "Some clients did not disconnect within ${WAIT_FOR_DISCONNECT} seconds."
|
||||
ewarn "Going to shutdown the server anyway."
|
||||
|
||||
start-stop-daemon --stop --pidfile "${PGDATA}/postmaster.pid" \
|
||||
--retry -INT/${WAIT_FOR_CLEANUP}
|
||||
retval=$?
|
||||
[ $retval -eq 0 ] && eend $retval && return $retval
|
||||
|
||||
if [ ${WAIT_FOR_QUIT} -eq 0 ] ; then
|
||||
eerror "Server did not shut down and sending the SIGQUIT has been disabled."
|
||||
eend $retval
|
||||
return $retval
|
||||
fi
|
||||
|
||||
ewarn "Shutting down the server gracefully failed."
|
||||
ewarn "Forcing it to shutdown which leads to a recover-run on next startup."
|
||||
|
||||
start-stop-daemon --stop --pidfile "${PGDATA}/postmaster.pid" \
|
||||
--retry -QUIT/${WAIT_FOR_QUIT}
|
||||
retval=$?
|
||||
[ $retval -eq 0 ] && eend $retval && return $retval
|
||||
|
||||
eerror "Forced shutdown failed!!! Something is wrong with your system, please take care of it manually."
|
||||
eend $?
|
||||
}
|
||||
|
||||
reload() {
|
||||
ebegin "Reloading PostgreSQL configuration"
|
||||
start-stop-daemon --stop --pidfile "${PGDATA}/postmaster.pid" --signal HUP --oknodo
|
||||
eend $?
|
||||
}
|
136
dev-db/postgresql-server/files/postgresql.init-8.1-r1
Normal file
136
dev-db/postgresql-server/files/postgresql.init-8.1-r1
Normal file
|
@ -0,0 +1,136 @@
|
|||
#!/sbin/runscript
|
||||
# Copyright 1999-2010 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-db/postgresql-server/files/Attic/postgresql.init-8.1-r1,v 1.2 2010/07/11 11:53:55 patrick Exp $
|
||||
|
||||
opts="${opts} reload"
|
||||
|
||||
depend() {
|
||||
use net
|
||||
if [ -L /etc/eselect/postgresql/service ] ; then
|
||||
local p_service="$(for f in /etc/eselect/postgresql/service/* ; do . $f ; done ; echo $postgres_service )"
|
||||
test "${p_service}" = "${SVCNAME}" && provide postgresql
|
||||
fi
|
||||
}
|
||||
|
||||
checkconfig() {
|
||||
if [ ! -d "$PGDATA" ] ; then
|
||||
eerror "Directory not found: $PGDATA"
|
||||
eerror "Please make sure that PGDATA points to the right path."
|
||||
eerror "You can run 'emerge postgresql-server --config' to setup a new database cluster."
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
start() {
|
||||
checkconfig || return 1
|
||||
|
||||
ebegin "Starting PostgreSQL"
|
||||
|
||||
if [ -f "$PGDATA/postmaster.pid" ] ; then
|
||||
rm -f "$PGDATA/postmaster.pid"
|
||||
fi
|
||||
|
||||
local retval
|
||||
|
||||
su -l ${PGUSER} \
|
||||
-c "env PGDATA=\"${PGDATA}\" PGPORT=\"${PGPORT}\" ${PG_EXTRA_ENV} /usr/lib/postgresql-8.1/bin/pg_ctl start ${WAIT_FOR_START} -s -o '--silent-mode=true ${PGOPTS}'"
|
||||
retval=$?
|
||||
|
||||
if [[ $retval != 0 ]] ; then
|
||||
eend $retval
|
||||
return $retval
|
||||
fi
|
||||
|
||||
# The following is to catch the case of an already running server
|
||||
# in which pg_ctl doesn't know to which server it connected to and
|
||||
# falsely reports the server as 'up'
|
||||
sleep 2
|
||||
if [ ! -f "$PGDATA/postmaster.pid" ] ; then
|
||||
eerror "The PID file doesn't exist but pg_ctl reported a running server."
|
||||
eerror "Please check whether there is another server running on the same port or read the log-file."
|
||||
eend 1
|
||||
return 1
|
||||
fi
|
||||
|
||||
local pid=$(grep "^[0-9]\+" "$PGDATA/postmaster.pid")
|
||||
ps -p "${pid}" &> /dev/null
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Stopping PostgreSQL (this can take a few minutes)"
|
||||
|
||||
local retval
|
||||
|
||||
if [[ "${NICE_QUIT}" != "NO" ]] ; then
|
||||
su -l ${PGUSER} \
|
||||
-c "env PGDATA=\"${PGDATA}\" PGPORT=\"${PGPORT}\" ${PG_EXTRA_ENV} /usr/lib/postgresql-8.1/bin/pg_ctl stop ${WAIT_FOR_STOP} -s -m smart"
|
||||
retval=$?
|
||||
|
||||
if [[ $retval == 0 ]] ; then
|
||||
eend $retval
|
||||
return $retval
|
||||
fi
|
||||
|
||||
ewarn "Shutting down the server gracefully failed."
|
||||
ewarn "Probably because some clients did not disconnect within 60 seconds."
|
||||
else
|
||||
ewarn "NICE_QUIT disabled."
|
||||
ewarn "You really should have it enabled."
|
||||
fi
|
||||
|
||||
if [[ "${RUDE_QUIT}" != "NO" ]] ; then
|
||||
ewarn "RUDE_QUIT enabled."
|
||||
ewarn "Going to shutdown the server anyway."
|
||||
|
||||
su -l ${PGUSER} \
|
||||
-c "env PGDATA=\"${PGDATA}\" PGPORT=\"${PGPORT}\" ${PG_EXTRA_ENV} /usr/lib/postgresql-8.1/bin/pg_ctl stop ${WAIT_FOR_STOP} -s -m fast"
|
||||
retval=$?
|
||||
|
||||
if [[ $retval == 0 ]] ; then
|
||||
eend $retval
|
||||
return $retval
|
||||
fi
|
||||
|
||||
eerror "Failed to shutdown server."
|
||||
else
|
||||
ewarn "RUDE_QUIT disabled."
|
||||
fi
|
||||
|
||||
if [[ "${FORCE_QUIT}" == "YES" ]] ; then
|
||||
ewarn "FORCE_QUIT enabled."
|
||||
ewarn "Forcing server to shutdown."
|
||||
ewarn "A recover-run will be executed on the next startup."
|
||||
|
||||
su -l ${PGUSER} \
|
||||
-c "env PGDATA=\"${PGDATA}\" PGPORT=\"${PGPORT}\" ${PG_EXTRA_ENV} /usr/lib/postgresql-8.1/bin/pg_ctl stop ${WAIT_FOR_STOP} -s -m immediate"
|
||||
|
||||
retval=$?
|
||||
|
||||
if [[ $retval == 0 ]] ; then
|
||||
ewarn "Server forced down."
|
||||
eend $retval
|
||||
return $retval
|
||||
fi
|
||||
|
||||
eerror "Forced shutdown failed!!!"
|
||||
eerror "Something is wrong with your system."
|
||||
eerror "Please take care of it manually."
|
||||
eerror "Unable to stop server."
|
||||
eend $retval
|
||||
return $retval
|
||||
else
|
||||
ewarn "FORCE_QUIT disabled."
|
||||
eerror "Unable to shutdown server."
|
||||
eend 1
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
reload() {
|
||||
ebegin "Reloading PostgreSQL configuration"
|
||||
su -l ${PGUSER} \
|
||||
-c "env PGDATA=\"${PGDATA}\" PGPORT=\"${PGPORT}\" ${PG_EXTRA_ENV} /usr/lib/postgresql-8.1/bin/pg_ctl reload -s"
|
||||
eend $?
|
||||
}
|
263
dev-db/postgresql-server/postgresql-server-8.1.22.ebuild
Normal file
263
dev-db/postgresql-server/postgresql-server-8.1.22.ebuild
Normal file
|
@ -0,0 +1,263 @@
|
|||
# Copyright 1999-2011 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-db/postgresql-server/Attic/postgresql-server-8.1.22.ebuild,v 1.6 2011/01/08 12:56:25 armin76 Exp $
|
||||
|
||||
EAPI="2"
|
||||
|
||||
WANT_AUTOMAKE="none"
|
||||
inherit eutils multilib versionator autotools
|
||||
|
||||
KEYWORDS="alpha amd64 arm hppa ia64 ppc s390 sh sparc x86"
|
||||
|
||||
DESCRIPTION="PostgreSQL server"
|
||||
HOMEPAGE="http://www.postgresql.org/"
|
||||
SRC_URI="mirror://postgresql/source/v${PV}/postgresql-${PV}.tar.bz2"
|
||||
LICENSE="POSTGRESQL"
|
||||
SLOT="$(get_version_component_range 1-2)"
|
||||
IUSE_LINGUAS="
|
||||
linguas_af linguas_cs linguas_de linguas_es linguas_fa linguas_fr
|
||||
linguas_hr linguas_hu linguas_it linguas_ko linguas_nb linguas_pl
|
||||
linguas_pt_BR linguas_ro linguas_ru linguas_sk linguas_sl linguas_sv
|
||||
linguas_tr linguas_zh_CN linguas_zh_TW"
|
||||
IUSE="doc perl python selinux tcl xml nls kernel_linux ${IUSE_LINGUAS}"
|
||||
|
||||
wanted_languages() {
|
||||
for u in ${IUSE_LINGUAS} ; do
|
||||
use $u && echo -n "${u#linguas_} "
|
||||
done
|
||||
}
|
||||
|
||||
RDEPEND="~dev-db/postgresql-base-${PV}:${SLOT}
|
||||
perl? ( >=dev-lang/perl-5.6.1-r2 )
|
||||
python? ( >=dev-lang/python-2.2 dev-python/egenix-mx-base )
|
||||
selinux? ( sec-policy/selinux-postgresql )
|
||||
tcl? ( >=dev-lang/tcl-8 )
|
||||
xml? ( dev-libs/libxml2 dev-libs/libxslt )"
|
||||
DEPEND="${RDEPEND}
|
||||
sys-devel/flex
|
||||
xml? ( dev-util/pkgconfig )"
|
||||
PDEPEND="doc? ( ~dev-db/postgresql-docs-${PV} )"
|
||||
|
||||
S="${WORKDIR}/postgresql-${PV}"
|
||||
|
||||
pkg_setup() {
|
||||
enewgroup postgres 70
|
||||
enewuser postgres 70 /bin/bash /var/lib/postgresql postgres
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
epatch "${FILESDIR}/postgresql-${SLOT}-common.patch" \
|
||||
"${FILESDIR}/postgresql-${SLOT}-server.patch"
|
||||
|
||||
if use test; then
|
||||
sed -e "s|/no/such/location|${S}/src/test/regress/tmp_check/no/such/location|g" -i src/test/regress/{input,output}/tablespace.source
|
||||
fi
|
||||
|
||||
eautoconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# TODO: test if PPC really cannot work with other CFLAGS settings
|
||||
# use ppc && CFLAGS="-pipe -fsigned-char"
|
||||
|
||||
# eval is needed to get along with pg_config quotation of space-rich entities.
|
||||
eval econf "$(/usr/$(get_libdir)/postgresql-${SLOT}/bin/pg_config --configure)" \
|
||||
$(use_with perl) \
|
||||
$(use_with python) \
|
||||
$(use_with tcl) \
|
||||
--with-includes="/usr/include/postgresql-${SLOT}/" \
|
||||
"$(has_version ~dev-db/postgresql-base-${PV}[nls] && use_enable nls nls "$(wanted_languages)")" \
|
||||
|| die "configure failed"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
for bd in . contrib $(use xml && echo contrib/xml2) ; do
|
||||
PATH="/usr/$(get_libdir)/postgresql-${SLOT}/bin:${PATH}" \
|
||||
emake -C $bd -j1 \
|
||||
PGXS=$(/usr/$(get_libdir)/postgresql-${SLOT}/bin/pg_config --pgxs) \
|
||||
NO_PGXS=0 USE_PGXS=1 docdir=/usr/share/doc/${PF} || die "emake in $bd failed"
|
||||
done
|
||||
}
|
||||
|
||||
src_install() {
|
||||
if use perl ; then
|
||||
mv -f "${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
|
||||
|
||||
for bd in . contrib $(use xml && echo contrib/xml2) ; do
|
||||
PATH="/usr/$(get_libdir)/postgresql-${SLOT}/bin:${PATH}" \
|
||||
emake install -C $bd -j1 DESTDIR="${D}" \
|
||||
PGXS=$(/usr/$(get_libdir)/postgresql-${SLOT}/bin/pg_config --pgxs) \
|
||||
NO_PGXS=0 USE_PGXS=1 docdir=/usr/share/doc/${PF} || die "emake install in $bd failed"
|
||||
done
|
||||
|
||||
rm -rf "${D}/usr/share/postgresql-${SLOT}/man/man7/" "${D}/usr/share/doc/${PF}/html"
|
||||
rm "${D}"/usr/share/postgresql-${SLOT}/man/man1/{clusterdb,create{db,lang,user},drop{db,lang,user},ecpg,pg_{config,dump,dumpall,restore},psql,reindexdb,vacuumdb}.1
|
||||
|
||||
dodoc README HISTORY doc/{README.*,TODO,bug.template}
|
||||
|
||||
dodir /etc/eselect/postgresql/slots/${SLOT}
|
||||
cat >"${D}/etc/eselect/postgresql/slots/${SLOT}/service" <<-__EOF__
|
||||
postgres_ebuilds="\${postgres_ebuilds} ${PF}"
|
||||
postgres_service="postgresql-${SLOT}"
|
||||
__EOF__
|
||||
|
||||
newinitd "${FILESDIR}/postgresql.init-${SLOT}-r1" postgresql-${SLOT} || die "Inserting init.d-file failed"
|
||||
newconfd "${FILESDIR}/postgresql.conf-${SLOT}-r1" postgresql-${SLOT} || die "Inserting conf.d-file failed"
|
||||
|
||||
keepdir /var/run/postgresql
|
||||
fperms 0770 /var/run/postgresql
|
||||
fowners postgres:postgres /var/run/postgresql
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect postgresql update
|
||||
[[ "$(eselect postgresql show)" = "(none)" ]] && eselect postgresql set ${SLOT}
|
||||
[[ "$(eselect postgresql show-service)" = "(none)" ]] && eselect postgresql set-service ${SLOT}
|
||||
|
||||
ewarn "Please note that the standard location of the socket has changed from /tmp to"
|
||||
ewarn "/var/run/postgresql and you have to be in the 'postgres' group to access the"
|
||||
ewarn "socket. This can break applications which have the standard location"
|
||||
ewarn "hard-coded. If such an application links against the libpq, please reemerge"
|
||||
ewarn "it. If that doesn't help or the application accesses the socket without using"
|
||||
ewarn "libpq, please file a bug-report."
|
||||
ewarn
|
||||
ewarn "You can set PGOPTS='-k /tmp' in /etc/conf.d/postgresql-${SLOT} to restore the original location."
|
||||
ewarn
|
||||
|
||||
elog "Before initializing the database, you may want to edit PG_INITDB_OPTS so that it"
|
||||
elog "contains your preferred locale in:"
|
||||
elog
|
||||
elog " /etc/conf.d/postgresql-${SLOT}"
|
||||
elog
|
||||
elog "Then, execute the following command to setup the initial database environment:"
|
||||
elog
|
||||
elog " emerge --config =${CATEGORY}/${PF}"
|
||||
elog
|
||||
elog "The autovacuum function, which was in contrib, has been moved to the main"
|
||||
elog "PostgreSQL functions starting with 8.1. You can enable it in the clusters"
|
||||
elog "postgresql.conf."
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect postgresql update
|
||||
}
|
||||
|
||||
pkg_config() {
|
||||
[[ -f /etc/conf.d/postgresql-${SLOT} ]] && source /etc/conf.d/postgresql-${SLOT}
|
||||
[[ -z "${PGDATA}" ]] && PGDATA="/var/lib/postgresql/${SLOT}/data"
|
||||
|
||||
# environment.bz2 may not contain the same locale as the current system
|
||||
# locale. Unset and source from the current system locale.
|
||||
if [ -f /etc/env.d/02locale ]; then
|
||||
unset LANG
|
||||
unset LC_CTYPE
|
||||
unset LC_NUMERIC
|
||||
unset LC_TIME
|
||||
unset LC_COLLATE
|
||||
unset LC_MONETARY
|
||||
unset LC_MESSAGES
|
||||
unset LC_ALL
|
||||
source /etc/env.d/02locale
|
||||
[ -n "${LANG}" ] && export LANG
|
||||
[ -n "${LC_CTYPE}" ] && export LC_CTYPE
|
||||
[ -n "${LC_NUMERIC}" ] && export LC_NUMERIC
|
||||
[ -n "${LC_TIME}" ] && export LC_TIME
|
||||
[ -n "${LC_COLLATE}" ] && export LC_COLLATE
|
||||
[ -n "${LC_MONETARY}" ] && export LC_MONETARY
|
||||
[ -n "${LC_MESSAGES}" ] && export LC_MESSAGES
|
||||
[ -n "${LC_ALL}" ] && export LC_ALL
|
||||
fi
|
||||
|
||||
einfo "You can pass options to initdb by setting the PG_INITDB_OPTS variable."
|
||||
einfo "More information can be found here:"
|
||||
einfo " http://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html"
|
||||
einfo " http://www.postgresql.org/docs/${SLOT}/static/app-initdb.html"
|
||||
einfo "Simply add the options you would have added to initdb to the PG_INITDB_OPTS"
|
||||
einfo "variable."
|
||||
einfo
|
||||
einfo "You can change the directory where the database cluster is being created by"
|
||||
einfo "setting the PGDATA variable."
|
||||
einfo
|
||||
einfo "PG_INITDB_OPTS is currently set to:"
|
||||
einfo " \"${PG_INITDB_OPTS}\""
|
||||
einfo "and the database cluster will be created in:"
|
||||
einfo " \"${PGDATA}\""
|
||||
einfo "Are you ready to continue? (Y/n)"
|
||||
read answer
|
||||
[ -z $answer ] && answer=Y
|
||||
[ "$answer" == "Y" ] || [ "$answer" == "y" ] || die "aborted"
|
||||
|
||||
if [[ -f "${PGDATA}/PG_VERSION" ]] ; then
|
||||
eerror "The given directory \"${PGDATA}\" already contains a database cluster."
|
||||
die "cluster already exists"
|
||||
fi
|
||||
|
||||
[ -z "${PG_MAX_CONNECTIONS}" ] && PG_MAX_CONNECTIONS="128"
|
||||
einfo "Checking system parameters..."
|
||||
|
||||
if ! use kernel_linux ; then
|
||||
SKIP_SYSTEM_TESTS=yes
|
||||
einfo " Tests not supported on this OS (yet)"
|
||||
fi
|
||||
|
||||
if [ -z ${SKIP_SYSTEM_TESTS} ] ; then
|
||||
einfo "Checking whether your system supports at least ${PG_MAX_CONNECTIONS} connections..."
|
||||
|
||||
local SEMMSL=$(sysctl -n kernel.sem | cut -f1)
|
||||
local SEMMNS=$(sysctl -n kernel.sem | cut -f2)
|
||||
local SEMMNI=$(sysctl -n kernel.sem | cut -f4)
|
||||
local SHMMAX=$(sysctl -n kernel.shmmax)
|
||||
|
||||
local SEMMSL_MIN=17
|
||||
local SEMMNS_MIN=$(( ( ${PG_MAX_CONNECTIONS}/16 ) * 17 ))
|
||||
local SEMMNI_MIN=$(( ( ${PG_MAX_CONNECTIONS}+15 ) / 16 ))
|
||||
local SHMMAX_MIN=$(( 500000 + ( 30600 * ${PG_MAX_CONNECTIONS} ) ))
|
||||
|
||||
for p in SEMMSL SEMMNS SEMMNI SHMMAX ; do
|
||||
if [ $(eval echo \$$p) -lt $(eval echo \$${p}_MIN) ] ; then
|
||||
eerror "The value for ${p} $(eval echo \$$p) is below the recommended value $(eval echo \$${p}_MIN)"
|
||||
eerror "You have now several options:"
|
||||
eerror " - Change the mentioned system parameter"
|
||||
eerror " - Lower the number of max.connections by setting PG_MAX_CONNECTIONS to a value lower than ${PG_MAX_CONNECTIONS}"
|
||||
eerror " - Set SKIP_SYSTEM_TESTS in case you want to ignore this test completely"
|
||||
eerror "More information can be found here:"
|
||||
eerror " http://www.postgresql.org/docs/${SLOT}/static/kernel-resources.html"
|
||||
die "System test failed."
|
||||
fi
|
||||
done
|
||||
einfo "Passed."
|
||||
else
|
||||
einfo "Skipped."
|
||||
fi
|
||||
|
||||
einfo "Creating the data directory ..."
|
||||
mkdir -p "${PGDATA}"
|
||||
chown -Rf postgres:postgres "${PGDATA}"
|
||||
chmod 0700 "${PGDATA}"
|
||||
|
||||
einfo "Initializing the database ..."
|
||||
|
||||
su postgres -c "/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb --pgdata \"${PGDATA}\" ${PG_INITDB_OPTS}"
|
||||
|
||||
einfo
|
||||
einfo "You can use the '${ROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
|
||||
einfo "instead of 'pg_ctl'."
|
||||
einfo
|
||||
}
|
||||
|
||||
src_test() {
|
||||
einfo ">>> Test phase [check]: ${CATEGORY}/${PF}"
|
||||
PATH="/usr/$(get_libdir)/postgresql-${SLOT}/bin:${PATH}" \
|
||||
emake -j1 check \
|
||||
PGXS=$(/usr/$(get_libdir)/postgresql-${SLOT}/bin/pg_config --pgxs) \
|
||||
NO_PGXS=0 USE_PGXS=1 SLOT=${SLOT} || die "Make check failed. See above for details."
|
||||
|
||||
einfo "Yes, there are other tests which could be run."
|
||||
einfo "... and no, we don't plan to add/support them."
|
||||
einfo "For now, the main regressions tests will suffice. If you think other tests are"
|
||||
einfo "necessary, please submit a bug including a patch for this ebuild to enable them."
|
||||
}
|
263
dev-db/postgresql-server/postgresql-server-8.1.23.ebuild
Normal file
263
dev-db/postgresql-server/postgresql-server-8.1.23.ebuild
Normal file
|
@ -0,0 +1,263 @@
|
|||
# Copyright 1999-2011 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-db/postgresql-server/Attic/postgresql-server-8.1.23.ebuild,v 1.1 2011/01/06 12:31:37 patrick Exp $
|
||||
|
||||
EAPI="2"
|
||||
|
||||
WANT_AUTOMAKE="none"
|
||||
inherit eutils multilib versionator autotools
|
||||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~s390 ~sh ~sparc ~x86"
|
||||
|
||||
DESCRIPTION="PostgreSQL server"
|
||||
HOMEPAGE="http://www.postgresql.org/"
|
||||
SRC_URI="mirror://postgresql/source/v${PV}/postgresql-${PV}.tar.bz2"
|
||||
LICENSE="POSTGRESQL"
|
||||
SLOT="$(get_version_component_range 1-2)"
|
||||
IUSE_LINGUAS="
|
||||
linguas_af linguas_cs linguas_de linguas_es linguas_fa linguas_fr
|
||||
linguas_hr linguas_hu linguas_it linguas_ko linguas_nb linguas_pl
|
||||
linguas_pt_BR linguas_ro linguas_ru linguas_sk linguas_sl linguas_sv
|
||||
linguas_tr linguas_zh_CN linguas_zh_TW"
|
||||
IUSE="doc perl python selinux tcl xml nls kernel_linux ${IUSE_LINGUAS}"
|
||||
|
||||
wanted_languages() {
|
||||
for u in ${IUSE_LINGUAS} ; do
|
||||
use $u && echo -n "${u#linguas_} "
|
||||
done
|
||||
}
|
||||
|
||||
RDEPEND="~dev-db/postgresql-base-${PV}:${SLOT}
|
||||
perl? ( >=dev-lang/perl-5.6.1-r2 )
|
||||
python? ( >=dev-lang/python-2.2 dev-python/egenix-mx-base )
|
||||
selinux? ( sec-policy/selinux-postgresql )
|
||||
tcl? ( >=dev-lang/tcl-8 )
|
||||
xml? ( dev-libs/libxml2 dev-libs/libxslt )"
|
||||
DEPEND="${RDEPEND}
|
||||
sys-devel/flex
|
||||
xml? ( dev-util/pkgconfig )"
|
||||
PDEPEND="doc? ( ~dev-db/postgresql-docs-${PV} )"
|
||||
|
||||
S="${WORKDIR}/postgresql-${PV}"
|
||||
|
||||
pkg_setup() {
|
||||
enewgroup postgres 70
|
||||
enewuser postgres 70 /bin/bash /var/lib/postgresql postgres
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
|
||||
epatch "${FILESDIR}/postgresql-${SLOT}-common.patch" \
|
||||
"${FILESDIR}/postgresql-${SLOT}-server.patch"
|
||||
|
||||
if use test; then
|
||||
sed -e "s|/no/such/location|${S}/src/test/regress/tmp_check/no/such/location|g" -i src/test/regress/{input,output}/tablespace.source
|
||||
fi
|
||||
|
||||
eautoconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# TODO: test if PPC really cannot work with other CFLAGS settings
|
||||
# use ppc && CFLAGS="-pipe -fsigned-char"
|
||||
|
||||
# eval is needed to get along with pg_config quotation of space-rich entities.
|
||||
eval econf "$(/usr/$(get_libdir)/postgresql-${SLOT}/bin/pg_config --configure)" \
|
||||
$(use_with perl) \
|
||||
$(use_with python) \
|
||||
$(use_with tcl) \
|
||||
--with-includes="/usr/include/postgresql-${SLOT}/" \
|
||||
"$(has_version ~dev-db/postgresql-base-${PV}[nls] && use_enable nls nls "$(wanted_languages)")" \
|
||||
|| die "configure failed"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
for bd in . contrib $(use xml && echo contrib/xml2) ; do
|
||||
PATH="/usr/$(get_libdir)/postgresql-${SLOT}/bin:${PATH}" \
|
||||
emake -C $bd -j1 \
|
||||
PGXS=$(/usr/$(get_libdir)/postgresql-${SLOT}/bin/pg_config --pgxs) \
|
||||
NO_PGXS=0 USE_PGXS=1 docdir=/usr/share/doc/${PF} || die "emake in $bd failed"
|
||||
done
|
||||
}
|
||||
|
||||
src_install() {
|
||||
if use perl ; then
|
||||
mv -f "${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
|
||||
|
||||
for bd in . contrib $(use xml && echo contrib/xml2) ; do
|
||||
PATH="/usr/$(get_libdir)/postgresql-${SLOT}/bin:${PATH}" \
|
||||
emake install -C $bd -j1 DESTDIR="${D}" \
|
||||
PGXS=$(/usr/$(get_libdir)/postgresql-${SLOT}/bin/pg_config --pgxs) \
|
||||
NO_PGXS=0 USE_PGXS=1 docdir=/usr/share/doc/${PF} || die "emake install in $bd failed"
|
||||
done
|
||||
|
||||
rm -rf "${D}/usr/share/postgresql-${SLOT}/man/man7/" "${D}/usr/share/doc/${PF}/html"
|
||||
rm "${D}"/usr/share/postgresql-${SLOT}/man/man1/{clusterdb,create{db,lang,user},drop{db,lang,user},ecpg,pg_{config,dump,dumpall,restore},psql,reindexdb,vacuumdb}.1
|
||||
|
||||
dodoc README HISTORY doc/{README.*,TODO,bug.template}
|
||||
|
||||
dodir /etc/eselect/postgresql/slots/${SLOT}
|
||||
cat >"${D}/etc/eselect/postgresql/slots/${SLOT}/service" <<-__EOF__
|
||||
postgres_ebuilds="\${postgres_ebuilds} ${PF}"
|
||||
postgres_service="postgresql-${SLOT}"
|
||||
__EOF__
|
||||
|
||||
newinitd "${FILESDIR}/postgresql.init-${SLOT}-r1" postgresql-${SLOT} || die "Inserting init.d-file failed"
|
||||
newconfd "${FILESDIR}/postgresql.conf-${SLOT}-r1" postgresql-${SLOT} || die "Inserting conf.d-file failed"
|
||||
|
||||
keepdir /var/run/postgresql
|
||||
fperms 0770 /var/run/postgresql
|
||||
fowners postgres:postgres /var/run/postgresql
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect postgresql update
|
||||
[[ "$(eselect postgresql show)" = "(none)" ]] && eselect postgresql set ${SLOT}
|
||||
[[ "$(eselect postgresql show-service)" = "(none)" ]] && eselect postgresql set-service ${SLOT}
|
||||
|
||||
ewarn "Please note that the standard location of the socket has changed from /tmp to"
|
||||
ewarn "/var/run/postgresql and you have to be in the 'postgres' group to access the"
|
||||
ewarn "socket. This can break applications which have the standard location"
|
||||
ewarn "hard-coded. If such an application links against the libpq, please reemerge"
|
||||
ewarn "it. If that doesn't help or the application accesses the socket without using"
|
||||
ewarn "libpq, please file a bug-report."
|
||||
ewarn
|
||||
ewarn "You can set PGOPTS='-k /tmp' in /etc/conf.d/postgresql-${SLOT} to restore the original location."
|
||||
ewarn
|
||||
|
||||
elog "Before initializing the database, you may want to edit PG_INITDB_OPTS so that it"
|
||||
elog "contains your preferred locale in:"
|
||||
elog
|
||||
elog " /etc/conf.d/postgresql-${SLOT}"
|
||||
elog
|
||||
elog "Then, execute the following command to setup the initial database environment:"
|
||||
elog
|
||||
elog " emerge --config =${CATEGORY}/${PF}"
|
||||
elog
|
||||
elog "The autovacuum function, which was in contrib, has been moved to the main"
|
||||
elog "PostgreSQL functions starting with 8.1. You can enable it in the clusters"
|
||||
elog "postgresql.conf."
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect postgresql update
|
||||
}
|
||||
|
||||
pkg_config() {
|
||||
[[ -f /etc/conf.d/postgresql-${SLOT} ]] && source /etc/conf.d/postgresql-${SLOT}
|
||||
[[ -z "${PGDATA}" ]] && PGDATA="/var/lib/postgresql/${SLOT}/data"
|
||||
|
||||
# environment.bz2 may not contain the same locale as the current system
|
||||
# locale. Unset and source from the current system locale.
|
||||
if [ -f /etc/env.d/02locale ]; then
|
||||
unset LANG
|
||||
unset LC_CTYPE
|
||||
unset LC_NUMERIC
|
||||
unset LC_TIME
|
||||
unset LC_COLLATE
|
||||
unset LC_MONETARY
|
||||
unset LC_MESSAGES
|
||||
unset LC_ALL
|
||||
source /etc/env.d/02locale
|
||||
[ -n "${LANG}" ] && export LANG
|
||||
[ -n "${LC_CTYPE}" ] && export LC_CTYPE
|
||||
[ -n "${LC_NUMERIC}" ] && export LC_NUMERIC
|
||||
[ -n "${LC_TIME}" ] && export LC_TIME
|
||||
[ -n "${LC_COLLATE}" ] && export LC_COLLATE
|
||||
[ -n "${LC_MONETARY}" ] && export LC_MONETARY
|
||||
[ -n "${LC_MESSAGES}" ] && export LC_MESSAGES
|
||||
[ -n "${LC_ALL}" ] && export LC_ALL
|
||||
fi
|
||||
|
||||
einfo "You can pass options to initdb by setting the PG_INITDB_OPTS variable."
|
||||
einfo "More information can be found here:"
|
||||
einfo " http://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html"
|
||||
einfo " http://www.postgresql.org/docs/${SLOT}/static/app-initdb.html"
|
||||
einfo "Simply add the options you would have added to initdb to the PG_INITDB_OPTS"
|
||||
einfo "variable."
|
||||
einfo
|
||||
einfo "You can change the directory where the database cluster is being created by"
|
||||
einfo "setting the PGDATA variable."
|
||||
einfo
|
||||
einfo "PG_INITDB_OPTS is currently set to:"
|
||||
einfo " \"${PG_INITDB_OPTS}\""
|
||||
einfo "and the database cluster will be created in:"
|
||||
einfo " \"${PGDATA}\""
|
||||
einfo "Are you ready to continue? (Y/n)"
|
||||
read answer
|
||||
[ -z $answer ] && answer=Y
|
||||
[ "$answer" == "Y" ] || [ "$answer" == "y" ] || die "aborted"
|
||||
|
||||
if [[ -f "${PGDATA}/PG_VERSION" ]] ; then
|
||||
eerror "The given directory \"${PGDATA}\" already contains a database cluster."
|
||||
die "cluster already exists"
|
||||
fi
|
||||
|
||||
[ -z "${PG_MAX_CONNECTIONS}" ] && PG_MAX_CONNECTIONS="128"
|
||||
einfo "Checking system parameters..."
|
||||
|
||||
if ! use kernel_linux ; then
|
||||
SKIP_SYSTEM_TESTS=yes
|
||||
einfo " Tests not supported on this OS (yet)"
|
||||
fi
|
||||
|
||||
if [ -z ${SKIP_SYSTEM_TESTS} ] ; then
|
||||
einfo "Checking whether your system supports at least ${PG_MAX_CONNECTIONS} connections..."
|
||||
|
||||
local SEMMSL=$(sysctl -n kernel.sem | cut -f1)
|
||||
local SEMMNS=$(sysctl -n kernel.sem | cut -f2)
|
||||
local SEMMNI=$(sysctl -n kernel.sem | cut -f4)
|
||||
local SHMMAX=$(sysctl -n kernel.shmmax)
|
||||
|
||||
local SEMMSL_MIN=17
|
||||
local SEMMNS_MIN=$(( ( ${PG_MAX_CONNECTIONS}/16 ) * 17 ))
|
||||
local SEMMNI_MIN=$(( ( ${PG_MAX_CONNECTIONS}+15 ) / 16 ))
|
||||
local SHMMAX_MIN=$(( 500000 + ( 30600 * ${PG_MAX_CONNECTIONS} ) ))
|
||||
|
||||
for p in SEMMSL SEMMNS SEMMNI SHMMAX ; do
|
||||
if [ $(eval echo \$$p) -lt $(eval echo \$${p}_MIN) ] ; then
|
||||
eerror "The value for ${p} $(eval echo \$$p) is below the recommended value $(eval echo \$${p}_MIN)"
|
||||
eerror "You have now several options:"
|
||||
eerror " - Change the mentioned system parameter"
|
||||
eerror " - Lower the number of max.connections by setting PG_MAX_CONNECTIONS to a value lower than ${PG_MAX_CONNECTIONS}"
|
||||
eerror " - Set SKIP_SYSTEM_TESTS in case you want to ignore this test completely"
|
||||
eerror "More information can be found here:"
|
||||
eerror " http://www.postgresql.org/docs/${SLOT}/static/kernel-resources.html"
|
||||
die "System test failed."
|
||||
fi
|
||||
done
|
||||
einfo "Passed."
|
||||
else
|
||||
einfo "Skipped."
|
||||
fi
|
||||
|
||||
einfo "Creating the data directory ..."
|
||||
mkdir -p "${PGDATA}"
|
||||
chown -Rf postgres:postgres "${PGDATA}"
|
||||
chmod 0700 "${PGDATA}"
|
||||
|
||||
einfo "Initializing the database ..."
|
||||
|
||||
su postgres -c "/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb --pgdata \"${PGDATA}\" ${PG_INITDB_OPTS}"
|
||||
|
||||
einfo
|
||||
einfo "You can use the '${ROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
|
||||
einfo "instead of 'pg_ctl'."
|
||||
einfo
|
||||
}
|
||||
|
||||
src_test() {
|
||||
einfo ">>> Test phase [check]: ${CATEGORY}/${PF}"
|
||||
PATH="/usr/$(get_libdir)/postgresql-${SLOT}/bin:${PATH}" \
|
||||
emake -j1 check \
|
||||
PGXS=$(/usr/$(get_libdir)/postgresql-${SLOT}/bin/pg_config --pgxs) \
|
||||
NO_PGXS=0 USE_PGXS=1 SLOT=${SLOT} || die "Make check failed. See above for details."
|
||||
|
||||
einfo "Yes, there are other tests which could be run."
|
||||
einfo "... and no, we don't plan to add/support them."
|
||||
einfo "For now, the main regressions tests will suffice. If you think other tests are"
|
||||
einfo "necessary, please submit a bug including a patch for this ebuild to enable them."
|
||||
}
|
Loading…
Reference in a new issue