summaryrefslogtreecommitdiff
path: root/databases/postgresql82-server
diff options
context:
space:
mode:
authorPalle Girgensohn <girgen@FreeBSD.org>2011-10-18 09:03:33 +0000
committerPalle Girgensohn <girgen@FreeBSD.org>2011-10-18 09:03:33 +0000
commitd9a60ff20fdef5ff2634ff38096cc7c163b9eca3 (patch)
treebd78806842ec28ab44892af2bfb4d697751facd0 /databases/postgresql82-server
parentmail/exim: upgrade to 4.77 (diff)
The PostgreSQL Global Development Group today released minor version updates
for all active branches of the PostgreSQL object-relational database system, including versions 9.1.1, 9.0.5, 8.4.9, 8.3.16 and 8.2.22. All users are strongly urged to update their installations at the next scheduled downtime. URL: http://www.postgresql.org/about/news.1355 Cleanup ports. Better handling of the knob PG_USER. Also add uuid to 9.0 and 9.1 contrib ports.
Notes
Notes: svn path=/head/; revision=283757
Diffstat (limited to 'databases/postgresql82-server')
-rw-r--r--databases/postgresql82-server/Makefile70
-rw-r--r--databases/postgresql82-server/distinfo4
-rw-r--r--databases/postgresql82-server/files/502.pgsql.in (renamed from databases/postgresql82-server/files/502.pgsql)25
-rw-r--r--databases/postgresql82-server/files/patch-src-plperl-plperl28
-rw-r--r--databases/postgresql82-server/pkg-install-server46
-rw-r--r--databases/postgresql82-server/pkg-plist-server15
6 files changed, 67 insertions, 121 deletions
diff --git a/databases/postgresql82-server/Makefile b/databases/postgresql82-server/Makefile
index b5dab8d0d2ec..e5126a85fb81 100644
--- a/databases/postgresql82-server/Makefile
+++ b/databases/postgresql82-server/Makefile
@@ -6,12 +6,11 @@
#
PORTNAME?= postgresql
-PORTVERSION?= 8.2.21
+DISTVERSION?= 8.2.22
CATEGORIES?= databases
MASTER_SITES= ${MASTER_SITE_PGSQL}
-MASTER_SITE_SUBDIR= source/v${PORTVERSION}
+MASTER_SITE_SUBDIR= source/v${DISTVERSION}
PKGNAMESUFFIX?= -server
-DISTFILES?= postgresql-${PORTVERSION}${EXTRACT_SUFX}
MAINTAINER?= girgen@FreeBSD.org
COMMENT?= The most advanced open-source database available anywhere
@@ -21,7 +20,7 @@ CONFLICTS?= ${PORTNAME}-client-[79].* \
${PORTNAME}-client-8.[0-13-9]* \
${PORTNAME}${PKGNAMESUFFIX}-8.[0-13-9]*
-WRKSRC= ${WRKDIR}/postgresql-${PORTVERSION}
+WRKSRC= ${WRKDIR}/postgresql-${DISTVERSION}
DIST_SUBDIR= postgresql
UNIQUENAME?= ${PORTNAME}82
@@ -36,13 +35,17 @@ GNU_CONFIGURE= YES
.undef GNU_CONFIGURE
.endif
+PG_USER?= pgsql
+PG_GROUP?= ${PG_USER}
+PG_UID?= 70
+
LDFLAGS+= -L${LOCALBASE}/lib
INCLUDES+= -I${LOCALBASE}/include
CONFIGURE_ARGS+=--with-libraries=${PREFIX}/lib \
- --with-includes=${PREFIX}/lib \
+ --with-includes=${PREFIX}/include \
--enable-thread-safety \
--with-docdir=${DOCSDIR}
-CONFIGURE_ENV+= INCLUDES=${INCLUDES} \
+CONFIGURE_ENV+= INCLUDES="${INCLUDES}" \
PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
PTHREAD_LIBS="${PTHREAD_LIBS}"
@@ -57,15 +60,26 @@ INSTALL_DIRS?= ${BUILD_DIRS}
.if !defined(CLIENT_ONLY) && !defined(SLAVE_ONLY)
SERVER_ONLY= yes
USE_RC_SUBR= postgresql
-SUB_FILES+= dot.cshrc dot.profile
USE_PGSQL= yes
-WANT_PGSQL_VER= ${PORTVERSION:C/([0-9][0-9]*)\.([0-9][0-9]*).*/\1\2/g}
+WANT_PGSQL_VER= ${DISTVERSION:C/([0-9][0-9]*)\.([0-9][0-9]*).*/\1\2/g}
+USERS?= ${PG_USER}
+.if (${USERS} != "pgsql")
+UID_FILES+= ${WRKDIR}/pguid
+GID_FILES+= ${WRKDIR}/pggid
+.endif
+GROUPS?= ${PG_GROUP}
+SUB_FILES+= 502.pgsql
.endif
.if !defined(SLAVE_ONLY)
OPTIONS= NLS "Use internationalized messages" on
.endif
+.if !defined(CLIENT_ONLY)
+MAKE_ENV= PATH=${PREFIX}/bin:${PATH}
+CONFIGURE_ENV+= PATH=${PREFIX}/bin:${PATH}
+.endif
+
# Cannot check this with standard OPTION due to a catch-22.
# USE_OPENSSL must precede bsd.port.pre.mk, but then we don't know
# what OPTIONS are set.
@@ -94,7 +108,11 @@ OPTIONS+= DEBUG "Builds with debugging symbols" off
# See http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/76999 for more info
# (requires dump/restore if modified.)
OPTIONS+= INTDATE "Builds with 64-bit date/time type (server)" off
+.endif # !SLAVE_ONLY
+
+.include <bsd.port.pre.mk>
+.if !defined(SLAVE_ONLY)
# . if (defined(SERVER_ONLY) && defined(WITH_ICU)) || make(makesum)
# USE_AUTOTOOLS= autoconf
# CONFIGURE_ARGS+=--with-icu
@@ -216,7 +234,7 @@ MAN7= abort.7 alter_aggregate.7 alter_conversion.7 alter_database.7 \
.if defined(SERVER_ONLY)
pre-everything::
- @${SH} ${PKGINSTALL} ${PORTNAME} BACKUPWARNING
+ @${SH} ${PKGINSTALL} ${PORTNAME} PRE-INSTALL
.endif
.if !defined(NO_BUILD)
@@ -239,35 +257,35 @@ do-build:
SUB_FILES+= pkg-message${PKGNAMESUFFIX}
PKGMESSAGE= ${WRKSRC}/pkg-message${PKGNAMESUFFIX}
. endif
-.endif
-
-.if defined(SERVER_ONLY)
-pre-su-install:
- @ ${SETENV} PKG_PREFIX=${PREFIX} \
- ${SH} ${PKGINSTALL} ${PORTNAME} PRE-INSTALL
+. if exists(${FILESDIR}/pkg-install${PKGNAMESUFFIX}.in)
+SUB_FILES+= pkg-install${PKGNAMESUFFIX}
+SUB_LIST= PG_GROUP=$(PG_GROUP) \
+ PG_USER=$(PG_USER) \
+ PG_UID=$(PG_UID)
+PLIST_SUB+= PG_USER=$(PG_USER)
+PKGINSTALL= ${WRKDIR}/pkg-install${PKGNAMESUFFIX}
+. endif
.endif
.if !defined(NO_BUILD)
post-patch:
@${REINPLACE_CMD} s/@PTHREAD_LIBS@// ${WRKSRC}/src/Makefile.global.in
+. if defined(SERVER_ONLY) && (${PG_USER} != "pgsql")
+pre-install:
+ @${SED} -n s,pgsql,${PG_USER},gp ${PORTSDIR}/UIDs > ${WRKDIR}/pguid
+ @${SED} -n s,pgsql,${PG_GROUP},gp ${PORTSDIR}/GIDs > ${WRKDIR}/pggid
+. endif
+
do-install:
@for dir in ${INSTALL_DIRS}; do \
cd ${WRKSRC}/$${dir} && \
${SETENV} ${MAKE_ENV} ${GMAKE} ${INSTALL_TARGET}; \
done
. if defined(SERVER_ONLY)
- @ ${MKDIR} ${PREFIX}/share/postgresql
-. for i in profile cshrc
- ${INSTALL_DATA} ${WRKDIR}/dot.$i ${PREFIX}/share/postgresql/dot.$i.dist; \
- ${INSTALL_DATA} -o pgsql -g pgsql ${WRKDIR}/dot.$i ~pgsql/dot.$i.dist ; \
- if [ ! -f ~pgsql/.$i ]; then \
- ${CP} -p ~pgsql/dot.$i.dist ~pgsql/.$i; \
- fi
-. endfor
- @ ${CHOWN} -R pgsql:pgsql ~pgsql/. ;\
+ @ ${MKDIR} ${PREFIX}/share/postgresql ;\
${MKDIR} ${PREFIX}/etc/periodic/daily ;\
- ${INSTALL_SCRIPT} ${FILESDIR}/502.pgsql \
+ ${INSTALL_SCRIPT} ${WRKDIR}/502.pgsql \
${PREFIX}/etc/periodic/daily
. endif # SERVER_ONLY
. if defined(CLIENT_ONLY)
@@ -282,7 +300,7 @@ do-install:
fi
.endif # !NO_BUILD
-.if defined(SERVER_ONLY) && defined(WITH_TESTS)
+.if defined(SERVER_ONLY)
check:
@if [ `id -u` != 0 ] ; then \
${ECHO} "Running postgresql regressions tests" ;\
diff --git a/databases/postgresql82-server/distinfo b/databases/postgresql82-server/distinfo
index 2d5cb196d2c1..f432aa76cbda 100644
--- a/databases/postgresql82-server/distinfo
+++ b/databases/postgresql82-server/distinfo
@@ -1,2 +1,2 @@
-SHA256 (postgresql/postgresql-8.2.21.tar.bz2) = b3fd5345b751557a1153f98e104fb58d1519c10dac81dc013ff1eb46c7826faa
-SIZE (postgresql/postgresql-8.2.21.tar.bz2) = 12768593
+SHA256 (postgresql/postgresql-8.2.22.tar.bz2) = 88203528326c152ca556bcff986d824737ea1048ba2c6245e24a1b1efd6aeaf7
+SIZE (postgresql/postgresql-8.2.22.tar.bz2) = 12777172
diff --git a/databases/postgresql82-server/files/502.pgsql b/databases/postgresql82-server/files/502.pgsql.in
index 281189a59c46..69bfff4cef12 100644
--- a/databases/postgresql82-server/files/502.pgsql
+++ b/databases/postgresql82-server/files/502.pgsql.in
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $FreeBSD$
+# $FreeBSD: /tmp/pcvs/ports/databases/postgresql82-server/files/Attic/502.pgsql.in,v 1.1 2011-10-18 09:03:31 girgen Exp $
#
# Maintenance shell script to vacuum and backup database
# Put this in /usr/local/etc/periodic/daily, and it will be run
@@ -19,10 +19,12 @@
# daily_pgsql_backup_enable="foo bar db1 db2" # only do backup of a limited selection of databases
# daily_pgsql_vacuum_enable="YES" # do vacuum
-daily_pgsql_vacuum_args="-z"
-daily_pgsql_pgdump_args="-b -F c"
+daily_pgsql_user=%%PG_USER%%
+daily_pgsql_vacuum_args="-U ${daily_pgsql_user} -qaz"
+daily_pgsql_pgdump_args="-U ${daily_pgsql_user} -bF c"
+daily_pgsql_pgdumpall_globals_args="-U ${daily_pgsql_user}"
# backupdir is relative to ~pgsql home directory unless it begins with a slash:
-daily_pgsql_backupdir="~pgsql/backups"
+daily_pgsql_backupdir="~${daily_pgsql_user}/backups"
daily_pgsql_savedays="7"
# If there is a global system configuration file, suck it in.
@@ -39,12 +41,12 @@ eval backupdir=${daily_pgsql_backupdir}
rc=0
pgsql_backup() {
- # daily_pgsql_backupdir must be writeable by user pgsql
- # ~pgsql is just that under normal circumstances,
+ # daily_pgsql_backupdir must be writeable by user %%PG_USER%%
+ # ~%%PG_USER%% is just that under normal circumstances,
# but this might not be where you want the backups...
if [ ! -d ${backupdir} ] ; then
echo Creating ${backupdir}
- mkdir -m 700 ${backupdir}; chown pgsql ${backupdir}
+ mkdir -m 700 ${backupdir}; chown ${daily_pgsql_user} ${backupdir}
fi
echo
@@ -55,13 +57,14 @@ pgsql_backup() {
rc=$?
now=`date "+%Y-%m-%dT%H:%M:%S"`
file=${daily_pgsql_backupdir}/pgglobals_${now}
- su -l pgsql -c "umask 077; pg_dumpall -g | gzip -9 > ${file}.gz"
+ su -l ${daily_pgsql_user} -c \
+ "umask 077; pg_dumpall -g ${daily_pgsql_pgdumpall_globals_args} | gzip -9 > ${file}.gz"
db=$1
while shift; do
echo -n " $db"
file=${backupdir}/pgdump_${db}_${now}
- su -l pgsql -c "umask 077; pg_dump ${daily_pgsql_pgdump_args} -f ${file} ${db}"
+ su -l ${daily_pgsql_user} -c "umask 077; pg_dump ${daily_pgsql_pgdump_args} -f ${file} ${db}"
[ $? -gt 0 ] && rc=3
db=$1
done
@@ -79,7 +82,7 @@ pgsql_backup() {
case "$daily_pgsql_backup_enable" in
[Yy][Ee][Ss])
- dbnames=`su -l pgsql -c "umask 077; psql -q -t -A -d template1 -c SELECT\ datname\ FROM\ pg_database\ WHERE\ datname!=\'template0\'"`
+ dbnames=`su -l %%PG_USER%% -c "umask 077; psql -q -t -A -d template1 -U %%PG_USER%% -c SELECT\ datname\ FROM\ pg_database\ WHERE\ datname!=\'template0\'"`
pgsql_backup $dbnames
;;
@@ -99,7 +102,7 @@ case "$daily_pgsql_vacuum_enable" in
echo
echo "PostgreSQL vacuum"
- su -l pgsql -c "vacuumdb -a -q ${daily_pgsql_vacuum_args}"
+ su -l ${daily_pgsql_user} -c "vacuumdb ${daily_pgsql_vacuum_args}"
if [ $? -gt 0 ]
then
echo
diff --git a/databases/postgresql82-server/files/patch-src-plperl-plperl b/databases/postgresql82-server/files/patch-src-plperl-plperl
deleted file mode 100644
index 4edb469a73d4..000000000000
--- a/databases/postgresql82-server/files/patch-src-plperl-plperl
+++ /dev/null
@@ -1,28 +0,0 @@
-Obtained from: http://archives.postgresql.org/pgsql-hackers/2011-04/msg01283.php
-Reference: http://search.cpan.org/~jesse/perl-5.14.0/pod/perldelta.pod#GvCV()_and_GvGP()_are_no_longer_lvalues
-
---- src/pl/plperl/plperl.c.orig 2011-04-15 11:15:53.000000000 +0800
-+++ src/pl/plperl/plperl.c 2011-05-19 20:39:34.126713700 +0800
-@@ -687,7 +687,7 @@
- if (!isGV_with_GP(sv) || !GvCV(sv))
- continue;
- SvREFCNT_dec(GvCV(sv)); /* free the CV */
-- GvCV(sv) = NULL; /* prevent call via GV */
-+ GvCV_set(sv, NULL); /* prevent call via GV */
- }
- hv_clear(stash);
-
---- src/pl/plperl/plperl.h.orig 2011-04-15 11:15:53.000000000 +0800
-+++ src/pl/plperl/plperl.h 2011-05-19 20:39:34.127713548 +0800
-@@ -43,6 +43,11 @@
- #undef bool
- #endif
-
-+/* supply GvCV_set if it's missing - ppport.h doesn't supply it, unfortunately */
-+#ifndef GvCV_set
-+#define GvCV_set(gv, cv) (GvCV(gv) = cv)
-+#endif
-+
- /* routines from spi_internal.c */
- int spi_DEBUG(void);
- int spi_LOG(void);
diff --git a/databases/postgresql82-server/pkg-install-server b/databases/postgresql82-server/pkg-install-server
index c3db75540ffa..6f41226305d7 100644
--- a/databases/postgresql82-server/pkg-install-server
+++ b/databases/postgresql82-server/pkg-install-server
@@ -2,11 +2,10 @@
# $FreeBSD$
-PATH=/bin:/usr/sbin
-PGUSER=pgsql
-DB_DIR=${PKG_PREFIX}/${PGUSER}
+PATH=/bin:/usr/bin:/usr/sbin
-backupwarning() { echo "
+backupwarning() {
+cat <<EOF
=========== BACKUP YOUR DATA! =============
As always, backup your data before
@@ -17,49 +16,12 @@ backupwarning() { echo "
Press ctrl-C *now* if you need to pg_dump.
===========================================
-"
+EOF
sleep 5
}
case $2 in
PRE-INSTALL)
backupwarning
- USER=${PGUSER}
- GROUP=${USER}
- UID=70
- GID=${UID}
-
- if pw group show "${GROUP}" 2>/dev/null; then
- echo "You already have a group \"${GROUP}\", so I will use it."
- else
- if pw groupadd ${GROUP} -g ${GID}; then
- echo "Added group \"${GROUP}\"."
- else
- echo "Adding group \"${GROUP}\" failed..."
- exit 1
- fi
- fi
-
- if pw user show "${USER}" 2>/dev/null; then
- echo "You already have a user \"${USER}\", so I will use it."
- else
- if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \
- -d ${DB_DIR} -c "PostgreSQL Daemon"
- then
- echo "Added user \"${USER}\"."
- else
- echo "Adding user \"${USER}\" failed..."
- exit 1
- fi
- fi
-
- if ! [ -x ~${PGUSER} ] ; then
- mkdir -p ${DB_DIR}
- chown pgsql:pgsql ${DB_DIR}
- fi
- ;;
-
-BACKUPWARNING)
- backupwarning
;;
esac
diff --git a/databases/postgresql82-server/pkg-plist-server b/databases/postgresql82-server/pkg-plist-server
index 4f2c1fcdcf32..f78ba2187495 100644
--- a/databases/postgresql82-server/pkg-plist-server
+++ b/databases/postgresql82-server/pkg-plist-server
@@ -155,6 +155,7 @@ share/postgresql/timezone/Africa/Freetown
share/postgresql/timezone/Africa/Gaborone
share/postgresql/timezone/Africa/Harare
share/postgresql/timezone/Africa/Johannesburg
+share/postgresql/timezone/Africa/Juba
share/postgresql/timezone/Africa/Kampala
share/postgresql/timezone/Africa/Khartoum
share/postgresql/timezone/Africa/Kigali
@@ -269,10 +270,12 @@ share/postgresql/timezone/America/Juneau
share/postgresql/timezone/America/Kentucky/Louisville
share/postgresql/timezone/America/Kentucky/Monticello
share/postgresql/timezone/America/Knox_IN
+share/postgresql/timezone/America/Kralendijk
share/postgresql/timezone/America/La_Paz
share/postgresql/timezone/America/Lima
share/postgresql/timezone/America/Los_Angeles
share/postgresql/timezone/America/Louisville
+share/postgresql/timezone/America/Lower_Princes
share/postgresql/timezone/America/Maceio
share/postgresql/timezone/America/Managua
share/postgresql/timezone/America/Manaus
@@ -743,19 +746,7 @@ share/postgresql/timezonesets/Pacific.txt
@dirrm share/postgresql/timezone/US
@dirrm share/postgresql/timezone
@dirrm share/postgresql/timezonesets
-@unexec if cmp -s ~pgsql/.profile %D/share/postgresql/dot.profile.dist; then rm -f ~pgsql/.profile; fi
-@unexec if cmp -s ~pgsql/.cshrc %D/share/postgresql/dot.cshrc.dist; then rm -f ~pgsql/.cshrc; fi
-@unexec [ -f ~pgsql/dot.profile.dist ] && rm ~pgsql/dot.profile.dist
-@unexec [ -f ~pgsql/dot.cshrc.dist ] && rm ~pgsql/dot.cshrc.dist
-share/postgresql/dot.profile.dist
-share/postgresql/dot.cshrc.dist
-@exec [ -f %D/share/postgresql/dot.profile.dist ] && cp %D/share/postgresql/dot.profile.dist ~pgsql/.
-@exec [ -f %D/share/postgresql/dot.cshrc.dist ] && cp %D/share/postgresql/dot.cshrc.dist ~pgsql/.
-@exec [ -f ~pgsql/.profile ] || (cp %D/share/postgresql/dot.profile.dist ~pgsql/.profile && chown pgsql:pgsql ~pgsql/.profile)
-@exec [ -f ~pgsql/.cshrc ] || (cp %D/share/postgresql/dot.cshrc.dist ~pgsql/.cshrc && chown pgsql:pgsql ~pgsql/.cshrc)
-@unexec echo "Warning: If you will *NOT* use this package anymore, please remove the pgsql user manually."
@dirrmtry share/postgresql
@dirrmtry etc/periodic/daily
@dirrmtry etc/periodic
@dirrmtry lib/postgresql
-@dirrmtry pgsql