New package: postgresql14

This commit is contained in:
Piotr Wójcik 2021-09-30 22:28:48 +02:00 committed by Piotr
parent cf191e8fcd
commit 1353b8d134
20 changed files with 517 additions and 6 deletions

View file

@ -558,10 +558,10 @@ libKF5PurposeWidgets.so.5 purpose-5.48.0_1
libKF5Purpose.so.5 purpose-5.48.0_1
libKF5PulseAudioQt.so.3 pulseaudio-qt-1.3_1
libReviewboardHelpers.so.5 purpose-5.48.0_1
libecpg_compat.so.3 postgresql-libs-13.2_2
libecpg.so.6 postgresql-libs-13.2_2
libpgtypes.so.3 postgresql-libs-13.2_2
libpq.so.5 postgresql-libs-13.2_2
libecpg_compat.so.3 postgresql-libs-14.0_1
libecpg.so.6 postgresql-libs-14.0_1
libpgtypes.so.3 postgresql-libs-14.0_1
libpq.so.5 postgresql-libs-14.0_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

View file

@ -1 +1 @@
postgresql13
postgresql14

View file

@ -1 +1 @@
postgresql13
postgresql14

1
srcpkgs/postgresql14-client Symbolic link
View file

@ -0,0 +1 @@
postgresql14

View file

@ -0,0 +1 @@
postgresql14

1
srcpkgs/postgresql14-doc Symbolic link
View file

@ -0,0 +1 @@
postgresql14

1
srcpkgs/postgresql14-plperl Symbolic link
View file

@ -0,0 +1 @@
postgresql14

View file

@ -0,0 +1 @@
postgresql14

1
srcpkgs/postgresql14-pltcl Symbolic link
View file

@ -0,0 +1 @@
postgresql14

View file

@ -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

View file

@ -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"

View file

@ -0,0 +1,3 @@
auth required pam_unix.so
account required pam_unix.so
session required pam_unix.so

View file

@ -0,0 +1,2 @@
#!/bin/sh
/usr/bin/kill -INT `/usr/bin/head -1 /run/runit/supervise.postgresql@VERSION@/pid`

View file

@ -0,0 +1,2 @@
#!/bin/sh
exec logger -p daemon.info -t postgres@VERSION@

View file

@ -0,0 +1,27 @@
#!/bin/sh
. /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

View file

@ -0,0 +1,14 @@
appendpath () {
case ":$PATH:" in
*:"$1":*)
;;
*)
PATH="${PATH:+$PATH:}$1"
esac
}
appendpath '/@PREFIX@/bin'
unset appendpath
export PATH

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,228 @@
# Template file for 'postgresql14'
pkgname=postgresql14
version=14.1
revision=1
wrksrc="postgresql-${version}"
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"
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=4d3c101ea7ae38982f06bdc73758b53727fb6402ecd9382006fa5ecc7c2ca41f
conf_files="
/${_sysconfdir}/default/postgresql
/${_sysconfdir}/pam.d/postgresql
/${_sysconfdir}/postgresql/postgresql.conf
"
# 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"
if [ "$CROSS_BUILD" ]; 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}/profile.sh 644 etc/profile.d ${pkgname}.sh
_substitute ${DESTDIR}/etc/profile.d/${pkgname}.sh
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}:
}
postgresql14-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"
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}"
short_desc="PostgreSQL shared libraries (development files)"
conflicts="postgresql9.6-libs-devel>=0 postgresql12-libs-devel>=0 postgresql13-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
postgresql14-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
}
}
postgresql14-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
}
}
postgresql14-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
postgresql14-client_package() {
short_desc="Client frontends programs for PostgreSQL"
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
vinstall ${FILESDIR}/profile.sh 644 etc/profile.d ${pkgname}.sh
_substitute ${PKGDESTDIR}/etc/profile.d/${pkgname}.sh
}
}
postgresql14-contrib_package() {
short_desc="PostgreSQL contributed programs and extensions"
pkg_install() {
make -C contrib install DESTDIR=${PKGDESTDIR}
}
}

View file

@ -0,0 +1,2 @@
site="https://ftp.postgresql.org/pub/source/"
pattern="v\K${version%%.*}[\d.]+(?!\w)"