diff options
author | Palle Girgensohn <girgen@FreeBSD.org> | 2019-02-15 11:02:22 +0000 |
---|---|---|
committer | Palle Girgensohn <girgen@FreeBSD.org> | 2019-02-15 11:02:22 +0000 |
commit | f7e9e29abb1593ce90e54df31cf7c327ef1e03cb (patch) | |
tree | 57fd167c04384663545f34f8218b5b573867a5c8 /databases/postgresql10-server | |
parent | Update to 6.3.63 (diff) |
The PostgreSQL Global Development Group has released an update to all
supported versions of our database system, including 11.2, 10.7, 9.6.12,
9.5.16, and 9.4.21. This release changes the behavior in how PostgreSQL
interfaces with `fsync()` and includes fixes for partitioning and over
70 other bugs that were reported over the past three months.
Users should plan to apply this update at the next scheduled downtime.
FreeBSD port adds OPTIONS knob to support LLVM JIT. [1]
Highlight: Change in behavior with fsync()
------------------------------------------
When available in an operating system and enabled in the configuration
file (which it is by default), PostgreSQL uses the kernel function
`fsync()` to help ensure that data is written to a disk. In some
operating systems that provide `fsync()`, when the kernel is unable to
write out the data, it returns a failure and flushes the data that was
supposed to be written from its data buffers.
This flushing operation has an unfortunate side-effect for PostgreSQL:
if PostgreSQL tries again to write the data to disk by again calling
`fsync()`, `fsync()` will report back that it succeeded, but the data
that PostgreSQL believed to be saved to the disk would not actually be
written. This presents a possible data corruption scenario.
This update modifies how PostgreSQL handles a `fsync()` failure:
PostgreSQL will no longer retry calling `fsync()` but instead will
panic. In this case, PostgreSQL can then replay the data from the
write-ahead log (WAL) to help ensure the data is written. While this may
appear to be a suboptimal solution, there are presently few alternatives
and, based on reports, the problem case occurs extremely rarely.
A new server parameter `data_sync_retry` has been added to manage this
behavior. If you are certain that your kernel does not discard dirty
data buffers in such scenarios, you can set `data_sync_retry` to `on` to
restore the old behavior.
Release Notes: https://www.postgresql.org/about/news/1920/
PR: 232490 [1]
Notes
Notes:
svn path=/head/; revision=492989
Diffstat (limited to 'databases/postgresql10-server')
-rw-r--r-- | databases/postgresql10-server/Makefile | 275 | ||||
-rw-r--r-- | databases/postgresql10-server/distinfo | 6 | ||||
-rw-r--r-- | databases/postgresql10-server/pkg-plist-client | 1 | ||||
-rw-r--r-- | databases/postgresql10-server/pkg-plist-server | 1 |
4 files changed, 12 insertions, 271 deletions
diff --git a/databases/postgresql10-server/Makefile b/databases/postgresql10-server/Makefile index 342d53344ca0..1b1d5b266a39 100644 --- a/databases/postgresql10-server/Makefile +++ b/databases/postgresql10-server/Makefile @@ -1,51 +1,11 @@ # Created by: Marc G. Fournier <scrappy@FreeBSD.org> # $FreeBSD$ -PORTNAME?= postgresql -DISTVERSION?= 10.6 -PORTREVISION= 2 -CATEGORIES?= databases -MASTER_SITES= PGSQL/source/v${DISTVERSION} -PKGNAMESUFFIX?= ${PORTVERSION:R}${COMPONENT} +DISTVERSION?= 10.7 +PORTREVISION= 0 +PKGNAMESUFFIX?= ${DISTVERSION:R:S/.//}${COMPONENT} MAINTAINER?= pgsql@FreeBSD.org -COMMENT?= PostgreSQL is the most advanced open-source database available anywhere - -LICENSE= PostgreSQL - -.if ${DISTVERSION:C/([0-9]*).*/\1/} == 10 -CONFLICTS+= ${PORTNAME}9* -.else -CONFLICTS+= ${PORTNAME}9[^${PORTVERSION:R:E}]* ${PORTNAME}10* -.endif - -WRKSRC= ${WRKDIR}/postgresql-${DISTVERSION} -DIST_SUBDIR= postgresql - -OPTIONS_SUB= yes - -PKGINSTALL?= ${PKGDIR}/pkg-install${COMPONENT} -USES+= tar:bzip2 cpe -.if !defined(NO_BUILD) -USES+= gmake -GNU_CONFIGURE= yes -.endif - -PG_USER?= postgres -PG_GROUP?= postgres -PG_UID?= 770 - -LDFLAGS+= -L${LOCALBASE}/lib -INCLUDES+= -I${LOCALBASE}/include -CONFIGURE_ARGS+=--with-libraries=${PREFIX}/lib \ - --with-includes=${PREFIX}/include \ - --enable-thread-safety -CONFIGURE_ENV+= INCLUDES="${INCLUDES}" \ - PTHREAD_LIBS="-lpthread" \ - LDFLAGS_SL="${LDFLAGS_SL}" -LDFLAGS+= -lpthread - -PLIST= ${PKGDIR}/pkg-plist${COMPONENT} INSTALL_DIRS?= src/common src/timezone src/backend \ src/backend/utils/mb/conversion_procs \ @@ -58,229 +18,8 @@ INSTALL_DIRS?= src/common src/timezone src/backend \ src/bin/pg_test_fsync src/bin/pg_test_timing \ src/bin/pg_waldump src/bin/pg_upgrade -BUILD_DIRS?= src/port ${INSTALL_DIRS} -INSTALL_TARGET?=install-strip - -.if !defined(CLIENT_ONLY) && !defined(SLAVE_ONLY) -SERVER_ONLY= yes -COMPONENT= -server -USE_RC_SUBR= postgresql -USES+= pgsql:${DISTVERSION:C/([0-9]\.?[0-9]).*/\1/g} -USERS= ${PG_USER} -GROUPS= ${PG_GROUP} -SUB_FILES+= 502.pgsql -.endif - -.if defined(CLIENT_ONLY) -OPTIONS_DEFINE+=LIBEDIT DOCS -LIBEDIT_DESC= Use non-GPL libedit instead of readline -USES+= perl5 -.else -MAKE_ENV= PATH=${PREFIX}/bin:${PATH} -CONFIGURE_ENV+= PATH=${PREFIX}/bin:${PATH} -.endif - -.if defined(SERVER_ONLY) -OPTIONS_DEFINE= DTRACE LDAP INTDATE TZDATA XML DOCS -LDAP_DESC= Build with LDAP authentication support -DTRACE_DESC= Build with DTrace probes -TZDATA_DESC= Use internal timezone database -XML_DESC= Build with XML data type - -.if ${DISTVERSION:C/([0-9]*).*/\1/} != 10 -# See http://people.freebsd.org/~girgen/postgresql-icu/README.html for more info -OPTIONS_DEFINE+= ICU -ICU_DESC= Use ICU for unicode collation -.else -CONFIGURE_ARGS+=--with-icu -LIB_DEPENDS+= libicudata.so:devel/icu -USES+= pkgconfig -.endif - -# See http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/76999 for more info -# (requires dump/restore if modified.) -OPTIONS_DEFINE+= INTDATE -INTDATE_DESC= Builds with 64-bit date/time type -OPTIONS_DEFAULT+= TZDATA INTDATE -.endif - -.if !defined(SLAVE_ONLY) -OPTIONS_DEFINE+= NLS PAM GSSAPI OPTIMIZED_CFLAGS DEBUG DOCS -. if ${DISTVERSION:R} == 9.2 || ${DISTVERSION:R} == 9.3 - OPTIONS_RADIO= KRB5 - OPTIONS_RADIO_KRB5= MIT_KRB5 HEIMDAL_KRB5 -. endif - -KRB5_DESC= Build with kerberos provider support -NLS_DESC= Use internationalized messages -PAM_DESC= Build with PAM Support -MIT_KRB5_DESC= Build with MIT kerberos support -HEIMDAL_KRB5_DESC= Builds with Heimdal kerberos -GSSAPI_DESC= Build with GSSAPI support -OPTIMIZED_CFLAGS_DESC= Builds with compiler optimizations (-O3) - -OPTIONS_DEFINE+= SSL -SSL_DESC= Build with OpenSSL support - -OPTIONS_DEFAULT+= SSL -.endif # !SLAVE_ONLY - -.if defined(CLIENT_ONLY) -LIBEDIT_CONFIGURE_ON+=--with-libedit-preferred -LIBEDIT_USES= libedit -LIBEDIT_USES_OFF= readline -.endif # CLIENT_ONLY - -SSL_USES= ssl -SSL_CONFIGURE_WITH=openssl - -PAM_CONFIGURE_WITH= pam - -XML_CONFIGURE_WITH= libxml -XML_LIB_DEPENDS= libxml2.so:textproc/libxml2 - -TZDATA_CONFIGURE_OFF=--with-system-tzdata=/usr/share/zoneinfo - -INTDATE_CONFIGURE_OFF=--disable-integer-datetimes - -NLS_CONFIGURE_ENABLE= nls -NLS_USES= gettext - -LDAP_CONFIGURE_WITH= ldap -LDAP_USE= OPENLDAP=yes - -OPTIMIZED_CFLAGS_CFLAGS= -O3 -funroll-loops - -DEBUG_CONFIGURE_ENABLE= debug - -PLIST_SUB+= PG_USER=${PG_USER} \ - PG_GROUP=${PG_GROUP} -SUB_LIST+= PG_GROUP=${PG_GROUP} \ - PG_USER=${PG_USER} \ - PG_UID=${PG_UID} - -.include <bsd.port.options.mk> - -.if ${ARCH} == "i386" -USES+= compiler:gcc-c++11-lib -.endif - -.if !defined(SLAVE_ONLY) -.if ${DISTVERSION:C/([0-9]*).*/\1/} != 10 -. if ( defined(SERVER_ONLY) && ${PORT_OPTIONS:MICU} ) || make(makesum) -USES+= autoreconf -CONFIGURE_ARGS+=--with-icu -PATCH_SITES+= http://people.freebsd.org/~girgen/postgresql-icu/:icu -PATCHFILES+= ${ICU_PATCHFILE}:icu -LIB_DEPENDS+= libicudata.so:devel/icu -. endif -.endif # not version 10 -.endif # !SLAVE_ONLY - -.if !defined(SLAVE_ONLY) - -PATCH_DIST_STRIP=-p1 - -. if ${PORT_OPTIONS:MDTRACE} -CONFIGURE_ARGS+=--enable-dtrace -LDFLAGS+=-lelf -INSTALL_TARGET=install -. endif - -.if ${PORT_OPTIONS:MGSSAPI} -CONFIGURE_ARGS+=--with-gssapi -.if empty(PORT_OPTIONS:MMIT_KRB5) && empty(PORT_OPTIONS:MHEIMDAL_KRB5) -# Kerberos libraries will pull the proper GSSAPI library -# via linker dependencies, but otherwise we must specify -# it explicitely: ld --as-needed is used for compilation, -# so configure's -lgssapi_krb5 won't go. -LDFLAGS+= -lgssapi -LDFLAGS_SL+= -lgssapi -.endif -.else -CONFIGURE_ARGS+=--without-gssapi -.endif - -. if ${PORT_OPTIONS:MMIT_KRB5} -. if defined(IGNORE_WITH_SRC_KRB5) && (exists(/usr/lib/libkrb5.so) || exists(/usr/bin/krb5-config)) -IGNORE= requires that you remove heimdal\'s /usr/bin/krb5-config and /usr/lib/libkrb5.so*, and set NO_KERBEROS=true in /etc/src.conf to build successfully with MIT-KRB -. else -CONFIGURE_ARGS+=--with-krb5 -# Allow defining a home built MIT Kerberos by setting KRB5_HOME -. if defined(KRB5_HOME) && exists(${KRB5_HOME}/lib/libgssapi_krb5.a) && exists(${KRB5_HOME}/bin/krb5-config) -LIB_DEPENDS+= libkrb5.so.3:security/krb5 -. endif -. endif -. endif - -. if ${PORT_OPTIONS:MHEIMDAL_KRB5} -CONFIGURE_ARGS+=--with-krb5 -. endif - -.endif # !SLAVE_ONLY - -# For testing files in FILESDIR -.include <bsd.port.pre.mk> - -.if defined(SERVER_ONLY) -pre-build: - @${SH} ${PKGINSTALL} ${PORTNAME} PRE-INSTALL -.endif - -.if !defined(NO_BUILD) && !target(do-build) - -do-build: - @ cd ${WRKSRC}/src/backend && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} symlinks - @ for dir in ${BUILD_DIRS}; do \ - cd ${WRKSRC}/$${dir} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD}; \ - done - -. if exists(${FILESDIR}/pkg-message${COMPONENT}.in) -SUB_FILES+= pkg-message${COMPONENT} -PKGMESSAGE= ${WRKSRC}/pkg-message${COMPONENT} -. endif -. if exists(${FILESDIR}/pkg-install${COMPONENT}.in) -SUB_FILES+= pkg-install${COMPONENT} -PLIST_SUB+= PG_USER=${PG_USER} -. endif - -post-patch: -. if defined(SERVER_ONLY) && ${PORT_OPTIONS:MICU} - @${REINPLACE_CMD} \ - -e '/m4_PACKAGE_VERSION/s/\[2\.6[0-9]\]/m4_defn([m4_PACKAGE_VERSION])/' \ - -e '/icu/s/_57//' \ - ${WRKSRC}/configure.in -. endif - -do-install: - @for dir in ${INSTALL_DIRS}; do \ - cd ${WRKSRC}/$${dir} && \ - ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${INSTALL_TARGET}; \ - done -. if defined(SERVER_ONLY) - @ ${MKDIR} ${STAGEDIR}${PREFIX}/share/postgresql ;\ - ${MKDIR} ${STAGEDIR}${PREFIX}/etc/periodic/daily ;\ - ${INSTALL_SCRIPT} ${WRKDIR}/502.pgsql \ - ${STAGEDIR}${PREFIX}/etc/periodic/daily -. endif # SERVER_ONLY -. if defined(CLIENT_ONLY) - @ cd ${WRKSRC}/src && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} install-local -. endif - @ if [ -r ${PKGMESSAGE} ]; then \ - ${MKDIR} ${STAGEDIR}${DOCSDIR} ;\ - ${INSTALL_DATA} ${PKGMESSAGE} ${STAGEDIR}${DOCSDIR}/README${COMPONENT} ;\ - fi -.endif # !NO_BUILD - -.if defined(SERVER_ONLY) -check: - @if [ `id -u` != 0 ] ; then \ - ${ECHO} "Running postgresql regressions tests" ;\ - cd ${WRKSRC}; ${MAKE_CMD} check ;\ - else \ - ${ECHO} "You cannot run regression tests when postgresql is built as user root." ; \ - ${ECHO} "Clean and rebuild the port as a regular user to run the tests." ;\ - fi -.endif +PG_USER?= pgsql +PG_GROUP?= pgsql +PG_UID?= 770 -.include <bsd.port.post.mk> +.include "${.CURDIR}/../postgresql11-server/Makefile" diff --git a/databases/postgresql10-server/distinfo b/databases/postgresql10-server/distinfo index 05b86d21408b..f4d891ccc7fc 100644 --- a/databases/postgresql10-server/distinfo +++ b/databases/postgresql10-server/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1541712748 -SHA256 (postgresql/postgresql-10.6.tar.bz2) = 68a8276f08bda8fbefe562faaf8831cb20664a7a1d3ffdbbcc5b83e08637624b -SIZE (postgresql/postgresql-10.6.tar.bz2) = 20350612 +TIMESTAMP = 1550095318 +SHA256 (postgresql/postgresql-10.7.tar.bz2) = bfed1065380c1bba927bfe51f23168471373f26e3324cbad859269cc32733ede +SIZE (postgresql/postgresql-10.7.tar.bz2) = 18940030 diff --git a/databases/postgresql10-server/pkg-plist-client b/databases/postgresql10-server/pkg-plist-client index 2b6321ab7f3b..add168f5b5f6 100644 --- a/databases/postgresql10-server/pkg-plist-client +++ b/databases/postgresql10-server/pkg-plist-client @@ -379,6 +379,7 @@ include/postgresql/server/optimizer/geqo_recombination.h include/postgresql/server/optimizer/geqo_selection.h include/postgresql/server/optimizer/joininfo.h include/postgresql/server/optimizer/orclauses.h +include/postgresql/server/optimizer/paramassign.h include/postgresql/server/optimizer/pathnode.h include/postgresql/server/optimizer/paths.h include/postgresql/server/optimizer/placeholder.h diff --git a/databases/postgresql10-server/pkg-plist-server b/databases/postgresql10-server/pkg-plist-server index b23be3697837..5975d09d8903 100644 --- a/databases/postgresql10-server/pkg-plist-server +++ b/databases/postgresql10-server/pkg-plist-server @@ -514,6 +514,7 @@ lib/libpgcommon.a %%TZDATA%%%%DATADIR%%/timezone/Asia/Pontianak %%TZDATA%%%%DATADIR%%/timezone/Asia/Pyongyang %%TZDATA%%%%DATADIR%%/timezone/Asia/Qatar +%%TZDATA%%%%DATADIR%%/timezone/Asia/Qostanay %%TZDATA%%%%DATADIR%%/timezone/Asia/Qyzylorda %%TZDATA%%%%DATADIR%%/timezone/Asia/Rangoon %%TZDATA%%%%DATADIR%%/timezone/Asia/Riyadh |