# Maintainer: Luke T. Shumaker <lukeshu@parabola.nu>
# Maintainer (aur): Morgenstern <charles [at] charlesbwise [dot] com>
# Contributor (aur): Konstantin Shalygin <k0ste@k0ste.ru>
#
# Rationale: Dependency of pcr/spf-engine

pkgname=python-pymilter
_pkgname=${pkgname#python-}
pkgver=1.0.6.r7.g20751ea
# We go past the latest stable release to get Python 3.13 and GCC 15 fixes.
_commit=20751ea7060741a2ce16e762daae87220f0e8a76
pkgrel=1
pkgdesc="Python bindings for libmilter API"
arch=('x86_64' 'i686' 'armv7h')
url="https://github.com/sdgathman/pymilter/"
license=('GPL-2.0-or-later')

depends=('libmilter' 'python-bsddb')
makedepends=('git' 'python-build' 'python-installer' 'python-wheel' 'python-setuptools')

source=("git+https://github.com/sdgathman/pymilter.git#commit=${_commit}"
        0001-test-Detect-all-types-of-FAILURE.patch
        0002-testpolicy-Don-t-rely-on-an-external-makemap-command.patch)
sha256sums=('daee15e33aaf5a741db17eb2b244fec3618f94d7a22c9d4527fc2d0d86faf8f9'
            'ca1408d2ebdc4f60a36f42888024053f2b197af600ea538d7de75c803aba9d02'
            'c9257fb9d8446fa27a2d2828924b2d5f8d64e350e4cefbf411c44b12bbc9afac')

pkgver() {
  cd "$_pkgname"
  git describe --long --tags | sed -E 's/^pymilter-(.*)-([0-9]+)-g/\1.r\2.g/'
}

prepare() {
  cd "$_pkgname"
  patch -p0 -i pymilter-check.patch
  patch -p1 -i ../0001-test-Detect-all-types-of-FAILURE.patch
  patch -p1 -i ../0002-testpolicy-Don-t-rely-on-an-external-makemap-command.patch
}

build() {
  cd "$_pkgname"
  python -m build --wheel --no-isolation
}

check() {
  cd "$_pkgname"
  PYTHONPATH="$(echo build/lib.*):." python test.py
}

package() {
  _python_version=$(pacman -S --print-format='%v' python|cut -d- -f1|cut -d. -f1,2)
  depends+=("python>=${_python_version}" "python<${_python_version%.*}.$(( ${_python_version##*.} + 1 ))")

  cd "$_pkgname"
  python -m installer --destdir="${pkgdir}" dist/*.whl
}
