diff options
author | seanc <seanc@FreeBSD.org> | 2003-02-07 19:00:47 +0800 |
---|---|---|
committer | seanc <seanc@FreeBSD.org> | 2003-02-07 19:00:47 +0800 |
commit | c78178f8eb9125ccdd4a02198253a2af3b2b02e7 (patch) | |
tree | 91154cab74f1c2e11ca6c3d6b559713aa09a479d /databases | |
parent | 6f99e6e331680c7af1f30b43d871d8468aa677fc (diff) | |
download | freebsd-ports-gnome-c78178f8eb9125ccdd4a02198253a2af3b2b02e7.tar.gz freebsd-ports-gnome-c78178f8eb9125ccdd4a02198253a2af3b2b02e7.tar.zst freebsd-ports-gnome-c78178f8eb9125ccdd4a02198253a2af3b2b02e7.zip |
Bow to the masses who have complained bitterly about not being able to
upgrade to the PostgreSQL 7.3 series and provide an update to the 7.2
series, 7.2.4. :~] This port _will_ be removed and should EOL'ed in
about 6 months time. Since there is no future for these bits, ignore their
heritage commit an orphan for the 7 series. See the postgresql7 port for
future and past bits. This port is only intended to serve as a means of
postponing an inevitable upgrade to recent release.
DBAs, please plan and begin upgrading to 7.3.X, the grass really is greener.
Release notes:
http://developer.postgresql.org/docs/postgres/release-7-2-4.html
PR: ports/48025
Submitted by: Palle Girgensohn <girgen@pingpong.net>
Diffstat (limited to 'databases')
-rw-r--r-- | databases/Makefile | 1 | ||||
-rw-r--r-- | databases/postgresql72/Makefile | 177 | ||||
-rw-r--r-- | databases/postgresql72/distinfo | 4 | ||||
-rw-r--r-- | databases/postgresql72/files/502.pgsql | 83 | ||||
-rw-r--r-- | databases/postgresql72/files/dot.cshrc.in | 13 | ||||
-rw-r--r-- | databases/postgresql72/files/dot.profile.in | 18 | ||||
-rw-r--r-- | databases/postgresql72/files/patch-aj | 118 | ||||
-rw-r--r-- | databases/postgresql72/files/patch-configure | 59 | ||||
-rw-r--r-- | databases/postgresql72/files/patch-src::include::port::freebsd.h | 10 | ||||
-rw-r--r-- | databases/postgresql72/files/pgsql.sh.tmpl | 40 | ||||
-rw-r--r-- | databases/postgresql72/files/post-install-notes | 57 | ||||
-rw-r--r-- | databases/postgresql72/pkg-comment | 1 | ||||
-rw-r--r-- | databases/postgresql72/pkg-descr | 26 | ||||
-rw-r--r-- | databases/postgresql72/pkg-install | 58 | ||||
-rw-r--r-- | databases/postgresql72/pkg-message | 36 | ||||
-rw-r--r-- | databases/postgresql72/pkg-message.client | 16 | ||||
-rw-r--r-- | databases/postgresql72/pkg-plist | 120 | ||||
-rw-r--r-- | databases/postgresql72/scripts/configure.postgresql | 167 |
18 files changed, 1004 insertions, 0 deletions
diff --git a/databases/Makefile b/databases/Makefile index 41d2def10b6e..4700dc8806ad 100644 --- a/databases/Makefile +++ b/databases/Makefile @@ -133,6 +133,7 @@ SUBDIR += postgresql-pltcl SUBDIR += postgresql-tcltk SUBDIR += postgresql7 + SUBDIR += postgresql72 SUBDIR += postgresql_autodoc SUBDIR += pxtools SUBDIR += py-MySQL diff --git a/databases/postgresql72/Makefile b/databases/postgresql72/Makefile new file mode 100644 index 000000000000..f17f4eca992a --- /dev/null +++ b/databases/postgresql72/Makefile @@ -0,0 +1,177 @@ +# New ports collection makefile for: PostgreSQL +# Date created: November 13, 1998 +# Whom: Marc G. Fournier <scrappy@FreeBSD.org> +# +# $FreeBSD$ +# + +PORTNAME?= postgresql +PORTVERSION?= 7.2.4 +CATEGORIES?= databases +MASTER_SITES= ftp://ftp.postgresql.org/pub/%SUBDIR%/ \ + ftp://ftp.se.postgresql.org/pub/database/relational/postgresql/%SUBDIR%/ \ + ftp://ftp2.ch.postgresql.org/mirror/postgresql/%SUBDIR%/ \ + ftp://ftp.de.postgresql.org/mirror/postgresql/%SUBDIR%/ \ + ftp://ftp.chg.ru/pub/databases/postgresql/%SUBDIR%/ \ + ftp://ftp.sunet.se/pub/unix/databases/relational/postgresql/%SUBDIR%/ \ + ftp://ftp2.ch.postgresql.org/mirror/postgresql/%SUBDIR%/ \ + ftp://ftp.jaist.ac.jp/pub/dbms/PostgreSQL/%SUBDIR%/ \ + ftp://ftp.us.postgresql.org/%SUBDIR%/ +MASTER_SITE_SUBDIR= source/v${PORTVERSION} +DISTFILES= postgresql-base-${PORTVERSION}${EXTRACT_SUFX} \ + postgresql-opt-${PORTVERSION}${EXTRACT_SUFX} + +MAINTAINER?= girgen@pingpong.net + +WRKSRC= ${WRKDIR}/postgresql-${PORTVERSION} +DIST_SUBDIR= postgresql + +USE_SUBMAKE= yes +USE_GMAKE= YES +GNU_CONFIGURE= YES + +.if defined(POSTGRESQL_SUBPORT) +## the POSTGRESQL_SUBPORTS use this port's distinfo +MD5_FILE= ${.CURDIR}/../postgresql7/distinfo +.else + +## The rest of this file is for normal base installation +INSTALLS_SHLIB= YES + +CONFIGURE_ARGS= --enable-locale --enable-syslog --with-CXX \ + --docdir=${PREFIX}/share/doc --with-libdir=${LOCALBASE}/lib \ + --with-includes=${LOCALBASE}/include + +.if !defined(WITHOUT_GNUGETOPT) +LDFLAGS+= -L${LOCALBASE}/lib -lgnugetopt +CONFIGURE_ENV+= LDFLAGS="${LDFLAGS}" +LIB_DEPENDS= gnugetopt:${PORTSDIR}/devel/libgnugetopt +.endif + +# if you want localized messages, make -DWITH_GETTEXT +# WARNING: this seems to require relinking binaries depending on +# libpq.so, including for example mod_php and tcl. +.if defined(WITH_GETTEXT) +CONFIGURE_ARGS+=--enable-nls +CONFIGURE_ENV+= "LIBS=-lintl" +LDFLAGS+= -L${LOCALBASE}/lib -lintl +LIB_DEPENDS+= intl.4:${PORTSDIR}/devel/gettext +PLIST_SUB+= GETTEXT="" +.else +PLIST_SUB+= GETTEXT="@comment " +.endif + +.if !defined(WITHOUT_SSL) +USE_OPENSSL= yes +CONFIGURE_ARGS+= "--with-openssl=${OPENSSLBASE}" +.endif + +MAN1= createdb.1 createlang.1 createuser.1 dropdb.1 droplang.1 \ + dropuser.1 ecpg.1 initdb.1 initlocation.1 ipcclean.1 pg_config.1 \ + pg_ctl.1 pg_dump.1 pg_dumpall.1 pg_passwd.1 pg_restore.1 \ + pgaccess.1 pgtclsh.1 pgtksh.1 postgres.1 postmaster.1 psql.1 \ + vacuumdb.1 +MAN7= abort.7 alter_group.7 alter_table.7 alter_user.7 analyze.7 \ + begin.7 checkpoint.7 close.7 cluster.7 comment.7 commit.7 copy.7 \ + create_aggregate.7 create_constraint_trigger.7 \ + create_database.7 create_function.7 create_group.7 \ + create_index.7 create_language.7 create_operator.7 \ + create_rule.7 create_sequence.7 create_table.7 \ + create_table_as.7 create_trigger.7 create_type.7 \ + create_user.7 create_view.7 declare.7 delete.7 \ + drop_aggregate.7 drop_database.7 drop_function.7 \ + drop_group.7 drop_index.7 drop_language.7 \ + drop_operator.7 drop_rule.7 drop_sequence.7 \ + drop_table.7 drop_trigger.7 drop_type.7 drop_user.7 \ + drop_view.7 end.7 explain.7 fetch.7 grant.7 insert.7 \ + listen.7 load.7 lock.7 move.7 notify.7 reindex.7 \ + reset.7 revoke.7 rollback.7 select.7 select_into.7 \ + set.7 set_constraints.7 set_transaction.7 show.7 \ + set_session_authorization.7 \ + truncate.7 unlisten.7 update.7 vacuum.7 + +SCRIPTS_ENV= WRKDIRPREFIX="${WRKDIRPREFIX}" \ + WRKDIR="${WRKDIR}" \ + FILESDIR="${FILESDIR}" \ + TOUCH="${TOUCH}" \ + MKDIR="${MKDIR}" \ + DISTNAME="${DISTNAME}" + +# We must .include here because we need the Makefile.inc @ pre-install +# to determine the correct plist. +.if exists(${WRKDIRPREFIX}${.CURDIR}/Makefile.inc) +.include "${WRKDIRPREFIX}${.CURDIR}/Makefile.inc" +.endif + +.if defined(WITHOUT_SERVER) +PKGMESSAGE= ${PKGDIR}/pkg-message.client +PLIST_SUB+= SERVER="@comment " +.else +PLIST_SUB+= SERVER="" +.endif + +.if defined(WITHOUT_MULTIBYTE) +PLIST_SUB+= MULTIBYTE="@comment " +.else +PLIST_SUB+= MULTIBYTE="" +CONFIGURE_ARGS+=--enable-multibyte=${MULTIBYTE_ENCODING} +.endif + +pre-everything:: + @ ${SETENV} ${SCRIPTS_ENV} ${SH} ${SCRIPTDIR}/configure.postgresql + +pre-install: +.if !defined(WITHOUT_SERVER) + @ ${SETENV} PKG_PREFIX=${PREFIX} \ + ${SH} ${PKGDIR}/pkg-install ${PORTNAME} PRE-INSTALL +.endif + +post-build: + @ cd ${WRKSRC} ; ${SETENV} ${MAKE_ENV} ${GMAKE} -C src/interfaces/odbc odbc-drop.sql + +post-install: + @ ${MKDIR} ${PREFIX}/share/postgresql ;\ + ${CAT} ${FILESDIR}/post-install-notes ${PKGMESSAGE} |\ + ${SED} "s|/usr/local|${PREFIX}|g" |\ + tee ${PREFIX}/share/postgresql/post-install-notes +.if !defined(DEBUG_FLAGS) +.for file in ecpg pg_dump pg_id pg_passwd pg_restore psql + @ strip ${PREFIX}/bin/${file} +.endfor +.endif +.if !defined(WITHOUT_SERVER) +# install shell defaults for pgsql user + @ strip ${PREFIX}/bin/postgres +.for i in profile cshrc + @ ${SED} "s|%%PREFIX%%|${PREFIX}|g" \ + < ${FILESDIR}/dot.$i.in \ + > ${PREFIX}/share/postgresql/dot.$i.dist; \ + ${CP} ${PREFIX}/share/postgresql/dot.$i.dist ~pgsql/; \ + if [ ! -f ~pgsql/.$i ]; then \ + ${CP} ${PREFIX}/share/postgresql/dot.$i.dist ~pgsql/.$i; \ + fi +.endfor + @ ${SED} -e "s|%%PREFIX%%|${PREFIX}|g; s|%%PG_PREFIX%%|${PG_PREFIX}|g" \ + < ${FILESDIR}/pgsql.sh.tmpl \ + > ${PREFIX}/etc/rc.d/010.pgsql.sh ;\ + ${CHMOD} 554 ${PREFIX}/etc/rc.d/010.pgsql.sh ;\ + ${CHOWN} root:pgsql ${PREFIX}/etc/rc.d/010.pgsql.sh ;\ + ${INSTALL_DATA} ${PREFIX}/share/postgresql/post-install-notes ~pgsql/. ;\ + ${CHOWN} -R pgsql:pgsql ~pgsql/. ;\ + ${INSTALL_DATA} ${FILESDIR}/502.pgsql \ + ${WRKSRC}/src/interfaces/odbc/odbc.sql \ + ${WRKSRC}/src/interfaces/odbc/odbc-drop.sql \ + ${PREFIX}/share/postgresql +.else +do-install: + @ cd ${WRKSRC}; \ + ${GMAKE} -C src/bin install ;\ + ${GMAKE} -C src/include install ;\ + ${GMAKE} -C src/interfaces install +.endif + +post-clean: + @ ${RM} -f ${WRKDIRPREFIX}${.CURDIR}/Makefile.inc + +.include <bsd.port.mk> +.endif diff --git a/databases/postgresql72/distinfo b/databases/postgresql72/distinfo new file mode 100644 index 000000000000..cee90fcca25c --- /dev/null +++ b/databases/postgresql72/distinfo @@ -0,0 +1,4 @@ +MD5 (postgresql/postgresql-base-7.2.4.tar.gz) = e14f3c8900179f24caa9cc24a45f04d6 +MD5 (postgresql/postgresql-opt-7.2.4.tar.gz) = 220e55cfc28a43ca69bf638736067d8d +MD5 (postgresql/postgresql-docs-7.2.4.tar.gz) = 974bfcca02733007b9b1f75170e19f09 +MD5 (postgresql/postgresql-test-7.2.4.tar.gz) = ae331026272b62095f03175a59b760e1 diff --git a/databases/postgresql72/files/502.pgsql b/databases/postgresql72/files/502.pgsql new file mode 100644 index 000000000000..c372163f7407 --- /dev/null +++ b/databases/postgresql72/files/502.pgsql @@ -0,0 +1,83 @@ +#!/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 <girgen@partitur.se> +# +# In public domain, do what you like with it, +# and use it at your own risk... :) +# +###################################################################### +# +# If you like to tweak the settings of the variables PGBACKUPDIR and +# PGDUMP_ARGS, you should preferably set them in ~pgsql/.profile. +# If set there, that setting will override the defaults here. +# +###################################################################### + +DIR=`dirname $0` +progname=`basename $0` +PRG=`cd $DIR; pwd `/$progname + +# Run as user pgsql +if [ `id -un` != pgsql ]; then + su -l pgsql -c ${PRG} + exit $? +fi + +# arguments to pg_dump +PGDUMP_ARGS=${PGDUMP_ARGS:-"-b -F c"} + +# The directory where the backups will reside. +# ${HOME} is pgsql's home directory +# +PGBACKUPDIR=${PGBACKUPDIR:-${HOME}/backups} + +# PGBACKUPDIR 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 ${PGBACKUPDIR} ] ; then + echo Creating ${PGBACKUPDIR} + mkdir ${PGBACKUPDIR} + chmod 700 ${PGBACKUPDIR} +fi + +echo +echo "PostgreSQL maintenance" + +# Protect the data +umask 077 +dbnames=`psql -q -t -A -d template1 -c "SELECT datname FROM pg_database WHERE datname != 'template0'"` +rc=$? +file=${PGBACKUPDIR}/pgglobals_`date "+%Y%m%d"` +pg_dumpall -g | gzip -9 > ${file}.gz +for db in ${dbnames}; do + echo -n " $db" + file=${PGBACKUPDIR}/pgdump_${db}_`date "+%Y%m%d"` + pg_dump ${PGDUMP_ARGS} -f ${file} ${db} + [ $? -gt 0 ] && rc=3 +done + +if [ $rc -gt 0 ]; then + echo + echo "Errors were reported during backup." +fi + +echo +echo "vacuuming..." +vacuumdb -a -z -q +if [ $? -gt 0 ] +then + echo + echo "Errors were reported during vacuum." + rc=3 +fi + +# cleaning up old data +find ${PGBACKUPDIR} -name 'pgdump_*' -a -atime +7 -delete + +exit $rc diff --git a/databases/postgresql72/files/dot.cshrc.in b/databases/postgresql72/files/dot.cshrc.in new file mode 100644 index 000000000000..724212c70b23 --- /dev/null +++ b/databases/postgresql72/files/dot.cshrc.in @@ -0,0 +1,13 @@ +set path = ( %%PREFIX%%/bin $path ) + +setenv PGLIB %%PREFIX%%/lib + +# note: PGDATA can be overridden by the -D startup option +setenv PGDATA $HOME/data + +#You might want to set some locale stuff here +#setenv PGDATESTYLE ISO +#setenv LC_ALL sv_SE.ISO_8859-1 + +# if you want to make regression tests use this TZ +#setenv TZ PST8PDT diff --git a/databases/postgresql72/files/dot.profile.in b/databases/postgresql72/files/dot.profile.in new file mode 100644 index 000000000000..96344d533921 --- /dev/null +++ b/databases/postgresql72/files/dot.profile.in @@ -0,0 +1,18 @@ +# both new and old layout's paths, but new path first... +PATH=%%PREFIX%%/bin:${PATH} + +PGLIB=%%PREFIX%%/lib + +# note: PGDATA can be overridden by the -D startup option +PGDATA=${HOME}/data + +export PATH PGLIB PGDATA + +#You might want to set some locale stuff here +#PGDATESTYLE=ISO +#LC_ALL=sv_SE.ISO_8859-1 +#export PGDATESTYLE LC_ALL + +# if you want to make regression tests use this TZ +#TZ=PST8PDT +#export TZ diff --git a/databases/postgresql72/files/patch-aj b/databases/postgresql72/files/patch-aj new file mode 100644 index 000000000000..94c0d6d79991 --- /dev/null +++ b/databases/postgresql72/files/patch-aj @@ -0,0 +1,118 @@ +--- src/bin/pg_passwd/pg_passwd.c.orig Sat Mar 24 01:54:55 2001 ++++ src/bin/pg_passwd/pg_passwd.c Wed Apr 18 04:54:14 2001 +@@ -7,6 +7,12 @@ + #include <errno.h> + #include <time.h> + #include <ctype.h> ++ ++#if defined(__FreeBSD__) ++#include <pwd.h> /* defines _PASSWORD_LEN, max # of characters in a password */ ++#include <sys/time.h> /* gettimeofday for password salt */ ++#endif ++ + #define issaltchar(c) (isalnum((unsigned char) (c)) || (c) == '.' || (c) == '/') + + #ifdef HAVE_TERMIOS_H +@@ -23,18 +29,31 @@ + * We assume that the output of crypt(3) is always 13 characters, + * and that at most 8 characters can usefully be sent to it. + * ++ * For FreeBSD, take these values from /usr/include/pwd.h + * Postgres usernames are assumed to be less than NAMEDATALEN chars long. + */ ++#if defined(__FreeBSD__) ++#define CLEAR_PASSWD_LEN _PASSWORD_LEN ++#define CRYPTED_PASSWD_LEN _PASSWORD_LEN /* max length, not containing NULL */ ++#define SALT_LEN 10 ++#else + #define CLEAR_PASSWD_LEN 8 /* not including null */ + #define CRYPTED_PASSWD_LEN 13 /* not including null */ ++#define SALT_LEN 3 ++#endif ++ ++static unsigned char itoa64[] = /* 0 ... 63 => ascii - 64 */ ++ "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; ++ + + const char *progname; + + static void usage(void); ++static void to64(char *s, long v, int n); + static void read_pwd_file(char *filename); + static void write_pwd_file(char *filename, char *bkname); + static void encrypt_pwd(char key[CLEAR_PASSWD_LEN + 1], +- char salt[3], ++ char salt[SALT_LEN], + char passwd[CRYPTED_PASSWD_LEN + 1]); + static void prompt_for_username(char *username); + static void prompt_for_password(char *prompt, char *password); +@@ -47,6 +66,15 @@ + printf("Report bugs to <pgsql-bugs@postgresql.org>.\n"); + } + ++static void ++to64(char *s, long v, int n) ++{ ++ while (--n >= 0) { ++ *s++ = itoa64[v&0x3f]; ++ v >>= 6; ++ } ++} ++ + typedef struct + { + char *uname; +@@ -154,7 +182,7 @@ + if (q != NULL) + *(q++) = '\0'; + +- if (strlen(p) != CRYPTED_PASSWD_LEN && strcmp(p, "+") != 0) ++ if (strlen(p) > CRYPTED_PASSWD_LEN && strcmp(p, "+") != 0) + { + fprintf(stderr, "%s:%d: warning: invalid password length\n", + filename, npwds + 1); +@@ -221,15 +249,25 @@ + + static void + encrypt_pwd(char key[CLEAR_PASSWD_LEN + 1], +- char salt[3], ++ char salt[SALT_LEN], + char passwd[CRYPTED_PASSWD_LEN + 1]) + { ++#if !defined(__FreeBSD__) + int n; +- ++#endif + /* select a salt, if not already given */ + if (salt[0] == '\0') + { ++#if defined(__FreeBSD__) ++ struct timeval tv; ++ srandomdev(); ++ gettimeofday(&tv,0); ++ to64(&salt[0], random(), 3); ++ to64(&salt[3], tv.tv_usec, 3); ++ to64(&salt[6], tv.tv_sec, 2); ++ salt[8] = '\0'; + srand(time(NULL)); ++#else + do + { + n = rand() % 256; +@@ -241,6 +279,7 @@ + } while (!issaltchar(n)); + salt[1] = n; + salt[2] = '\0'; ++#endif + } + + /* get encrypted password */ +@@ -335,7 +374,7 @@ + char *filename; + char bkname[MAXPGPATH]; + char username[NAMEDATALEN]; +- char salt[3]; ++ char salt[SALT_LEN]; + char key[CLEAR_PASSWD_LEN + 1], + key2[CLEAR_PASSWD_LEN + 1]; + char e_passwd[CRYPTED_PASSWD_LEN + 1]; diff --git a/databases/postgresql72/files/patch-configure b/databases/postgresql72/files/patch-configure new file mode 100644 index 000000000000..efeca517d300 --- /dev/null +++ b/databases/postgresql72/files/patch-configure @@ -0,0 +1,59 @@ +--- configure.orig Wed Jun 26 21:28:24 2002 ++++ configure Wed Jun 26 21:35:16 2002 +@@ -2007,11 +2007,13 @@ + EOF + + +- if test -d "$krb4_prefix/include"; then +- INCLUDES="$INCLUDES -I$krb4_prefix/include" +- fi +- if test -d "$krb4_prefix/lib"; then +- LIBDIRS="$LIBDIRS -L$krb4_prefix/lib" ++ if test "$krb4_prefix" != "/usr"; then ++ if test -d "$krb4_prefix/include"; then ++ INCLUDES="$INCLUDES -I$krb4_prefix/include" ++ fi ++ if test -d "$krb4_prefix/lib"; then ++ LIBDIRS="$LIBDIRS -L$krb4_prefix/lib" ++ fi + fi + + krb_srvtab="/etc/srvtab" +@@ -2052,11 +2054,13 @@ + EOF + + +- if test -d "$krb5_prefix/include"; then +- INCLUDES="$INCLUDES -I$krb5_prefix/include" +- fi +- if test -d "$krb5_prefix/lib"; then +- LIBDIRS="$LIBDIRS -L$krb5_prefix/lib" ++ if test "$krb5_prefix" != "/usr"; then ++ if test -d "$krb5_prefix/include"; then ++ INCLUDES="$INCLUDES -I$krb5_prefix/include" ++ fi ++ if test -d "$krb5_prefix/lib"; then ++ LIBDIRS="$LIBDIRS -L$krb5_prefix/lib" ++ fi + fi + + krb_srvtab="FILE:\$(sysconfdir)/krb5.keytab" +@@ -2157,11 +2161,13 @@ + EOF + + +- if test -d "${openssl_prefix}/include" ; then +- INCLUDES="$INCLUDES -I${openssl_prefix}/include" +- fi +- if test -d "${openssl_prefix}/lib" ; then +- LIBDIRS="$LIBDIRS -L${openssl_prefix}/lib" ++ if test "${openssl_prefix}" != "/usr"; then ++ if test -d "${openssl_prefix}/include" ; then ++ INCLUDES="$INCLUDES -I${openssl_prefix}/include" ++ fi ++ if test -d "${openssl_prefix}/lib" ; then ++ LIBDIRS="$LIBDIRS -L${openssl_prefix}/lib" ++ fi + fi + + fi diff --git a/databases/postgresql72/files/patch-src::include::port::freebsd.h b/databases/postgresql72/files/patch-src::include::port::freebsd.h new file mode 100644 index 000000000000..01891af61d0e --- /dev/null +++ b/databases/postgresql72/files/patch-src::include::port::freebsd.h @@ -0,0 +1,10 @@ +--- src/include/port/freebsd.h.orig Wed Jan 1 16:43:31 2003 ++++ src/include/port/freebsd.h Wed Jan 1 16:43:39 2003 +@@ -7,6 +7,7 @@ + #if defined(__sparc__) + #define NEED_SPARC_TAS_ASM + #define HAS_TEST_AND_SET ++typedef unsigned char slock_t; + #endif + + #if defined(__alpha__) diff --git a/databases/postgresql72/files/pgsql.sh.tmpl b/databases/postgresql72/files/pgsql.sh.tmpl new file mode 100644 index 000000000000..d67d9b642f1b --- /dev/null +++ b/databases/postgresql72/files/pgsql.sh.tmpl @@ -0,0 +1,40 @@ +#!/bin/sh + +# $FreeBSD$ +# +# For postmaster startup options, edit $PGDATA/postgresql.conf + +PREFIX=%%PREFIX%% +PGBIN=${PREFIX}/bin + +case $1 in +start) + [ -d ${PREFIX}/lib ] && /sbin/ldconfig -m ${PREFIX}/lib + touch /var/log/pgsql + chmod 600 /var/log/pgsql + chown pgsql:pgsql /var/log/pgsql + [ -x ${PGBIN}/pg_ctl ] && { + su -l pgsql -c \ + '[ -d ${PGDATA} ] && exec %%PREFIX%%/bin/pg_ctl start -s -w -l /var/log/pgsql' + echo -n ' pgsql' + } + ;; + +stop) + [ -x ${PGBIN}/pg_ctl ] && { + su -l pgsql -c 'exec %%PREFIX%%/bin/pg_ctl stop -s -m fast' + echo -n ' pgsql' + } + ;; + +status) + [ -x ${PGBIN}/pg_ctl ] && { + exec su -l pgsql -c 'exec %%PREFIX%%/bin/pg_ctl status' + } + ;; + +*) + echo "usage: `basename $0` {start|stop|status}" >&2 + exit 64 + ;; +esac diff --git a/databases/postgresql72/files/post-install-notes b/databases/postgresql72/files/post-install-notes new file mode 100644 index 000000000000..cdf343002074 --- /dev/null +++ b/databases/postgresql72/files/post-install-notes @@ -0,0 +1,57 @@ +The PostgreSQL port has a collection of "side orders": + +postgresql-doc + For all of the html documentation + +p5-Pg + A perl5 API for client access to PostgreSQL databases. + +postgresql-tcltk + If you want tcl/tk client support. You get a neat GUI, pgaccess, as + a bonus! + +postgresql-jdbc + For Java JDBC support. + +postgresql-odbc + For client access from unix applications using ODBC as access + method. Not needed to access unix PostgreSQL servers from Win32 + using ODBC. See below. + +ruby-postgres, py-PyGreSQL + For client access to PostgreSQL databases using the ruby & python + languages. + +postgresql-plperl, postgresql-pltcl & postgresql-plruby + For using perl5, tcl & ruby as procedural languages. + +etc etc... + +Note that many files have moved around compared to previous versions +of PostgreSQL. For example, plpgsql.so and all other language modules +are now in /usr/local/lib/postgresql. + +If you have many tables and many clients running, consider raising +kern.maxfiles using sysctl(8), or reconfigure your kernel +appropriately. + +You should vacuum and backup your database regularly. There is a +periodic script, /usr/local/share/postgresql/502.pgsql, that you may +find useful. + +To allow many simultaneous connections to your PostgreSQL server, you +should raise the SystemV shared memory limits in your kernel. Here are +example values for allowing up to 180 clients (tinkering in +postgresql.conf also needed, of course): + options SYSVSHM + options SYSVSEM + options SYSVMSG + options SHMMAXPGS=65536 + options SEMMNI=40 + options SEMMNS=240 + options SEMUME=40 + options SEMMNU=120 + +If you plan to access your PostgreSQL server using ODBC, please +consider running the SQL script /usr/local/share/postgresql/odbc.sql +to get the functions required for ODBC compliance. diff --git a/databases/postgresql72/pkg-comment b/databases/postgresql72/pkg-comment new file mode 100644 index 000000000000..2f1197a9821f --- /dev/null +++ b/databases/postgresql72/pkg-comment @@ -0,0 +1 @@ +The most advanced open-source database available anywhere diff --git a/databases/postgresql72/pkg-descr b/databases/postgresql72/pkg-descr new file mode 100644 index 000000000000..e08483e64c8d --- /dev/null +++ b/databases/postgresql72/pkg-descr @@ -0,0 +1,26 @@ +PostgreSQL is a sophisticated Object-Relational DBMS, supporting +almost all SQL constructs, including subselects, transactions, and +user-defined types and functions. It is the most advanced open-source +database available anywhere. Commercial Support is also available. + +The original Postgres code was the effort of many graduate students, +undergraduate students, and staff programmers working under the direction of +Professor Michael Stonebraker at the University of California, Berkeley. In +1995, Andrew Yu and Jolly Chen took on the task of converting the DBMS query +language to SQL and created a new database system which came to known as +Postgres95. Many others contributed to the porting, testing, debugging and +enhancement of the Postgres95 code. As the code improved, and 1995 faded into +memory, PostgreSQL was born. + +PostgreSQL development is presently being performed by a team of Internet +developers who are now responsible for all current and future development. The +development team coordinator is Marc G. Fournier (scrappy@PostgreSQL.ORG). +Support is available from the PostgreSQL developer/user community through the +support mailing list (questions@PostgreSQL.ORG). + +PostgreSQL is free and the complete source is available. + +This port is for the old 7.2 branch, for those who cannot upgrade to +the newer versions. + +WWW: http://www.postgresql.org/ diff --git a/databases/postgresql72/pkg-install b/databases/postgresql72/pkg-install new file mode 100644 index 000000000000..ffcd42a5796c --- /dev/null +++ b/databases/postgresql72/pkg-install @@ -0,0 +1,58 @@ +#! /bin/sh + +# $FreeBSD$ + +PATH=/bin:/usr/sbin + +DB_DIR=${PKG_PREFIX}/pgsql + +case $2 in +PRE-INSTALL) + echo " +=========== BACKUP YOUR DATA! ============= +As always, backup your data before +upgrading. If the upgrade leads to a higher +minor revision (e.g. 7.1.x -> 7.2), a dump +and restore of all databases is +required. This is *NOT* done by the port! + +Press ctrl-C *now* if you need to pg_dump. +=========================================== +" + sleep 3 + USER=pgsql + 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 ~pgsql ] ; then + mkdir -p ${DB_DIR} + chown pgsql:pgsql ${DB_DIR} + fi + ;; + +esac diff --git a/databases/postgresql72/pkg-message b/databases/postgresql72/pkg-message new file mode 100644 index 000000000000..5138a7841bee --- /dev/null +++ b/databases/postgresql72/pkg-message @@ -0,0 +1,36 @@ +====================================================================== + + * IMPORTANT UPGRADE NOTICE * IMPORTANT UPGRADE NOTICE * + +The PostgreSQL port now obeys hier(7) by default, which means that it +installs into: + +/usr/local/bin +/usr/local/lib +/usr/local/include (NOTE! Changed again in 7.2, since PostgreSQL + handles standard install nowadays) + +You *must* move away your old installation from users' and +ldconfig(8)'s PATHs. + +The pgsql user's home dir is /usr/local/pgsql by default, but can be +changed with for example chpass(1). Datadir defaults to ~pgsql/data, +but can be changed by modifying the ~pgsql/.profile script. + +====================================================================== + +To initialize the database, you should run initdb as the "pgsql" user +(if you want to use your locale for collation, edit ~pgsql/.profile +and set the locale to your preference first). + +Example: + + su -l pgsql -c initdb + +You can then start PostgreSQL by running: + + /usr/local/etc/rc.d/010.pgsql.sh start + +For postmaster settings, see ~pgsql/data/postgresql.conf +For more tips, read ~pgsql/post-install-notes +====================================================================== diff --git a/databases/postgresql72/pkg-message.client b/databases/postgresql72/pkg-message.client new file mode 100644 index 000000000000..48646e8c9901 --- /dev/null +++ b/databases/postgresql72/pkg-message.client @@ -0,0 +1,16 @@ +====================================================================== + + * IMPORTANT UPGRADE NOTICE * IMPORTANT UPGRADE NOTICE * + +The PostgreSQL port now obeys hier(7) by default, which means that it +installs into: + +/usr/local/bin +/usr/local/lib +/usr/local/include (NOTE! Changed again in 7.2, since PostgreSQL + handles standard install nowadays) + +You *must* move away your old installation from users' and +ldconfig(8)'s PATHs. + +====================================================================== diff --git a/databases/postgresql72/pkg-plist b/databases/postgresql72/pkg-plist new file mode 100644 index 000000000000..a103c3faf3da --- /dev/null +++ b/databases/postgresql72/pkg-plist @@ -0,0 +1,120 @@ +%%SERVER%%bin/postmaster +%%SERVER%%bin/postgres +bin/ecpg +bin/initdb +bin/initlocation +bin/ipcclean +bin/pg_ctl +bin/pg_dump +bin/pg_restore +bin/pg_dumpall +bin/pg_id +bin/pg_passwd +bin/psql +bin/createdb +bin/dropdb +bin/createuser +bin/dropuser +bin/droplang +bin/vacuumdb +bin/createlang +bin/pg_config +%%MULTIBYTE%%bin/pg_encoding +include/libpq/libpq-fs.h +@dirrm include/libpq +include/postgresql/internal/libpq/pqcomm.h +@dirrm include/postgresql/internal/libpq +include/postgresql/internal/lib/dllist.h +@dirrm include/postgresql/internal/lib +include/postgresql/internal/c.h +include/postgresql/internal/postgres_fe.h +include/postgresql/internal/libpq-int.h +include/postgresql/internal/pqexpbuffer.h +@dirrm include/postgresql/internal +@dirrm include/postgresql +include/libpq++/pgconnection.h +include/libpq++/pgdatabase.h +include/libpq++/pgtransdb.h +include/libpq++/pgcursordb.h +include/libpq++/pglobject.h +@dirrm include/libpq++ +include/postgres_ext.h +include/pg_config.h +include/pg_config_os.h +include/libpq-fe.h +include/ecpgerrno.h +include/ecpglib.h +include/ecpgtype.h +include/sqlca.h +include/sql3types.h +include/libpgeasy.h +include/libpq++.h +lib/libpq.so +lib/libpq.a +lib/libpq.so.2 +lib/libecpg.so +lib/libecpg.a +lib/libecpg.so.3 +lib/libpgeasy.so +lib/libpgeasy.a +lib/libpgeasy.so.2 +lib/libpq++.so +lib/libpq++.a +lib/libpq++.so.4 +%%SERVER%%lib/postgresql/plpgsql.so +@unexec rmdir %D/lib/postgresql 2>/dev/null || true +%%SERVER%%share/postgresql/502.pgsql +%%SERVER%%share/postgresql/odbc.sql +%%SERVER%%share/postgresql/odbc-drop.sql +%%SERVER%%share/postgresql/postgres.bki +%%SERVER%%share/postgresql/postgres.description +%%SERVER%%share/postgresql/pg_hba.conf.sample +%%SERVER%%share/postgresql/pg_ident.conf.sample +%%SERVER%%share/postgresql/postgresql.conf.sample +share/postgresql/post-install-notes +@unexec rmdir %D/share/postgresql 2>/dev/null || true +%%GETTEXT%%share/locale/cs/LC_MESSAGES/postgres.mo +%%GETTEXT%%share/locale/cs/LC_MESSAGES/libpq.mo +%%GETTEXT%%share/locale/cs/LC_MESSAGES/pg_dump.mo +%%GETTEXT%%share/locale/cs/LC_MESSAGES/psql.mo +%%GETTEXT%%share/locale/de/LC_MESSAGES/postgres.mo +%%GETTEXT%%share/locale/de/LC_MESSAGES/libpq.mo +%%GETTEXT%%share/locale/de/LC_MESSAGES/pg_dump.mo +%%GETTEXT%%share/locale/de/LC_MESSAGES/psql.mo +%%GETTEXT%%share/locale/hu/LC_MESSAGES/postgres.mo +%%GETTEXT%%share/locale/ru/LC_MESSAGES/postgres.mo +%%GETTEXT%%share/locale/ru/LC_MESSAGES/libpq.mo +%%GETTEXT%%share/locale/ru/LC_MESSAGES/pg_dump.mo +%%GETTEXT%%share/locale/ru/LC_MESSAGES/psql.mo +%%GETTEXT%%share/locale/zh_CN/LC_MESSAGES/postgres.mo +%%GETTEXT%%share/locale/zh_CN/LC_MESSAGES/libpq.mo +%%GETTEXT%%share/locale/zh_CN/LC_MESSAGES/pg_dump.mo +%%GETTEXT%%share/locale/zh_CN/LC_MESSAGES/psql.mo +%%GETTEXT%%share/locale/zh_TW/LC_MESSAGES/postgres.mo +%%GETTEXT%%share/locale/zh_TW/LC_MESSAGES/libpq.mo +%%GETTEXT%%share/locale/zh_TW/LC_MESSAGES/pg_dump.mo +%%GETTEXT%%share/locale/zh_TW/LC_MESSAGES/psql.mo +%%GETTEXT%%share/locale/fr/LC_MESSAGES/libpq.mo +%%GETTEXT%%share/locale/fr/LC_MESSAGES/psql.mo +%%GETTEXT%%share/locale/sv/LC_MESSAGES/libpq.mo +%%GETTEXT%%share/locale/sv/LC_MESSAGES/pg_dump.mo +%%GETTEXT%%share/locale/sv/LC_MESSAGES/psql.mo +%%GETTEXT%%@unexec rmdir share/locale/*/LC_MESSAGES 2>/dev/null || true +%%GETTEXT%%@unexec rmdir share/locale/* 2>/dev/null || true +%%GETTEXT%%@unexec rmdir share/locale 2>/dev/null || true +%%SERVER%%@unexec if cmp -s ~pgsql/.profile %D/share/postgresql/dot.profile.dist; then rm -f ~pgsql/.profile; fi +%%SERVER%%@unexec if cmp -s ~pgsql/.cshrc %D/share/postgresql/dot.cshrc.dist; then rm -f ~pgsql/.cshrc; fi +%%SERVER%%@unexec [ -f ~pgsql/dot.profile.dist ] && rm ~pgsql/dot.profile.dist +%%SERVER%%@unexec [ -f ~pgsql/dot.cshrc.dist ] && rm ~pgsql/dot.cshrc.dist +%%SERVER%%@exec [ -f %D/share/postgresql/post-install-notes ] && cp %D/share/postgresql/post-install-notes ~pgsql && chown pgsql:pgsql ~pgsql/post-install-notes +%%SERVER%%@unexec [ -f ~pgsql/post-install-notes ] && rm ~pgsql/post-install-notes +%%SERVER%%share/postgresql/dot.profile.dist +%%SERVER%%share/postgresql/dot.cshrc.dist +%%SERVER%%@exec [ -f %D/share/postgresql/dot.profile.dist ] && cp %D/share/postgresql/dot.profile.dist ~pgsql/. +%%SERVER%%@exec [ -f %D/share/postgresql/dot.cshrc.dist ] && cp %D/share/postgresql/dot.cshrc.dist ~pgsql/. +%%SERVER%%@exec [ -f ~pgsql/.profile ] || (cp %D/share/postgresql/dot.profile.dist ~pgsql/.profile && chown pgsql:pgsql ~pgsql/.profile) +%%SERVER%%@exec [ -f ~pgsql/.cshrc ] || (cp %D/share/postgresql/dot.cshrc.dist ~pgsql/.cshrc && chown pgsql:pgsql ~pgsql/.cshrc) +%%SERVER%%@unexec rmdir ~pgsql 2> /dev/null || true +%%SERVER%%@unexec echo "Warning: If you will *NOT* use this package anymore, please remove %D/pgsql and the pgsql user manually." +%%SERVER%%@unexec rmdir %D/share/postgresql 2>/dev/null || true +%%SERVER%%etc/rc.d/010.pgsql.sh diff --git a/databases/postgresql72/scripts/configure.postgresql b/databases/postgresql72/scripts/configure.postgresql new file mode 100644 index 000000000000..3a4896dd4e93 --- /dev/null +++ b/databases/postgresql72/scripts/configure.postgresql @@ -0,0 +1,167 @@ +#!/bin/sh +# -*- tab-width: 4; -*- +# ex:ts=4 +# +# $FreeBSD$ +# +if [ -f ${WRKDIRPREFIX}${CURDIR}/Makefile.inc ]; then + exit +fi + +if [ ! "${BATCH}" ]; then + dialog --title "Backup your data NOW" \ + --yesno "As always, backup your data before +upgrading. If the upgrade leads to a higher +minor revision (e.g. 7.1.x -> 7.2, a dump +and restore of all databases is +required. This is *NOT* done by the port! + +Select 'Yes' to continue the installation." -1 -1 + if [ $? -eq 1 ] ; then exit 1; fi +fi + +if [ "${BATCH}" ]; then + set \"MultiByte\" \"KRB5\" +else + /usr/bin/dialog --title "configuration options" --clear \ + --checklist "\n\ +Please select desired options:" -1 -1 3 \ +MultiByte "Multibyte for Multilingualism" ON \ +KRB5 "Kerberos 5 (only if it exists)" ON \ +CLIENT "PostgreSQL client only, no server" OFF \ +2> /tmp/checklist.tmp.$$ + + retval=$? + + if [ -s /tmp/checklist.tmp.$$ ]; then + set `cat /tmp/checklist.tmp.$$` + fi + rm -f /tmp/checklist.tmp.$$ + + case $retval in + 0) if [ -z "$*" ]; then + echo "Nothing selected" + fi + ;; + 1) echo "Cancel pressed." + exit 1 + ;; + esac +fi + +${MKDIR} ${WRKDIRPREFIX}${CURDIR} +exec > ${WRKDIRPREFIX}${CURDIR}/Makefile.inc + +while [ "$1" ]; do + case $1 in + \"MultiByte\") + MULTIBYTE=1 + ;; + \"KRB5\") + KRB5=1 + ;; + \"CLIENT\") + CLIENT=1 + ;; + \"nothing\"|true) + ;; + *) + echo "Invalid option(s): $*" > /dev/stderr + rm -f ${WRKDIRPREFIX}${CURDIR}/Makefile.inc + exit 1 + ;; + esac + shift +done + +exec > /dev/stderr + +# if multibyte, determine default charset +echo "# Multibyte" >> ${WRKDIRPREFIX}${CURDIR}/Makefile.inc + +if [ ! "${MULTIBYTE}" ]; then + echo "WITHOUT_MULTIBYTE=YES" >> ${WRKDIRPREFIX}${CURDIR}/Makefile.inc +else + if [ "${BATCH}" ]; then + set "SQL_ASCII" + else + /usr/bin/dialog --title "Default encoding system" --clear \ + --radiolist "\n\ +Please select the default encoding:" -1 -1 16 \ +SQL_ASCII "SQL_ASCII - ASCII" ON \ +EUC_JP "Japanese EUC" OFF \ +EUC_CN "Chinese EUC" OFF \ +EUC_KR "Korean EUC" OFF \ +EUC_TW "Taiwan EUC" OFF \ +UNICODE "Unicode (UTF-8)" OFF \ +MULE_INTERNAL "Mule internal code" OFF \ +LATIN1 "ISO 8859-1" OFF \ +LATIN2 "ISO 8859-2" OFF \ +LATIN3 "ISO 8859-3" OFF \ +LATIN4 "ISO 8859-4" OFF \ +LATIN5 "ISO 8859-9" OFF \ +LATIN6 "ISO 8859-10" OFF \ +LATIN7 "ISO 8859-13" OFF \ +LATIN8 "ISO 8859-14" OFF \ +LATIN9 "ISO 8859-15" OFF \ +LATIN10 "ISO 8859-16" OFF \ +ISO-8859-5 "ECMA-113 Latin/Cyrillic" OFF \ +ISO-8859-6 "ECMA-114 Latin/Arabic" OFF \ +ISO-8859-7 "ECMA-118 Latin/Greek" OFF \ +ISO-8859-8 "ECMA-121 Latin/Hebrew" OFF \ +KOI8 "KOI8-R(U)" OFF \ +WIN "Windows CP1251" OFF \ +ALT "Windows CP866" OFF \ +2> /tmp/checklist.tmp.$$ + + retval=$? + + if [ -s /tmp/checklist.tmp.$$ ]; then + set `cat /tmp/checklist.tmp.$$` + fi + rm -f /tmp/checklist.tmp.$$ + if [ $retval = 1 ]; then + echo "Cancel pressed." + rm ${WRKDIRPREFIX}${CURDIR}/Makefile.inc + exit 1 + fi + fi + + echo "MULTIBYTE_ENCODING=$1" \ + >> ${WRKDIRPREFIX}${CURDIR}/Makefile.inc +fi + +if [ "${KRB5}" ]; then + if [ -r "/usr/bin/krb5-config" ]; then + echo " ########################################################################" + echo " ### PostgreSQL does not build with Hiemdal kerberos. Edit ###" + echo " ### /etc/make.conf and turn the knob MAKE_KERBEROS5 off and make ###" + echo " ### world (or remove all traces of Hiemdal from your system by: ###" + echo " ### rm -f /usr/bin/krb5-config /usr/lib/libkrb5.* /usr/include/krb5* ###" + echo " ########################################################################" + KRB5="" + else + KRB5CONF="`which krb5-config`" + if [ "$KRB5CONF" ]; then + cat <<-EOF >> ${WRKDIRPREFIX}${CURDIR}/Makefile.inc + .if exists($KRB5CONF) + LIB_DEPENDS+= krb5.3:${PORTSDIR}/security/krb5 + CONFIGURE_ARGS+= --with-krb5="`${KRB5CONF} --prefix krb5`" + CFLAGS+= "'`${KRB5CONF} --cflags krb5`'" + LDFLAGS+= "'`${KRB5CONF} --libs krb5`'" + .endif + EOF + else + echo " ########################################################" + echo " ### Unable to find krb5-config in your path. ###" + echo " ### Please correct and build PostgreSQL again if you ###" + echo " ### want PostgreSQL to be compiled with kerberos ###" + echo " ### support (ports/security/krb5). ###" + echo " ########################################################" + fi + fi +fi + +if [ ${CLIENT} ]; then + echo "WITHOUT_SERVER=yes" >> ${WRKDIRPREFIX}${CURDIR}/Makefile.inc +fi |