From d9a60ff20fdef5ff2634ff38096cc7c163b9eca3 Mon Sep 17 00:00:00 2001 From: Palle Girgensohn Date: Tue, 18 Oct 2011 09:03:33 +0000 Subject: 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. --- databases/postgresql82-server/Makefile | 70 ++++++++----- databases/postgresql82-server/distinfo | 4 +- databases/postgresql82-server/files/502.pgsql | 112 -------------------- databases/postgresql82-server/files/502.pgsql.in | 115 +++++++++++++++++++++ .../files/patch-src-plperl-plperl | 28 ----- databases/postgresql82-server/pkg-install-server | 46 +-------- databases/postgresql82-server/pkg-plist-server | 15 +-- 7 files changed, 168 insertions(+), 222 deletions(-) delete mode 100644 databases/postgresql82-server/files/502.pgsql create mode 100644 databases/postgresql82-server/files/502.pgsql.in delete mode 100644 databases/postgresql82-server/files/patch-src-plperl-plperl (limited to 'databases/postgresql82-server') 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 +.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 deleted file mode 100644 index 281189a59c46..000000000000 --- a/databases/postgresql82-server/files/502.pgsql +++ /dev/null @@ -1,112 +0,0 @@ -#!/bin/sh -# -# $FreeBSD$ -# -# Maintenance shell script to vacuum and backup database -# Put this in /usr/local/etc/periodic/daily, and it will be run -# every night -# -# Written by Palle Girgensohn -# -# In public domain, do what you like with it, -# and use it at your own risk... :) -# - -# Define these variables in either /etc/periodic.conf or -# /etc/periodic.conf.local to override the default values. -# -# daily_pgsql_backup_enable="YES" # do backup of all databases -# 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" -# backupdir is relative to ~pgsql home directory unless it begins with a slash: -daily_pgsql_backupdir="~pgsql/backups" -daily_pgsql_savedays="7" - -# If there is a global system configuration file, suck it in. -# -if [ -r /etc/defaults/periodic.conf ] -then - . /etc/defaults/periodic.conf - source_periodic_confs -fi - -# allow '~´ in dir name -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, - # but this might not be where you want the backups... - if [ ! -d ${backupdir} ] ; then - echo Creating ${backupdir} - mkdir -m 700 ${backupdir}; chown pgsql ${backupdir} - fi - - echo - echo "PostgreSQL backups" - - # Protect the data - umask 077 - 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" - - 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}" - [ $? -gt 0 ] && rc=3 - db=$1 - done - - if [ $rc -gt 0 ]; then - echo - echo "Errors were reported during backup." - fi - - # cleaning up old data - find ${backupdir} \( -name 'pgdump_*' -o -name 'pgglobals_*' \) \ - -a -mtime +${daily_pgsql_savedays} -delete - echo -} - -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\'"` - pgsql_backup $dbnames - ;; - - [Nn][Oo]) - ;; - - "") - ;; - - *) - pgsql_backup $daily_pgsql_backup_enable - ;; -esac - -case "$daily_pgsql_vacuum_enable" in - [Yy][Ee][Ss]) - - echo - echo "PostgreSQL vacuum" - su -l pgsql -c "vacuumdb -a -q ${daily_pgsql_vacuum_args}" - if [ $? -gt 0 ] - then - echo - echo "Errors were reported during vacuum." - rc=3 - fi - ;; -esac - -exit $rc diff --git a/databases/postgresql82-server/files/502.pgsql.in b/databases/postgresql82-server/files/502.pgsql.in new file mode 100644 index 000000000000..69bfff4cef12 --- /dev/null +++ b/databases/postgresql82-server/files/502.pgsql.in @@ -0,0 +1,115 @@ +#!/bin/sh +# +# $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 +# every night +# +# Written by Palle Girgensohn +# +# In public domain, do what you like with it, +# and use it at your own risk... :) +# + +# Define these variables in either /etc/periodic.conf or +# /etc/periodic.conf.local to override the default values. +# +# daily_pgsql_backup_enable="YES" # do backup of all databases +# 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_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="~${daily_pgsql_user}/backups" +daily_pgsql_savedays="7" + +# If there is a global system configuration file, suck it in. +# +if [ -r /etc/defaults/periodic.conf ] +then + . /etc/defaults/periodic.conf + source_periodic_confs +fi + +# allow '~´ in dir name +eval backupdir=${daily_pgsql_backupdir} + +rc=0 + +pgsql_backup() { + # 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 ${daily_pgsql_user} ${backupdir} + fi + + echo + echo "PostgreSQL backups" + + # Protect the data + umask 077 + rc=$? + now=`date "+%Y-%m-%dT%H:%M:%S"` + file=${daily_pgsql_backupdir}/pgglobals_${now} + 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 ${daily_pgsql_user} -c "umask 077; pg_dump ${daily_pgsql_pgdump_args} -f ${file} ${db}" + [ $? -gt 0 ] && rc=3 + db=$1 + done + + if [ $rc -gt 0 ]; then + echo + echo "Errors were reported during backup." + fi + + # cleaning up old data + find ${backupdir} \( -name 'pgdump_*' -o -name 'pgglobals_*' \) \ + -a -mtime +${daily_pgsql_savedays} -delete + echo +} + +case "$daily_pgsql_backup_enable" in + [Yy][Ee][Ss]) + 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 + ;; + + [Nn][Oo]) + ;; + + "") + ;; + + *) + pgsql_backup $daily_pgsql_backup_enable + ;; +esac + +case "$daily_pgsql_vacuum_enable" in + [Yy][Ee][Ss]) + + echo + echo "PostgreSQL vacuum" + su -l ${daily_pgsql_user} -c "vacuumdb ${daily_pgsql_vacuum_args}" + if [ $? -gt 0 ] + then + echo + echo "Errors were reported during vacuum." + rc=3 + fi + ;; +esac + +exit $rc 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 </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 -- cgit v1.2.3