# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Thomas Dziedzic <gostrc@gmail.com>
# Contributor: Vesa Kaihlavirta <vesa@archlinux.org>
# Contributor: Arch Haskell Team <arch-haskell@haskell.org>

pkgname=cabal-install
pkgver=3.10.3.0
pkgrel=3
pkgdesc="The command-line interface for Cabal and Hackage."
url="https://hackage.haskell.org/package/cabal-install"
license=('BSD-3-Clause')
arch=('x86_64' 'aarch64')
depends=('ghc-libs' 'haskell-async' 'haskell-base16-bytestring' 'haskell-cabal-install-solver' 'haskell-cryptohash-sha256'
         'haskell-echo' 'haskell-edit-distance' 'haskell-hackage-security' 'haskell-hashable'
         'haskell-http' 'haskell-network-uri' 'haskell-random' 'haskell-regex-base'
         'haskell-regex-posix' 'haskell-resolv' 'haskell-safe-exceptions' 'haskell-tar' 'haskell-zlib' 'haskell-lukko')
makedepends=('ghc')
source=("https://hackage.haskell.org/package/cabal-install-${pkgver}/cabal-install-${pkgver}.tar.gz"
        $pkgname-key-holder-updates-11095.patch::https://github.com/haskell/cabal/pull/11095.patch)
sha512sums=('e004dfc05903316c3264aa7a056d287e25f0589fa9adea2e93114e1750f3ae9774177b5d274c78fee37b6ba4bd5c03455d72437258b168607c2a81856ef06ddb'
            '82140a875ba94d73c751be17a18b29a186004e0ec35eceddcb62caaf58ce5dcab812fa49c9b8cdef0be393dca3f7bf2696fdcb32a75b9c430d0a641ce5bded5e')

prepare() {
  cd $pkgname-$pkgver
  patch -p2 -l -i ../$pkgname-key-holder-updates-11095.patch
}

build() {
  cd $pkgname-$pkgver

  runhaskell Setup configure -O --enable-shared --enable-debug-info --enable-executable-dynamic --disable-library-vanilla \
    --prefix=/usr --docdir=/usr/share/doc/$pkgname --datasubdir=$pkgname "${_opts[@]}" \
    --dynlibdir=/usr/lib --libsubdir=\$compiler/site-local/\$pkgid
  runhaskell Setup build $MAKEFLAGS
  runhaskell Setup register --gen-script
  runhaskell Setup unregister --gen-script
  sed -i -r -e "s|ghc-pkg.*update[^ ]* |&'--force' |" register.sh
  sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh

}

package() {
  cd $pkgname-$pkgver

  install -D -m744 register.sh "$pkgdir"/usr/share/haskell/register/$pkgname.sh
  install -D -m744 unregister.sh "$pkgdir"/usr/share/haskell/unregister/$pkgname.sh
  runhaskell Setup copy --destdir="$pkgdir"

  install -Dm644 LICENSE \
    "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"

  install -Dm644 bash-completion/cabal \
    "${pkgdir}/usr/share/bash-completion/completions/cabal"
}
