From f6c83fd28fcb57779662b2b14bf071cfc578057d Mon Sep 17 00:00:00 2001
From: nico <nico@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Fri, 1 Apr 2005 00:05:07 +0000
Subject: Add mysql and postgresql packages

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@499 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 openwrt/package/postgresql/Config.in               |    9 +
 openwrt/package/postgresql/Makefile                |   57 ++
 .../postgresql/ipkg/libpq-dev/CONTROL/control      |    8 +
 .../package/postgresql/ipkg/libpq/CONTROL/control  |    8 +
 .../postgresql/ipkg/pgsql-utils/CONTROL/control    |    9 +
 openwrt/package/postgresql/ipkg/rules              |  150 +++
 openwrt/package/postgresql/ipkg/version            |    1 +
 .../postgresql/patches/500-debian-subset.patch     | 1029 ++++++++++++++++++++
 8 files changed, 1271 insertions(+)
 create mode 100644 openwrt/package/postgresql/Config.in
 create mode 100644 openwrt/package/postgresql/Makefile
 create mode 100644 openwrt/package/postgresql/ipkg/libpq-dev/CONTROL/control
 create mode 100644 openwrt/package/postgresql/ipkg/libpq/CONTROL/control
 create mode 100644 openwrt/package/postgresql/ipkg/pgsql-utils/CONTROL/control
 create mode 100644 openwrt/package/postgresql/ipkg/rules
 create mode 100644 openwrt/package/postgresql/ipkg/version
 create mode 100644 openwrt/package/postgresql/patches/500-debian-subset.patch

(limited to 'openwrt/package/postgresql')

