From nobody Thu Aug 08 13:02:50 2024 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4WfnJp40Vjz5Sl2y; Thu, 08 Aug 2024 13:02:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WfnJp2Sg4z429t; Thu, 8 Aug 2024 13:02:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1723122170; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2T88XJ2qgcq5RrtpV1CDoiTqak1/6l2tV7ptr8XnYNA=; b=qs6nbPabBeM0YQ/E7kD8PR7Rgz4etJij1TkFmuIUm8G/TMmdCbnbdBTa8xSnblUxtoNrnL GLEdfvUldUfWm/qdjegtpoLZXLLVflcQsvAtP0f+WSa+QZ9Q/rDogCgwgZPu8ZeKnPmZyd c6wpBJ8jzUfNJse15kdD89Oiu/PRd+F7mnwHBl31SiR3qaxIPKakRj/6MKI6kunVCTynuk 5GmAq+WkZbQ7DE1G0aJKJXk77ftPcrTJ2dnZGr4VUVzD+j4lrP5RbOxJfUCS10BNa8Sf6j zOxNQiwcpbsl0WIuKP9WpVRl3X1TvTJtk4w3Tl3Mmi8Qw3UtDEByVMPP1hp1Eg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1723122170; a=rsa-sha256; cv=none; b=jjBhD79J6V0ek8WJSTrKVtOZ2bsIBAGKHxRfp6wP8hu7vd3ffL8eU/J4WKc3XlmOeXp33d yTBJCaC3AdvUal3nHQwn8vz2I/vNf1h23PHuQGyMj/QRPrabo4mvbU8XOHYuEnzq+onvFm hjSdJcDtgSYFS3tpLMsIwaKIbm6yEtp9LK2fmsQCiJc3CmQvIMhXR7ezLeTWLGYhYvWxem zhUv/0iJ/beEsshQIl4IP3M8n10LGvWbLo8Vm8HhKx07uL0YzT6JCVIyCzKDFqnI3dYbDM XSmC1Nzqy8WqK/iRE55abCZU+vf8kxRSdVvS5Ou9s7Ua7L0pnvIJc8BYpHuvKw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1723122170; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2T88XJ2qgcq5RrtpV1CDoiTqak1/6l2tV7ptr8XnYNA=; b=aw6aJNT22HcwoEexhNJVH5PzWRyJCnQU+ueeLSCP/nBVTBo7s48VNmg/TmDiDpa/0xIcq3 fL6Pfte8KOlSS8sb0FhEmrPotLDJweXMOLKyoxQokzUIC2qacwZ/PpeOPHuxWF31vYTnIE 99xZwYUw9+BrINP09GK9q9W/eyeTPG4yEExv60mNKa+cjiH9Pbv4oX6gH4QeHJUAJciMkr 3Pqyxn5fHKR3mxs1I6Idd3O04CpMAmD/rSdoFv9d4Tnd6Oth+WBlUrypZ7h6WHyaiKHtCg WV2hxcM885GTndRzXSPBJMlkzhCx0me7ZPNLBXuT0Lus5IZI7qr5/KpggmirLg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WfnJp23sCzZLC; Thu, 8 Aug 2024 13:02:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 478D2o8g004218; Thu, 8 Aug 2024 13:02:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 478D2ox6004215; Thu, 8 Aug 2024 13:02:50 GMT (envelope-from git) Date: Thu, 8 Aug 2024 13:02:50 GMT Message-Id: <202408081302.478D2ox6004215@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Palle Girgensohn Subject: git: 7327472603f9 - main - databases/postgresql17-*: new ports: Beta of the new major version 17 of PostgreSQL List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: girgen X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7327472603f98df8f9e889a599b3c6dd64d5feea Auto-Submitted: auto-generated The branch main has been updated by girgen: URL: https://cgit.FreeBSD.org/ports/commit/?id=7327472603f98df8f9e889a599b3c6dd64d5feea commit 7327472603f98df8f9e889a599b3c6dd64d5feea Author: Palle Girgensohn AuthorDate: 2024-08-08 09:20:01 +0000 Commit: Palle Girgensohn 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 + +# 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 + +.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 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 +# +# 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: <