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>
This commit is contained in:
Sean Chittenden 2003-02-07 11:00:47 +00:00
parent ad007dc8b1
commit d87a4a6578
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=75018
18 changed files with 1004 additions and 0 deletions

View file

@ -133,6 +133,7 @@
SUBDIR += postgresql-pltcl
SUBDIR += postgresql-tcltk
SUBDIR += postgresql7
SUBDIR += postgresql72
SUBDIR += postgresql_autodoc
SUBDIR += pxtools
SUBDIR += py-MySQL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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];

View file

@ -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

View file

@ -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__)

View file

@ -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

View file

@ -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.

View file

@ -0,0 +1 @@
The most advanced open-source database available anywhere

View file

@ -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/

View file

@ -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

View file

@ -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
======================================================================

View file

@ -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.
======================================================================

View file

@ -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

View file

@ -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