* Fix GiST index corruption due to marking the wrong index entry "dead" after a deletion. This would result in index searches failing to find rows they should have found. * Fix backend crash when the client encoding cannot represent a localized error message. We have addressed similar issues before, but it would still fail if the "character has no equivalent" message itself couldn't be converted. The fix is to disable localization and send the plain ASCII error message when we detect such a situation. * Fix possible crash when deeply nested functions are invoked from a trigger. * Fix mis-expansion of rule queries when a sub-SELECT appears in a function call in FROM, a multi-row VALUES list, or a RETURNING list * Ensure an error is reported when a newly-defined PL/pgSQL trigger function is invoked as a normal function. * Prevent possible collision of relfilenode numbers when moving a table to another tablespace with "ALTER SET TABLESPACE". The command tried to re-use the existing filename, instead of picking one that is known unused in the destination directory. * Fix incorrect tsearch2 headline generation when single query item matches first word of text. * Fix improper display of fractional seconds in interval values when using a non-ISO datestyle in an "--enable-integer-datetimes" build * Ensure SPI_getvalue and SPI_getbinval behave correctly when the passed tuple and tuple descriptor have different numbers of columns. * Fix ecpg's parsing of "CREATE ROLE". * Fix recent breakage of pg_ctl restart. * Update time zone data files to tzdata release 2008i (for DST law changes in Argentina, Brazil, Mauritius, Syria)
176 lines
5.7 KiB
Text
176 lines
5.7 KiB
Text
# $NetBSD: Makefile.common,v 1.19 2008/11/04 09:52:29 adam Exp $
|
|
#
|
|
# This Makefile fragment is included by all PostgreSQL packages built from
|
|
# the main sources of the PostgreSQL distribution except jdbc-postgresql.
|
|
#
|
|
# The PostgreSQL package naming scheme, aside from the obvious piecewise
|
|
# packages, is as follows:
|
|
#
|
|
# <lang>-postgresql client-side interface to PostgreSQL
|
|
# postgresql-<lang> server-side module for PostgreSQL backend
|
|
|
|
.include "../../databases/postgresql81/Makefile.mirrors"
|
|
|
|
DISTNAME?= postgresql-${DIST_VERS}
|
|
CATEGORIES+= databases
|
|
MASTER_SITES?= ${PGSQL_MIRRORS:=source/v${DIST_VERS}/}
|
|
EXTRACT_SUFX= .tar.bz2
|
|
|
|
MAINTAINER?= jlam@NetBSD.org
|
|
HOMEPAGE?= http://www.postgresql.org/
|
|
|
|
CONFLICTS+= postgresql-[0-9]*
|
|
CONFLICTS+= postgresql73-*
|
|
CONFLICTS+= postgresql74-*
|
|
CONFLICTS+= postgresql80-*
|
|
CONFLICTS+= postgresql82-*
|
|
CONFLICTS+= postgresql83-*
|
|
|
|
DISTINFO_FILE?= ${.CURDIR}/../postgresql81/distinfo
|
|
COMMON_FILESDIR?= ${.CURDIR}/../postgresql81/files
|
|
PATCHDIR?= ${.CURDIR}/../postgresql81/patches
|
|
|
|
# Version numbering scheme:
|
|
#
|
|
# DIST_VERS version number on the postgresql distfile
|
|
# BASE_VERS pkgsrc-mangled version number (convert pl -> .)
|
|
#
|
|
# Note: Do not forget jdbc-postgresql81 when updating version
|
|
#
|
|
DIST_VERS?= 8.1.15
|
|
BASE_VERS?= ${DIST_VERS}
|
|
|
|
BUILDLINK_API_DEPENDS.postgresql81-client+= postgresql81-client>=${BASE_VERS}
|
|
|
|
GNU_CONFIGURE= yes
|
|
USE_TOOLS+= bison gmake lex msgfmt
|
|
PKG_SYSCONFSUBDIR= postgresql
|
|
|
|
# in 7.4.x/8.0.x, this is done by autoconf stuff which has leading whitespace
|
|
USE_PKGLOCALEDIR= yes
|
|
SUBST_CLASSES+= pglocale
|
|
SUBST_FILES.pglocale= configure config/programs.m4
|
|
SUBST_STAGE.pglocale= pre-configure
|
|
SUBST_SED.pglocale= -e 's|\( localedir[ :]*=\).*|\1${PG_LOCALE_DIR}|'
|
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
PGSQL_TEMPLATE.SunOS= solaris
|
|
PGSQL_TEMPLATE.IRIX= irix5
|
|
.if !defined(PGSQL_TEMPLATE.${OPSYS})
|
|
PGSQL_TEMPLATE.${OPSYS}= ${LOWER_OPSYS}
|
|
.endif
|
|
|
|
PG_SUBPREFIX= # empty
|
|
.if empty(PG_SUBPREFIX)
|
|
PG_PREFIX= ${PREFIX}
|
|
PLIST_SUBST+= PG_SUBPREFIX=
|
|
.else
|
|
PG_PREFIX= ${PREFIX}/${PG_SUBPREFIX}
|
|
BUILD_DEFS+= PG_SUBPREFIX
|
|
PLIST_SUBST+= PG_SUBPREFIX=${PG_SUBPREFIX}/
|
|
BUILDLINK_PASSTHRU_DIRS+= ${PG_PREFIX}
|
|
.endif
|
|
PG_DATA_DIR= ${PG_PREFIX}/share/postgresql
|
|
PG_DOC_DIR= ${PG_PREFIX}/share/doc/postgresql
|
|
PG_LOCALE_DIR= ${PG_PREFIX}/${PKGLOCALEDIR}/locale
|
|
PG_ETC_DIR= ${PKG_SYSCONFDIR:S/^${PREFIX}\//${PG_PREFIX}\//}
|
|
|
|
GNU_CONFIGURE_PREFIX= ${PG_PREFIX}
|
|
CONFIGURE_ARGS+= --sysconfdir=${PG_ETC_DIR}
|
|
CONFIGURE_ARGS+= --datadir=${PG_DATA_DIR}
|
|
CONFIGURE_ARGS+= --with-docdir=${PG_DOC_DIR}
|
|
CONFIGURE_ARGS+= --with-template=${PGSQL_TEMPLATE.${OPSYS}}
|
|
CONFIGURE_ARGS+= --without-readline
|
|
CONFIGURE_ARGS+= --without-zlib
|
|
CONFIGURE_ARGS+= --enable-nls
|
|
|
|
CONFIGURE_ARGS+= --without-java
|
|
CONFIGURE_ARGS+= --without-perl
|
|
CONFIGURE_ARGS+= --without-python
|
|
CONFIGURE_ARGS+= --without-tcl
|
|
|
|
# Enable Rendezvous on Mac OS X
|
|
.if ${OPSYS} == "Darwin"
|
|
CONFIGURE_ARGS+= --with-rendezvous
|
|
.endif
|
|
|
|
# PostgreSQL explicitly forbids any use of -ffast-math
|
|
BUILDLINK_TRANSFORM+= rm:-ffast-math
|
|
|
|
# USE_LIBLTDL is "yes" or "no" depending on whether we're using libltdl
|
|
# to provide "dlopen" functionality for the PostgreSQL backend.
|
|
#
|
|
.if ${OPSYS} == "Interix"
|
|
USE_LIBLTDL?= yes
|
|
.endif
|
|
USE_LIBLTDL?= no
|
|
|
|
FILES_SUBST+= PG_PREFIX=${PG_PREFIX:Q}
|
|
|
|
.include "../../devel/gettext-lib/buildlink3.mk"
|
|
|
|
post-extract:
|
|
if ${TEST} -d ${WRKSRC}/src; then \
|
|
rm -f ${WRKSRC}/src/Makefile.custom; \
|
|
cp -f ${COMMON_FILESDIR}/Makefile.custom \
|
|
${WRKSRC}/src/Makefile.custom; \
|
|
rm -f ${WRKSRC}/src/Makefile.shlib; \
|
|
cp -f ${COMMON_FILESDIR}/Makefile.libtool \
|
|
${WRKSRC}/src/Makefile.shlib; \
|
|
fi
|
|
if ${TEST} -d ${WRKSRC}/src/interfaces/libpq; then \
|
|
rm -f ${WRKSRC}/src/interfaces/libpq/GNUmakefile; \
|
|
cp -f ${COMMON_FILESDIR}/GNUmakefile.libpq \
|
|
${WRKSRC}/src/interfaces/libpq/GNUmakefile; \
|
|
fi
|
|
if ${TEST} -d ${WRKSRC}/src/interfaces/libpgtcl; then \
|
|
rm -f ${WRKSRC}/src/interfaces/libpgtcl/GNUmakefile; \
|
|
cp -f ${COMMON_FILESDIR}/GNUmakefile.libpgtcl \
|
|
${WRKSRC}/src/interfaces/libpgtcl/GNUmakefile; \
|
|
fi
|
|
.if !empty(USE_LIBLTDL:M[yY][eE][sS])
|
|
if ${TEST} -d ${WRKSRC}/src/backend/port/dynloader; then \
|
|
template=${PGSQL_TEMPLATE.${OPSYS}:Q}; \
|
|
rm -f ${WRKSRC}/src/backend/port/dynloader/$$template.[ch]; \
|
|
cp -f ${COMMON_FILESDIR}/dynloader-ltdl.h \
|
|
${WRKSRC}/src/backend/port/dynloader/$$template.h; \
|
|
${ECHO} "static int dummy = 0;" \
|
|
>${WRKSRC}/src/backend/port/dynloader/$$template.c
|
|
fi
|
|
.endif
|
|
if ${TEST} -d ${WRKSRC}/src/template; then \
|
|
touch ${WRKSRC}/src/template/dragonfly; \
|
|
fi
|
|
if ${TEST} -d ${WRKSRC}/src/backend/port/dynloader; then \
|
|
cp ${WRKSRC}/src/backend/port/dynloader/freebsd.c \
|
|
${WRKSRC}/src/backend/port/dynloader/dragonfly.c; \
|
|
cp ${WRKSRC}/src/backend/port/dynloader/freebsd.h \
|
|
${WRKSRC}/src/backend/port/dynloader/dragonfly.h; \
|
|
fi
|
|
if ${TEST} -d ${WRKSRC}/src/include/port; then \
|
|
cp ${WRKSRC}/src/include/port/freebsd.h \
|
|
${WRKSRC}/src/include/port/dragonfly.h; \
|
|
fi
|
|
if ${TEST} -d ${WRKSRC}/src/makefiles; then \
|
|
cp ${WRKSRC}/src/makefiles/Makefile.freebsd \
|
|
${WRKSRC}/src/makefiles/Makefile.dragonfly; \
|
|
fi
|
|
|
|
# PGSQL_BLCKSZ is the size in bytes of a PostgreSQL disk page or block.
|
|
# This also limits the size of a tuple. The valid values are powers
|
|
# of 2 up to 32768, and the default size is 8196 (hardcoded in the
|
|
# PostgreSQL sources). Please don't change this value unless you know
|
|
# what you are doing.
|
|
#
|
|
BUILD_DEFS+= PGSQL_BLCKSZ
|
|
|
|
.if defined(PGSQL_BLCKSZ)
|
|
.PHONY: pgsql-blcksz
|
|
pre-configure: pgsql-blcksz
|
|
pgsql-blcksz:
|
|
for file in ${WRKSRC}/src/include/pg_config_manual.h; do \
|
|
${SED} -e "/^#define[ ]*BLCKSZ[ ]*/s/^\(#define[ ]*BLCKSZ\).*/\1 ${PGSQL_BLCKSZ}/" $$file > $$file.new; \
|
|
${MV} -f $$file.new $$file; \
|
|
done
|
|
.endif
|