git: 7327472603f9 - main - databases/postgresql17-*: new ports: Beta of the new major version 17 of PostgreSQL
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 08 Aug 2024 13:02:50 UTC
The branch main has been updated by girgen: URL: https://cgit.FreeBSD.org/ports/commit/?id=7327472603f98df8f9e889a599b3c6dd64d5feea commit 7327472603f98df8f9e889a599b3c6dd64d5feea Author: Palle Girgensohn <girgen@FreeBSD.org> AuthorDate: 2024-08-08 09:20:01 +0000 Commit: Palle Girgensohn <girgen@FreeBSD.org> CommitDate: 2024-08-08 13:02:46 +0000 databases/postgresql17-*: new ports: Beta of the new major version 17 of PostgreSQL Release notes: https://www.postgresql.org/docs/17/release-17.html --- Mk/Uses/pgsql.mk | 2 +- databases/Makefile | 8 + databases/postgresql17-client/Makefile | 28 + databases/postgresql17-contrib/Makefile | 41 + databases/postgresql17-contrib/pkg-descr | 21 + databases/postgresql17-docs/Makefile | 39 + databases/postgresql17-pgtcl/Makefile | 9 + databases/postgresql17-plperl/Makefile | 27 + databases/postgresql17-plpython/Makefile | 29 + databases/postgresql17-plpython/pkg-descr | 4 + databases/postgresql17-pltcl/Makefile | 32 + databases/postgresql17-server/Makefile | 294 ++++ databases/postgresql17-server/distinfo | 3 + databases/postgresql17-server/files/502.pgsql.in | 114 ++ databases/postgresql17-server/files/dot.cshrc.in | 11 + databases/postgresql17-server/files/dot.profile.in | 22 + .../files/patch-src-Makefile.shlib | 11 + .../files/patch-src-backend-Makefile | 11 + ...h-src_backend_utils_misc_postgresql.conf.sample | 10 + .../files/pkg-message-client.in | 38 + .../files/pkg-message-contrib.in | 9 + .../files/pkg-message-plperl.in | 9 + .../files/pkg-message-plpython.in | 9 + .../postgresql17-server/files/pkg-message-pltcl.in | 9 + .../files/pkg-message-server.in | 70 + .../postgresql17-server/files/pkgIndex.tcl.in | 4 + databases/postgresql17-server/files/postgresql.in | 123 ++ databases/postgresql17-server/pkg-descr | 21 + databases/postgresql17-server/pkg-install-server | 23 + databases/postgresql17-server/pkg-plist-client | 1376 ++++++++++++++++ databases/postgresql17-server/pkg-plist-contrib | 262 +++ databases/postgresql17-server/pkg-plist-plperl | 24 + databases/postgresql17-server/pkg-plist-plpython | 32 + databases/postgresql17-server/pkg-plist-pltcl | 6 + databases/postgresql17-server/pkg-plist-server | 1697 ++++++++++++++++++++ 35 files changed, 4427 insertions(+), 1 deletion(-) diff --git a/Mk/Uses/pgsql.mk b/Mk/Uses/pgsql.mk index e82d1ee5c58f..e696213183ac 100644 --- a/Mk/Uses/pgsql.mk +++ b/Mk/Uses/pgsql.mk @@ -39,7 +39,7 @@ _INCLUDE_USES_PGSQL_MK= yes # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. -VALID_PGSQL_VER= 12 13 14 15 16 +VALID_PGSQL_VER= 12 13 14 15 16 17 # Override non-default LIBVERS like this: #PGSQL99_LIBVER=6 diff --git a/databases/Makefile b/databases/Makefile index 599ab460a6e2..998cc9f0de97 100644 --- a/databases/Makefile +++ b/databases/Makefile @@ -713,6 +713,14 @@ SUBDIR += postgresql16-plpython SUBDIR += postgresql16-pltcl SUBDIR += postgresql16-server + SUBDIR += postgresql17-client + SUBDIR += postgresql17-contrib + SUBDIR += postgresql17-docs + SUBDIR += postgresql17-pgtcl + SUBDIR += postgresql17-plperl + SUBDIR += postgresql17-plpython + SUBDIR += postgresql17-pltcl + SUBDIR += postgresql17-server SUBDIR += powa-archivist SUBDIR += powa-web SUBDIR += powerarchitect diff --git a/databases/postgresql17-client/Makefile b/databases/postgresql17-client/Makefile new file mode 100644 index 000000000000..2802e671344b --- /dev/null +++ b/databases/postgresql17-client/Makefile @@ -0,0 +1,28 @@ +PORTNAME= postgresql +PORTREVISION= 0 +COMMENT= PostgreSQL database (client) + +MASTERDIR= ${.CURDIR}/../postgresql17-server + +BUILD_DIRS= config src/include src/interfaces src/port src/bin/pg_amcheck \ + src/bin/pg_dump src/bin/psql src/bin/scripts src/bin/pg_config \ + src/bin/pgbench src/makefiles src/test/regress +INSTALL_DIRS= ${BUILD_DIRS} + +CLIENT_ONLY= yes +COMPONENT= -client +USE_LDCONFIG= yes +USES= pkgconfig + +OPTIONS_DEFINE+=LIBEDIT DOCS +LIBEDIT_DESC= Use non-GPL libedit instead of readline +LIBEDIT_CONFIGURE_ON+=--with-libedit-preferred +LIBEDIT_USES= libedit +LIBEDIT_USES_OFF=readline +BUILD_DEPENDS+= docbook-xml>0:textproc/docbook-xml \ + docbook-xsl>=0:textproc/docbook-xsl \ + fop:textproc/fop \ + xmllint:textproc/libxml2 \ + xsltproc:textproc/libxslt + +.include "${MASTERDIR}/Makefile" diff --git a/databases/postgresql17-contrib/Makefile b/databases/postgresql17-contrib/Makefile new file mode 100644 index 000000000000..1a55a4cc9a46 --- /dev/null +++ b/databases/postgresql17-contrib/Makefile @@ -0,0 +1,41 @@ +PORTNAME= postgresql +PORTREVISION= 0 +CATEGORIES= databases + +MAINTAINER= pgsql@FreeBSD.org +COMMENT= The contrib utilities from the PostgreSQL distribution + +MASTERDIR= ${.CURDIR}/../postgresql17-server + +USES= bison pgsql:${PORTVERSION:R} + +BUILD_DIRS= src/port src/include src/common contrib +INSTALL_DIRS= contrib + +# this port fails to build in parallel +MAKE_JOBS_UNSAFE= yes + +SLAVE_ONLY= yes +COMPONENT= -contrib +CONFIGURE_ARGS= --disable-nls --with-uuid=bsd +LDFLAGS+= -lpthread -L${PREFIX}/lib + +OPTIONS_DEFINE= DOCS OPENSSL XML +OPTIONS_DEFAULT=OPENSSL XML +OPTIONS_SUB= yes + +OPENSSL_DESC= Build with OpenSSL support +OPENSSL_USES= ssl +OPENSSL_CONFIGURE_WITH= openssl + +XML_CONFIGURE_WITH= libxslt libxml +XML_LIB_DEPENDS=libxslt.so:textproc/libxslt \ + libxml2.so:textproc/libxml2 + +post-configure: + @cd ${WRKSRC}/src/backend && ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${MAKE_CMD} generated-headers + +post-install: + @- ${INSTALL_DATA} ${WRKSRC}/contrib/README ${STAGEDIR}${DOCSDIR}/extension/README + +.include "${MASTERDIR}/Makefile" diff --git a/databases/postgresql17-contrib/pkg-descr b/databases/postgresql17-contrib/pkg-descr new file mode 100644 index 000000000000..a384c76fdbde --- /dev/null +++ b/databases/postgresql17-contrib/pkg-descr @@ -0,0 +1,21 @@ +This is the port for all stuff that comes in the contrib subtree of +the postgresql distribution. This subtree contains porting tools, +analysis utilities, and plug-in features that are not part of the core +PostgreSQL system, mainly because they address a limited audience or +are too experimental to be part of the main source tree. This does +not preclude their usefulness. + +Each subdirectory contains a README file with information about the +module. Some directories supply new user-defined functions, operators, +or types. After you have installed the files you need to register the +new entities in the database system by running the commands in the +supplied .sql file. For example, + + $ psql -d dbname -f module.sql + +The .sql files are installed into /usr/local/share/postgresql/contrib + +For more information, please see +/usr/local/share/doc/postgresql/contrib/README* + +This software is part of the standard PostgreSQL distribution. diff --git a/databases/postgresql17-docs/Makefile b/databases/postgresql17-docs/Makefile new file mode 100644 index 000000000000..84d9f19df293 --- /dev/null +++ b/databases/postgresql17-docs/Makefile @@ -0,0 +1,39 @@ +PORTNAME= postgresql +PORTREVISION= 0 +PKGNAMESUFFIX?= ${WANT_PGSQL_VER:S,.,,}-docs + +MAINTAINER= pgsql@FreeBSD.org +COMMENT= The PostgreSQL documentation set + +MASTERDIR= ${.CURDIR}/../../databases/postgresql${WANT_PGSQL_VER}-server +WANT_PGSQL_VER?=17 + +DISTV= ${DISTVERSION:R} + +SLAVE_ONLY= YES +COMPONENT= -docs + +PGDOCSREL?= ${DOCSDIR_REL}/release-${WANT_PGSQL_VER} +PGDOCSDIR?= ${PREFIX}/${PGDOCSREL} + +BUILD_DEPENDS+= docbook-xml>0:textproc/docbook-xml \ + docbook-xsl>=0:textproc/docbook-xsl \ + fop:textproc/fop \ + xmllint:textproc/libxml2 \ + xsltproc:textproc/libxslt + +CONFIGURE_ARGS= --without-readline --without-icu +NO_ARCH= yes + +do-build: + ${MAKE_CMD} -C ${WRKSRC} html + +do-install: + @ ${MKDIR} ${STAGEDIR}${PGDOCSDIR} + ( cd ${WRKSRC}/doc/src/sgml/html && \ + ${COPYTREE_SHARE} . ${STAGEDIR}${PGDOCSDIR} ) + +post-install: + @(cd ${STAGEDIR}${PREFIX} && ${FIND} ${PGDOCSREL} -type f) >> ${TMPPLIST} + +.include "${MASTERDIR}/Makefile" diff --git a/databases/postgresql17-pgtcl/Makefile b/databases/postgresql17-pgtcl/Makefile new file mode 100644 index 000000000000..82c21695e2a7 --- /dev/null +++ b/databases/postgresql17-pgtcl/Makefile @@ -0,0 +1,9 @@ +PORTREVISION= 0 +PKGNAMESUFFIX= -postgresql17 + +CONFLICTS= pgtcl pgtcl-postgresql1[012345689] + +PGTCL_SLAVE= 17 +MASTERDIR= ${.CURDIR}/../pgtcl + +.include "${MASTERDIR}/Makefile" diff --git a/databases/postgresql17-plperl/Makefile b/databases/postgresql17-plperl/Makefile new file mode 100644 index 000000000000..3b95d6355e3b --- /dev/null +++ b/databases/postgresql17-plperl/Makefile @@ -0,0 +1,27 @@ +PORTNAME= postgresql +# Keep the ?=, this port is used as master by the other plperl. +PORTREVISION?= 0 +CATEGORIES= databases perl5 +PKGNAMESUFFIX?= ${WANT_PGSQL_VER}${COMPONENT} + +MAINTAINER= pgsql@FreeBSD.org +COMMENT= Write SQL functions for PostgreSQL using Perl5 + +RUN_DEPENDS= postgres:databases/postgresql${WANT_PGSQL_VER}-server + +MASTERDIR= ${.CURDIR}/../../databases/postgresql${WANT_PGSQL_VER}-server + +WANT_PGSQL_VER?=17 + +USES+= perl5 readline +CONFIGURE_ARGS= --with-perl + +BUILD_DIRS= src/backend ${INSTALL_DIRS} +INSTALL_DIRS?= src/pl/plperl contrib/bool_plperl contrib/hstore_plperl contrib/jsonb_plperl +SLAVE_ONLY= yes +COMPONENT= -plperl + +# this port fails to build in parallel +MAKE_JOBS_UNSAFE= yes + +.include "${MASTERDIR}/Makefile" diff --git a/databases/postgresql17-plpython/Makefile b/databases/postgresql17-plpython/Makefile new file mode 100644 index 000000000000..6fc9a43b1551 --- /dev/null +++ b/databases/postgresql17-plpython/Makefile @@ -0,0 +1,29 @@ +PORTNAME= postgresql +CATEGORIES= databases python +# Keep the ?=, it is used as master by the other plpython ports. +PORTREVISION?= 0 +PKGNAMESUFFIX?= ${WANT_PGSQL_VER}${COMPONENT} + +MAINTAINER= pgsql@FreeBSD.org +COMMENT= Module for using Python to write SQL functions +WWW= https://www.postgresql.org/ + +USES+= pgsql:${WANT_PGSQL_VER} ${WANT_PYTHON_USE} +WANT_PGSQL= server + +MASTERDIR= ${.CURDIR}/../postgresql${WANT_PGSQL_VER}-server + +WANT_PGSQL_VER?= 17 +WANT_PYTHON_USE?= python + +CONFIGURE_ARGS= --with-python +COMPONENT= -plpython + +BUILD_DIRS= src/backend ${INSTALL_DIRS} +INSTALL_DIRS?= src/pl/plpython contrib/hstore_plpython contrib/jsonb_plpython contrib/ltree_plpython +SLAVE_ONLY= yes + +# this port fails to build in parallel +MAKE_JOBS_UNSAFE= yes + +.include "${MASTERDIR}/Makefile" diff --git a/databases/postgresql17-plpython/pkg-descr b/databases/postgresql17-plpython/pkg-descr new file mode 100644 index 000000000000..61c4875985f7 --- /dev/null +++ b/databases/postgresql17-plpython/pkg-descr @@ -0,0 +1,4 @@ +PL/Python allows one to write PostgeSQL stored functions and +procedures in Python (http://www.python.org/). + +This software is part of the standard PostgreSQL distribution. diff --git a/databases/postgresql17-pltcl/Makefile b/databases/postgresql17-pltcl/Makefile new file mode 100644 index 000000000000..7759f6045000 --- /dev/null +++ b/databases/postgresql17-pltcl/Makefile @@ -0,0 +1,32 @@ +PORTNAME= postgresql +# Keep the ?=, it is used by the other pltcl ports. +PORTREVISION?= 0 +CATEGORIES= databases tcl +PKGNAMESUFFIX?= ${WANT_PGSQL_VER}${COMPONENT} + +MAINTAINER= pgsql@FreeBSD.org +COMMENT= Module for using Tcl to write SQL functions + +MASTERDIR= ${.CURDIR}/../../databases/postgresql${WANT_PGSQL_VER}-server + +WANT_PGSQL_VER?=17 + +USES+= tcl pgsql:${WANT_PGSQL_VER} +WANT_PGSQL= server + +CONFIGURE_ARGS= --with-tcl --without-tk \ + --with-tclconfig="${TCL_LIBDIR}" \ + --with-includes="${TCL_INCLUDEDIR}" + +CONFIGURE_ENV+= TCLSH="${TCLSH}" +MAKE_ENV+= TCL_INCDIR="${TCL_INCLUDEDIR}" + +BUILD_DIRS= src/backend src/pl/tcl +INSTALL_DIRS= src/pl/tcl +SLAVE_ONLY= yes +COMPONENT= -pltcl + +# this port fails to build in parallel +MAKE_JOBS_UNSAFE= yes + +.include "${MASTERDIR}/Makefile" diff --git a/databases/postgresql17-server/Makefile b/databases/postgresql17-server/Makefile new file mode 100644 index 000000000000..d9485e8463ef --- /dev/null +++ b/databases/postgresql17-server/Makefile @@ -0,0 +1,294 @@ +PORTNAME?= postgresql +DISTVERSION?= 17beta3 +# PORTREVISION must be ?= otherwise, all slave ports get this PORTREVISION and +# not their own. Probably best to keep it at ?=0 when reset here too. +PORTREVISION?= 0 +CATEGORIES?= databases +MASTER_SITES= PGSQL/source/v${DISTVERSION} +#DISTFILES+= ${PORTNAME}-${DISTVERSION}-docs.tar.bz:docs +PKGNAMESUFFIX?= ${PORTVERSION:R}${COMPONENT} + +MAINTAINER?= pgsql@FreeBSD.org +COMMENT?= PostgreSQL is the most advanced open-source database available anywhere +WWW= https://www.postgresql.org/ + +LICENSE= PostgreSQL + +CONFLICTS+= ${PORTNAME}1[^${PORTVERSION:R:C/.*([0-9]$)/\\1/}]* + +WRKSRC= ${WRKDIR}/postgresql-${DISTVERSION} +DIST_SUBDIR= postgresql + +OPTIONS_SUB= yes + +PKGINSTALL?= ${PKGDIR}/pkg-install${COMPONENT} +USES+= bison perl5 tar:bzip2 cpe +USE_PERL5= build +.if !defined(NO_BUILD) +USES+= gmake +GNU_CONFIGURE= yes +GNU_CONFIGURE_MANPREFIX=${PREFIX}/share +.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 +MAKE_ENV= MAKELEVEL=0 + +PLIST= ${PKGDIR}/pkg-plist${COMPONENT} + +INSTALL_DIRS?= src/common src/timezone src/backend \ + src/backend/utils/mb/conversion_procs \ + src/backend/snowball src/backend/replication/libpqwalreceiver \ + src/backend/replication/pgoutput \ + src/bin/initdb src/bin/pg_ctl \ + src/bin/pg_archivecleanup src/bin/pg_basebackup \ + src/bin/pg_checksums \ + src/bin/pg_controldata src/bin/pg_resetwal src/pl \ + src/bin/pg_rewind \ + 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 + +OPTIONS_SUB= yes + +.if defined(CLIENT_ONLY) +OPTIONS_DEFINE+=LIBEDIT DOCS +LIBEDIT_DESC= Use non-GPL libedit instead of readline +LIBEDIT_CONFIGURE_ON+=--with-libedit-preferred +LIBEDIT_USES= libedit +LIBEDIT_USES_OFF= readline +BUILD_DEPENDS+= docbook-xml>0:textproc/docbook-xml \ + docbook-xsl>=0:textproc/docbook-xsl \ + fop:textproc/fop \ + xmllint:textproc/libxml2 \ + xsltproc:textproc/libxslt +.else +MAKE_ENV+= PATH=${PREFIX}/bin:${PATH} +CONFIGURE_ENV+= PATH=${PREFIX}/bin:${PATH} +.endif + +.if defined(SERVER_ONLY) +OPTIONS_DEFINE= DTRACE LDAP TZDATA XML DOCS +LDAP_DESC= Build with LDAP authentication support +TZDATA_DESC= Use internal timezone database +XML_DESC= Build with XML data type + +DTRACE_CONFIGURE_ENABLE=dtrace +DTRACE_LDFLAGS= -lelf +DTRACE_INSTALL_TARGET= install + +. if ${DISTVERSION:C/([0-9][0-9]).*/\1/g} >= 14 +OPTIONS_DEFINE+= LZ4 +OPTIONS_DEFAULT+= LZ4 +LZ4_DESC= Build with LZ4 compression support +LZ4_CONFIGURE_WITH= lz4 +LZ4_LIB_DEPENDS+= liblz4.so:archivers/liblz4 +. endif + +. if ${DISTVERSION:C/([0-9][0-9]).*/\1/g} >= 15 +OPTIONS_DEFINE+= ZSTD +OPTIONS_DEFAULT+= ZSTD +ZSTD_DESC= Build with ZSTD compression support +ZSTD_CONFIGURE_WITH= zstd +ZSTD_LIB_DEPENDS+= libzstd.so:archivers/zstd +. endif + +OPTIONS_DEFINE+= LLVM +OPTIONS_DEFAULT+= LLVM +LLVM_DESC= Build with support for JIT-compiling expressions +LLVM_CONFIGURE_WITH= llvm +LLVM_CONFIGURE_ENV= LLVM_CONFIG=${LLVM_CONFIG} \ + CLANG=${LOCALBASE}/bin/clang${LLVM_VERSION} +LLVM_USES= llvm:min=11,lib + +CONFIGURE_ARGS+= --with-icu +LIB_DEPENDS+= libicudata.so:devel/icu +USES+= pkgconfig +.else +CONFIGURE_ARGS+= --without-icu +.endif + + +.if !defined(SLAVE_ONLY) +OPTIONS_DEFINE+= NLS PAM GSSAPI OPTIMIZED_CFLAGS DEBUG DOCS +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 + +GSSAPI_CONFIGURE_WITH= gssapi +.endif # !SLAVE_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 + +NLS_CONFIGURE_ENABLE= nls +NLS_USES= gettext + +LDAP_CONFIGURE_WITH= ldap +LDAP_USES= ldap + +OPTIMIZED_CFLAGS_CFLAGS=-O3 -funroll-loops + +DEBUG_CONFIGURE_ENABLE= debug + +PLIST_SUB+= PG_VERSION=${PORTVERSION:R} \ + PG_USER=${PG_USER} \ + PG_USER_regex=[[:<:]]${PG_USER}[[:>:]] \ + PG_GROUP=${PG_GROUP} \ + PG_GROUP_regex=[[:<:]]${PG_GROUP}[[:>:]] +SUB_LIST+= PG_VERSION=${PORTVERSION:R} \ + PG_GROUP=${PG_GROUP} \ + PG_USER=${PG_USER} \ + PG_UID=${PG_UID} + +.include <bsd.port.options.mk> + +# i386 older than Pentium lacks SSE2 so the binary will not run if we build with clang -msse2 +# For such ancient CPUs, gcc must be used to build PostgreSQL. +# https://www.postgresql.org/message-id/20190307140421.GA8362%40gate.oper.dinoex.org +.if ${ARCH} == "i386" +CFLAGS+= -msse2 +.endif + +.if !defined(SLAVE_ONLY) + +PATCH_DIST_STRIP=-p1 + +.if ${PORT_OPTIONS:MGSSAPI} +.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 +.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:MLLVM} +INSTALL_DIRS+= src/backend/jit/llvm +.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 && ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${MAKE_CMD} generated-headers + @ for dir in ${BUILD_DIRS}; do \ + cd ${WRKSRC}/$${dir} && ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${MAKE_CMD} ; \ + done +. if defined(CLIENT_ONLY) + @ cd ${WRKSRC}/doc && ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${MAKE_CMD} man +. endif +. 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} +. endif + +post-patch: +. if defined(CLIENT_ONLY) && !defined(OPENSSL_PORT) + @${REINPLACE_CMD} \ + -e '/^PKG_CONFIG_REQUIRES_PRIVATE = libssl libcrypto/d' \ + ${WRKSRC}/src/interfaces/libpq/Makefile +. endif + +do-install: + @for dir in ${INSTALL_DIRS}; do \ + cd ${WRKSRC}/$${dir} && \ + ${SETENVI} ${WRK_ENV} ${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 && ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} install-local + @ cd ${WRKSRC}/doc/src/sgml && ${COPYTREE_SHARE} "man1 man3 man7" ${STAGEDIR}${PREFIX}/share/man +. 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 <bsd.port.post.mk> diff --git a/databases/postgresql17-server/distinfo b/databases/postgresql17-server/distinfo new file mode 100644 index 000000000000..6d50fda59620 --- /dev/null +++ b/databases/postgresql17-server/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1723012771 +SHA256 (postgresql/postgresql-17beta3.tar.bz2) = 010dfaff9fcca6afa2fd576eea89cdabcefc262aa0ba89a6845eaab4d4b08f71 +SIZE (postgresql/postgresql-17beta3.tar.bz2) = 21464737 diff --git a/databases/postgresql17-server/files/502.pgsql.in b/databases/postgresql17-server/files/502.pgsql.in new file mode 100644 index 000000000000..604ad3dadab8 --- /dev/null +++ b/databases/postgresql17-server/files/502.pgsql.in @@ -0,0 +1,114 @@ +#!/bin/sh +# +# Maintenance shell script to vacuum and backup database +# Put this in /usr/local/etc/periodic/daily, and it will be run +# every night +# +# Written by Palle Girgensohn <girgen@pingpong.net> +# +# In public domain, do what you like with it, +# and use it at your own risk... :) +# + +# Define these variables in either /etc/periodic.conf or +# /etc/periodic.conf.local to override the default values. +# +# daily_pgsql_backup_enable="YES" # do backup of all databases +# daily_pgsql_backup_enable="foo bar db1 db2" # only do backup of a limited selection of databases +# daily_pgsql_vacuum_enable="YES" # do vacuum + +# If there is a global system configuration file, suck it in. +# +if [ -r /etc/defaults/periodic.conf ] +then + . /etc/defaults/periodic.conf + source_periodic_confs +fi + +: ${daily_pgsql_user:="%%PG_USER%%"} +: ${daily_pgsql_port:=5432} +: ${daily_pgsql_vacuum_args:="-U ${daily_pgsql_user} -p ${daily_pgsql_port} -qaz"} +: ${daily_pgsql_pgdump_args:="-U ${daily_pgsql_user} -p ${daily_pgsql_port} -bF c"} +: ${daily_pgsql_pgdumpall_globals_args:="-U ${daily_pgsql_user} -p ${daily_pgsql_port}"} +# backupdir is relative to ~pgsql home directory unless it begins with a slash: +: ${daily_pgsql_backupdir:="~${daily_pgsql_user}/backups"} +: ${daily_pgsql_savedays:="7"} + +# allow '~' in directory name +eval backupdir=${daily_pgsql_backupdir} + +rc=0 + +pgsql_backup() { + # daily_pgsql_backupdir must be writeable by user %%PG_USER%% + # ~%%PG_USER%% is just that under normal circumstances, + # but this might not be where you want the backups... + if [ ! -d ${backupdir} ] ; then + echo Creating ${backupdir} + mkdir -m 700 ${backupdir}; chown ${daily_pgsql_user} ${backupdir} + fi + + echo + echo "PostgreSQL backups" + + # Protect the data + umask 077 + rc=$? + now=`date "+%Y-%m-%dT%H:%M:%S"` + file=${daily_pgsql_backupdir}/pgglobals_${now} + su -l ${daily_pgsql_user} -c \ + "umask 077; pg_dumpall -g ${daily_pgsql_pgdumpall_globals_args} | gzip -9 > ${file}.gz" + + db=$1 + while shift; do + echo -n " $db" + file=${backupdir}/pgdump_${db}_${now} + su -l ${daily_pgsql_user} -c "umask 077; pg_dump ${daily_pgsql_pgdump_args} -f ${file} ${db}" + [ $? -gt 0 ] && rc=3 + db=$1 + done + + if [ $rc -gt 0 ]; then + echo + echo "Errors were reported during backup." + fi + + # cleaning up old data + find ${backupdir} \( -name 'pgdump_*' -o -name 'pgglobals_*' -o -name '*.dat.gz' -o -name 'toc.dat' \) \ + -a -mtime +${daily_pgsql_savedays} -delete + echo +} + +case "$daily_pgsql_backup_enable" in + [Yy][Ee][Ss]) + dbnames=`su -l ${daily_pgsql_user} -c "umask 077; psql -U ${daily_pgsql_user} -p ${daily_pgsql_port} -q -t -A -d template1 -c SELECT\ datname\ FROM\ pg_database\ WHERE\ datname!=\'template0\'"` + pgsql_backup $dbnames + ;; + + [Nn][Oo]) + ;; + + "") + ;; + + *) + pgsql_backup $daily_pgsql_backup_enable + ;; +esac + +case "$daily_pgsql_vacuum_enable" in + [Yy][Ee][Ss]) + + echo + echo "PostgreSQL vacuum" + su -l ${daily_pgsql_user} -c "vacuumdb ${daily_pgsql_vacuum_args}" + if [ $? -gt 0 ] + then + echo + echo "Errors were reported during vacuum." + rc=3 + fi + ;; +esac + +exit $rc diff --git a/databases/postgresql17-server/files/dot.cshrc.in b/databases/postgresql17-server/files/dot.cshrc.in new file mode 100644 index 000000000000..17c9ee69a7d0 --- /dev/null +++ b/databases/postgresql17-server/files/dot.cshrc.in @@ -0,0 +1,11 @@ +setenv PGLIB %%PREFIX%%/lib + +# note: PGDATA can be overridden by the -D startup option +setenv PGDATA $HOME/data96 + +#You might want to set some locale stuff here +#setenv PGDATESTYLE ISO +#setenv LC_ALL sv_SE.ISO_8859-1 + +# if you want to make regression tests use this TZ +#setenv TZ PST8PDT diff --git a/databases/postgresql17-server/files/dot.profile.in b/databases/postgresql17-server/files/dot.profile.in new file mode 100644 index 000000000000..5be3e6a36ca9 --- /dev/null +++ b/databases/postgresql17-server/files/dot.profile.in @@ -0,0 +1,22 @@ +PGLIB=%%PREFIX%%/lib + +# note: PGDATA can be overridden by the -D startup option +PGDATA=${HOME}/data96 + +export PATH PGLIB PGDATA + +# if you use the periodic script from share/postgresql/502.pgsql, you +# can set these +#PGDUMP_ARGS="-b -F c" +#PGBACKUPDIR=${HOME}/backups +#PGBACKUP_SAVE_DAYS=7 +#export PGBACKUPDIR PGDUMP_ARGS PGBACKUP_SAVE_DAYS + +#You might want to set some locale stuff here +#PGDATESTYLE=ISO +#LC_ALL=sv_SE.ISO_8859-1 +#export PGDATESTYLE LC_ALL + +# if you want to make regression tests use this TZ +#TZ=PST8PDT +#export TZ diff --git a/databases/postgresql17-server/files/patch-src-Makefile.shlib b/databases/postgresql17-server/files/patch-src-Makefile.shlib new file mode 100644 index 000000000000..2435ffe1d280 --- /dev/null +++ b/databases/postgresql17-server/files/patch-src-Makefile.shlib @@ -0,0 +1,11 @@ +--- src/Makefile.shlib.bak 2013-05-06 22:57:06.000000000 +0200 ++++ src/Makefile.shlib 2013-05-12 23:33:16.000000000 +0200 +@@ -87,7 +87,7 @@ + # Testing the soname variable is a reliable way to determine whether a + # linkable library is being built. + soname = $(shlib_major) +-pkgconfigdir = $(libdir)/pkgconfig ++pkgconfigdir = $(prefix)/libdata/pkgconfig + else + # Naming convention for dynamically loadable modules + shlib = $(NAME)$(DLSUFFIX) diff --git a/databases/postgresql17-server/files/patch-src-backend-Makefile b/databases/postgresql17-server/files/patch-src-backend-Makefile new file mode 100644 index 000000000000..ce8a8d558de1 --- /dev/null +++ b/databases/postgresql17-server/files/patch-src-backend-Makefile @@ -0,0 +1,11 @@ +--- src/backend/Makefile.orig 2009-07-07 15:58:33.000000000 +0200 ++++ src/backend/Makefile 2009-07-07 15:58:57.000000000 +0200 +@@ -107,6 +107,8 @@ + # Update the commonly used headers before building the subdirectories + $(SUBDIRS:%=%-recursive): $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/utils/fmgroids.h $(top_builddir)/src/include/utils/probes.h + ++symlinks: $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/storage/lwlocknames.h ++ + + # The postgres.o target is needed by the rule in Makefile.global that + # creates the exports file when MAKE_EXPORTS = true. diff --git a/databases/postgresql17-server/files/patch-src_backend_utils_misc_postgresql.conf.sample b/databases/postgresql17-server/files/patch-src_backend_utils_misc_postgresql.conf.sample new file mode 100644 index 000000000000..9469421174a0 --- /dev/null +++ b/databases/postgresql17-server/files/patch-src_backend_utils_misc_postgresql.conf.sample @@ -0,0 +1,10 @@ +--- src/backend/utils/misc/postgresql.conf.sample.orig 2016-10-24 20:08:51 UTC ++++ src/backend/utils/misc/postgresql.conf.sample +@@ -330,6 +330,7 @@ + + # - Where to Log - + ++log_destination = 'syslog' + #log_destination = 'stderr' # Valid values are combinations of + # stderr, csvlog, syslog, and eventlog, + # depending on platform. csvlog diff --git a/databases/postgresql17-server/files/pkg-message-client.in b/databases/postgresql17-server/files/pkg-message-client.in new file mode 100644 index 000000000000..8cc91d484fcb --- /dev/null +++ b/databases/postgresql17-server/files/pkg-message-client.in @@ -0,0 +1,38 @@ +[ +{ type: install + message: <<EOM +The PostgreSQL port has a collection of "side orders": + +postgresql-docs + For all of the html documentation + +p5-Pg + A perl5 API for client access to PostgreSQL databases. + +postgresql-tcltk + If you want tcl/tk client support. + +postgresql-jdbc + For Java JDBC support. + +postgresql-odbc + For client access from unix applications using ODBC as access + method. Not needed to access unix PostgreSQL servers from Win32 + using ODBC. See below. + +ruby-postgres, py-psycopg2 + For client access to PostgreSQL databases using the ruby & python + languages. + +postgresql-plperl, postgresql-pltcl & postgresql-plruby + For using perl5, tcl & ruby as procedural languages. + +postgresql-contrib + Lots of contributed utilities, postgresql functions and + datatypes. There you find pg_standby, pgcrypto and many other cool + things. + +etc... +EOM +} +] diff --git a/databases/postgresql17-server/files/pkg-message-contrib.in b/databases/postgresql17-server/files/pkg-message-contrib.in new file mode 100644 index 000000000000..006f700a3ae1 --- /dev/null +++ b/databases/postgresql17-server/files/pkg-message-contrib.in @@ -0,0 +1,9 @@ +[ +{ type: install + message: <<EOM +The PostgreSQL contrib utilities have been installed. Please see +%%DOCSDIR%%/README-contrib +for more information. +EOM +} +] diff --git a/databases/postgresql17-server/files/pkg-message-plperl.in b/databases/postgresql17-server/files/pkg-message-plperl.in new file mode 100644 index 000000000000..dbda7daff5c2 --- /dev/null +++ b/databases/postgresql17-server/files/pkg-message-plperl.in @@ -0,0 +1,9 @@ +[ +{ type: install + message: <<EOM +PL/Perl has been installed. Check the createlang(l) manpage for more +info. You can install PL/Perl as trusted or untrusted, by using either +"createlang plperl" or "createlang plperlu". +EOM +} +] diff --git a/databases/postgresql17-server/files/pkg-message-plpython.in b/databases/postgresql17-server/files/pkg-message-plpython.in new file mode 100644 index 000000000000..3bd80d73d177 --- /dev/null +++ b/databases/postgresql17-server/files/pkg-message-plpython.in @@ -0,0 +1,9 @@ +[ +{ type: install + message: <<EOM +PL/Python has been installed. Check the createlang(l) manpage for more +info. You can install PL/Python by using "createlang plpythonu" (it +exists as an untrusted language only). +EOM +} +] diff --git a/databases/postgresql17-server/files/pkg-message-pltcl.in b/databases/postgresql17-server/files/pkg-message-pltcl.in new file mode 100644 index 000000000000..c1776f7d6fb3 --- /dev/null +++ b/databases/postgresql17-server/files/pkg-message-pltcl.in @@ -0,0 +1,9 @@ *** 3713 LINES SKIPPED ***