common/build-style/haskell-stack.sh: use --skip-ghc-check

This forces all haskell-stack build-style using templates to use
the system ghc and never download any binary distributions even
if the version does not match. This is usually fine as long as
the stackage used for the template is recent enough. If it's
not, it should probably be bumped anyway.

This also enables stack to work on all platforms, even those for
which stack does not offer any binary ghc downloads, as long as
the system ghc is provided, e.g. for ppc64le.
This commit is contained in:
q66 2019-08-01 22:20:14 +02:00 committed by Leah Neukirchen
parent 0f1dea6916
commit f0b03f1df1

View file

@ -5,6 +5,11 @@
# stackage="lts-X.Y" # or include a stack.yaml in $FILESDIR
#
do_build() {
# use --skip-ghc-check to really force stack to use the ghc in the system
# --system-ghc still downloads if stackage ghc version does not match ours
# this fails on all platforms other than x86_64 glibc when we bump ghc
local _stack_args="--system-ghc --skip-ghc-check"
if [ -f "${FILESDIR}/stack.yaml" ]; then
msg_normal "Using stack config in stack.yaml.\n"
cp "${FILESDIR}/stack.yaml" .
@ -16,15 +21,17 @@ do_build() {
fi
msg_normal "Using stackage resolver ${stackage}.\n"
STACK_ROOT=$wrksrc/.stack \
stack init --system-ghc --force --resolver ${stackage}
stack init ${_stack_args} --force --resolver ${stackage}
fi
STACK_ROOT=$wrksrc/.stack stack --system-ghc ${makejobs} build \
STACK_ROOT=$wrksrc/.stack stack ${_stack_args} ${makejobs} build \
${make_build_args}
}
do_install() {
local _stack_args="--system-ghc --skip-ghc-check"
vmkdir usr/bin
STACK_ROOT=$wrksrc/.stack stack --system-ghc install \
STACK_ROOT=$wrksrc/.stack stack ${_stack_args} install \
${make_build_args} --local-bin-path=${DESTDIR}/usr/bin
}