# Maintainer: Alexey Pavlov _realname=postgresql pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") # "${MINGW_PACKAGE_PREFIX}-pg_probackup") doesn't build with psql-18 # https://github.com/postgrespro/pg_probackup/issues/661 pkgbase=mingw-w64-${_realname} _backupver=2.5.15 _pg_ver=18.1 pkgver=${_pg_ver} _back_commit='911553be3d5b60e17c7ead9d099aa4e4cb655e25' pkgrel=2 arch=('any') mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') url="https://www.postgresql.org/" msys2_repository_url="https://git.postgresql.org/gitweb/?p=postgresql.git" msys2_references=( 'archlinux: postgresql' 'cpe: cpe:/a:postgresql:postgresql' ) license=('spdx:PostgreSQL') depends=("${MINGW_PACKAGE_PREFIX}-gettext-runtime" "${MINGW_PACKAGE_PREFIX}-icu" #"${MINGW_PACKAGE_PREFIX}-llvm-libs" "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-libwinpthread" "${MINGW_PACKAGE_PREFIX}-lz4" "${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-readline" #"${MINGW_PACKAGE_PREFIX}-wineditline" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-zstd" "winpty") makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-meson" "${MINGW_PACKAGE_PREFIX}-pkgconf" "${MINGW_PACKAGE_PREFIX}-gettext-tools" "${MINGW_PACKAGE_PREFIX}-libxslt" #"${MINGW_PACKAGE_PREFIX}-llvm" "${MINGW_PACKAGE_PREFIX}-perl" "${MINGW_PACKAGE_PREFIX}-python" "${MINGW_PACKAGE_PREFIX}-tcl" "git") optdepends=("${MINGW_PACKAGE_PREFIX}-libxslt: XML plugin" "${MINGW_PACKAGE_PREFIX}-perl: for PL/Perl support" "${MINGW_PACKAGE_PREFIX}-python: for PL/Python support" "${MINGW_PACKAGE_PREFIX}-tcl: for PL/Tcl support") source=("https://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.tar.bz2" "git+https://github.com/Alexpux/pg_probackup#commit=$_back_commit" postgresql-13.1-disable-wsa-invalid-event-static-assert.patch postgresql-14.0-use-mingw-setjmp-on-ucrt.patch postgresql-add-pgprobackup.patch) sha256sums=('ff86675c336c46e98ac991ebb306d1b67621ece1d06787beaade312c2c915d54' 'bdc0b4f495420955400cfa85aa4c32d1a1853ec5ae1b1f5cc8998087f8270bcc' 'bd790cc96bae65f49444b38646e2855480522ce1af8717f4ed7dfede538e4669' 'fe336eac7892b23988189be0178efc95449d8d08493db83754058f5f37bb8ea9' '5cd42ed05d21e309f1d591828bffc16e6acd8623b5ca59629e6cdb30c2a08318') # Helper macros to help make tasks easier # apply_patch_with_msg() { for _patch in "$@" do msg2 "Applying ${_patch}" patch -Nbp1 -i "${srcdir}/${_patch}" done } prepare() { cd "${srcdir}"/${_realname}-${pkgver} cp -rf "${srcdir}"/pg_probackup "${srcdir}"/${_realname}-${pkgver}/src/bin apply_patch_with_msg \ postgresql-13.1-disable-wsa-invalid-event-static-assert.patch \ postgresql-14.0-use-mingw-setjmp-on-ucrt.patch #postgresql-add-pgprobackup.patch } build() { mkdir -p "${srcdir}"/build-${MSYSTEM} && cd "${srcdir}"/build-${MSYSTEM} declare -a _extra_config if check_option "debug" "n"; then _extra_config+=("--buildtype=release") else _extra_config+=("--buildtype=debug") fi MSYS2_ARG_CONV_EXCL="--prefix=" \ ${MINGW_PREFIX}/bin/meson setup \ --prefix=${MINGW_PREFIX} \ --default-library=shared \ -Drpath=false \ -Dicu=enabled \ -Dldap=enabled \ -Dlibxml=enabled \ -Dlibxslt=enabled \ -Dllvm=disabled \ -Dlz4=enabled \ -Dnls=enabled \ -Dplperl=enabled \ -Dplpython=enabled \ -Dpltcl=enabled \ -Dreadline=enabled \ -Dssl=openssl \ -Dzlib=enabled \ -Dzstd=enabled \ "${_extra_config[@]}" \ ../${_realname}-${pkgver} ${MINGW_PREFIX}/bin/meson compile } check() { cd "${srcdir}"/build-${MSYSTEM} ${MINGW_PREFIX}/bin/meson test } package() { pkgdesc="Libraries for use with PostgreSQL (mingw-w64)" cd "${srcdir}"/build-${MSYSTEM} DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/meson install # Remove unneeded import libraries for plugins/modules rm -f "${pkgdir}"${MINGW_PREFIX}/lib/postgresql/*.dll.a # Remove pg_probackup files # rm -f "${pkgdir}"${MINGW_PREFIX}/bin/pg_probackup.exe # find "${pkgdir}"${MINGW_PREFIX}/share -iname "pg_probackup*" -exec rm {} \; # 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 cat > "${pkgdir}${MINGW_PREFIX}/bin/${f}" <