1
0
mirror of https://github.com/termux/termux-packages synced 2024-06-18 20:07:07 +00:00
termux-packages/packages/postgresql/build.sh
YAKSH BARIYA 8f824094ea
libicu: Bump to 70.1 (#7898)
* libicu: Bump to 70.1

* Revbump for packages dependent on libicu

* samba: Bump to 4.14.9

Samba old version tarball removed from website. Newer 4.15.1 is available but needs some experienced user to test and compile, lets leave it for now and dont block libicu upgrade

* php: Fix builds with libicu 70.1

* php: Fix libgd constants

* nodejs,nodejs-lts: Rebuild after libicu upgrade
2021-11-01 07:57:47 +05:30

79 lines
2.8 KiB
Bash

TERMUX_PKG_HOMEPAGE=https://www.postgresql.org
TERMUX_PKG_DESCRIPTION="Object-relational SQL database"
TERMUX_PKG_LICENSE="BSD"
TERMUX_PKG_LICENSE_FILE="COPYRIGHT"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=13.3
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://ftp.postgresql.org/pub/source/v$TERMUX_PKG_VERSION/postgresql-$TERMUX_PKG_VERSION.tar.bz2
TERMUX_PKG_SHA256=3cd9454fa8c7a6255b6743b767700925ead1b9ab0d7a0f9dcb1151010f8eb4a1
TERMUX_PKG_DEPENDS="openssl, libcrypt, readline, libandroid-shmem, libuuid, libxml2, libicu, zlib"
# - pgac_cv_prog_cc_ldflags__Wl___as_needed: Inform that the linker supports as-needed. It's
# not stricly necessary but avoids unnecessary linking of binaries.
# - USE_UNNAMED_POSIX_SEMAPHORES: Avoid using System V semaphores which are disabled on Android.
# - ZIC=...: The zic tool is used to build the time zone database bundled with postgresql.
# We specify a binary built in termux_step_host_build which has been patched to use symlinks
# over hard links (which are not supported as of Android 6.0+).
# There exists a --with-system-tzdata configure flag, but that does not work here as Android
# uses a custom combined tzdata file.
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
pgac_cv_prog_cc_ldflags__Wl___as_needed=yes
USE_UNNAMED_POSIX_SEMAPHORES=1
--with-icu
--with-libxml
--with-openssl
--with-uuid=e2fs
ZIC=$TERMUX_PKG_HOSTBUILD_DIR/src/timezone/zic
"
TERMUX_PKG_EXTRA_MAKE_ARGS=" -s"
TERMUX_PKG_RM_AFTER_INSTALL="lib/libecpg* bin/ecpg share/man/man1/ecpg.1"
TERMUX_PKG_HOSTBUILD=true
TERMUX_PKG_BREAKS="postgresql-contrib (<= 10.3-1), postgresql-dev"
TERMUX_PKG_REPLACES="postgresql-contrib (<= 10.3-1), postgresql-dev"
TERMUX_PKG_SERVICE_SCRIPT=("postgres" 'mkdir -p ~/.postgres\nexec postgres -D ~/.postgres/ 2>&1')
termux_step_host_build() {
# Build a native zic binary which we have patched to
# use symlinks instead of hard links.
$TERMUX_PKG_SRCDIR/configure --without-readline
make
}
termux_step_pre_configure() {
# Certain packages are not safe to build on device because their
# build.sh script deletes specific files in $TERMUX_PREFIX.
if $TERMUX_ON_DEVICE_BUILD; then
termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds."
fi
}
termux_step_post_make_install() {
# Man pages are not installed by default:
make -C doc/src/sgml install-man
for contrib in \
hstore \
citext \
dblink \
pageinspect \
pgcrypto \
pgrowlocks \
pg_freespacemap \
pg_stat_statements\
pg_trgm \
postgres_fdw \
fuzzystrmatch \
unaccent \
uuid-ossp \
btree_gist \
; do
(cd contrib/$contrib && make -s -j $TERMUX_MAKE_PROCESSES install)
done
}
termux_step_post_massage() {
# Remove bin/pg_config so e.g. php doesn't try to use it, which won't
# work as it's a cross-compiled binary:
rm $TERMUX_PREFIX/bin/pg_config
}