[BACK]Return to Makefile CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / databases / postgresql14-server

File: [cvs.NetBSD.org] / pkgsrc / databases / postgresql14-server / Makefile (download)

Revision 1.6, Thu May 12 19:02:47 2022 UTC (23 months, 1 week ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2022Q2-base, pkgsrc-2022Q2
Changes since 1.5: +1 -2 lines

postgresqlNN: updated to 14.3, 13.7, 12.11, 11.16, and 10.21

The PostgreSQL Global Development Group has released an update to all supported versions of PostgreSQL, including 14.3, 13.7, 12.11, 11.16, and 10.21. This release closes one security vulnerability and fixes over 50 bugs reported over the last three months.

CVE-2022-1552: Autovacuum, REINDEX, and others omit "security restricted operation" sandbox.

Versions Affected: 10 - 14. The security team typically does not test unsupported versions, but this problem is quite old.

Autovacuum, REINDEX, CREATE INDEX, REFRESH MATERIALIZED VIEW, CLUSTER, and pg_amcheck made incomplete efforts to operate safely when a privileged user is maintaining another user's objects. Those commands activated relevant protections too late or not at all. An attacker having permission to create non-temp objects in at least one schema could execute arbitrary SQL functions under a superuser identity.

While promptly updating PostgreSQL is the best remediation for most users, a user unable to do that can work around the vulnerability by disabling autovacuum, not manually running the above commands, and not restoring from output of the pg_dump command. Performance may degrade quickly under this workaround. VACUUM is safe, and all commands are fine when a trusted user owns the target object.


Bug Fixes and Improvements

This update fixes over 50 bugs that were reported in the last several months. The issues listed below affect PostgreSQL 14. Some of these issues may also affect other supported versions of PostgreSQL.

Included in this release:

Fix issue that could lead to corruption of GiST indexes on ltree columns. After upgrading, you will need to reindex any GiST indexes on ltree columns.
Column names in tuples produced by a whole-row variable (e.g. tbl.*) outside of a top-level of a SELECT list are now always associated with those of the associated named composite type, if there is one. The release notes detail a workaround if you depend on the previous behavior.
Fix incorrect rounding when extracting epoch values from interval types.
Prevent issues with calling pg_stat_get_replication_slot(NULL).
Fix incorrect output for types timestamptz and timetz in table_to_xmlschema().
Fix errors related to a planner issue that affected asynchronous remote queries.
Fix planner failure if a query using SEARCH or CYCLE features contains a duplicate common-table expression (WITH) name.
Fix ALTER FUNCTION to support changing a function's parallelism property and its SET-variable list in the same command.
Fix incorrect sorting of table rows when using CLUSTER on an index whose leading key is an expression.
Prevent data loss if a system crash occurs shortly after a sorted GiST index build.
Fix risk of deadlock failures while dropping a partitioned index.
Fix race condition between DROP TABLESPACE and checkpointing that could fail to remove all dead files from the tablespace directory.
Fix potential issue in crash recovery after a TRUNCATE command that overlaps with a checkpoint.
Re-allow _ as the first character in a custom configuration parameter name.
Fix PANIC: xlog flush request is not satisfied failure during standby promotion when there is a missing WAL continuation record.
Fix possibility of self-deadlock in hot standby conflict handling.
Ensure that logical replication apply workers can be restarted when the server is near the max_sync_workers_per_subscription limit.
Disallow execution of SPI functions during PL/Perl function compilation.
libpq now accepts root-owned SSL private key files, which matches the rules the server has used since the 9.6 release.
Re-allow database.schema.table patterns in psql, pg_dump, and pg_amcheck.
Several fixes for pageinspect to improve overall stability.
Disable batch insertion in postgres_fdw when BEFORE INSERT ... FOR EACH ROW triggers exist on the foreign table.
Update JIT code to work with LLVM 14.

# $NetBSD: Makefile,v 1.6 2022/05/12 19:02:47 adam Exp $

PKGNAME=	${DISTNAME:S/-/14-server-/}
COMMENT=	PostgreSQL database server programs

# mips has no TAS implementation
BROKEN_ON_PLATFORM=	*-*-mips

.include "../../databases/postgresql14/Makefile.common"

USE_TOOLS+=		msgfmt
TOOLS_BROKEN+=		perl
CONFIGURE_ARGS+=	--with-openssl

INSTALL_DIRS=	src/backend
INSTALL_DIRS+=	src/backend/replication/libpqwalreceiver
INSTALL_DIRS+=	src/backend/replication/pgoutput
INSTALL_DIRS+=	src/backend/utils/mb/conversion_procs
INSTALL_DIRS+=	src/backend/snowball
INSTALL_DIRS+=	src/timezone
INSTALL_DIRS+=	src/pl
BUILD_DIRS=	src/port
BUILD_DIRS+=	${INSTALL_DIRS}

# PostgreSQL has loadable server-side language modules.
#
# Explicitly set DLOPEN_REQUIRE_PTHREADS to "no" on NetBSD as NetBSD-2.x
# had problems with mixing dlopen() and pthreads, which blows up in
# PostgreSQL's backend (pkg/28729).  This works on older and newer
# versions of NetBSD as well since they don't have the bad interaction
# between dlopen() and pthreads.
.if ${OPSYS} == "NetBSD"
DLOPEN_REQUIRE_PTHREADS=	no
.endif
.include "../../mk/dlopen.buildlink3.mk"

# If we're using libltdl to provide "dlopen" functionality, then add the
# dependency and make sure that we link against -lltdl.
.if !empty(USE_LIBLTDL:M[yY][eE][sS])
DL_LIBS+=	-lltdl
.  include "../../devel/libltdl/buildlink3.mk"
.endif

# PGUSER	username of the database administrator
# PGGROUP	group of the database administrator
# PGHOME	home directory of the database administrator and location of
#		the databases
FILES_SUBST+=		PGUSER=${PGUSER}
FILES_SUBST+=		PGGROUP=${PGGROUP}
FILES_SUBST+=		PGHOME=${PGHOME}
BUILD_DEFS+=		PGHOME VARBASE

ALL_ENV+=		INSTALLED_LIBPQ=yes

PKG_GROUPS_VARS+=	PGGROUP
PKG_USERS_VARS+=	PGUSER

PKG_GROUPS=		${PGGROUP}
PKG_USERS=		${PGUSER}:${PGGROUP}
PKG_GECOS.${PGUSER}=	PostgreSQL database administrator
PKG_HOME.${PGUSER}=	${PGHOME}

RCD_SCRIPTS=		pgsql
SMF_METHODS=		postgresql
SMF_NAME=		postgresql

.include "../../databases/postgresql14-client/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"

# Avoid conflict between "${SSLBASE}/include/openssl/des.h" and
# "/usr/include/crypt.h" -- we want the definitions in the former.
post-wrapper:
.if ${OPSYS} == "SunOS"
	touch ${BUILDLINK_DIR}/include/crypt.h
.endif

.include "../../mk/bsd.pkg.mk"