pkgsrc/databases/postgresql13/Makefile.common
adam ede9df6c73 postgresql: updated to 13.4, 12.8, 11.13, 10.18, 9.6.23
PostgreSQL 13.4, 12.8, 11.13, 10.18, 9.6.23

Security Issues

CVE-2021-3677: Memory disclosure in certain queries

Versions Affected: 11 - 13.

A purpose-crafted query can read arbitrary bytes of server memory. In the default configuration, any authenticated database user can complete this attack at will. The attack does not require the ability to create objects. If server settings include max_worker_processes=0, the known versions of this attack are infeasible. However, undiscovered variants of the attack may be independent of that setting.

Bug Fixes and Improvements

This update also fixes over 75 bugs that were reported in the last several months. Some of these issues affect only version 13, but many affect all supported versions.

Some of these fixes include:

Completely disable TLS/SSL renegotiation. This was previously disabled, but the server would still execute a client-initiated renegotiation request.
Restore the Portal-level snapshot after COMMIT or ROLLBACK within a procedure. This change fixes cases where an attempt to fetch a toasted value immediately after COMMIT/ROLLBACK would fail with errors like "no known snapshots" or "missing chunk number 0 for toast value".
Avoid misbehavior when persisting the output of a cursor that's reading a volatile query.
Reject cases where a query in WITH rewrites to just NOTIFY, which would cause a crash.
Several corner-case fixes for numeric types.
ALTER EXTENSION now locks the extension when adding or removing a member object.
The "enabled" status is now copied when a partitioned table's triggers are cloned to a new partition.
Avoid alias conflicts in queries generated for REFRESH MATERIALIZED VIEW CONCURRENTLY. This command failed on materialized views containing columns with certain names, notably mv and newdata.
Disallow whole-row variables in GENERATED expressions.
Several fixes for DROP OWNED BY behavior in relation to row-level security (RLS) policies.
Re-allow old-style Windows locale names in CREATE COLLATION commands.
walsenders now show their latest replication command in pg_stat_activity, instead of just showing the latest SQL command.
pg_settings.pending_restart now shows as true when a pertinent entry in postgresql.conf is removed.
On 64-bit Windows, allow the effective value of work_mem * hash_mem_multiplier to exceed 2GB.
Update minimum recovery point when WAL replay of a transaction abort record causes file truncation.
Advance oldest-required-WAL-segment horizon properly after a replication slot is invalidated. This fixes an issue where the server's WAL storage could run out of space.
Improve progress reporting for the sort phase of a parallel B-tree index build.
Fix assorted crash cases in logical replication of partitioned-table updates and when firing AFTER triggers of partitioned tables.
Prevent infinite loops in SP-GiST index insertion.
Ensure that SP-GiST index insertion can be terminated by a query cancel request.
In psql and other client programs, avoid overrunning the ends of strings when dealing with invalidly-encoded data.
Fix pg_dump to correctly handle triggers on partitioned tables whose enabled status is different from their parent triggers' status.
Avoid "invalid creation date in header" warnings when running pg_restore on a file created in a different time zone.
pg_upgrade now carries forward the old installation's oldestXID value and no longer forces an anti-wraparound VACUUM."
Extend pg_upgrade to detect and warn about extensions that should be upgraded.
Fix contrib/postgres_fdw to better work with generated columns, so long as a generated column in a foreign table represents a generated column in the remote table.
2021-08-13 11:54:43 +00:00

138 lines
4.5 KiB
Text

# $NetBSD: Makefile.common,v 1.9 2021/08/13 11:54:46 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/postgresql13-client/Makefile
# used by databases/postgresql13-contrib/Makefile
# used by databases/postgresql13-docs/Makefile
# used by databases/postgresql13-plperl/Makefile
# used by databases/postgresql13-plpython/Makefile
# used by databases/postgresql13-pltcl/Makefile
# used by databases/postgresql13-server/Makefile
DISTNAME= postgresql-13.4
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[2-9][0-9]-[0-9]*
.if !empty(PKGNAME:M*-*-*)
module= ${PKGNAME:C/-[0-9].*$//:C/^.*-//}
CONFLICTS+= postgresql[2-9][0-9]-${module}-[0-9]*
.endif
DISTINFO_FILE?= ${.CURDIR}/../../databases/postgresql13/distinfo
PATCHDIR?= ${.CURDIR}/../../databases/postgresql13/patches
USE_PKGLOCALEDIR= yes
USE_TOOLS+= bison gmake lex
PKG_SYSCONFSUBDIR= postgresql
.include "../../mk/bsd.prefs.mk"
PG_TEMPLATE.SunOS= solaris
PG_TEMPLATE.IRIX= irix5
PG_TEMPLATE.MirBSD= openbsd
PG_TEMPLATE.DragonFly= freebsd
.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+= --with-libxml
CONFIGURE_ARGS+= --with-readline
CONFIGURE_ARGS+= --without-perl
CONFIGURE_ARGS+= --without-python
CONFIGURE_ARGS+= --without-tcl
# avoid pointing to a wrapper
CONFIGURE_ENV+= MSGFMT=${TOOLS_PATH.msgfmt}
# 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
# Postgres on Alpha has no spinlock or memory barrier implementation
# and is "unlikely to work correctly".
# https://www.postgresql.org/message-id/E1X0yaj-000753-N6%40gemulon.postgresql.org
BROKEN_ON_PLATFORM+= *-*-alpha
.if ${MACHINE_ARCH} == "sparc"
CFLAGS.NetBSD+= -D__sparc_v8__
.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
# UUID support for contrib/uuid-ossp
# It has to be defined here, because it affects Makefile.global
.if ${OPSYS:M*BSD}
CONFIGURE_ARGS+= --with-uuid=bsd
.elif ${OPSYS} == "Darwin" || ${OPSYS} == "Linux"
CONFIGURE_ARGS+= --with-uuid=e2fs
.include "../../devel/libuuid/buildlink3.mk"
.elif ${OPSYS} == "SunOS"
CONFIGURE_ARGS+= --with-uuid=ossp
.include "../../devel/ossp-uuid/buildlink3.mk"
.endif
# PostgreSQL explicitly forbids any use of -ffast-math
BUILDLINK_TRANSFORM+= rm:-ffast-math
.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:
${TOUCH} ${WRKSRC}/src/template/dragonfly
${CP} ${WRKSRC}/src/makefiles/Makefile.freebsd \
${WRKSRC}/src/makefiles/Makefile.dragonfly
.endif
.include "../../databases/postgresql13/options.mk"