blob: 64bcd18048b3e75a6337fa9f521335f52729fb37 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
#!/bin/sh
NAME="cabal"
DESC="The Haskell Cabal"
MAKEDEPS="ghc gmp libffi zlib cabal-bootstrap"
PKG_VER=3.8.1.0
SOURCE="https://hackage.haskell.org/package/cabal-install-$PKG_VER/cabal-install-$PKG_VER.tar.gz"
ADDITIONAL="
cabal.project.freeze
"
cabal_update() {
cd $BUILD_ROOT
# 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
(
cd "$BUILD_ROOT"
HOME="$_cabal_home" cabal v2-freeze \
--allow-newer --shadow-installed-packages
mv cabal.project.freeze "$startdir/"
)
}
prepare() {
apply_patches
ln -sf "$BUILD_ROOT/cabal.project.freeze" \
"$BUILD_ROOT/cabal.project.freeze"
}
build() {
HOME="$_cabal_home" cabal v2-update
HOME="$_cabal_home" cabal v2-build all \
--allow-newer \
--jobs=${JOBS:-1} \
--prefix=/usr \
--docdir=/usr/share/doc/cabal \
--sysconfdir=/etc
}
package() {
# With v2- cabal no longer wants us to separate v2-build and
# v2-install, however, we don't want to build everything in a
# fakeroot. We work around this by copying binaries build in the
# previous step manually.
#
# See https://github.com/haskell/cabal/issues/6919#issuecomment-761563498
HOME="$_cabal_home" cabal list-bin --allow-newer all:exes | \
xargs install -Dm755 -t "$PKG_DEST"/usr/bin
mkdir -p "$PKG_DEST"/usr/share/man/man1
HOME="$_cabal_home" cabal man --raw \
> "$PKG_DEST"/usr/share/man/man1/cabal.1
install -Dm644 LICENSE "$PKG_DEST/usr/share/licenses/cabal/LICENSE"
}
|