diff --git a/openwrt/package/postgresql/Config.in b/openwrt/package/postgresql/Config.in
new file mode 100644
index 000000000..9fc9e2a1f
--- /dev/null
+++ b/openwrt/package/postgresql/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_LIBPQ
+	tristate "libpq (PostgreSQL client library)"
+	default m
+	help
+	  PostgreSQL client library.
+	  
+	  http://www.postgresql.org/
+	  
+
diff --git a/openwrt/package/postgresql/Makefile b/openwrt/package/postgresql/Makefile
new file mode 100644
index 000000000..5a06a9054
--- /dev/null
+++ b/openwrt/package/postgresql/Makefile
@@ -0,0 +1,57 @@
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME := postgresql
+PKG_VERSION := 7.4.6
+PKG_RELEASE := 3
+PKG_MD5SUM := f0ea2b372a7bdaf2613e92176ebf5e0f
+
+PKG_SOURCE_SITE := \
+	ftp://ftp3.us.postgresql.org/pub/postgresql/source/v$(PKG_VERSION)/ \
+	ftp://ftp.br.postgresql.org/pub/PostgreSQL/source/v$(PKG_VERSION)/ \
+	ftp://ftp.au.postgresql.org/pub/postgresql/source/v$(PKG_VERSION)/ \
+	ftp://ftp.tw.postgresql.org/pub/postgresql/source/v$(PKG_VERSION)/ \
+	http://nthill.free.fr/openwrt/sources/$(PKG_NAME)/
+PKG_SOURCE_FILE := $(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_CAT := bzcat
+PKG_SOURCE_DIR := $(PKG_NAME)-$(PKG_VERSION)
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_SOURCE_DIR)
+PKG_IPK := $(PACKAGE_DIR)/libpq_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk
+
+
+$(DL_DIR)/$(PKG_SOURCE_FILE):
+	mkdir -p $(DL_DIR)
+	$(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE_FILE) $(PKG_MD5SUM) $(PKG_SOURCE_SITE)
+
+$(PKG_BUILD_DIR)/ipkg/rules: $(DL_DIR)/$(PKG_SOURCE_FILE)
+	mkdir -p $(TOOL_BUILD_DIR)
+	rm -rf $(PKG_BUILD_DIR)
+	$(PKG_SOURCE_CAT) $(DL_DIR)/$(PKG_SOURCE_FILE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+	$(PATCH) $(PKG_BUILD_DIR) ./patches
+	cp -fpR ./ipkg $(PKG_BUILD_DIR)/
+	chmod a+x $(PKG_BUILD_DIR)/ipkg/rules
+	touch $(PKG_BUILD_DIR)/ipkg/rules
+
+$(PKG_IPK): $(PKG_BUILD_DIR)/ipkg/rules
+	cd $(PKG_BUILD_DIR); \
+	TOPDIR="$(TOPDIR)" IPKG_RULES_INC="$(TOPDIR)/rules.mk" \
+	INSTALL_DIR="$(STAGING_DIR)" \
+	./ipkg/rules package
+
+$(IPKG_STATE_DIR)/info/libpq.list: $(PKG_IPK)
+	$(IPKG) install $(PKG_IPK)
+
+source: $(DL_DIR)/$(PKG_SOURCE_FILE)
+prepare: $(PKG_BUILD_DIR)/ipkg/rules
+compile: $(PKG_IPK)
+install: $(IPKG_STATE_DIR)/info/libpq.list
+
+clean:
+	-cd $(PKG_BUILD_DIR); \
+	TOPDIR="$(TOPDIR)" IPKG_RULES_INC="$(TOPDIR)/rules.mk" \
+	INSTALL_DIR="$(STAGING_DIR)" \
+	./ipkg/rules clean
+	rm -rf $(PKG_BUILD_DIR)
+	rm -f $(PKG_IPK)
+
diff --git a/openwrt/package/postgresql/ipkg/libpq-dev/CONTROL/control b/openwrt/package/postgresql/ipkg/libpq-dev/CONTROL/control
new file mode 100644
index 000000000..0e0d622cd
--- /dev/null
+++ b/openwrt/package/postgresql/ipkg/libpq-dev/CONTROL/control
@@ -0,0 +1,8 @@
+Package: libpq-dev
+Priority: optional
+Section: devel
+Version: [TBDL]
+Architecture: [TBDL]
+Maintainer: Nico <nthill@free.fr>
+Source: http://nthill.free.fr/openwrt/sources/postgresql/
+Description: PostgreSQL development package
diff --git a/openwrt/package/postgresql/ipkg/libpq/CONTROL/control b/openwrt/package/postgresql/ipkg/libpq/CONTROL/control
new file mode 100644
index 000000000..56bdf2e72
--- /dev/null
+++ b/openwrt/package/postgresql/ipkg/libpq/CONTROL/control
@@ -0,0 +1,8 @@
+Package: libpq
+Priority: optional
+Section: libs
+Version: [TBDL]
+Architecture: [TBDL]
+Maintainer: Nico <nthill@free.fr>
+Source: http://nthill.free.fr/openwrt/sources/postgresql/
+Description: PostgreSQL client library
diff --git a/openwrt/package/postgresql/ipkg/pgsql-utils/CONTROL/control b/openwrt/package/postgresql/ipkg/pgsql-utils/CONTROL/control
new file mode 100644
index 000000000..6bda983e3
--- /dev/null
+++ b/openwrt/package/postgresql/ipkg/pgsql-utils/CONTROL/control
@@ -0,0 +1,9 @@
+Package: pgsql-utils
+Priority: optional
+Section: libs
+Version: [TBDL]
+Architecture: [TBDL]
+Maintainer: Nico <nthill@free.fr>
+Source: http://nthill.free.fr/openwrt/sources/postgresql/
+Description: some PostgreSQL client utilities
+Depends: libpq
diff --git a/openwrt/package/postgresql/ipkg/rules b/openwrt/package/postgresql/ipkg/rules
new file mode 100644
index 000000000..ed5b3ee0e
--- /dev/null
+++ b/openwrt/package/postgresql/ipkg/rules
@@ -0,0 +1,150 @@
+#!/usr/bin/make -f
+
+ifneq ($(strip ${IPKG_RULES_INC}),)
+ include $(IPKG_RULES_INC)
+endif
+
+##
+
+PKG_VERSION := $(shell cat ./ipkg/version)
+CURRENT_DIR := $(shell pwd)
+INSTALL_DIR ?= $(CURRENT_DIR)/ipkg-install
+
+unexport INSTALL_DIR
+
+I_LIBPQ := ipkg/libpq
+I_LIBPQ_DEV := ipkg/libpq-dev
+I_PGSQL_UTILS := ipkg/pgsql-utils
+
+BUILD_DEPS := \
+#	$(STAGING_DIR)/usr/include/zlib.h \
+
+CONFIGURE_OPTS = \
+	--enable-shared \
+	--enable-static \
+	--disable-integer-datetimes \
+	--disable-rpath \
+	--without-tcl \
+	--without-tk \
+	--without-perl \
+	--without-python \
+	--without-java \
+	--without-krb4 \
+	--without-krb5 \
+	--without-pam \
+	--without-openssl \
+	--without-rendezvous \
+	--without-readline \
+	--with-zlib \
+
+##
+
+all: package
+
+
+.stamp-configured: $(BUILD_DEPS)
+
+	rm -rf config.cache
+	$(TARGET_CONFIGURE_OPTS) \
+	CFLAGS="$(TARGET_CFLAGS)" \
+	./configure \
+	  --target=$(GNU_TARGET_NAME) \
+	  --host=$(GNU_TARGET_NAME) \
+	  --build=$(GNU_HOST_NAME) \
+	  --prefix=/usr \
+	  --exec-prefix=/usr \
+	  --bindir=/usr/bin \
+	  --datadir=/usr/share \
+	  --includedir=/usr/include \
+	  --libdir=/usr/lib \
+	  --libexecdir=/usr/lib \
+	  --localstatedir=/var \
+	  --mandir=/usr/share/man \
+	  --sbindir=/usr/sbin \
+	  --sysconfdir=/etc \
+	  $(DISABLE_LARGEFILE) \
+	  $(DISABLE_NLS) \
+	  $(CONFIGURE_OPTS) \
+
+	touch .stamp-configured
+
+
+.stamp-built: .stamp-configured
+
+	$(MAKE) 
+
+	touch .stamp-built
+
+
+$(INSTALL_DIR)/usr/bin/psql: .stamp-built
+
+	mkdir -p $(INSTALL_DIR)
+
+	$(MAKE) \
+	  DESTDIR="$(INSTALL_DIR)" \
+	 install
+	 
+
+configure: .stamp-configured
+
+
+build: .stamp-built
+
+
+install: $(INSTALL_DIR)/usr/bin/psql
+
+
+package: $(INSTALL_DIR)/usr/bin/psql
+
+	mkdir -p $(I_LIBPQ)/usr/lib/
+	cp -fpR $(INSTALL_DIR)/usr/lib/libpq*.so.* $(I_LIBPQ)/usr/lib/
+	$(STRIP) $(I_LIBPQ)/usr/lib/lib*.so.*
+
+	mkdir -p $(I_LIBPQ_DEV)/usr/bin
+	cp -fpR $(INSTALL_DIR)/usr/bin/pg_config $(I_LIBPQ_DEV)/usr/bin/
+	mkdir -p $(I_LIBPQ_DEV)/usr/include
+	cp -fpR $(INSTALL_DIR)/usr/include/* $(I_LIBPQ_DEV)/usr/include/
+	mkdir -p $(I_LIBPQ_DEV)/usr/lib/
+	cp -fpR $(INSTALL_DIR)/usr/lib/lib*.a $(I_LIBPQ_DEV)/usr/lib/
+	cp -fpR $(INSTALL_DIR)/usr/lib/lib*.so* $(I_LIBPQ_DEV)/usr/lib/
+	
+	mkdir -p $(I_PGSQL_UTILS)/usr/bin
+	cp -fpR $(INSTALL_DIR)/usr/bin/psql $(I_PGSQL_UTILS)/usr/bin/
+	$(STRIP) $(I_PGSQL_UTILS)/usr/bin/*
+
+	chmod 0755 ipkg/*/CONTROL/
+	chmod 0644 ipkg/*/CONTROL/control
+
+	perl -pi -e "s/^Arch.*:.*/Architecture: $(ARCH)/g" ipkg/*/CONTROL/control
+ifneq ($(strip $(PKG_VERSION)),)
+	perl -pi -e "s/^Vers.*:.*/Version: $(PKG_VERSION)/g" ipkg/*/CONTROL/control
+endif
+
+	$(IPKG_BUILD) $(I_LIBPQ) $(IPKG_TARGET_DIR)
+	$(IPKG_BUILD) $(I_LIBPQ_DEV) $(IPKG_TARGET_DIR)
+	$(IPKG_BUILD) $(I_PGSQL_UTILS) $(IPKG_TARGET_DIR)
+
+
+clean:
+
+	$(MAKE) \
+	  DESTDIR="$(INSTALL_DIR)" \
+	 uninstall clean
+
+	rm -rf .stamp-* \
+	  $(I_LIBPQ)/usr \
+	  $(I_LIBPQ_DEV)/usr \
+	  $(I_PGSQL_UTILS)/usr \
+
+
+control:
+
+	@cat $(I_LIBPQ)/CONTROL/control
+	@echo
+	@cat $(I_LIBPQ_DEV)/CONTROL/control
+	@echo
+	@cat $(I_PGSQL_UTILS)/CONTROL/control
+	@echo
+	
+
+.PHONY: configure build install package clean control
diff --git a/openwrt/package/postgresql/ipkg/version b/openwrt/package/postgresql/ipkg/version
new file mode 100644
index 000000000..dfa12552d
--- /dev/null
+++ b/openwrt/package/postgresql/ipkg/version
@@ -0,0 +1 @@
+7.4.6-3
diff --git a/openwrt/package/postgresql/patches/500-debian-subset.patch b/openwrt/package/postgresql/patches/500-debian-subset.patch
new file mode 100644
index 000000000..eb9dca7e3
--- /dev/null
+++ b/openwrt/package/postgresql/patches/500-debian-subset.patch
@@ -0,0 +1,1029 @@
+diff -ruN postgresql-7.4.6-orig/contrib/Makefile postgresql-7.4.6-3/contrib/Makefile
+--- postgresql-7.4.6-orig/contrib/Makefile	2003-09-11 19:15:27.000000000 +0200
++++ postgresql-7.4.6-3/contrib/Makefile	2005-03-09 15:56:11.000000000 +0100
+@@ -22,8 +22,10 @@
+ 		lo		\
+ 		ltree		\
+ 		miscutil	\
++		mysql		\
+ 		noupdate	\
+ 		oid2name	\
++		oracle		\
+ 		pg_autovacuum	\
+ 		pg_dumplo	\
+ 		pg_logger	\
+@@ -40,7 +42,8 @@
+ 		tsearch		\
+ 		tsearch2	\
+ 		userlock	\
+-		vacuumlo
++		vacuumlo	\
++		xml
+ 
+ # Missing:
+ #		array		\ (removed all but the README)
+@@ -48,13 +51,10 @@
+ #		ipc_check	\ (does not have a makefile)
+ #		mSQL-interface	\ (requires msql installed)
+ #		mac		\ (does not have a makefile)
+-#		mysql		\ (does not have a makefile)
+-#		oracle		\ (does not have a makefile)
+ #		pg_upgrade	\ (does not have a makefile)
+ #		reindexdb	\ (does not have a makefile)
+ #		start-scripts	\ (does not have a makefile)
+ #		tools		\ (does not have a makefile)
+-#		xml		\ (non-standard makefile)
+ 
+ 
+ all install installdirs uninstall clean distclean maintainer-clean check installcheck:
+diff -ruN postgresql-7.4.6-orig/contrib/dbase/dbf2pg.c postgresql-7.4.6-3/contrib/dbase/dbf2pg.c
+--- postgresql-7.4.6-orig/contrib/dbase/dbf2pg.c	2003-09-28 00:24:49.000000000 +0200
++++ postgresql-7.4.6-3/contrib/dbase/dbf2pg.c	2005-03-09 15:56:11.000000000 +0100
+@@ -324,6 +324,10 @@
+ 			case 'L':
+ 				strcat(query, " char");
+ 				break;
++
++			case 'M':
++				strcat(query, " text");
++				break;
+ 		}
+ 	}
+ 
+@@ -335,7 +339,10 @@
+ 		printf("%s\n", query);
+ 	}
+ 
+-	if ((res = PQexec(conn, query)) == NULL)
++	if ((res = PQexec(conn, query)) == NULL ||
++	    PQresultStatus(res) == PGRES_BAD_RESPONSE ||
++	    PQresultStatus(res) == PGRES_NONFATAL_ERROR ||
++	    PQresultStatus(res) == PGRES_FATAL_ERROR)
+ 	{
+ 		fprintf(stderr, "Error creating table!\n");
+ 		fprintf(stderr, "Detailed report: %s\n", PQerrorMessage(conn));
+@@ -429,7 +436,10 @@
+ 			}
+ 			sprintf(query, "COPY %s FROM stdin", table);
+ 			res = PQexec(conn, query);
+-			if (res == NULL)
++			if (res == NULL ||
++			    PQresultStatus(res)==PGRES_BAD_RESPONSE ||
++			    PQresultStatus(res)==PGRES_NONFATAL_ERROR ||
++			    PQresultStatus(res)==PGRES_FATAL_ERROR)
+ 			{
+ 				fprintf(stderr, "Error starting COPY!\n");
+ 				fprintf(stderr, "Detailed report: %s\n", PQerrorMessage(conn));
+diff -ruN postgresql-7.4.6-orig/contrib/dbmirror/Makefile postgresql-7.4.6-3/contrib/dbmirror/Makefile
+--- postgresql-7.4.6-orig/contrib/dbmirror/Makefile	2002-06-23 23:58:07.000000000 +0200
++++ postgresql-7.4.6-3/contrib/dbmirror/Makefile	2005-03-09 15:56:11.000000000 +0100
+@@ -5,6 +5,8 @@
+ include $(top_builddir)/src/Makefile.global
+ 
+ MODULES = pending
++SCRIPTS = clean_pending.pl DBMirror.pl
++DATA = AddTrigger.sql MirrorSetup.sql slaveDatabase.conf
+ DOCS = README.dbmirror
+ 
+ include $(top_srcdir)/contrib/contrib-global.mk
+diff -ruN postgresql-7.4.6-orig/contrib/mysql/Makefile postgresql-7.4.6-3/contrib/mysql/Makefile
+--- postgresql-7.4.6-orig/contrib/mysql/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ postgresql-7.4.6-3/contrib/mysql/Makefile	2005-03-09 15:56:11.000000000 +0100
+@@ -0,0 +1,12 @@
++# mysql conversion Perl scripts
++
++subdir = contrib/mysql
++top_builddir = ../..
++include $(top_builddir)/src/Makefile.global
++
++MODULES =
++SCRIPTS = my2pg.pl  mysql2pgsql
++DOCS = README.mysql
++
++include $(top_srcdir)/contrib/contrib-global.mk
++
+diff -ruN postgresql-7.4.6-orig/contrib/mysql/mysql2pgsql postgresql-7.4.6-3/contrib/mysql/mysql2pgsql
+--- postgresql-7.4.6-orig/contrib/mysql/mysql2pgsql	2001-01-18 08:16:56.000000000 +0100
++++ postgresql-7.4.6-3/contrib/mysql/mysql2pgsql	2005-03-09 15:56:11.000000000 +0100
+@@ -1,4 +1,4 @@
+-# -*- perl -*-
++#!/usr/bin/perl -w
+ # mysql2pgsql
+ # Take a MySQL schema dump and turn it into SQL92 and PostgreSQL form.
+ # Thomas Lockhart, (c) 2000, PostgreSQL Inc.
+diff -ruN postgresql-7.4.6-orig/contrib/oracle/Makefile postgresql-7.4.6-3/contrib/oracle/Makefile
+--- postgresql-7.4.6-orig/contrib/oracle/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ postgresql-7.4.6-3/contrib/oracle/Makefile	2005-03-09 15:56:11.000000000 +0100
+@@ -0,0 +1,11 @@
++# oracle conversion Perl scripts
++
++subdir = contrib/oracle
++top_builddir = ../..
++include $(top_builddir)/src/Makefile.global
++
++MODULES =
++SCRIPTS = Ora2Pg.pm ora2pg.pl
++DOCS = README.ora2pg
++
++include $(top_srcdir)/contrib/contrib-global.mk
+diff -ruN postgresql-7.4.6-orig/contrib/oracle/ora2pg.pl postgresql-7.4.6-3/contrib/oracle/ora2pg.pl
+--- postgresql-7.4.6-orig/contrib/oracle/ora2pg.pl	2003-01-07 23:17:14.000000000 +0100
++++ postgresql-7.4.6-3/contrib/oracle/ora2pg.pl	2005-03-09 15:56:11.000000000 +0100
+@@ -17,6 +17,10 @@
+ 
+ use strict;
+ 
++# allow to put Ora2Pg.pm in the same directory as this script
++use File::Basename;
++use lib dirname($0);
++
+ use Ora2Pg;
+ 
+ # Initialyze the database connection
+diff -ruN postgresql-7.4.6-orig/contrib/pg_autovacuum/pg_autovacuum.c postgresql-7.4.6-3/contrib/pg_autovacuum/pg_autovacuum.c
+--- postgresql-7.4.6-orig/contrib/pg_autovacuum/pg_autovacuum.c	2004-05-26 20:48:36.000000000 +0200
++++ postgresql-7.4.6-3/contrib/pg_autovacuum/pg_autovacuum.c	2005-03-09 15:56:11.000000000 +0100
+@@ -5,6 +5,12 @@
+  */
+ 
+ #include "pg_autovacuum.h"
++#include <string.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <fcntl.h>
++
+ #define TIMEBUFF 256
+ FILE	   *LOGOUTPUT;
+ char		timebuffer[TIMEBUFF];
+@@ -30,6 +36,15 @@
+ daemonize()
+ {
+ 	pid_t		pid;
++	int		nullfd;
++	char*		pgdata = getenv("PGDATA");
++
++	/* Check if PGDATA is set. Needed to create pid file. */
++	if (!pgdata)
++	{
++	    fprintf(stderr, "Error: PGDATA not defined. Could not create pid file. Aborting\n");
++	    _exit(1);
++	}
+ 
+ 	pid = fork();
+ 	if (pid == (pid_t) -1)
+@@ -40,10 +55,39 @@
+ 	}
+ 	else if (pid)
+ 	{							/* parent */
++#define PIDFILEBUF 1024
++		char databuf[PIDFILEBUF];
++		char *dataptr = databuf;
++		char *pidfilename = "/autovacuum.pid";
++		FILE *PIDFILE;
++
++		/* If we can determine PGDATA, write a PID file there.
++		 * This is a fudge that depends on Debian's setting PGDATA
++		 * before calling pg_autovacuum in the init script.  It
++		 * could do with being cleaned up for submission upstream. */
++		strncpy(dataptr, pgdata, PIDFILEBUF - 1);
++		databuf[PIDFILEBUF - 1] = '\0';
++		if (strlen(dataptr) > 0 && strlen(dataptr) < PIDFILEBUF - strlen(pidfilename - 1)) {
++			strcat(dataptr, pidfilename);
++			/* Don't bother to report errors in opening PIDFILE */
++			if ((PIDFILE = fopen((const char *) dataptr, "w")) != NULL) {
++				fprintf(PIDFILE, "%d\n", pid);
++				fclose(PIDFILE);
++			}
++		}
+ 		/* Parent should just exit, without doing any atexit cleanup */
+ 		_exit(0);
+ 	}
+ 
++	/* detach from stdin, stdout and stderr 
++	 * (patched by Martin Pitt <mpitt@debian.org> for the Debian package) */
++	nullfd = open("/dev/null", O_RDWR);
++	dup2(nullfd, 0);
++	dup2(nullfd, 1);
++	dup2(nullfd, 2);
++	if (nullfd != 0 && nullfd != 1 && nullfd != 2)
++	    close(nullfd);
++
+ /* GH: If there's no setsid(), we hopefully don't need silent mode.
+  * Until there's a better solution.  */
+ #ifdef HAVE_SETSID
+diff -ruN postgresql-7.4.6-orig/contrib/xml/Makefile postgresql-7.4.6-3/contrib/xml/Makefile
+--- postgresql-7.4.6-orig/contrib/xml/Makefile	2002-10-22 22:03:09.000000000 +0200
++++ postgresql-7.4.6-3/contrib/xml/Makefile	2005-03-09 15:56:11.000000000 +0100
+@@ -4,6 +4,7 @@
+ top_builddir = ../..
+ include $(top_builddir)/src/Makefile.global
+ 
++CFLAGS += $(shell xml2-config --cflags)
+ MODULE_big = pgxml_dom
+ OBJS = pgxml_dom.o
+ SHLIB_LINK = -lxml2
+diff -ruN postgresql-7.4.6-orig/doc/src/sgml/Makefile postgresql-7.4.6-3/doc/src/sgml/Makefile
+--- postgresql-7.4.6-orig/doc/src/sgml/Makefile	2004-03-09 21:10:19.000000000 +0100
++++ postgresql-7.4.6-3/doc/src/sgml/Makefile	2005-03-09 15:56:11.000000000 +0100
+@@ -66,6 +66,9 @@
+ 	$(NSGMLS) $(NSGMLS_FLAGS) $< | $(SGMLSPL) $(D2MSCRIPT) --lowercase --section $(DEFAULTSECTION) --date "`date '+%Y-%m-%d'`"
+ 	$(mkinstalldirs) man1 man$(DEFAULTSECTION)
+ 	mv *.1 man1/
++	mmv '*.' "#l1.$(DEFAULTSECTION)"
++	mmv '* *.'$(DEFAULTSECTION) "#1_#2.$(DEFAULTSECTION)"
++	mmv '* *.'$(DEFAULTSECTION) "#1_#2.$(DEFAULTSECTION)"
+ 	mv *.$(DEFAULTSECTION) man$(DEFAULTSECTION)/
+ 
+ 
+diff -ruN postgresql-7.4.6-orig/doc/src/sgml/ref/initdb.sgml postgresql-7.4.6-3/doc/src/sgml/ref/initdb.sgml
+--- postgresql-7.4.6-orig/doc/src/sgml/ref/initdb.sgml	2003-08-31 19:32:23.000000000 +0200
++++ postgresql-7.4.6-3/doc/src/sgml/ref/initdb.sgml	2005-03-09 15:56:11.000000000 +0100
+@@ -227,6 +227,24 @@
+        </para>
+       </listitem>
+      </varlistentry>
++
++     <varlistentry>
++      <term><option>--debian-conffile</option></term>
++      <listitem>
++       <para>
++        On Debian systems, this option is used by the package's
++	post-initialisation script when it runs <command>initdb</command> to
++	create a database.
++        It symlinks the configuration files into the <filename>/etc/postgresql</filename>
++        directory, whereas the standard behaviour is to put these files
++        into the database directory.
++       </para>
++       <para>
++        This option disables that behaviour, thus causing <command>initdb</command>
++        to behave as expected.
++       </para>
++      </listitem>
++     </varlistentry>
+     </variablelist>
+    </para>
+ 
+diff -ruN postgresql-7.4.6-orig/doc/src/sgml/ref/pg_dump.sgml postgresql-7.4.6-3/doc/src/sgml/ref/pg_dump.sgml
+--- postgresql-7.4.6-orig/doc/src/sgml/ref/pg_dump.sgml	2004-10-22 00:49:04.000000000 +0200
++++ postgresql-7.4.6-3/doc/src/sgml/ref/pg_dump.sgml	2005-03-09 15:56:11.000000000 +0100
+@@ -304,6 +304,18 @@
+      </varlistentry>
+ 
+      <varlistentry>
++      <term><option>-N</></term>
++      <term><option>--convert-now</></term>
++      <listitem>
++       <para>
++       In DEFAULT clauses of table column definitions, convert the old
++       <literal>DEFAULT 'now'</literal> syntax (up to PostgreSQL 7.3) to
++       <literal>DEFAULT now()</literal>.
++       </para>
++      </listitem>
++     </varlistentry>
++
++     <varlistentry>
+       <term><option>-o</></term>
+       <term><option>--oids</></term>
+       <listitem>
+diff -ruN postgresql-7.4.6-orig/doc/src/sgml/ref/pg_dumpall.sgml postgresql-7.4.6-3/doc/src/sgml/ref/pg_dumpall.sgml
+--- postgresql-7.4.6-orig/doc/src/sgml/ref/pg_dumpall.sgml	2003-11-04 10:45:30.000000000 +0100
++++ postgresql-7.4.6-3/doc/src/sgml/ref/pg_dumpall.sgml	2005-03-09 15:56:11.000000000 +0100
+@@ -164,6 +164,18 @@
+      </varlistentry>
+ 
+      <varlistentry>
++      <term><option>-N</></term>
++      <term><option>--convert-now</></term>
++      <listitem>
++       <para>
++       In DEFAULT clauses of table column definitions, convert the old
++       <literal>DEFAULT 'now'</literal> syntax (up to PostgreSQL 7.3) to
++       <literal>DEFAULT now()</literal>.
++       </para>
++      </listitem>
++     </varlistentry>
++
++     <varlistentry>
+       <term><option>-o</></term>
+       <term><option>--oids</></term>
+       <listitem>
+diff -ruN postgresql-7.4.6-orig/doc/src/sgml/ref/psql-ref.sgml postgresql-7.4.6-3/doc/src/sgml/ref/psql-ref.sgml
+--- postgresql-7.4.6-orig/doc/src/sgml/ref/psql-ref.sgml	2003-11-01 02:56:29.000000000 +0100
++++ postgresql-7.4.6-3/doc/src/sgml/ref/psql-ref.sgml	2005-03-09 15:56:11.000000000 +0100
+@@ -494,7 +494,9 @@
+     local host. The default port number is compile-time determined.
+     Since the database server uses the same default, you will not have
+     to specify the port in most cases. The default user name is your
+-    Unix user name, as is the default database name. Note that you can't
++    Unix user name. In standard PostgreSQL, the database name defaults to your
++    username too, but in this Debian version, when called through pg_wrapper,
++    the database must be specified. Note that you can't
+     just connect to any database under any user name. Your database
+     administrator should have informed you about your access rights. To
+     save you some typing you can also set the environment variables
+diff -ruN postgresql-7.4.6-orig/ipkg/libpq/CONTROL/control postgresql-7.4.6-3/ipkg/libpq/CONTROL/control
+diff -ruN postgresql-7.4.6-orig/ipkg/libpq-dev/CONTROL/control postgresql-7.4.6-3/ipkg/libpq-dev/CONTROL/control
+diff -ruN postgresql-7.4.6-orig/ipkg/pgsql-utils/CONTROL/control postgresql-7.4.6-3/ipkg/pgsql-utils/CONTROL/control
+diff -ruN postgresql-7.4.6-orig/ipkg/rules postgresql-7.4.6-3/ipkg/rules
+diff -ruN postgresql-7.4.6-orig/ipkg/version postgresql-7.4.6-3/ipkg/version
+diff -ruN postgresql-7.4.6-orig/src/Makefile.global.in postgresql-7.4.6-3/src/Makefile.global.in
+--- postgresql-7.4.6-orig/src/Makefile.global.in	2003-12-20 00:29:29.000000000 +0100
++++ postgresql-7.4.6-3/src/Makefile.global.in	2005-03-09 15:56:11.000000000 +0100
+@@ -87,7 +87,7 @@
+ pkglibdir = $(libdir)
+ ifeq "$(findstring pgsql, $(pkglibdir))" ""
+ ifeq "$(findstring postgres, $(pkglibdir))" ""
+-override pkglibdir := $(pkglibdir)/postgresql
++override pkglibdir := $(pkglibdir)/postgresql/lib
+ endif
+ endif
+ 
+diff -ruN postgresql-7.4.6-orig/src/backend/libpq/pg_hba.conf.sample postgresql-7.4.6-3/src/backend/libpq/pg_hba.conf.sample
+--- postgresql-7.4.6-orig/src/backend/libpq/pg_hba.conf.sample	2003-09-13 18:43:38.000000000 +0200
++++ postgresql-7.4.6-3/src/backend/libpq/pg_hba.conf.sample	2005-03-09 15:56:11.000000000 +0100
+@@ -24,39 +24,77 @@
+ # DATABASE can be "all", "sameuser", "samegroup", a database name (or
+ # a comma-separated list thereof), or a file name prefixed with "@".
+ # USER can be "all", an actual user name or a group name prefixed with
+-# "+" or a list containing either.  IP-ADDRESS and IP-MASK specify the
+-# set of hosts the record matches.  CIDR-MASK is an integer between 0
+-# and 32 (IPv6) or 128(IPv6) inclusive, that specifies the number of
+-# significant bits in the mask, so an IPv4 CIDR-MASK of 8 is equivalent
+-# to an IP-MASK of 255.0.0.0, and an IPv6 CIDR-MASK of 64 is equivalent
+-# to an IP-MASK of ffff:ffff:ffff:ffff::. METHOD can be "trust", "reject",
+-# "md5", "crypt", "password", "krb4", "krb5", "ident", or "pam".  Note
+-# that "password" uses clear-text passwords; "md5" is preferred for
++# "+", an include file prefixed with "@" or a list containing either.
++# IP-ADDRESS and IP-MASK specify the set of hosts the record matches.
++# CIDR-MASK is an integer between 0 and 32 (IPv6) or 128(IPv6)
++# inclusive, that specifies the number of significant bits in the
++# mask, so an IPv4 CIDR-MASK of 8 is equivalent to an IP-MASK of
++# 255.0.0.0, and an IPv6 CIDR-MASK of 64 is equivalent to an IP-MASK
++# of ffff:ffff:ffff:ffff::. METHOD can be "trust", "reject", "md5",
++# "crypt", "password", "krb5", "ident", or "pam".  Note that
++# "password" uses clear-text passwords; "md5" is preferred for
+ # encrypted passwords.  OPTION is the ident map or the name of the PAM
+ # service.
+ #
++# INCLUDE FILES:
++# If you use include files for users and/or databases (see PostgreSQL
++# documentation, section 19.1), these files must be placed in the
++# database directory. Usually this is /var/lib/postgres/data/, but
++# that can be changed in /etc/postgresql/postmaster.conf with the
++# POSTGRES_DATA variable. Putting them in /etc/postgresql/ will NOT
++# work since the configuration files are only symlinked from
++# POSTGRES_DATA.
++#
+ # This file is read on server startup and when the postmaster receives
+ # a SIGHUP signal.  If you edit the file on a running system, you have
+ # to SIGHUP the postmaster for the changes to take effect, or use
+ # "pg_ctl reload".
+-
++#
++# Upstream default configuration
++#
++# The following configuration is the upstream default, which allows
++# unrestricted access to amy database by any user on the local machine.
++# 
++# TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD
++#
++#local   all         all                                             trust
++# IPv4-style local connections:
++#host    all         all         127.0.0.1         255.255.255.255   trust
++# IPv6-style local connections:
++#
+ # Put your actual configuration here
+ # ----------------------------------
+ #
+-# CAUTION: The default configuration allows any local user to connect
+-# using any PostgreSQL user name, including the superuser, over either
+-# Unix-domain sockets or TCP/IP.  If you are on a multiple-user
+-# machine, the default configuration is probably too liberal for you.
+-# Change it to use something other than "trust" authentication.
++# This default configuration allows any local user to connect as himself
++# without a password, either through a Unix socket or through TCP/IP; users
++# on other machines are denied access.
+ #
+ # If you want to allow non-local connections, you need to add more
+-# "host" records.  Also, remember TCP/IP connections are only enabled
+-# if you enable "tcpip_socket" in postgresql.conf.
+-
++# "host" records before the final line that rejects all TCP/IP connections.
++# Also, remember TCP/IP connections are only enabled if you enable
++# "tcpip_socket" in /etc/postgresql/postgresql.conf.
++#
++# DO NOT DISABLE!
++# If you change this first entry you will need to make sure the postgres user
++# can access the database using some other method.  The postgres user needs
++# non-interactive access to all databases during automatic maintenance
++# (see the vacuum command and the /usr/lib/postgresql/bin/do.maintenance
++# script).
++#
+ # TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD
++# Database administrative login by UNIX sockets
++local   all         postgres                                        ident sameuser
++#
++# All other connections by UNIX sockets
++local   all         all                                             ident sameuser
++#
++# All IPv4 connections from localhost
++host    all         all         127.0.0.1         255.255.255.255   ident sameuser
++#
++# All IPv6 localhost connections
++host    all         all         ::1               ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff        ident sameuser
++host    all         all         ::ffff:127.0.0.1/128                ident sameuser
++#
++# reject all other connection attempts
++host    all         all         0.0.0.0           0.0.0.0           reject
+ 
+-local   all         all                                             trust
+-# IPv4-style local connections:
+-host    all         all         127.0.0.1         255.255.255.255   trust
+-# IPv6-style local connections:
+-host    all         all         ::1               ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff        trust
+diff -ruN postgresql-7.4.6-orig/src/backend/storage/file/fd.c postgresql-7.4.6-3/src/backend/storage/file/fd.c
+--- postgresql-7.4.6-orig/src/backend/storage/file/fd.c	2004-02-24 00:03:43.000000000 +0100
++++ postgresql-7.4.6-3/src/backend/storage/file/fd.c	2005-03-09 15:56:11.000000000 +0100
+@@ -50,6 +50,9 @@
+ #include "storage/fd.h"
+ #include "storage/ipc.h"
+ 
++#ifdef CHECK_RLIMIT_NOFILE
++#include <sys/resource.h>
++#endif
+ 
+ /* Filename components for OpenTemporaryFile */
+ #define PG_TEMP_FILES_DIR "pgsql_tmp"
+@@ -272,15 +275,28 @@
+ 	int			used = 0;
+ 	int			highestfd = 0;
+ 	int			j;
++#ifdef CHECK_RLIMIT_NOFILE
++	struct rlimit	    rlim;
++#endif
+ 
+ 	size = 1024;
+ 	fd = (int *) palloc(size * sizeof(int));
+ 
++#ifdef CHECK_RLIMIT_NOFILE
++	getrlimit(RLIMIT_NOFILE, &rlim);
++#endif
++
+ 	/* dup until failure ... */
+ 	for (;;)
+ 	{
+ 		int		thisfd;
+ 
++#ifdef CHECK_RLIMIT_NOFILE
++               /* Don't go beyond RLIMIT_NOFILE */
++		if (highestfd >= rlim.rlim_cur - 1)
++		    break;
++#endif
++
+ 		thisfd = dup(0);
+ 		if (thisfd < 0)
+ 		{
+diff -ruN postgresql-7.4.6-orig/src/bin/initdb/initdb.sh postgresql-7.4.6-3/src/bin/initdb/initdb.sh
+--- postgresql-7.4.6-orig/src/bin/initdb/initdb.sh	2004-05-05 18:09:56.000000000 +0200
++++ postgresql-7.4.6-3/src/bin/initdb/initdb.sh	2005-03-09 15:56:11.000000000 +0100
+@@ -71,7 +71,6 @@
+     echo "$ret"
+ }
+ 
+-
+ CMDNAME=`basename $0`
+ 
+ # Placed here during build
+@@ -196,6 +195,7 @@
+ debug=
+ noclean=
+ show_setting=
++debian_conffile=
+ 
+ # Note: There is a single compelling reason that the name of the database
+ #       superuser be the same as the Unix user owning the server process:
+@@ -318,6 +318,14 @@
+         --lc-time=*)
+                 PGLC_TIME=`echo $1 | sed 's/^[^=]*=//'`
+                 ;;
++# Debian's initdb is going to try to symlink the files from $PGDATA to
++# /etc/postgres... but if you're initialising a database somewhere else,
++# you don't want this behaviour, so tell initdb to not do it.
++	--debian-conffile)
++		debian_conffile=yes
++		echo "use debian conffile location"
++		;;
++
+ 
+ 	-*)
+ 		echo "$CMDNAME: invalid option: $1"
+@@ -590,6 +598,8 @@
+ #
+ # CREATE CONFIG FILES
+ 
++if [ -z "$debian_conffile" ]
++then
+ $ECHO_N "creating configuration files... "$ECHO_C
+ 
+ sed -e "s/^#shared_buffers = 1000/shared_buffers = $nbuffers/" \
+@@ -611,6 +621,32 @@
+ chmod 0600 "$PGDATA"/pg_hba.conf "$PGDATA"/pg_ident.conf \
+ 	"$PGDATA"/postgresql.conf
+ 
++else
++
++# debian-conffile option set:
++# In a Debian primary installation, the config files go to /etc/postgresql/
++# rather than to $PGDATA.
++ln -sf /etc/postgresql/pg_hba.conf $PGDATA/pg_hba.conf          || exit_nicely
++ln -sf /etc/postgresql/pg_ident.conf $PGDATA/pg_ident.conf      || exit_nicely
++ln -sf /etc/postgresql/postgresql.conf $PGDATA/postgresql.conf  || exit_nicely
++
++# Since postgresql.conf is a permanent file, rather than created with the
++# database, it must have the LC_ values replaced rather than just tacked
++# on the end.
++(
++  grep -vE '^LC_(MESSAGES|MONETARY|NUMERIC|TIME) *=' /etc/postgresql/postgresql.conf
++  for cat in MESSAGES MONETARY NUMERIC TIME; do
++    echo "LC_$cat = '`pg_getlocale $cat`'"
++  done
++) >/etc/postgresql/$$ || exit_nicely
++cat /etc/postgresql/$$ >/etc/postgresql/postgresql.conf || exit_nicely
++rm /etc/postgresql/$$
++
++chmod 0600 /etc/postgresql/pg_hba.conf /etc/postgresql/pg_ident.conf
++chmod 0644 /etc/postgresql/postgresql.conf
++
++fi
++
+ echo "ok"
+ 
+ ##########################################################################
+@@ -1143,13 +1179,9 @@
+ # FINISHED
+ 
+ echo
+-echo "Success. You can now start the database server using:"
+-echo ""
+-echo "    $PGPATH/postmaster -D $PGDATA"
+-echo "or"
+-# (Advertise -l option here, otherwise we have a background
+-#  process writing to the terminal.)
+-echo "    $PGPATH/pg_ctl -D $PGDATA -l logfile start"
++echo "Success. The database server should be started automatically."
++echo "If not, you can start the database server using:"
+ echo
++echo "    /etc/init.d/postgresql start"
+ 
+ exit 0
+diff -ruN postgresql-7.4.6-orig/src/bin/pg_ctl/pg_ctl.sh postgresql-7.4.6-3/src/bin/pg_ctl/pg_ctl.sh
+--- postgresql-7.4.6-orig/src/bin/pg_ctl/pg_ctl.sh	2004-10-22 02:24:27.000000000 +0200
++++ postgresql-7.4.6-3/src/bin/pg_ctl/pg_ctl.sh	2005-03-09 15:56:11.000000000 +0100
+@@ -139,31 +139,72 @@
+ 	    exit 0
+ 	    ;;
+ 	-D)
+-	    shift
++	    PGDATA="$2"
++            if [ -z "$PGDATA" -o `echo x$PGDATA | cut -c1-2` = "x-" ]
++            then
++                echo "$CMDNAME: option '-D' specified without a data directory"
++                exit 1
++            fi
+ 	    # we need to do this so -D datadir shows in ps display
+-	    PGDATAOPTS="-D $1"
+-	    PGDATA="$1"
++	    PGDATAOPTS="-D $PGDATA"
+ 	    export PGDATA
++	    shift
+ 	    ;;
+ 	-l)
+ 	    logfile="$2"
++            if [ -z "$logfile" -o `echo x$logfile | cut -c1-2` = "x-" ]
++            then
++                echo "$CMDNAME: option '-l' specified without a logfile"
++                exit 1
++            fi
+ 	    shift;;
+ 	-l*)
+ 	    logfile=`echo "$1" | sed 's/^-l//'`
++            if [ -z "$logfile" -o `echo x$logfile | cut -c1-2` = "x-" ]
++            then
++                echo "$CMDNAME: option '-l' specified without a logfile"
++                exit 1
++            fi
+ 	    ;;
+ 	-m)
+ 	    shutdown_mode="$2"
++            if [ -z "$shutdown_mode" -o `echo x$shutdown_mode | cut -c1-2` = "x-" ]
++            then
++                echo "$CMDNAME: option '-m' specified without a shutdown mode"
++                exit 1
++            fi
+ 	    shift;;
+ 	-m*)
+ 	    shutdown_mode=`echo "$1" | sed 's/^-m//'`
++            if [ -z "$shutdown_mode" -o `echo x$shutdown_mode | cut -c1-2` = "x-" ]
++            then
++                echo "$CMDNAME: option '-m' specified without a shutdown mode"
++                exit 1
++            fi
+ 	    ;;
+ 	-o)
++	    POSTOPTS="$2"
++            if [ -z "$POSTOPTS" ]
++            then
++                echo "$CMDNAME: option '-o' specified without any passed options"
++                exit 1
++            fi
++            if [ `echo x$POSTOPTS | cut -c1-2` != x- ]
++            then
++                echo "$CMDNAME: option -o must be followed by one or more further options
++ to pass to the postmaster"
++                exit 1
++            fi
+ 	    shift
+-	    POSTOPTS="$1"
+ 	    ;;
+ 	-p)
++	    po_path="$2"
++            if [ -z "$po_path" -o `echo x$po_path | cut -c1-2` = "x-" ]
++            then
++                echo "$CMDNAME: option '-p' specified without a path"
++                exit 1
++            fi
+ 	    shift
+-	    po_path="$1"
+ 	    ;;
+ 	-s)
+ 	    silence_echo=:
+diff -ruN postgresql-7.4.6-orig/src/bin/pg_dump/pg_dump.c postgresql-7.4.6-3/src/bin/pg_dump/pg_dump.c
+--- postgresql-7.4.6-orig/src/bin/pg_dump/pg_dump.c	2004-05-26 20:27:23.000000000 +0200
++++ postgresql-7.4.6-3/src/bin/pg_dump/pg_dump.c	2005-03-09 15:56:11.000000000 +0100
+@@ -135,6 +135,7 @@
+ bool		schemaOnly;
+ bool		dataOnly;
+ bool		aclsSkip;
++bool		convertNow;
+ 
+ /* obsolete as of 7.3: */
+ static Oid	g_last_builtin_oid; /* value of the last builtin oid */
+@@ -198,6 +199,7 @@
+ 		{"no-owner", no_argument, NULL, 'O'},
+ 		{"port", required_argument, NULL, 'p'},
+ 		{"schema", required_argument, NULL, 'n'},
++		{"convert-now", no_argument, NULL, 'N'},
+ 		{"schema-only", no_argument, NULL, 's'},
+ 		{"superuser", required_argument, NULL, 'S'},
+ 		{"table", required_argument, NULL, 't'},
+@@ -233,7 +235,7 @@
+ 	g_comment_end[0] = '\0';
+ 	strcpy(g_opaque_type, "opaque");
+ 
+-	dataOnly = schemaOnly = dumpData = attrNames = false;
++	dataOnly = schemaOnly = dumpData = attrNames = convertNow = false;
+ 
+ 	progname = get_progname(argv[0]);
+ 
+@@ -258,7 +260,7 @@
+ 		}
+ 	}
+ 
+-	while ((c = getopt_long(argc, argv, "abcCdDf:F:h:in:oOp:RsS:t:uU:vWxX:Z:",
++	while ((c = getopt_long(argc, argv, "abcCdDf:F:h:in:NoOp:RsS:t:uU:vWxX:Z:",
+ 							long_options, &optindex)) != -1)
+ 	{
+ 		switch (c)
+@@ -310,6 +312,10 @@
+ 				selectSchemaName = strdup(optarg);
+ 				break;
+ 
++			case 'N':			/* convert DEFAULT 'now' to DEFAULT now() */
++				convertNow = true;
++				break;
++
+ 			case 'o':			/* Dump oids */
+ 				oids = true;
+ 				break;
+@@ -535,6 +541,13 @@
+ 			exit_horribly(g_fout, NULL, "could not set extra_float_digits: %s",
+ 						  PQerrorMessage(g_conn));
+ 		PQclear(res);
++
++		/* Set datestyle to ISO to ensure portability */
++		res = PQexec(g_conn, "SET DATESTYLE = ISO");
++		if (!res || PQresultStatus(res) != PGRES_COMMAND_OK)
++			exit_horribly(g_fout, NULL, "could not set datestyle to ISO: %s",
++						  PQerrorMessage(g_conn));
++		PQclear(res);
+ 	}
+ 
+ 	/* Find the last built-in OID, if needed */
+@@ -633,6 +646,7 @@
+ 	printf(_("  -d, --inserts            dump data as INSERT, rather than COPY, commands\n"));
+ 	printf(_("  -D, --column-inserts     dump data as INSERT commands with column names\n"));
+ 	printf(_("  -n, --schema=SCHEMA      dump the named schema only\n"));
++	printf(_("  -N, --convert-now        convert DEFAULT 'now' to DEFAULT now()\n"));
+ 	printf(_("  -o, --oids               include OIDs in dump\n"));
+ 	printf(_("  -O, --no-owner           do not output commands to set object ownership\n"
+ 			 "                           in plain text format\n"));
+@@ -665,6 +679,19 @@
+ }
+ 
+ /*
++ * handleConvertNow: called on DEFAULT arguments in table column definitions;
++ * if conversion is enabled, returns now() instead of 'now'
++ */
++const char*
++handleConvertNow(const char* value)
++{
++    if( convertNow && !strcmp(value,"'now'"))
++	return "now()";
++    else
++	return value;
++}
++
++/*
+  * selectDumpableNamespace: policy-setting subroutine
+  *		Mark a namespace as to be dumped or not
+  */
+@@ -5334,7 +5361,7 @@
+ 					!tbinfo->inhAttrDef[j] &&
+ 					!tbinfo->attisserial[j])
+ 					appendPQExpBuffer(q, " DEFAULT %s",
+-									  tbinfo->adef_expr[j]);
++						handleConvertNow( tbinfo->adef_expr[j] ) );
+ 
+ 				/*
+ 				 * Not Null constraint --- suppress if inherited
+diff -ruN postgresql-7.4.6-orig/src/bin/pg_dump/pg_dumpall.c postgresql-7.4.6-3/src/bin/pg_dump/pg_dumpall.c
+--- postgresql-7.4.6-orig/src/bin/pg_dump/pg_dumpall.c	2004-01-22 20:09:48.000000000 +0100
++++ postgresql-7.4.6-3/src/bin/pg_dump/pg_dumpall.c	2005-03-09 15:56:11.000000000 +0100
+@@ -86,6 +86,7 @@
+ 		{"globals-only", no_argument, NULL, 'g'},
+ 		{"host", required_argument, NULL, 'h'},
+ 		{"ignore-version", no_argument, NULL, 'i'},
++		{"convert-now", no_argument, NULL, 'N'},
+ 		{"oids", no_argument, NULL, 'o'},
+ 		{"port", required_argument, NULL, 'p'},
+ 		{"password", no_argument, NULL, 'W'},
+@@ -124,7 +125,7 @@
+ 	pgdumploc = findPgDump(argv[0]);
+ 	pgdumpopts = createPQExpBuffer();
+ 
+-	while ((c = getopt_long(argc, argv, "acdDgh:iop:sU:vWx", long_options, &optindex)) != -1)
++	while ((c = getopt_long(argc, argv, "acdDgh:iNop:sU:vWx", long_options, &optindex)) != -1)
+ 	{
+ 		switch (c)
+ 		{
+@@ -156,6 +157,10 @@
+ 				appendPQExpBuffer(pgdumpopts, " -%c", c);
+ 				break;
+ 
++			case 'N':
++				appendPQExpBuffer(pgdumpopts, " -N");
++				break;
++
+ 			case 'p':
+ 				pgport = optarg;
+ 				appendPQExpBuffer(pgdumpopts, " -p '%s'", pgport);
+@@ -243,6 +248,7 @@
+ 	printf(_("  -g, --globals-only       dump only global objects, no databases\n"));
+ 	printf(_("  -i, --ignore-version     proceed even when server version mismatches\n"
+ 			 "                           pg_dumpall version\n"));
++	printf(_("  -N, --convert-now        convert DEFAULT 'now' to DEFAULT now()\n"));
+ 	printf(_("  -s, --schema-only        dump only the schema, no data\n"));
+ 	printf(_("  -o, --oids               include OIDs in dump\n"));
+ 	printf(_("  -v, --verbose            verbose mode\n"));
+diff -ruN postgresql-7.4.6-orig/src/include/Makefile postgresql-7.4.6-3/src/include/Makefile
+--- postgresql-7.4.6-orig/src/include/Makefile	2003-11-25 20:10:15.000000000 +0100
++++ postgresql-7.4.6-3/src/include/Makefile	2005-03-10 23:38:56.000000000 +0100
+@@ -79,8 +79,8 @@
+ 
+ 
+ uninstall:
+-	rm -f $(addprefix $(DESTDIR)$(includedir)/, pg_config.h pg_config_os.h postgres_ext.h libpq/libpq-fs.h)
+-	rm -f $(addprefix $(DESTDIR)$(includedir_internal)/, c.h postgres_fe.h lib/dllist.h libpq/pqcomm.h)
++	rm -f $(addprefix $(DESTDIR)$(includedir)/, pg_config.h pg_config_manual.h pg_config_os.h postgres_ext.h libpq/libpq-fs.h)
++	rm -f $(addprefix $(DESTDIR)$(includedir_internal)/, c.h port.h postgres_fe.h lib/dllist.h libpq/pqcomm.h)
+ # heuristic...
+ 	rm -rf $(addprefix $(DESTDIR)$(includedir_server)/, $(SUBDIRS) *.h)
+ 
+diff -ruN postgresql-7.4.6-orig/src/include/pg_config_manual.h postgresql-7.4.6-3/src/include/pg_config_manual.h
+--- postgresql-7.4.6-orig/src/include/pg_config_manual.h	2003-09-21 19:57:21.000000000 +0200
++++ postgresql-7.4.6-3/src/include/pg_config_manual.h	2005-03-09 15:56:11.000000000 +0100
+@@ -165,7 +165,7 @@
+  * here's where to twiddle it.  You can also override this at runtime
+  * with the postmaster's -k switch.
+  */
+-#define DEFAULT_PGSOCKET_DIR  "/tmp"
++#define DEFAULT_PGSOCKET_DIR  "/var/run/postgresql"
+ 
+ /*
+  * Defining this will make float4 and float8 operations faster by
+diff -ruN postgresql-7.4.6-orig/src/include/port/linux.h postgresql-7.4.6-3/src/include/port/linux.h
+--- postgresql-7.4.6-orig/src/include/port/linux.h	2003-10-26 02:41:10.000000000 +0100
++++ postgresql-7.4.6-3/src/include/port/linux.h	2005-03-09 15:56:11.000000000 +0100
+@@ -48,4 +48,12 @@
+ 
+ #define HAS_TEST_AND_SET
+ 
++#elif defined(__hppa__)
++typedef struct
++{
++	int			sema[4];
++} slock_t;
++
++#define HAS_TEST_AND_SET
++
+ #endif
+diff -ruN postgresql-7.4.6-orig/src/include/storage/s_lock.h postgresql-7.4.6-3/src/include/storage/s_lock.h
+--- postgresql-7.4.6-orig/src/include/storage/s_lock.h	2003-11-04 10:43:56.000000000 +0100
++++ postgresql-7.4.6-3/src/include/storage/s_lock.h	2005-03-09 15:56:11.000000000 +0100
+@@ -125,7 +125,7 @@
+ 	__asm__ __volatile__(
+ 		"	xchg4 	%0=%1,%2	\n"
+ :		"=r"(ret), "=m"(*lock)
+-:		"r"(1), "1"(*lock)
++:		"r"(1), "m"(*lock)
+ :		"memory");
+ 
+ 	return (int) ret;
+@@ -151,6 +151,29 @@
+ 
+ #endif	 /* __arm__ */
+ 
++#if defined(__hppa__)
++/*
++ *  * HP PA-RISC Linux
++ *   */
++#define TAS(lock)          tas(lock)
++#define TAS_ACTIVE_WORD(lock)   ((volatile int *) (((long) (lock) + 15) & ~15))
++#define S_UNLOCK(lock)  (*TAS_ACTIVE_WORD(lock) = -1)
++                                                                                
++static __inline__ int
++tas(volatile slock_t *lock)
++{
++	        volatile int *lockword = TAS_ACTIVE_WORD(lock);
++		        register int lockval;
++			                                                                                
++			        __asm__ __volatile__(
++						                "       ldcwx   0(0,%2),%0      \n"
++								:               "=r"(lockval), "=m"(*lockword)
++								:               "r"(lockword));
++				        return (lockval == 0);
++}
++                                                                                
++#endif   /* __hppa__ */
++                                                                                
+ 
+ #if defined(__s390__) && !defined(__s390x__)
+ /*
+@@ -271,7 +294,7 @@
+ 		"	tas		%1		\n"
+ 		"	sne		%0		\n"
+ :		"=d"(rv), "=m"(*lock)
+-:		"1"(*lock)
++:		"m"(*lock)
+ :		"cc");
+ 
+ 	return rv;
+diff -ruN postgresql-7.4.6-orig/src/interfaces/libpq/Makefile postgresql-7.4.6-3/src/interfaces/libpq/Makefile
+--- postgresql-7.4.6-orig/src/interfaces/libpq/Makefile	2003-09-27 17:32:48.000000000 +0200
++++ postgresql-7.4.6-3/src/interfaces/libpq/Makefile	2005-03-09 15:56:11.000000000 +0100
+@@ -35,7 +35,7 @@
+ SHLIB_LINK += $(filter -lcrypt -ldes -lkrb -lcom_err -lcrypto -lk5crypto -lkrb5 -lssl -lsocket -lnsl -lresolv -lintl, $(LIBS)) $(THREAD_LIBS)
+ 
+ 
+-all: all-lib
++all: all-lib libpq3-config
+ 
+ # Shared library stuff
+ include $(top_srcdir)/src/Makefile.shlib
+@@ -61,6 +61,8 @@
+ encnames.c wchar.c : % : $(backend_src)/utils/mb/%
+ 	rm -f $@ && $(LN_S) $< .
+ 
++libpq3-config:
++	sed -e "s|%LIBRARIES%|$(SHLIB_LINK)|" <libpq3-config.in | sed "s/-L[^ ]\+ //" >libpq3-config
+ 
+ install: all installdirs install-lib
+ 	$(INSTALL_DATA) $(srcdir)/libpq-fe.h $(DESTDIR)$(includedir)
+@@ -76,3 +78,4 @@
+ 
+ clean distclean maintainer-clean: clean-lib
+ 	rm -f $(OBJS) crypt.c getaddrinfo.c inet_aton.c snprintf.c strerror.c path.c thread.c dllist.c md5.c ip.c encnames.c wchar.c
++	rm -f libpq3-config
+diff -ruN postgresql-7.4.6-orig/src/interfaces/libpq/libpq3-config.in postgresql-7.4.6-3/src/interfaces/libpq/libpq3-config.in
+--- postgresql-7.4.6-orig/src/interfaces/libpq/libpq3-config.in	1970-01-01 01:00:00.000000000 +0100
++++ postgresql-7.4.6-3/src/interfaces/libpq/libpq3-config.in	2005-03-09 15:56:11.000000000 +0100
+@@ -0,0 +1,3 @@
++#!/bin/bash
++
++echo %LIBRARIES%
+diff -ruN postgresql-7.4.6-orig/src/makefiles/Makefile.linux postgresql-7.4.6-3/src/makefiles/Makefile.linux
+--- postgresql-7.4.6-orig/src/makefiles/Makefile.linux	2003-06-05 18:07:25.000000000 +0200
++++ postgresql-7.4.6-3/src/makefiles/Makefile.linux	2005-03-09 15:56:11.000000000 +0100
+@@ -5,11 +5,7 @@
+ allow_nonpic_in_shlib = yes
+ DLSUFFIX = .so
+ 
+-ifeq "$(findstring sparc,$(host_cpu))" "sparc"
+ CFLAGS_SL = -fPIC
+-else
+-CFLAGS_SL = -fpic
+-endif
+ 
+ %.so: %.o
+ 	$(CC) -shared -o $@ $<
+diff -ruN postgresql-7.4.6-orig/src/pl/plperl/GNUmakefile postgresql-7.4.6-3/src/pl/plperl/GNUmakefile
+--- postgresql-7.4.6-orig/src/pl/plperl/GNUmakefile	2004-01-21 20:25:11.000000000 +0100
++++ postgresql-7.4.6-3/src/pl/plperl/GNUmakefile	2005-03-09 15:56:11.000000000 +0100
+@@ -9,6 +9,9 @@
+ shared_libperl = yes
+ endif
+ 
++# Line addded for Debian - needed for any Linux build, I believe
++CFLAGS += -D_GNU_SOURCE
++
+ # If we don't have a shared library and the platform doesn't allow it
+ # to work without, we have to skip it.
+ ifneq (,$(findstring yes, $(shared_libperl)$(allow_nonpic_in_shlib)))
+diff -ruN postgresql-7.4.6-orig/src/test/regress/pg_regress.sh postgresql-7.4.6-3/src/test/regress/pg_regress.sh
+--- postgresql-7.4.6-orig/src/test/regress/pg_regress.sh	2003-11-02 22:56:15.000000000 +0100
++++ postgresql-7.4.6-3/src/test/regress/pg_regress.sh	2005-03-09 15:56:11.000000000 +0100
+@@ -382,6 +382,10 @@
+         (exit 2); exit
+     fi
+ 
++ 
++    echo "unix_socket_directory = '/tmp'" >>$PGDATA/postgresql.conf
++    psql_options="$psql_options --host=/tmp"
++
+ 
+     # ----------
+     # Start postmaster
+diff -ruN postgresql-7.4.6-orig/src/tutorial/Makefile postgresql-7.4.6-3/src/tutorial/Makefile
+--- postgresql-7.4.6-orig/src/tutorial/Makefile	2002-09-05 20:28:46.000000000 +0200
++++ postgresql-7.4.6-3/src/tutorial/Makefile	2005-03-09 15:56:11.000000000 +0100
+@@ -6,15 +6,15 @@
+ # IDENTIFICATION
+ #    $Header$
+ #
++# Please note that this Makefile was modified for Debian to allow
++# compilation in an arbitrary directory and without the complete
++# PostgreSQL source tree.
+ #-------------------------------------------------------------------------
+ 
+-subdir = src/tutorial
+-top_builddir = ../..
+-include $(top_builddir)/src/Makefile.global
+-
+-override CFLAGS+= $(CFLAGS_SL)
+-SHLIB_LINK = $(BE_DLLLIBS)
+-
++DLSUFFIX=.so
++INCLUDES= -I/usr/include/postgresql/ -I/usr/include/postgresql/server/
++CC= gcc $(INCLUDES)
++ 
+ #
+ # DLOBJS are the dynamically-loaded object files.  The "funcs" queries
+ # include CREATE FUNCTIONs that load routines from these files.
+@@ -25,6 +25,9 @@
+ 
+ all: $(DLOBJS) $(QUERIES)
+ 
++%$(DLSUFFIX): %.c
++	$(CC) -shared -o $@ $<
++
+ %.sql: %.source
+ 	rm -f $@; \
+ 	C=`pwd`; \
+@@ -32,3 +35,5 @@
+ 
+ clean distclean maintainer-clean:
+ 	rm -f $(DLOBJS) $(QUERIES)
++
++.PHONY: clean distclean maintainer-clean
+diff -ruN postgresql-7.4.6-orig/src/tutorial/README postgresql-7.4.6-3/src/tutorial/README
+--- postgresql-7.4.6-orig/src/tutorial/README	2001-10-26 22:45:33.000000000 +0200
++++ postgresql-7.4.6-3/src/tutorial/README	2005-03-09 15:56:11.000000000 +0100
+@@ -2,10 +2,16 @@
+ 	% make
+ to compile all the scripts and C files for the user-defined functions
+ and types.  (make needs to be GNU make --- it may be named something
+-different on your system, often gmake)
++different on your system, often gmake.) The package postgresql-dev
++must be installed for the tutorials to compile.
+ 
+ Then, run psql with the -s (single-step) flag:
+ 	% psql -s
+ 
+ From within psql, you can try each individual script file by using
+ psql's \i <filename> command.
++
++Please note that you need database superuser privileges to execute the
++examples which load dynamic libraries ('funcs' and 'complex') since
++the language C is usually not 'trusted', i. e. may not be used by
++normal users.
-- 
cgit v1.2.3