Celeste fdc1c1ea26 community/glirc: fix cabal_update helper function
running unpack and default_prepare to apply patches
before cabal_update changes current dir to builddir

ref: ee93b4ee4ebf214ae392362b1f3f864d1d8bfa43
2024-11-30 02:44:46 +00:00

97 lines
2.7 KiB
Plaintext

# Maintainer: Celeste <cielesti@protonmail.com>
maintainer="Celeste <cielesti@protonmail.com>"
pkgname=glirc
pkgver=2.41
pkgrel=0
pkgdesc="Console IRC client written in Haskell"
url="https://github.com/glguy/irc-core"
arch="aarch64 x86_64" # ghc
license="ISC"
makedepends="
cabal
ghc
ncurses-dev
openssl-dev
"
subpackages="$pkgname-doc"
_hsopenssl=7c90fc32bd2539b0de0280e686b9836f301e39aa
source="https://hackage.haskell.org/package/glirc-$pkgver/glirc-$pkgver.tar.gz
https://github.com/glguy/HsOpenSSL/archive/$_hsopenssl/HsOpenSSL-$_hsopenssl.tar.gz
cabal.project.freeze
"
# Directory where cabal files are stored.
export CABAL_DIR="${CABAL_DIR:-"$srcdir/cabal"}"
cabal_update() {
local repo="hackage.haskell.org"
# Default config uses HTTP, change it to HTTPS.
[ -f "$CABAL_DIR"/config ] || {
cabal user-config init
cabal user-config update -a \
"repository $repo {url: https://$repo/}"
}
cd "$startdir"
[ -d "$builddir" ] || abuild unpack
msg "Freezing $pkgname dependencies"
# Resolve deps and generate fresh cabal.project.freeze with version constraints.
(
cd "$builddir" || {
error 'Is $builddir set correctly?'
return 1
}
cabal v2-update
cabal v2-freeze --shadow-installed-packages
mv -v cabal.project.freeze "$startdir"/
)
if ! abuild checksum; then
die "Failed to update checksum, run 'abuild checksum' manually"
fi
}
prepare() {
cp -r "$srcdir"/HsOpenSSL-$_hsopenssl "$builddir"/HsOpenSSL
default_prepare
cat > "$builddir"/cabal.project <<-'END'
packages: glirc.cabal HsOpenSSL/HsOpenSSL.cabal
END
ln -svf "$srcdir"/cabal.project.freeze "$builddir"/
}
build() {
cabal v2-update
cabal v2-build glirc:exes \
--jobs=${JOBS:-1} \
--prefix=/usr \
--docdir=/usr/share/doc/$pkgname \
--sysconfdir=/etc \
--ghc-options="-optc=-Wno-incompatible-pointer-types"
# FIXME: errors are related to code generated by Haskell:
# https://github.com/haskell-cryptography/HsOpenSSL/issues/88
}
check() {
cabal test
}
package() {
install -Dvm755 "$(cabal list-bin $pkgname)" -t "$pkgdir"/usr/bin/
install -Dvm644 $pkgname.1 -t "$pkgdir"/usr/share/man/man1/
install -Dvm644 README.md -t "$pkgdir"/usr/share/doc/$pkgname/
install -Dvm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
}
sha512sums="
9a5655a84ea79364035e6f7c68091d92ee968636b3ccd3461c673c1eedac3ef02e544e9cde88d9ea8adc660fe7cbdd807d0ddf8d3e1c0f5ce82b3dd41bf3a4d6 glirc-2.41.tar.gz
435c4e3f8d5f73eb2a1d6cb25352dea31d19f8881e5625e12a96a4258de64a8d40caf4d3a79084c2319ffdeb482ea82f0c7ca1137d353bdc258665626723dbd9 HsOpenSSL-7c90fc32bd2539b0de0280e686b9836f301e39aa.tar.gz
1fbd9baa539334941f344ee954bad0ecc67b0aa22d77a24494eca934a0f46380838594d6d3e700f6e5572cbf7452662edeb7dda85a586a13a8c37416743a165d cabal.project.freeze
"