aboutsummaryrefslogtreecommitdiffstats
path: root/community/cabal/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/cabal/APKBUILD')
-rw-r--r--community/cabal/APKBUILD54
1 files changed, 26 insertions, 28 deletions
diff --git a/community/cabal/APKBUILD b/community/cabal/APKBUILD
index 6499e52aed2..2ba0f57efa4 100644
--- a/community/cabal/APKBUILD
+++ b/community/cabal/APKBUILD
@@ -1,15 +1,16 @@
# Contributor: Steeve Chailloux <steeve.chailloux@orus.io>
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer: Mitch Tishmack <mitch.tishmack@gmail.com>
+# Contributor: Mitch Tishmack <mitch.tishmack@gmail.com>
+# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
pkgname=cabal
-pkgver=3.6.2.0
-pkgrel=1
+pkgver=3.10.3.0
+pkgrel=0
pkgdesc="The Haskell Cabal"
-url="https://haskell.org/"
-arch="x86_64" # Limited by GHC
+url="https://haskell.org/cabal"
+arch="aarch64 x86_64" # Limited by GHC
license="BSD-3-Clause"
-depends="gmp zlib"
-makedepends="ghc gmp-dev libffi-dev zlib-dev cabal-bootstrap"
+depends="ghc gmp zlib curl"
+makedepends="ghc>=9.4.6 gmp-dev libffi-dev zlib-dev cabal-bootstrap"
options="net !check" # TODO: enable tests
subpackages="$pkgname-doc"
source="https://hackage.haskell.org/package/cabal-install-$pkgver/cabal-install-$pkgver.tar.gz
@@ -19,34 +20,30 @@ builddir="$srcdir/cabal-install-$pkgver"
# We currently don't package Haskell dependencies in aports. As such,
# building cabal requires a pre-existing cabal version to download all
# dependencies of the cabal package itself. Presently, this is achieved
-# through the separate cabal-bootstrap package which bootstraps cabal
-# from source using a provided Python script. We then use
-# cabal-bootstrap in this APKBUILD to build a full cabal-install
-# distribution using v2-build.
+# through the separate cabal-stage0 package which bootstraps cabal
+# from source using a provided Python script. From that point onward,
+# we can use the previous version of cabal to compile cabal.
#
-# Alternatively, we could also use a pre-compiled static cabal binary
-# (provided by cabal upstream) in case the source-based bootstraping
-# process turns out to be too much work to maintain in the long run.
+# For this reason, both community/cabal-stage0 and community/cabal
+# provide the virtual cabal-bootstrap package but the former has the
+# lower priority.
#
-# See https://downloads.haskell.org/~cabal/cabal-install-latest/
-#
-# Furthermore, it may make sense to have this package provide
-# cabal-bootstrap, thereby allowing compiling cabal using the previous
-# version of cabal as available in the repositories. However, since
-# cabal is dynamically linked aganist a few libraries (libffi, libgmp, …)
-# this may not work on soname bumps of these libraries.
+# See also https://lists.alpinelinux.org/~alpine/devel/%3C33KG0XO61I4IL.2Z7RTAZ5J3SY6%408pit.net%3E
+provides="cabal-bootstrap"
+provider_priority=100 # highest
# Directory were cabal files are stored.
_cabal_home="$srcdir/dist"
cabal_update() {
+ cd $builddir
# Build a freeze file to make the build reproducible.
# This freeze file is stored in $source and thus tracked in Git.
- HOME="$_cabal_home" cabal v2-update --allow-newer
+ HOME="$_cabal_home" cabal v2-update
(
cd "$builddir"
HOME="$_cabal_home" cabal v2-freeze \
- --allow-newer --shadow-installed-packages
+ --shadow-installed-packages
mv cabal.project.freeze "$startdir/"
)
}
@@ -58,9 +55,10 @@ prepare() {
}
build() {
+ # ghc version path
+ export PATH="$PATH:/usr/lib/llvm15/bin"
HOME="$_cabal_home" cabal v2-update
- HOME="$_cabal_home" cabal v2-build all \
- --allow-newer \
+ HOME="$_cabal_home" cabal v2-build cabal-install:exes \
--jobs=${JOBS:-1} \
--prefix=/usr \
--docdir=/usr/share/doc/$pkgname \
@@ -74,7 +72,7 @@ package() {
# previous step manually.
#
# See https://github.com/haskell/cabal/issues/6919#issuecomment-761563498
- HOME="$_cabal_home" cabal list-bin --allow-newer all:exes | \
+ HOME="$_cabal_home" cabal list-bin cabal-install:exes | \
xargs install -Dm755 -t "$pkgdir"/usr/bin
mkdir -p "$pkgdir"/usr/share/man/man1
@@ -85,6 +83,6 @@ package() {
}
sha512sums="
-a02d72fd7d0bf7778b1d4f2925e0b78f6c321cb29d59d559da758bfa6a0cd17fc776bd64911db8d28a208189b35db50aceae109782a1011e059446c4c2d77ad3 cabal-install-3.6.2.0.tar.gz
-715548a193a803b62903c4bd58aa8a99275ab87911510bc9350f2a1c1ee79a7a077a4bb3fa346e4add80f48cc13558066938d9f964332f03def3dac4ec57d79b cabal.project.freeze
+e004dfc05903316c3264aa7a056d287e25f0589fa9adea2e93114e1750f3ae9774177b5d274c78fee37b6ba4bd5c03455d72437258b168607c2a81856ef06ddb cabal-install-3.10.3.0.tar.gz
+0b5d4302eb326376385636e17dd42ea592f6b9395c2df7c9b14cca81b41d24629a1b6f4c65fe674b8cd072c9ee164776e88fb520c19da14f853d5d5113847775 cabal.project.freeze
"