postgresql: Enable package
[termux-packages] / packages / postgresql / build.sh
diff --git a/packages/postgresql/build.sh b/packages/postgresql/build.sh
new file mode 100644 (file)
index 0000000..a23574d
--- /dev/null
@@ -0,0 +1,41 @@
+TERMUX_PKG_HOMEPAGE=https://www.postgresql.org
+TERMUX_PKG_DESCRIPTION="Object-relational SQL database"
+TERMUX_PKG_MAINTAINER='Vishal Biswas @vishalbiswas'
+TERMUX_PKG_VERSION=9.6.2
+TERMUX_PKG_SRCURL=https://ftp.postgresql.org/pub/source/v$TERMUX_PKG_VERSION/postgresql-$TERMUX_PKG_VERSION.tar.bz2
+TERMUX_PKG_SHA256=0187b5184be1c09034e74e44761505e52357248451b0c854dddec6c231fe50c9
+TERMUX_PKG_DEPENDS="openssl, libcrypt, readline, libandroid-shmem"
+# - 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-openssl
+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=yes
+
+termux_step_host_build() {
+       # Build a native zic binary which we have patched to
+       # use symlinks instead of hard links.
+       $TERMUX_PKG_SRCDIR/configure
+       make ./src/timezone/zic
+}
+
+termux_step_post_make_install() {
+       # Man pages are not installed by default:
+       make -C doc/src/sgml install-man
+
+       # Sync with postgresql-contrib.subpackage.sh:
+       for contrib in hstore pgcrypto pg_stat_statements; do
+               (cd contrib/$contrib && make -s -j $TERMUX_MAKE_PROCESSES install)
+       done
+}