#!/bin/bash -e #--------------------------------------------------------------------- # explanation #--------------------------------------------------------------------- cat << END > /dev/null 1. The Laclin source tarball "src-haskell-packages.tgz" was created using this script. This script requires both Internet access and a compatible setup at one or more Haskell-related website[s]. It probably won't work in the future. On boxes with reasonable hardware and network speeds, the time needed to run this script is probably on the order of 1.5 to 2.5 hours. In a typical run on August 24, 2022, it was: 97 minutes (1.62 hours) #--------------------------------------------------------------------- 2. Requirements: 2.1. Get a copy of "cabal" 3.4.0.0 [exactly that release] built. Name the executable as follows and make sure that it's accessible by PATH: cabal #--------------------------------------------------------------------- 2.2. Additional dependencies (not a complete list): Laclin "srcpkgpaths" in Laclin actools bash fontconfig freetype2 gawk ghc0865 grep gtkcore lapack libffi libgmp libicu libpng ncurses numactl sdl2 sed tar xorg zlib END #--------------------------------------------------------------------- # main program #--------------------------------------------------------------------- . srcpkgpaths fontconfig freetype2 lapack libgmp libpng ncurses TMPDIR=/tmp/moocow mkdir -p $TMPDIR || exit 1 rm -fr $TMPDIR || exit 1 mkdir $TMPDIR || exit 1 export HOME=$TMPDIR || exit 1 cd $HOME || exit 1 touch STARTED cabal update || exit 1 PATH=$HOME/.cabal/bin:$PATH || exit 1 hash cabal || exit 1 which cabal || exit 1 cabal --version || exit 1 for pkg in \ pandoc \ BigPixel FractalArt Raincat \ ascii-holidays asciidiagram cutter \ darcs dice friendly \ gearbox gitit hackertyper \ hscurses-fish-ex life mancala \ morph nyan only \ pandoc rss2irc simplex \ snowglobe sproxy2 time-compat \ tomlcheck turing-music uniq-deep \ warc wedged do echo ==== `date` Building $pkg cabal --installdir=$HOME/.cabal/bin/ \ --overwrite-policy=always install $pkg || exit 1 done cd .cabal || exit 1 rm -fr bin/* lib/* logs/* share/* store/* || exit 1 sed -e 's@/.*\/.cabal@MOOCOW/.cabal@g' \ -e s@MOOCOW@$PRODTREE/ghc0865/home@g \ -i config cd .. tar zcf src-haskell-packages.tgz .cabal || exit 1 ls -l `pwd`/*.tgz || exit 1 touch FINISHED #--------------------------------------------------------------------- # End of file.