diff --git a/haskell-9.2.2-0.build.sh b/haskell-9.2.2-0.build.sh new file mode 100755 index 0000000..e7b2749 --- /dev/null +++ b/haskell-9.2.2-0.build.sh @@ -0,0 +1,70 @@ +#! /bin/bash + +PKG=haskell +VERSION=9.2.2 +BUILD=0 + +GHCUP_VERSION=0.1.17.8 + +PREFIX=/pkg/$PKG-$VERSION-$BUILD +if [ -n "$TESTING" ]; then PREFIX=/dev/shm/$PKG-$VERSION-$BUILD ; fi + +set -xe +umask 022 + +BUILD_TMPDIR=/dev/shm/$PKG-$VERSION-$BUILD.build.tmp +test -d $BUILD_TMPDIR && ( chmod -R u+rwx $BUILD_TMPDIR || true ; rm -rf $BUILD_TMPDIR ) +mkdir -p $BUILD_TMPDIR/home +export TMPDIR=$BUILD_TMPDIR +export HOME=$BUILD_TMPDIR/home + +exec $PREFIX/profile <<-EOF + PATH=$PREFIX/bin:$PREFIX/.ghcup/bin:\$PATH + export LD_LIBRARY_PATH=$PREFIX/lib\${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH} + if [ -d $PREFIX/.compatlibs ]; then export LD_LIBRARY_PATH=$PREFIX/.compatlibs\${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH} ; fi +EOF +. $PREFIX/profile + +export MAKEFLAGS="-j $(nproc)" + +BUILDDIR=$PREFIX/build + +mkdir -p $BUILDDIR +cd $BUILDDIR + +# https://www.haskell.org/platform/linux.html#linux-generic: +# The recommended way to install the components of the generic platform is using ghcup to install ghc and cabal-install +# and following the instructions at haskellstack.org to install stack + +# https://www.haskell.org/ghcup/: +# if you don't like curl | sh, see other installation method +# ---> https://gitlab.haskell.org/haskell/ghcup-hs#manual-install + +mkdir -p $PREFIX/bin +test -e $PREFIX/bin/ghcup || wget -O $PREFIX/bin/ghcup https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/x86_64-linux-ghcup-$GHCUP_VERSION +chmod +x $PREFIX/bin/ghcup + +mkdir -p $PREFIX/lib +cp /usr/lib/libncursesw.so $PREFIX/lib/ + +export GHCUP_INSTALL_BASE_PREFIX=$PREFIX + +# ghcup list shows available and recomended versions + +ghcup install ghc $VERSION +ghcup set ghc $VERSION + +ghcup install cabal 3.6.2.0 +ghcup set cabal 3.6.2.0 + +ghcup install hls 1.7.0.0 +ghcup set hls 1.7.0.0 + +cabal update +cabal install pandoc +cabal install --lib primes rio + +exit