0
0
Fork 0
haikuports/dev-db/postgresql/postgresql12-12.0.recipe

223 lines
7.6 KiB
Bash

SUMMARY="A powerful object-relational database system"
DESCRIPTION="PostgreSQL is a powerful, open source object-relational database \
system that uses and extends the SQL language combined with many features \
that safely store and scale the most complicated data workloads. The origins \
of PostgreSQL date back to 1986 as part of the POSTGRES project at the \
University of California at Berkeley and has more than 30 years of active \
development on the core platform.
PostgreSQL has earned a strong reputation for its proven architecture, \
reliability, data integrity, robust feature set, extensibility, and the \
dedication of the open source community behind the software to consistently \
deliver performant and innovative solutions. PostgreSQL runs on all major \
operating systems, has been ACID-compliant since 2001, and has powerful \
add-ons such as the popular PostGIS geospatial database extender. It is no \
surprise that PostgreSQL has become the open source relational database of \
choice for many people and organisations.
Getting started with using PostgreSQL has never been easier - pick a project \
you want to build, and let PostgreSQL safely and robustly store your data."
HOMEPAGE="https://www.postgresql.org/"
COPYRIGHT="1996-2019 PostgreSQL Global Development Group"
LICENSE="PostgreSQL"
REVISION="3"
SOURCE_URI="http://ftp.postgresql.org/pub/source/v$portVersion/postgresql-$portVersion.tar.bz2"
CHECKSUM_SHA256="cda2397215f758b793f741c86be05468257b0e6bcb1a6113882ab5d0df0855c6"
SOURCE_DIR="postgresql-$portVersion"
PATCHES="postgresql12-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2 ?x86"
SECONDARY_ARCHITECTURES="x86"
portVersionCompat="$portVersion compat >= ${portVersion%.*}"
PROVIDES="
postgresql12$secondaryArchSuffix = $portVersionCompat
cmd:psql$secondaryArchSuffix = $portVersionCompat
lib:libecpg$secondaryArchSuffix = $portVersionCompat
lib:libecpg_compat$secondaryArchSuffix = $portVersionCompat
lib:libpgtypes$secondaryArchSuffix = $portVersionCompat
lib:libpq$secondaryArchSuffix = $portVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libcrypto$secondaryArchSuffix
lib:libicudata$secondaryArchSuffix >= 66
lib:libicui18n$secondaryArchSuffix >= 66
lib:libicuuc$secondaryArchSuffix >= 66
lib:libldap_r_2.4$secondaryArchSuffix
lib:libpam$secondaryArchSuffix
lib:libreadline$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
lib:libxslt$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_server="
postgresql12${secondaryArchSuffix}_server = $portVersionCompat
cmd:clusterdb$secondaryArchSuffix = $portVersionCompat
cmd:createdb$secondaryArchSuffix = $portVersionCompat
cmd:createlang$secondaryArchSuffix = $portVersionCompat
cmd:createuser$secondaryArchSuffix = $portVersionCompat
cmd:dropdb$secondaryArchSuffix = $portVersionCompat
cmd:droplang$secondaryArchSuffix = $portVersionCompat
cmd:dropuser$secondaryArchSuffix = $portVersionCompat
cmd:ecpg$secondaryArchSuffix = $portVersionCompat
cmd:initdb$secondaryArchSuffix = $portVersionCompat
cmd:pg_archivecleanup$secondaryArchSuffix = $portVersionCompat
cmd:pg_basebackup$secondaryArchSuffix = $portVersionCompat
cmd:pg_checksums$secondaryArchSuffix = $portVersionCompat
cmd:pg_config$secondaryArchSuffix = $portVersionCompat
cmd:pg_controldata$secondaryArchSuffix = $portVersionCompat
cmd:pg_ctl$secondaryArchSuffix = $portVersionCompat
cmd:pg_dump$secondaryArchSuffix = $portVersionCompat
cmd:pg_dumpall$secondaryArchSuffix = $portVersionCompat
cmd:pg_isready$secondaryArchSuffix = $portVersionCompat
cmd:pg_receivewal$secondaryArchSuffix = $portVersionCompat
cmd:pg_receivexlog$secondaryArchSuffix = $portVersionCompat
cmd:pg_recvlogical$secondaryArchSuffix = $portVersionCompat
cmd:pg_resetwal$secondaryArchSuffix = $portVersionCompat
cmd:pg_resetxlog$secondaryArchSuffix = $portVersionCompat
cmd:pg_restore$secondaryArchSuffix = $portVersionCompat
cmd:pg_rewind$secondaryArchSuffix = $portVersionCompat
cmd:pg_test_fsync$secondaryArchSuffix = $portVersionCompat
cmd:pg_test_timing$secondaryArchSuffix = $portVersionCompat
cmd:pg_upgrade$secondaryArchSuffix = $portVersionCompat
cmd:pg_verify_checksums$secondaryArchSuffix = $portVersionCompat
cmd:pg_waldump$secondaryArchSuffix = $portVersionCompat
cmd:pg_xlogdump$secondaryArchSuffix = $portVersionCompat
cmd:pgbench$secondaryArchSuffix = $portVersionCompat
cmd:postgres$secondaryArchSuffix = $portVersionCompat
cmd:postmaster$secondaryArchSuffix = $portVersionCompat
cmd:reindexdb$secondaryArchSuffix = $portVersionCompat
cmd:vacuumdb$secondaryArchSuffix = $portVersionCompat
"
REQUIRES_server="
haiku$secondaryArchSuffix
postgresql12${secondaryArchSuffix} == $portVersion base
lib:libcrypto$secondaryArchSuffix
lib:libicudata$secondaryArchSuffix >= 66
lib:libicui18n$secondaryArchSuffix >= 66
lib:libicuuc$secondaryArchSuffix >= 66
lib:libldap_r_2.4$secondaryArchSuffix
lib:libpam$secondaryArchSuffix
lib:libpq$secondaryArchSuffix
lib:libreadline$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
lib:libxslt$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_devel="
postgresql12${secondaryArchSuffix}_devel = $portVersion
devel:libpgport$secondaryArchSuffix = $portVersion
devel:libpgcommon$secondaryArchSuffix = $portVersion
devel:libpgcommon_shlib$secondaryArchSuffix = $portVersion
devel:libecpg$secondaryArchSuffix = $portVersion
devel:libpgport_shlib$secondaryArchSuffix = $portVersion
devel:libpgfeutils$secondaryArchSuffix = $portVersion
devel:libpgtypes$secondaryArchSuffix = $portVersion
devel:libpq$secondaryArchSuffix = $portVersion
devel:libecpg_compat$secondaryArchSuffix = $portVersion
"
REQUIRES_devel="
postgresql12${secondaryArchSuffix} == $portVersion base
"
CONFLICTS_server="
postgresql
postgresql$secondaryArchSuffix
"
BUILD_REQUIRES="
devel:libcrypto$secondaryArchSuffix
devel:libicudata$secondaryArchSuffix >= 66
devel:libicui18n$secondaryArchSuffix >= 66
devel:libicuuc$secondaryArchSuffix >= 66
devel:libldap$secondaryArchSuffix
devel:libpam$secondaryArchSuffix
devel:libreadline$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
devel:libxml2$secondaryArchSuffix
devel:libxslt$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
haiku${secondaryArchSuffix}_devel
cmd:aclocal
cmd:autoconf
cmd:automake
cmd:autoheader
cmd:awk
cmd:bison
cmd:flex
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:libtoolize$secondaryArchSuffix
cmd:make
cmd:m4
cmd:pkg_config$secondaryArchSuffix
cmd:touch
"
BUILD()
{
libtoolize --force --copy --install
autoreconf -i
touch src/template/haiku # AFAIK it should be empty
touch config/missing # shouldn't be required
CFLAGS=-D_BSD_SOURCE runConfigure ./configure \
--with-icu \
--with-ldap \
--with-libxml \
--with-libxslt \
--with-openssl \
--with-pam \
--with-template=haiku
make $jobArgs
}
INSTALL()
{
make install
prepareInstalledDevelLibs libpgport \
libpgcommon \
libpgcommon_shlib \
libpgport_shlib \
libecpg \
libpgtypes \
libpq \
libecpg_compat \
libpgfeutils
fixPkgconfig
mkdir -p $developLibDir/postgresql/pgxs
mv $libDir/postgresql/pgxs $developLibDir/postgresql/
# we want to keep the psql command in the base package
mv $binDir/psql psql_tmp
# all other commands go in the server package
packageEntries server \
$binDir \
$dataDir/postgresql \
$libDir/postgresql
mkdir -p $binDir
mv psql_tmp $binDir/psql
packageEntries devel \
$developDir
}
TEST()
{
LIBRARY_PATH="$sourceDir/tmp_install/packages/postgresql-$portVersion-$REVISION/.self/lib${LIBRARY_PATH:+:$LIBRARY_PATH}"
make check
}