aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Wójcik <chocimier@tlen.pl>2025-02-21 15:45:08 +0000
committerChocimier <chocimier@tlen.pl>2025-02-24 18:33:47 +0000
commitecab5d415d3ea6ebc56786fdc85bc758c3fe520c (patch)
tree34cbc60982621f82ed86a68cb054ca75505c445b
parent82c0cf26e21fdf7a9b2e976d2776d95d1d021021 (diff)
downloadvoid-packages-ecab5d415d3ea6ebc56786fdc85bc758c3fe520c.tar
void-packages-ecab5d415d3ea6ebc56786fdc85bc758c3fe520c.tar.gz
void-packages-ecab5d415d3ea6ebc56786fdc85bc758c3fe520c.tar.bz2
void-packages-ecab5d415d3ea6ebc56786fdc85bc758c3fe520c.tar.lz
void-packages-ecab5d415d3ea6ebc56786fdc85bc758c3fe520c.tar.xz
void-packages-ecab5d415d3ea6ebc56786fdc85bc758c3fe520c.tar.zst
void-packages-ecab5d415d3ea6ebc56786fdc85bc758c3fe520c.zip
New package: postgresql17-17.4
-rw-r--r--common/shlibs8
l---------srcpkgs/postgresql-libs2
l---------srcpkgs/postgresql-libs-devel2
l---------srcpkgs/postgresql17-client1
l---------srcpkgs/postgresql17-contrib1
l---------srcpkgs/postgresql17-doc1
l---------srcpkgs/postgresql17-plperl1
l---------srcpkgs/postgresql17-plpython1
l---------srcpkgs/postgresql17-pltcl1
-rw-r--r--srcpkgs/postgresql17/files/pg_config.sh.in143
-rw-r--r--srcpkgs/postgresql17/files/postgresql.confd17
-rw-r--r--srcpkgs/postgresql17/files/postgresql.pam3
-rw-r--r--srcpkgs/postgresql17/files/postgresql17/control/t2
-rw-r--r--srcpkgs/postgresql17/files/postgresql17/run28
-rw-r--r--srcpkgs/postgresql17/patches/pg_config-cross-value.patch45
-rw-r--r--srcpkgs/postgresql17/patches/relocate.patch22
-rw-r--r--srcpkgs/postgresql17/template273
-rw-r--r--srcpkgs/postgresql17/update2
18 files changed, 547 insertions, 6 deletions
diff --git a/common/shlibs b/common/shlibs
index 62699b94ca3..659e4a45db7 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -572,10 +572,10 @@ libKF5PurposeWidgets.so.5 purpose-5.48.0_1
libKF5Purpose.so.5 purpose-5.48.0_1
libKF6PulseAudioQt.so.5 pulseaudio-qt-1.5_1
libReviewboardHelpers.so.5 purpose-5.48.0_1
-libecpg_compat.so.3 postgresql-libs-16.1_1
-libecpg.so.6 postgresql-libs-16.1_1
-libpgtypes.so.3 postgresql-libs-16.1_1
-libpq.so.5 postgresql-libs-16.1_1
+libecpg_compat.so.3 postgresql-libs-17.1_1
+libecpg.so.6 postgresql-libs-17.1_1
+libpgtypes.so.3 postgresql-libs-17.1_1
+libpq.so.5 postgresql-libs-17.1_1
libmypaint.so.0 libmypaint-1.6.1_1
libgssapi_krb5.so.2 mit-krb5-libs-1.8_1
libgssrpc.so.4 mit-krb5-libs-1.8_1
diff --git a/srcpkgs/postgresql-libs b/srcpkgs/postgresql-libs
index 2caa22354d1..48ceef76e90 120000
--- a/srcpkgs/postgresql-libs
+++ b/srcpkgs/postgresql-libs
@@ -1 +1 @@
-postgresql16 \ No newline at end of file
+postgresql17 \ No newline at end of file
diff --git a/srcpkgs/postgresql-libs-devel b/srcpkgs/postgresql-libs-devel
index 2caa22354d1..48ceef76e90 120000
--- a/srcpkgs/postgresql-libs-devel
+++ b/srcpkgs/postgresql-libs-devel
@@ -1 +1 @@
-postgresql16 \ No newline at end of file
+postgresql17 \ No newline at end of file
diff --git a/srcpkgs/postgresql17-client b/srcpkgs/postgresql17-client
new file mode 120000
index 00000000000..48ceef76e90
--- /dev/null
+++ b/srcpkgs/postgresql17-client
@@ -0,0 +1 @@
+postgresql17 \ No newline at end of file
diff --git a/srcpkgs/postgresql17-contrib b/srcpkgs/postgresql17-contrib
new file mode 120000
index 00000000000..48ceef76e90
--- /dev/null
+++ b/srcpkgs/postgresql17-contrib
@@ -0,0 +1 @@
+postgresql17 \ No newline at end of file
diff --git a/srcpkgs/postgresql17-doc b/srcpkgs/postgresql17-doc
new file mode 120000
index 00000000000..48ceef76e90
--- /dev/null
+++ b/srcpkgs/postgresql17-doc
@@ -0,0 +1 @@
+postgresql17 \ No newline at end of file
diff --git a/srcpkgs/postgresql17-plperl b/srcpkgs/postgresql17-plperl
new file mode 120000
index 00000000000..48ceef76e90
--- /dev/null
+++ b/srcpkgs/postgresql17-plperl
@@ -0,0 +1 @@
+postgresql17 \ No newline at end of file
diff --git a/srcpkgs/postgresql17-plpython b/srcpkgs/postgresql17-plpython
new file mode 120000
index 00000000000..48ceef76e90
--- /dev/null
+++ b/srcpkgs/postgresql17-plpython
@@ -0,0 +1 @@
+postgresql17 \ No newline at end of file
diff --git a/srcpkgs/postgresql17-pltcl b/srcpkgs/postgresql17-pltcl
new file mode 120000
index 00000000000..48ceef76e90
--- /dev/null
+++ b/srcpkgs/postgresql17-pltcl
@@ -0,0 +1 @@
+postgresql17 \ No newline at end of file
diff --git a/srcpkgs/postgresql17/files/pg_config.sh.in b/srcpkgs/postgresql17/files/pg_config.sh.in
new file mode 100644
index 00000000000..68068a82e01
--- /dev/null
+++ b/srcpkgs/postgresql17/files/pg_config.sh.in
@@ -0,0 +1,143 @@
+#!/bin/sh
+# Released to Public Domain by Doan Tran Cong Danh
+
+print() {
+ printf '%s\n' "$@"
+}
+
+sysroot="$(cd "${0%/*}" && cd ../.. && pwd)"
+
+BINDIR="$sysroot/@PREFIX@/bin"
+DOCDIR="$sysroot/@PREFIX@/share/doc/postgresql"
+HTMLDIR="$sysroot/@PREFIX@/share/doc/postgresql"
+INCLUDEDIR="$sysroot/usr/include"
+PKGINCLUDEDIR="$sysroot/usr/include/postgresql"
+INCLUDEDIR_SERVER="$sysroot/usr/include/postgresql/server"
+LIBDIR="$sysroot/@PREFIX@/lib"
+PKGLIBDIR="$sysroot/@PREFIX@/lib/postgresql"
+LOCALEDIR="$sysroot/@PREFIX@/share/locale"
+MANDIR="$sysroot/@PREFIX@/share/man"
+SHAREDIR="$sysroot/@PREFIX@/share/postgresql"
+SYSCONFDIR="$sysroot/etc/psql@VERSION@/postgresql"
+PGXS="$sysroot/@PREFIX@/lib/postgresql/pgxs/src/makefiles/pgxs.mk"
+
+CONFIGURE="@configure_args@"
+CC="@CC@"
+CPPFLAGS="@CPPFLAGS@"
+CFLAGS="@CFLAGS@"
+CFLAGS_SL="@CFLAGS_SL@"
+LDFLAGS="@LDFLAGS@"
+LDFLAGS_EX="@LDFLAGS_EX@"
+LDFLAGS_SL="@LDFLAGS_SL@"
+LIBS="@LIBS@"
+VERSION="PostgreSQL @FULL_VERSION@"
+
+if [ "$sysroot" != "/" ]; then
+ CPPFLAGS="$(print "$CPPFLAGS" | sed "s,-I *\\(/@PREFIX@/include\\),-I$sysroot\\1,g")"
+ CFLAGS="$(print "$CFLAGS" | sed "s,-I *\\(/@PREFIX@/include\\),-I$sysroot\\1,g")"
+ LDFLAGS="$(print "$LDFLAGS" | sed "s,-L *\\(/@PREFIX@/lib\\),-L$sysroot\\1,g")"
+fi
+
+usage() {
+ cat <<-EOF
+ $0 provides information about the installed version of PostgreSQL.
+
+ Usage:
+ $0 [OPTION]...
+
+ Options:
+ --bindir show location of user executables
+ --docdir show location of documentation files
+ --htmldir show location of HTML documentation files
+ --includedir show location of C header files of the client interfaces
+ --pkgincludedir show location of other C header files
+ --includedir-server show location of C header files for the server
+ --libdir show location of object code libraries
+ --pkglibdir show location of dynamically loadable modules
+ --localedir show location of locale support files
+ --mandir show location of manual pages
+ --sharedir show location of architecture-independent support files
+ --sysconfdir show location of system-wide configuration files
+ --pgxs show location of extension makefile
+ --configure show options given to PostgreSQL was built
+ --cc show CC value used when PostgreSQL was built
+ --cppflags show CPPFLAGS value used when PostgreSQL was built
+ --cflags show CFLAGS value used when PostgreSQL was built
+ --cflags_sl show CFLAGS_SL value used when PostgreSQL was built
+ --ldflags show LDFLAGS value used when PostgreSQL was built
+ --ldflags_ex show LDFLAGS_EX value used when PostgreSQL was built
+ --ldflags_sl show LDFLAGS_SL value used when PostgreSQL was built
+ --libs show LIBS value used when PostgreSQL was built
+ --version show the PostgreSQL version
+ -?, --help show this help, then exit
+
+ With no arguments, all known items are shown.
+
+ Report bugs to <pgsql-bugs@postgresql.org>.
+ EOF
+}
+
+if test $# -eq 0; then
+ cat <<-EOF
+ BINDIR = $BINDIR
+ DOCDIR = $DOCDIR
+ HTMLDIR = $HTMLDIR
+ INCLUDEDIR = $INCLUDEDIR
+ PKGINCLUDEDIR = $PKGINCLUDEDIR
+ INCLUDEDIR-SERVER = $INCLUDEDIR_SERVER
+ LIBDIR = $LIBDIR
+ PKGLIBDIR = $PKGLIBDIR
+ LOCALEDIR = $LOCALEDIR
+ MANDIR = $MANDIR
+ SHAREDIR = $SHAREDIR
+ SYSCONFDIR = $SYSCONFDIR
+ PGXS = $PGXS
+ CONFIGURE = $CONFIGURE
+ CC = $CC
+ CPPFLAGS = $CPPFLAGS
+ CFLAGS = $CFLAGS
+ CFLAGS_SL = $CFLAGS_SL
+ LDFLAGS = $LDFLAGS
+ LDFLAGS_EX = $LDFLAGS_EX
+ LDFLAGS_SL = $LDFLAGS_SL
+ LIBS = $LIBS
+ VERSION = $VERSION
+ EOF
+fi
+
+for arg
+do
+ if test "x$arg" = "x--help" || test "x$arg" = "x-?"; then
+ usage
+ exit 0
+ fi
+done
+
+for arg
+do
+ case "$arg" in
+ --bindir) print "$BINDIR" ;;
+ --docdir) print "$DOCDIR" ;;
+ --htmldir) print "$HTMLDIR" ;;
+ --includedir) print "$INCLUDEDIR" ;;
+ --pkgincludedir) print "$PKGINCLUDEDIR" ;;
+ --includedir-server) print "$INCLUDEDIR_SERVER" ;;
+ --libdir) print "$LIBDIR" ;;
+ --pkglibdir) print "$PKGLIBDIR" ;;
+ --localedir) print "$LOCALEDIR" ;;
+ --mandir) print "$MANDIR" ;;
+ --sharedir) print "$SHAREDIR" ;;
+ --sysconfdir) print "$SYSCONFDIR" ;;
+ --pgxs) print "$PGXS" ;;
+ --configure) print "$CONFIGURE" ;;
+ --cc) print "$CC" ;;
+ --cppflags) print "$CPPFLAGS" ;;
+ --cflags) print "$CFLAGS" ;;
+ --cflags_sl) print "$CFLAGS_SL" ;;
+ --ldflags) print "$LDFLAGS" ;;
+ --ldflags_ex) print "$LDFLAGS_EX" ;;
+ --ldflags_sl) print "$LDFLAGS_SL" ;;
+ --libs) print "$LIBS" ;;
+ --version) print "$VERSION" ;;
+ esac
+done
diff --git a/srcpkgs/postgresql17/files/postgresql.confd b/srcpkgs/postgresql17/files/postgresql.confd
new file mode 100644
index 00000000000..fe7106626fa
--- /dev/null
+++ b/srcpkgs/postgresql17/files/postgresql.confd
@@ -0,0 +1,17 @@
+# Configuration file for the PostgreSQL server.
+
+# PostgreSQL's database directory
+PGROOT="/var/lib/postgresql@VERSION@"
+
+# PostgreSQL's log file.
+PGLOG="/var/log/postgresql@VERSION@.log"
+
+# Passed to initdb if necessary
+INITOPTS="-A peer --auth-host=md5 --auth-local=peer --locale en_US.UTF-8"
+
+# Extra options to run postmaster with, e.g.:
+# -N is the maximal number of client connections
+# -B is the number of shared buffers and has to be at least 2x the value for -N
+# Please read the man-page to postmaster for more options. Many of these options
+# can be set directly in the configuration-file.
+#PGOPTS="-N 512 -B 1024"
diff --git a/srcpkgs/postgresql17/files/postgresql.pam b/srcpkgs/postgresql17/files/postgresql.pam
new file mode 100644
index 00000000000..53724d1f86a
--- /dev/null
+++ b/srcpkgs/postgresql17/files/postgresql.pam
@@ -0,0 +1,3 @@
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
diff --git a/srcpkgs/postgresql17/files/postgresql17/control/t b/srcpkgs/postgresql17/files/postgresql17/control/t
new file mode 100644
index 00000000000..dcedfaa2018
--- /dev/null
+++ b/srcpkgs/postgresql17/files/postgresql17/control/t
@@ -0,0 +1,2 @@
+#!/bin/sh
+/usr/bin/kill -INT `/usr/bin/head -1 /run/runit/supervise.postgresql@VERSION@/pid`
diff --git a/srcpkgs/postgresql17/files/postgresql17/run b/srcpkgs/postgresql17/files/postgresql17/run
new file mode 100644
index 00000000000..1da79920625
--- /dev/null
+++ b/srcpkgs/postgresql17/files/postgresql17/run
@@ -0,0 +1,28 @@
+#!/bin/sh
+exec 2>&1
+. /etc/psql@VERSION@/default/postgresql
+: ${PGDATA:="$PGROOT/data"}
+
+if [ "$PGROOT" != "/var/lib/postgresql@VERSION@" ]; then
+ echo "Creating symlink /var/lib/postgresql@VERSION@ -> $PGROOT"
+ ln -sf "$PGROOT" /var/lib/postgresql@VERSION@
+fi
+
+
+if [ ! -d "$PGDATA" ]; then
+ echo "Initializing database in $PGDATA"
+
+ mkdir -p "$PGDATA" || exit 1
+ chown -R postgres:postgres "$PGDATA"
+ chmod 0700 "$PGDATA"
+ su - postgres -c "/@PREFIX@/bin/initdb $INITOPTS -D '$PGDATA'" 2>&1 || {
+ rm -fr "$PGDATA"
+ exit 1
+ }
+
+ if [ -f /etc/psql@VERSION@/postgresql/postgresql.conf ]; then
+ ln -sf /etc/psql@VERSION@/postgresql/postgresql.conf "$PGDATA/postgresql.conf"
+ fi
+fi
+
+exec chpst -u postgres:postgres /@PREFIX@/bin/postgres -D "$PGDATA" $PGOPTS 2>&1
diff --git a/srcpkgs/postgresql17/patches/pg_config-cross-value.patch b/srcpkgs/postgresql17/patches/pg_config-cross-value.patch
new file mode 100644
index 00000000000..cc0a9fc1913
--- /dev/null
+++ b/srcpkgs/postgresql17/patches/pg_config-cross-value.patch
@@ -0,0 +1,45 @@
+Sources: Doan Tran Cong Danh
+Upstream: No
+ - First part needs to be rework in configure script to be usable
+ upstream
+ - Second part would un-usable for Windows
+diff --git src/common/Makefile src/common/Makefile
+index ec04710..2af845f 100644
+--- a/src/common/Makefile
++++ b/src/common/Makefile
+@@ -30,10 +30,13 @@ include $(top_builddir)/src/Makefile.global
+
+ # don't include subdirectory-path-dependent -I and -L switches
+ STD_CPPFLAGS := $(filter-out -I$(top_srcdir)/src/include -I$(top_builddir)/src/include,$(CPPFLAGS))
++STD_CPPFLAGS := $(subst @XBPS_SYSROOT@,,$(STD_CPPFLAGS))
++STD_CFLAGS := $(subst @XBPS_SYSROOT@,,$(CFLAGS))
+ STD_LDFLAGS := $(filter-out -L$(top_builddir)/src/common -L$(top_builddir)/src/port,$(LDFLAGS))
++STD_LDFLAGS := $(subst @XBPS_SYSROOT@,,$(STD_LDFLAGS))
+ override CPPFLAGS += -DVAL_CC="\"$(CC)\""
+ override CPPFLAGS += -DVAL_CPPFLAGS="\"$(STD_CPPFLAGS)\""
+-override CPPFLAGS += -DVAL_CFLAGS="\"$(CFLAGS)\""
++override CPPFLAGS += -DVAL_CFLAGS="\"$(STD_CFLAGS)\""
+ override CPPFLAGS += -DVAL_CFLAGS_SL="\"$(CFLAGS_SL)\""
+ override CPPFLAGS += -DVAL_LDFLAGS="\"$(STD_LDFLAGS)\""
+ override CPPFLAGS += -DVAL_LDFLAGS_EX="\"$(LDFLAGS_EX)\""
+@@ -72,7 +75,19 @@ OBJS_FRONTEND = $(OBJS_COMMON) fe_memutils.o restricted_token.o
+ GEN_KEYWORDLIST = $(PERL) -I $(TOOLSDIR) $(TOOLSDIR)/gen_keywordlist.pl
+ GEN_KEYWORDLIST_DEPS = $(TOOLSDIR)/gen_keywordlist.pl $(TOOLSDIR)/PerfectHash.pm
+
+-all: libpgcommon.a libpgcommon_shlib.a libpgcommon_srv.a
++all: libpgcommon.a libpgcommon_shlib.a libpgcommon_srv.a pg_config.sh
++
++pg_config.sh: pg_config.sh.in
++ sed -e "s/@configure_args@/$(subst /,\\/,$(configure_args))/" \
++ -e "s/@CC@/$(subst /,\\/,$(CC))/" \
++ -e "s/@CPPFLAGS@/$(subst /,\\/,$(STD_CPPFLAGS))/" \
++ -e "s/@CFLAGS@/$(subst /,\\/,$(STD_CFLAGS))/" \
++ -e "s/@CFLAGS_SL@/$(subst /,\\/,$(CFLAGS_SL))/" \
++ -e "s/@LDFLAGS@/$(subst /,\\/,$(STD_LDFLAGS))/" \
++ -e "s/@LDFLAGS_EX@/$(subst /,\\/,$(LDFLAGS_EX))/" \
++ -e "s/@LDFLAGS_SL@/$(subst /,\\/,$(LDFLAGS_SL))/" \
++ -e "s/@LIBS@/$(subst /,\\/,$(LIBS))/" \
++ $< >$@
+
+ distprep: kwlist_d.h
+
diff --git a/srcpkgs/postgresql17/patches/relocate.patch b/srcpkgs/postgresql17/patches/relocate.patch
new file mode 100644
index 00000000000..d2cc14281e3
--- /dev/null
+++ b/srcpkgs/postgresql17/patches/relocate.patch
@@ -0,0 +1,22 @@
+From bf0601df89f611b33d8dbc27722351bf99e2cc18 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
+Date: Sat, 18 Jan 2020 12:19:45 +0100
+Subject: [PATCH] relocate
+
+
+diff --git src/port/path.c src/port/path.c
+index 710988b..20dc57d 100644
+--- a/src/port/path.c
++++ b/src/port/path.c
+@@ -544,6 +544,8 @@ make_relative_path(char *ret_path, const char *target_path,
+ int tail_len;
+ int i;
+
++ goto no_match; // we relocate only binaries
++
+ /*
+ * Determine the common prefix --- note we require it to end on a
+ * directory separator, consider eg '/usr/lib' and '/usr/libexec'.
+--
+2.23.0
+
diff --git a/srcpkgs/postgresql17/template b/srcpkgs/postgresql17/template
new file mode 100644
index 00000000000..b959c2f4210
--- /dev/null
+++ b/srcpkgs/postgresql17/template
@@ -0,0 +1,273 @@
+# Template file for 'postgresql17'
+pkgname=postgresql17
+version=17.4
+revision=1
+build_style=gnu-configure
+make_build_target=world
+_major="${version%%.*}"
+_prefix="usr/lib/psql${_major}"
+_sysconfdir="etc/psql${_major}"
+configure_args="--with-openssl --with-python
+ --with-pam --enable-thread-safety
+ --with-perl --with-tcl --without-ldap --without-gssapi
+ --without-bonjour --with-libxml --with-libxslt
+ --with-system-tzdata=/usr/share/zoneinfo --enable-nls --with-uuid=e2fs"
+hostmakedepends="docbook2x gettext flex openjade pkg-config"
+makedepends="libfl-devel openssl-devel libuuid-devel libxslt-devel pam-devel perl
+ python3-devel readline-devel tcl-devel"
+short_desc="Sophisticated open-source Object-Relational DBMS"
+maintainer="Piotr Wójcik <chocimier@tlen.pl>"
+license="PostgreSQL"
+homepage="https://www.postgresql.org"
+changelog="https://www.postgresql.org/docs/current/release-${version//./-}.html"
+distfiles="https://ftp.postgresql.org/pub/source/v${version}/postgresql-${version}.tar.bz2"
+checksum=c4605b73fea11963406699f949b966e5d173a7ee0ccaef8938dec0ca8a995fe7
+make_check=ci-skip # Postgres server can't be run as root
+
+conf_files="
+ /${_sysconfdir}/default/postgresql
+ /${_sysconfdir}/pam.d/postgresql
+ /${_sysconfdir}/postgresql/postgresql.conf
+"
+alternatives="
+ postgresql:/usr/bin/initdb:/${_prefix}/bin/initdb
+ postgresql:/usr/bin/pg_amcheck:/${_prefix}/bin/pg_amcheck
+ postgresql:/usr/bin/pg_archivecleanup:/${_prefix}/bin/pg_archivecleanup
+ postgresql:/usr/bin/pg_basebackup:/${_prefix}/bin/pg_basebackup
+ postgresql:/usr/bin/pg_checksums:/${_prefix}/bin/pg_checksums
+ postgresql:/usr/bin/pg_combinebackup:/${_prefix}/bin/pg_combinebackup
+ postgresql:/usr/bin/pg_controldata:/${_prefix}/bin/pg_controldata
+ postgresql:/usr/bin/pg_createsubscriber:/${_prefix}/bin/pg_createsubscriber
+ postgresql:/usr/bin/pg_ctl:/${_prefix}/bin/pg_ctl
+ postgresql:/usr/bin/pg_receivewal:/${_prefix}/bin/pg_receivewal
+ postgresql:/usr/bin/pg_recvlogical:/${_prefix}/bin/pg_recvlogical
+ postgresql:/usr/bin/pg_resetwal:/${_prefix}/bin/pg_resetwal
+ postgresql:/usr/bin/pg_rewind:/${_prefix}/bin/pg_rewind
+ postgresql:/usr/bin/pg_test_fsync:/${_prefix}/bin/pg_test_fsync
+ postgresql:/usr/bin/pg_test_timing:/${_prefix}/bin/pg_test_timing
+ postgresql:/usr/bin/pg_upgrade:/${_prefix}/bin/pg_upgrade
+ postgresql:/usr/bin/pg_verifybackup:/${_prefix}/bin/pg_verifybackup
+ postgresql:/usr/bin/pg_waldump:/${_prefix}/bin/pg_waldump
+ postgresql:/usr/bin/pg_walsummary:/${_prefix}/bin/pg_walsummary
+ postgresql:/usr/bin/pgbench:/${_prefix}/bin/pgbench
+ postgresql:/usr/bin/postgres:/${_prefix}/bin/postgres
+"
+
+# Create 'postgres' user for the server.
+system_accounts="postgres"
+postgres_homedir="/var/lib/postgresql"
+postgres_shell="/bin/sh"
+postgres_descr="PostgreSQL database server user"
+make_dirs="
+ /var/lib/postgresql 0750 postgres postgres
+ /var/lib/postgresql${_major} 0750 postgres postgres"
+
+build_options="languages"
+desc_option_languages="Include procedural languages modules"
+
+if [ -z "$CROSS_BUILD" ]; then
+ build_options_default="languages"
+fi
+
+if [ -z "$build_option_languages" ]; then
+ configure_args+=" --without-perl --without-python --without-tcl"
+fi
+
+post_patch() {
+ cp "$FILESDIR"/pg_config.sh.in src/common/pg_config.sh.in
+ _substitute src/common/pg_config.sh.in
+ vsed -i -e "s,@XBPS_SYSROOT@,${XBPS_CROSS_BASE%/}," src/common/Makefile
+}
+
+pre_configure() {
+ _style_configure_args="${configure_args}"
+ configure_args=" "
+ for arg in ${_style_configure_args}; do
+ case $arg in
+ --prefix=*|*dir=*) : ;; # skip
+ *) configure_args+=" $arg"
+ esac
+ done
+ configure_args="--prefix=/${_prefix}
+ --sysconfdir=/${_sysconfdir}
+ --includedir=/usr/include
+ ${configure_args}"
+}
+
+post_build() {
+ make -C contrib ${makejobs}
+}
+
+pre_check() {
+ ln -sr tmp_install/${_prefix} /${_prefix%/*}
+}
+
+post_install() {
+ vmkdir usr/share/man
+ cp -r doc/src/sgml/man? ${DESTDIR}/usr/share/man
+ for i in ${DESTDIR}/usr/share/man/*[^3]/*; do
+ mv $i ${i%.*}-${_major}.${i##*.}
+ done
+ vmkdir ${_prefix}/share/doc
+ cp -r doc/src/sgml/html ${DESTDIR}/${_prefix}/share/doc
+ vsv ${pkgname}
+ find "${DESTDIR}/etc/sv" -type f -exec sed -i -e s:@VERSION@:${_major}: -e s:@PREFIX@:${_prefix}: '{}' ';'
+ vlicense COPYRIGHT
+
+ vinstall ${FILESDIR}/postgresql.confd 644 ${_sysconfdir}/default postgresql
+ _substitute ${DESTDIR}/${_sysconfdir}/default/postgresql
+ vinstall ${FILESDIR}/postgresql.pam 644 ${_sysconfdir}/pam.d postgresql
+ _substitute ${DESTDIR}/${_sysconfdir}/pam.d/postgresql
+ vinstall ${DESTDIR}/${_prefix}/share/postgresql/postgresql.conf.sample \
+ 644 ${_sysconfdir}/postgresql postgresql.conf
+ vbin src/common/pg_config.sh
+
+ vsed -i 's/install_bin = .*/install_bin = install/g' \
+ ${DESTDIR}/${_prefix}/lib/postgresql/pgxs/src/Makefile.global
+}
+
+_substitute() {
+ sed -i "$1" -e s:@PREFIX@:${_prefix}: -e s:@VERSION@:${_major}: -e s:@FULL_VERSION@:${version}:
+}
+
+postgresql17-doc_package() {
+ short_desc="PostgreSQL documentation"
+ pkg_install() {
+ vmove ${_prefix}/share/doc
+ }
+}
+
+postgresql-libs_package() {
+ short_desc="PostgreSQL shared libraries"
+ conflicts="postgresql9.6-libs>=0 postgresql12-libs>=0 postgresql13-libs>=0 postgresql14-libs>=0 postgresql15-libs>=0 postgresql16-libs>=0"
+ pkg_install() {
+ vmove "${_prefix}/lib/*.so*"
+ for d in $(find ${DESTDIR}/${_prefix}/share/locale \
+ -type f -name libpq5\*); do
+ mkdir -p ${PKGDESTDIR}/$(dirname ${d#${DESTDIR}})
+ mv ${d} ${PKGDESTDIR}/$(dirname ${d#${DESTDIR}})
+ done
+ mv ${PKGDESTDIR}/${_prefix}/lib/* ${PKGDESTDIR}/usr/lib
+ }
+}
+
+postgresql-libs-devel_package() {
+ depends="postgresql-libs>=${version}_${revision} openssl-devel"
+ short_desc="PostgreSQL shared libraries (development files)"
+ conflicts="postgresql9.6-libs-devel>=0 postgresql12-libs-devel>=0 postgresql13-libs-devel>=0 postgresql14-libs-devel>=0 postgresql15-libs-devel>=0 postgresql16-libs-devel>=0"
+ pkg_install() {
+ vmkdir usr/bin
+ vmkdir usr/lib
+ for f in pg_config ecpg; do
+ vmove ${_prefix}/bin/${f}
+ vmove "usr/share/man/man1/$(basename ${f})*"
+ ln -sr "${PKGDESTDIR}/${_prefix}/bin/${f}" "${PKGDESTDIR}/usr/bin"
+ done
+ vmove usr/bin/pg_config.sh
+ vmove usr/include
+ vmove "${_prefix}/lib/*.a"
+ mv "${DESTDIR}/${_prefix}/lib/pkgconfig" "${PKGDESTDIR}/usr/lib"
+ vmove usr/share/man/man3
+ vmove ${_prefix}/lib/postgresql/pgxs
+ for f in libpq.so libpgtypes.so libecpg_compat.so libecpg.so; do
+ ln -sr "${PKGDESTDIR}/usr/lib/${f}" "${PKGDESTDIR}/${_prefix}/lib"
+ done
+ for d in $(find ${DESTDIR}/${_prefix}/share/locale \
+ -type f -name pg_config\* -o -name ecpg\*); do
+ mkdir -p ${PKGDESTDIR}/$(dirname ${d#${DESTDIR}})
+ mv ${d} ${PKGDESTDIR}/$(dirname ${d#${DESTDIR}})
+ done
+ }
+}
+
+# XXX disabled for now in cross builds.
+if [ -z "$CROSS_BUILD" ]; then
+
+postgresql17-plperl_package() {
+ depends="${sourcepkg}>=${version}_${revision}"
+ short_desc="PL/Perl procedural language for PostgreSQL"
+ pkg_install() {
+ vmove "${_prefix}/lib/postgresql/plperl*"
+ for d in $(find ${DESTDIR}/${_prefix}/share/locale \
+ -type f -name plperl\*); do
+ mkdir -p ${PKGDESTDIR}/$(dirname ${d#${DESTDIR}})
+ mv ${d} ${PKGDESTDIR}/$(dirname ${d#${DESTDIR}})
+ done
+ }
+}
+
+postgresql17-plpython_package() {
+ depends="${sourcepkg}>=${version}_${revision}"
+ short_desc="PL/Python procedural language for PostgreSQL"
+ pkg_install() {
+ vmove "${_prefix}/lib/postgresql/plpython*"
+ for d in $(find ${DESTDIR}/${_prefix}/share/locale \
+ -type f -name plpython\*); do
+ mkdir -p ${PKGDESTDIR}/$(dirname ${d#${DESTDIR}})
+ mv ${d} ${PKGDESTDIR}/$(dirname ${d#${DESTDIR}})
+ done
+ }
+}
+
+postgresql17-pltcl_package() {
+ depends="${sourcepkg}>=${version}_${revision}"
+ short_desc="PL/Tcl procedural language for PostgreSQL"
+ pkg_install() {
+ vmove "${_prefix}/lib/postgresql/pltcl*"
+ for d in $(find ${DESTDIR}/${_prefix}/share/locale \
+ -type f -name pltcl\*); do
+ mkdir -p ${PKGDESTDIR}/$(dirname ${d#${DESTDIR}})
+ mv ${d} ${PKGDESTDIR}/$(dirname ${d#${DESTDIR}})
+ done
+ }
+}
+
+fi # !CROSS_BUILD
+
+postgresql17-client_package() {
+ short_desc="Client frontends programs for PostgreSQL"
+ alternatives="
+ postgresql-client:/usr/bin/clusterdb:/${_prefix}/bin/clusterdb
+ postgresql-client:/usr/bin/createdb:/${_prefix}/bin/createdb
+ postgresql-client:/usr/bin/createuser:/${_prefix}/bin/createuser
+ postgresql-client:/usr/bin/dropdb:/${_prefix}/bin/dropdb
+ postgresql-client:/usr/bin/dropuser:/${_prefix}/bin/dropuser
+ postgresql-client:/usr/bin/pg_dump:/${_prefix}/bin/pg_dump
+ postgresql-client:/usr/bin/pg_dumpall:/${_prefix}/bin/pg_dumpall
+ postgresql-client:/usr/bin/pg_isready:/${_prefix}/bin/pg_isready
+ postgresql-client:/usr/bin/pg_restore:/${_prefix}/bin/pg_restore
+ postgresql-client:/usr/bin/psql:/${_prefix}/bin/psql
+ postgresql-client:/usr/bin/reindexdb:/${_prefix}/bin/reindexdb
+ postgresql-client:/usr/bin/vacuumdb:/${_prefix}/bin/vacuumdb
+ "
+ pkg_install() {
+ for f in clusterdb createdb createuser dropdb \
+ dropuser pg_dump pg_dumpall pg_isready pg_restore psql reindexdb \
+ vacuumdb; do
+ vmove ${_prefix}/bin/${f}
+ vmove usr/share/man/man1/$(basename ${f})-${_major}.1
+ done
+ vmove usr/share/man/man7
+ for d in $(find ${DESTDIR}/${_prefix}/share/locale \
+ -type f -name pgscripts\* -o \
+ -name psql\* -o \
+ -name pg_dump\*); do
+ mkdir -p ${PKGDESTDIR}/$(dirname ${d#${DESTDIR}})
+ mv ${d} ${PKGDESTDIR}/$(dirname ${d#${DESTDIR}})
+ done
+ mv ${DESTDIR}/${_prefix}/share/postgresql/psqlrc.* \
+ ${PKGDESTDIR}/${_prefix}/share
+ }
+}
+
+postgresql17-contrib_package() {
+ short_desc="PostgreSQL contributed programs and extensions"
+ alternatives="
+ postgresql-contrib:/usr/bin/oid2name:/${_prefix}/bin/oid2name
+ postgresql-contrib:/usr/bin/vacuumlo:/${_prefix}/bin/vacuumlo
+ "
+ pkg_install() {
+ make -C contrib install DESTDIR=${PKGDESTDIR}
+ mv ${PKGDESTDIR}/usr/include ${PKGDESTDIR}/${_prefix}
+ }
+}
diff --git a/srcpkgs/postgresql17/update b/srcpkgs/postgresql17/update
new file mode 100644
index 00000000000..160ccf14333
--- /dev/null
+++ b/srcpkgs/postgresql17/update
@@ -0,0 +1,2 @@
+site="https://ftp.postgresql.org/pub/source/"
+pattern="v\K${version%%.*}[\d.]+(?!\w)"