bbbb1efebc
Incorporates #20368 Also uses a recent libffi tarball for generating bindists. This may not matter so much for x86_64 but the libffi tarball ghc bundles by default is from 2017 and there is an assortment of bugs that would be too much effort to patch. Instead just fetch a fresh, confirmed-to-work tarball from upstream source. Currently selected revision is 4d6d286 because that's almost just the official 3.3 release, but with a bunch of fixes applied (which we are patching in in our own libffi). It was selected to predate some more invasive changes made in libffi master.
93 lines
2.9 KiB
Bash
93 lines
2.9 KiB
Bash
# Template file for 'ghc'
|
|
pkgname=ghc
|
|
# Keep this synchronized with http://www.stackage.org/lts
|
|
version=8.8.3
|
|
revision=1
|
|
wrksrc="ghc-${version%[!0-9]}"
|
|
build_style=gnu-configure
|
|
configure_args="--with-system-libffi"
|
|
hostmakedepends="automake docbook-xsl ghc-bin libxslt python3-Sphinx"
|
|
makedepends="gmp-devel libffi-devel libnuma-devel ncurses-devel"
|
|
depends="perl gcc libffi-devel gmp-devel libnuma-devel"
|
|
short_desc="Glorious Haskell Compiler"
|
|
maintainer="Leah Neukirchen <leah@vuxu.org>"
|
|
license="BSD-3-Clause"
|
|
homepage="http://www.haskell.org/ghc/"
|
|
distfiles="http://www.haskell.org/ghc/dist/${version%[!0-9]}/${pkgname}-${version%[!0-9]}-src.tar.xz"
|
|
checksum=e0dcc0aaf3e234c5978f29e6df62947e97720ab404ec0158343df211c5480f89
|
|
patch_args="-Np1"
|
|
nocross=yes # ask leah2 before wasting time trying to do that
|
|
_bindir="/usr/lib/${pkgname}-${version}/bin"
|
|
nopie_files="
|
|
${_bindir}/ghc
|
|
${_bindir}/ghc-iserv
|
|
${_bindir}/ghc-iserv-dyn
|
|
${_bindir}/ghc-iserv-prof
|
|
${_bindir}/ghc-pkg
|
|
${_bindir}/haddock
|
|
${_bindir}/hp2ps
|
|
${_bindir}/hpc
|
|
${_bindir}/hsc2hs
|
|
${_bindir}/runghc
|
|
${_bindir}/unlit
|
|
"
|
|
|
|
build_options="bindist"
|
|
desc_option_bindist="Create a binary distribution"
|
|
|
|
# Recent safe to use tarball
|
|
# GHC's bundled tarball is from 2017, buggy on some archs
|
|
_ffi_rev=4d6d2866ae43e55325e8ee96561221804602cd7a
|
|
|
|
if [ "$build_option_bindist" ]; then
|
|
# Strip --with-system-libffi from configuration
|
|
configure_args=${configure_args/--with-system-libffi/}
|
|
# Required to make the binary distribution tarball
|
|
hostmakedepends+=" tar xz libtool libltdl-devel"
|
|
# Fetch a safe libffi tarball
|
|
distfiles+=" https://github.com/libffi/libffi/archive/${_ffi_rev}.tar.gz>libffi-${_ffi_rev}.tar.gz"
|
|
checksum+=" f7a17fa61261942e93450ec52272b5f09d8f42cfffd147867587f969ee01b739"
|
|
skip_extraction+=" libffi-${_ffi_rev}.tar.gz"
|
|
fi
|
|
|
|
post_extract() {
|
|
[ "$build_option_bindist" ] || return 0
|
|
rm -f libffi-tarballs/libffi-*.tar.gz
|
|
cp ${XBPS_SRCDISTDIR}/${pkgname}-${version}/libffi-${_ffi_rev}.tar.gz \
|
|
libffi-tarballs
|
|
}
|
|
|
|
pre_configure() {
|
|
export CONF_CC_OPTS_STAGE0=$CFLAGS_FOR_BUILD
|
|
export CONF_CC_OPTS_STAGE1=$CFLAGS
|
|
export CONF_CC_OPTS_STAGE2=$CFLAGS
|
|
export CONF_GCC_LINKER_OPTS_STAGE0=$LDFLAGS_FOR_BUILD
|
|
export CONF_GCC_LINKER_OPTS_STAGE1=$LDFLAGS
|
|
export CONF_GCC_LINKER_OPTS_STAGE2=$LDFLAGS
|
|
export CONF_CPP_OPTS_STAGE0=$CPPFLAGS_FOR_BUILD
|
|
export CONF_CPP_OPTS_STAGE1=$CPPFLAGS
|
|
export CONF_CPP_OPTS_STAGE2=$CPPFLAGS
|
|
|
|
autoreconf -fi
|
|
}
|
|
|
|
post_install() {
|
|
sed -i 's#/usr/lib/ccache/bin/##g' ${DESTDIR}/usr/lib/ghc-${version%[!0-9]}/settings
|
|
vlicense LICENSE
|
|
|
|
if [ "$build_option_bindist" ]; then
|
|
msg_normal "Creating binary distribution for ${XBPS_TARGET_MACHINE}...\n"
|
|
make ${makejobs} binary-dist
|
|
dest="${XBPS_SRCDISTDIR}"/distfiles/ghc-${version}-void-linux-${XBPS_TARGET_LIBC}.tar.xz
|
|
install -d -m 0644 ghc-${version}-*-unknown-linux.tar.xz "${dest}"
|
|
msg_normal "Installed in ${dest}\n"
|
|
fi
|
|
}
|
|
|
|
ghc-doc_package() {
|
|
archs=noarch
|
|
short_desc+=" -- documentation"
|
|
pkg_install() {
|
|
vmove usr/share/doc
|
|
}
|
|
}
|