[BACK]Return to Makefile.common CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / databases / postgresql94

File: [cvs.NetBSD.org] / pkgsrc / databases / postgresql94 / Makefile.common (download)

Revision 1.21, Mon Nov 13 09:33:32 2017 UTC (18 months, 1 week ago) by adam
Branch: MAIN
Changes since 1.20: +13 -8 lines

postgresql: updated to the latest

The PostgreSQL Global Development Group has released an update to all supported versions of our database system, including 10.1, 9.6.6, 9.5.10, 9.4.15, 9.3.20, and 9.2.24. This release fixes three security issues. This release also fixes issues found in BRIN indexing, logical replication and other bugs reported over the past three months.

All users using the affected versions of PostgreSQL should update as soon as possible. If you use BRIN indexes or contrib/start-scripts, please see the release notes for additional post-upgrade steps.

Security Issues

Three security vulnerabilities have been fixed by this release:

CVE-2017-12172: Start scripts permit database administrator to modify root-owned files
CVE-2017-15098: Memory disclosure in JSON functions
CVE-2017-15099: INSERT ... ON CONFLICT DO UPDATE fails to enforce SELECT privileges


Bug Fixes and Improvements

This update also fixes a number of bugs reported in the last few months. Some of these issues affect only version 10, but many affect all supported versions:

Fix a race condition in BRIN indexing that could cause some rows to not be included in the indexing.
Fix crash when logical decoding is invoked from a PL language function.
Several fixes for logical replication.
Restored behavior for CTEs attached to INSERT/UPDATE/DELETE statements to pre-version 10.
Prevent low-probability crash in processing of nested trigger firings.
Do not evaluate an aggregate function's argument expressions when the conditions in the FILTER clause evaluate to FALSE. This complies with SQL-standard behavior.
Fix incorrect query results when multiple GROUPING SETS columns contain the same simple variable.
Fix memory leak over the lifespan of a query when evaluating a set-returning function from the target list in a SELECT.
Several fixes for parallel query execution, including fixing a crash in the parallel execution of certain queries that contain a certain type of bitmap scan.
Fix json_build_array(), json_build_object(), jsonb_build_array(), and jsonb_build_object() to handle explicit VARIADIC arguments correctly.
Prevent infinite float values from being casted to the numeric type.
Fix autovacuum's ork itemlogic to prevent possible crashes and silent loss of work items.
Several fixes for VIEWs around adding columns to the end of a view.
Fix for hashability detection of range data types that are created by a user.
Improvements on using extended statistics on columns for the purposes of query planning.
Prevent idle_in_transaction_session_timeout from being ignored when a statement_timeout occurred earlier.
Fix low-probability loss of NOTIFY messages due more than 2 billion transactions processing before any queries are executed in the session.
Several file system interaction fixes.
Correctly restore the umask setting when file creation fails in COPY or lo_export().
Fix pg_dump to ensure that it emits GRANT commands in a valid order.
Fix pg_basebackup's matching of tablespace paths to canonicalize both paths before comparing to help improve Windows compatibility.
Fix libpq to not require user's home directory to exist when trying to read the "~/.pgpass" file.
Several fixes for ecpg.

# $NetBSD: Makefile.common,v 1.21 2017/11/13 09:33:32 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
#
# used by databases/postgresql94-client/Makefile
# used by databases/postgresql94-contrib/Makefile
# used by databases/postgresql94-docs/Makefile
# used by databases/postgresql94-plperl/Makefile
# used by databases/postgresql94-plpython/Makefile
# used by databases/postgresql94-pltcl/Makefile
# used by databases/postgresql94-server/Makefile

DISTNAME=	postgresql-9.4.15
CATEGORIES=	databases
MASTER_SITES=	${MASTER_SITE_PGSQL:=source/v${PKGVERSION_NOREV}/}
EXTRACT_SUFX=	.tar.bz2

MAINTAINER?=	adam@NetBSD.org
HOMEPAGE=	https://www.postgresql.org/
LICENSE=	postgresql-license

CONFLICTS+=	postgresql-[0-9]*
CONFLICTS+=	postgresql[0-8][0-9]-[0-9]*
CONFLICTS+=	postgresql9[01235-9]-[0-9]*

