diff options
author | girgen <girgen@FreeBSD.org> | 2018-02-09 01:38:36 +0800 |
---|---|---|
committer | girgen <girgen@FreeBSD.org> | 2018-02-09 01:38:36 +0800 |
commit | 9064a7a9a55b8233a2993d9e01fb4f7231d15343 (patch) | |
tree | d01da9b8d4a814953d381a2a12a15e65949b0e1a /databases/postgresql10-server/Makefile | |
parent | 05492ff91a6a6a0a10f6662a0e3d351d4e2eaf2b (diff) | |
download | freebsd-ports-gnome-9064a7a9a55b8233a2993d9e01fb4f7231d15343.tar.gz freebsd-ports-gnome-9064a7a9a55b8233a2993d9e01fb4f7231d15343.tar.zst freebsd-ports-gnome-9064a7a9a55b8233a2993d9e01fb4f7231d15343.zip |
Update to latest versions of PostgreSQL
2018-02-08 Security Update Release
==================================
The PostgreSQL Global Development Group has released an update to all supported
versions of our database system, including 10.2, 9.6.7, 9.5.11, 9.4.16, 9.3.21.
This release fixes two security issues. This release also fixes issues with
VACUUM, GIN indexes, and hash indexes that could lead to data corruption, as
well as fixes for using parallel queries and logical replication.
All users using the affected versions of PostgreSQL should update as soon as
possible. Please see the notes on "Updating" below for any post-update steps
that may be required.
Please note that PostgreSQL changed its versioning scheme with the release of
version 10.0, so updating to version 10.2 from 10.0 or 10.1 is considered a
minor update.
Security Issues
---------------
Two security vulnerabilities have been fixed by this release:
* CVE-2018-1052: Fix the processing of partition keys containing multiple
expressions
* CVE-2018-1053: Ensure that all temporary files made with "pg_upgrade" are
non-world-readable
Local fixes to the FreeBSD ports
--------------------------------
Inform users about data checksums [1].
Make sure /usr/bin/su is used regardless of PATH settings [2].
Enable DTRACE by default [3].
PR: 214671 [1], 223157 [2], 215028 [3]
Security: c602c791-0cf4-11e8-a2ec-6cc21735f730
Diffstat (limited to 'databases/postgresql10-server/Makefile')
-rw-r--r-- | databases/postgresql10-server/Makefile | 274 |
1 files changed, 268 insertions, 6 deletions
diff --git a/databases/postgresql10-server/Makefile b/databases/postgresql10-server/Makefile index 05d68be9d8d1..40ade7764e2b 100644 --- a/databases/postgresql10-server/Makefile +++ b/databases/postgresql10-server/Makefile @@ -1,11 +1,52 @@ # Created by: Marc G. Fournier <scrappy@FreeBSD.org> # $FreeBSD$ -DISTVERSION?= 10.1 +PORTNAME?= postgresql +DISTVERSION?= 10.2 +PORTREVISION?= 0 +CATEGORIES?= databases +MASTER_SITES= PGSQL/source/v${DISTVERSION} PKGNAMESUFFIX?= ${PORTVERSION:R}${COMPONENT} -PORTREVISION?= 1 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 +LLD_UNSAFE= 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 \ @@ -18,8 +59,229 @@ 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 -PG_USER?= postgres -PG_GROUP?= postgres -PG_UID?= 770 +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 +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 +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+= XML TZDATA INTDATE DTRACE +.endif + +.if !defined(SLAVE_ONLY) +OPTIONS_DEFINE+= NLS PAM GSSAPI OPTIMIZED_CFLAGS DEBUG +. 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 !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 ${PORT_OPTIONS:MSSL} && ${SSL_DEFAULT:Mopenssl-devel} +BROKEN= Does not build with openssl-devel +.endif + +.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 -.include "${.CURDIR}/../postgresql92-server/Makefile" +.include <bsd.port.post.mk> |