# Maintainer: FWS
# Dépendance de l'installateur Anaconda (rhinstaller) — gestion d'exceptions.
# setup.py amont = distutils + `setup.py install` : tous deux supprimés
# (Python 3.12+, setuptools 80+). Le paquet étant du pur Python, on installe
# l'arborescence à la main plutôt que de patcher la chaîne distutils.
pkgname=python-meh
pkgver=0.43
pkgrel=2
pkgdesc="Python exception handling library (dépendance Anaconda)"
arch=('any')
url="https://github.com/rhinstaller/python-meh"
license=('GPL-2.0-or-later')
depends=('python' 'python-gobject' 'python-dbus' 'libreport')
_tag="r$pkgver-1"
source=("$pkgname-$pkgver.tar.gz::https://github.com/rhinstaller/python-meh/archive/refs/tags/$_tag.tar.gz")
sha256sums=('cd50301794ab68a064715f1ace960f6de07aea809aa85f73087d44573c98be52')
_srcdir="python-meh-$_tag"

prepare() {
  cd "$srcdir/$_srcdir"
  # gettext.ldgettext a été SUPPRIMÉ en Python 3.11 : sans ce remplacement, le
  # gestionnaire d'exceptions d'Anaconda plante LUI-MÊME (AttributeError) dès
  # qu'il doit AFFICHER une erreur → traceback brut au lieu du dialogue meh,
  # en GUI comme en TUI. dgettext est l'équivalent direct (ldgettext n'était
  # que la variante bytes). Corrigé en amont après 0.43.
  sed -i 's/gettext\.ldgettext(/gettext.dgettext(/' \
      meh/handler.py meh/ui/text.py meh/ui/gui.py
  # .pyc d'une extraction précédente (src/ n'est pas nettoyé par makepkg -f) :
  # à jeter, sinon ils partiraient dans le paquet via cp -a.
  find meh -type d -name __pycache__ -exec rm -rf {} +
  if grep -rn --include='*.py' 'ldgettext' meh/; then
    echo "ERREUR : ldgettext encore présent après patch" >&2
    return 1
  fi
}

package() {
  cd "$srcdir/$_srcdir"
  local sitedir
  sitedir=$(python -c 'import site; print(site.getsitepackages()[0])')
  install -d "$pkgdir$sitedir"
  cp -a meh "$pkgdir$sitedir/meh"
  # -d : grave le chemin d'exécution réel dans les .pyc (pas le $pkgdir de build).
  python -m compileall -q -d "$sitedir/meh" "$pkgdir$sitedir/meh" || true
  install -Dm644 ui/exception-dialog.glade -t "$pkgdir/usr/share/python-meh/"
  install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