.if !empty(PKGNAME:M*-*-*)
module=		${PKGNAME:C/-[0-9].*$//:C/^.*-//}
CONFLICTS+=	postgresql[0-8][0-9]-${module}-[0-9]*
CONFLICTS+=	postgresql9[01235-9]-${module}-[0-9]*
.endif

DISTINFO_FILE?=		${.CURDIR}/../../databases/postgresql94/distinfo
COMMON_FILESDIR?=	${.CURDIR}/../../databases/postgresql94/files
PATCHDIR?=		${.CURDIR}/../../databases/postgresql94/patches

USE_PKGLOCALEDIR=	yes
USE_TOOLS+=		bison gmake lex msgfmt
PKG_SYSCONFSUBDIR=	postgresql

.include "../../mk/bsd.prefs.mk"

PG_TEMPLATE.SunOS=	solaris
PG_TEMPLATE.IRIX=	irix5
PG_TEMPLATE.MirBSD=	openbsd
.if !defined(PG_TEMPLATE.${OPSYS})
PG_TEMPLATE.${OPSYS}=	${LOWER_OPSYS}
.endif

PG_DATA_DIR=		${PREFIX}/share/postgresql
PG_DOC_DIR=		${PREFIX}/share/doc/postgresql
PG_LOCALE_DIR=		${PREFIX}/${PKGLOCALEDIR}/locale
PG_ETC_DIR=		${PKG_SYSCONFDIR}

GNU_CONFIGURE=		yes
CONFIGURE_ARGS+=	--sysconfdir=${PG_ETC_DIR}
CONFIGURE_ARGS+=	--datadir=${PG_DATA_DIR}
CONFIGURE_ARGS+=	--docdir=${PG_DOC_DIR}
CONFIGURE_ARGS+=	--localedir=${PG_LOCALE_DIR}
CONFIGURE_ARGS+=	--with-template=${PG_TEMPLATE.${OPSYS}}

CONFIGURE_ARGS+=	--enable-nls
CONFIGURE_ARGS+=	--with-gssapi
CONFIGURE_ARGS+=	--with-libxml
CONFIGURE_ARGS+=	--with-readline
CONFIGURE_ARGS+=	--without-perl
CONFIGURE_ARGS+=	--without-python
CONFIGURE_ARGS+=	--without-tcl

# sys/ucred.h shouldn't be included on Solaris, causes conflicts between
# procfs and largefile.
CONFIGURE_ENV.SunOS+=	ac_cv_header_sys_ucred_h=no

# pkgsrc silently filters the --as-needed linker arg, but that makes
# it leak into the pgxs Makefiles and compromises manual building
# against PostgreSQL files installed. Disable it here to prevent
# that from happening.
.if ${OPSYS} == "SunOS" || ${OPSYS} == "Darwin"
CONFIGURE_ENV+=		pgac_cv_prog_cc_ldflags__Wl___as_needed=no
.endif

# configure fails on OpenBSD and MirBSD if thread safety is enabled.
CONFIGURE_ARGS.MirBSD+=	--disable-thread-safety
CONFIGURE_ARGS.OpenBSD+=--disable-thread-safety

# 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.  Please don't change
# this value unless you know what you are doing.
BUILD_DEFS+=	PGSQL_BLCKSZ
.if defined(PGSQL_BLCKSZ)
CONFIGURE_ARGS+=	--with-blocksize=${PGSQL_BLCKSZ}
.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

.include "../../devel/gettext-lib/buildlink3.mk"
LIBS.SunOS+=		-lintl
.include "../../devel/zlib/buildlink3.mk"
.include "../../textproc/libxml2/buildlink3.mk"

.include "../../mk/readline.buildlink3.mk"
.if ${READLINE_TYPE} == "editline"
CONFIGURE_ARGS+=	--with-libedit-preferred
.endif

.if !defined(META_PACKAGE)
post-extract:
.  if !empty(USE_LIBLTDL:M[yY][eE][sS])
	cp -f ${COMMON_FILESDIR}/dynloader-ltdl.h \
		${WRKSRC}/src/backend/port/dynloader/${PG_TEMPLATE.${OPSYS}:Q}.h
	${ECHO} "static int dummy = 0;" \
		> ${WRKSRC}/src/backend/port/dynloader/${PG_TEMPLATE.${OPSYS}:Q}.c
.  endif
	touch ${WRKSRC}/src/template/dragonfly
	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
	cp ${WRKSRC}/src/include/port/freebsd.h \
		${WRKSRC}/src/include/port/dragonfly.h
	cp ${WRKSRC}/src/makefiles/Makefile.freebsd \
		${WRKSRC}/src/makefiles/Makefile.dragonfly
.endif

.include "../../databases/postgresql94/options.mk"