blob: ea58b969a2074df5d16cf6248dcac776f3cb2b18 [file] [log] [blame]
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
_realname=postgresql
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=13.1
pkgrel=1
pkgdesc="Libraries for use with PostgreSQL (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
url="https://www.postgresql.org/"
license=('custom:PostgreSQL')
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc")
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-gettext"
"${MINGW_PACKAGE_PREFIX}-libxml2"
"${MINGW_PACKAGE_PREFIX}-libxslt"
"${MINGW_PACKAGE_PREFIX}-openssl"
"${MINGW_PACKAGE_PREFIX}-python"
"${MINGW_PACKAGE_PREFIX}-tcl"
#"${MINGW_PACKAGE_PREFIX}-readline"
#"${MINGW_PACKAGE_PREFIX}-wineditline"
"${MINGW_PACKAGE_PREFIX}-zlib"
"winpty")
options=('staticlibs' 'strip')
source=("https://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.tar.bz2"
postgresql-12.0-mingw-link.patch
postgresql-9.5.1-pl-perl.patch
postgresql-9.5.1-pl-python.patch
postgresql-9.4.1-pl-tcl.patch
postgresql-9.4.1-mingw-enable-readline.patch)
sha256sums=('12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f'
'607217b422349770d25af20f88e4a7925e68bb934232dff368c2ee59f24249a4'
'57c1e9b75c042af591b05b9dda60e6327b5c364bb5adc2675da8a48b47e11b81'
'1afbe207b0fe8c4178cc3f8cb4e3923c7c000207d22ec4f3875d6358b312a1d5'
'ab9c42374b4e8a01b598810b19b583d9ee7bf5c43c39c019f66b62aacac38926'
'51c72fbd380d23cf944165405221912a277b9be99e285479772b39cacbbf384f')
prepare() {
cd ${srcdir}/postgresql-${pkgver}
patch -p1 -i ${srcdir}/postgresql-12.0-mingw-link.patch
patch -p1 -i ${srcdir}/postgresql-9.5.1-pl-perl.patch
patch -p1 -i ${srcdir}/postgresql-9.5.1-pl-python.patch
patch -p1 -i ${srcdir}/postgresql-9.4.1-pl-tcl.patch
#patch -p1 -i ${srcdir}/postgresql-9.4.1-mingw-enable-readline.patch
sed -s "s|2\\.69|2\\.71|g" -i configure.in
autoreconf -fiv
}
build() {
[[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}"
mkdir -p "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}"
export PYTHON=${MINGW_PREFIX}/bin/python
../postgresql-${pkgver}/configure \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--target=${MINGW_CHOST} \
--prefix=${MINGW_PREFIX} \
--with-openssl \
--enable-thread-safety \
--enable-integer-datetimes \
--enable-nls \
--disable-rpath \
--with-ldap \
--with-libxml \
--with-libxslt \
--with-python \
--without-perl \
--with-tcl \
--with-tclconfig=${MINGW_PREFIX}/lib
#--with-libedit-preferred
#for dir in src/interfaces src/bin/pg_config src/bin/psql src/bin/pg_dump; do
# make -C ${dir}
#done
make
}
package() {
cd "${srcdir}/build-${CARCH}"
mkdir -p "${pkgdir}${MINGW_PREFIX}/"{bin,include,lib}
make DESTDIR="${pkgdir}" install
# install libs
#for dir in src/interfaces src/bin/pg_config src/bin/psql src/bin/pg_dump; do
# make -C ${dir} DESTDIR="${pkgdir}" install
#done
# Move dll's to bin directory
mv "${pkgdir}${MINGW_PREFIX}/lib/"*.dll "${pkgdir}${MINGW_PREFIX}/bin/"
# Rename the .a files to .dll.a as they're actually import libraries and not static libraries
#for implib in "${pkgdir}${MINGW_PREFIX}/lib/"*.a; do
# mv $implib ${implib/.a/.dll.a}
#done
# these headers are needed by the not-so-public headers of the interfaces
mkdir -p "${pkgdir}${MINGW_PREFIX}"/include/{libpq,postgresql/internal/libpq}
install -m644 ${srcdir}/postgresql-${pkgver}/src/include/c.h "${pkgdir}${MINGW_PREFIX}/include/postgresql/internal/"
install -m644 ${srcdir}/postgresql-${pkgver}/src/include/port.h "${pkgdir}${MINGW_PREFIX}/include/postgresql/internal/"
install -m644 ${srcdir}/postgresql-${pkgver}/src/include/postgres_fe.h "${pkgdir}${MINGW_PREFIX}/include/postgresql/internal/"
install -m644 ${srcdir}/postgresql-${pkgver}/src/include/libpq/pqcomm.h "${pkgdir}${MINGW_PREFIX}/include/postgresql/internal/libpq/"
# these headers are needed by the public headers of the interfaces
# install -m644 pg_config.h "${pkgdir}${MINGW_PREFIX}/include/"
# install -m644 pg_config_os.h "${pkgdir}${MINGW_PREFIX}/include/"
# install -m644 pg_config_ext.h "${pkgdir}${MINGW_PREFIX}/include/"
# cd "${srcdir}/postgresql-$pkgver/src/include"
# install -m644 postgres_ext.h "${pkgdir}${MINGW_PREFIX}/include/"
# install -m644 libpq/libpq-fs.h "${pkgdir}${MINGW_PREFIX}/include/libpq/"
# install -m644 pg_config_manual.h "${pkgdir}${MINGW_PREFIX}/include/"
# Use winpty-git script to invoke utilities. Please don't move this into a patch as
# hopefully one day we won't need this hack.
for f in clusterdb createdb createuser dropdb dropuser initdb pg_basebackup pg_dump pg_dumpall pg_receivewal pg_restore psql reindexdb vacuumdb; do
mv "${pkgdir}"${MINGW_PREFIX}/bin/${f}.exe "${pkgdir}"${MINGW_PREFIX}/bin/${f}_exe
_exename="${f}"
echo "#!/usr/bin/env bash" > "${pkgdir}${MINGW_PREFIX}/bin/${_exename}"
echo '/usr/bin/winpty "$( dirname ${BASH_SOURCE[0]} )/'${_exename}'.exe" "$@"' >> "${pkgdir}${MINGW_PREFIX}/bin/${_exename}"
mv "${pkgdir}"${MINGW_PREFIX}/bin/${f}_exe "${pkgdir}"${MINGW_PREFIX}/bin/${f}.exe
done
}