begin work on installing TH-using dependencies of webapp, for standalone armel build
Will move common patches out of android/haskell-patches.
This commit is contained in:
parent
f1aa15ef49
commit
13b0bf17d9
3 changed files with 80 additions and 6 deletions
|
@ -35,12 +35,14 @@ patched () {
|
|||
git config user.email dummy@example.com
|
||||
git add .
|
||||
git commit -m "pre-patched state of $pkg"
|
||||
for patch in ../../haskell-patches/${pkg}_*; do
|
||||
echo trying $patch
|
||||
if ! patch -p1 < $patch; then
|
||||
echo "failed to apply $patch"
|
||||
echo "please resolve this, replace the patch with a new version, and exit the subshell to continue"
|
||||
$SHELL
|
||||
for patch in ../../haskell-patches/${pkg}_* ../../../haskell-patches/no-th/${pkg}_*; do
|
||||
if [ -e "$patch" ]; then
|
||||
echo trying $patch
|
||||
if ! patch -p1 < $patch; then
|
||||
echo "failed to apply $patch"
|
||||
echo "please resolve this, replace the patch with a new version, and exit the subshell to continue"
|
||||
$SHELL
|
||||
fi
|
||||
fi
|
||||
done
|
||||
cabalinstall "$@"
|
||||
|
|
72
standalone/linux/install-haskell-packages
Executable file
72
standalone/linux/install-haskell-packages
Executable file
|
@ -0,0 +1,72 @@
|
|||
#!/bin/bash
|
||||
# Bootstraps from an empty cabal (plus apt-get build-dep git-annex)
|
||||
# to all the necessary haskell packages being installed, with the
|
||||
# necessary patches to work on architectures that lack template haskell.
|
||||
#
|
||||
# Note that the newest version of packages is installed.
|
||||
# It attempts to reuse patches for older versions, but
|
||||
# new versions of packages often break cross-compilation by adding TH,
|
||||
# etc
|
||||
#
|
||||
# Future work: Convert to using the method used here:
|
||||
# https://github.com/kaoskorobase/ghc-ios-cabal-scripts/
|
||||
|
||||
set -e
|
||||
|
||||
if [ ! -d ../haskell-patches ]; then
|
||||
cd standalone/linux
|
||||
fi
|
||||
|
||||
cabalopts="$@"
|
||||
|
||||
cabalinstall () {
|
||||
echo cabal install "$@" "$cabalopts"
|
||||
eval cabal install "$@" "$cabalopts"
|
||||
}
|
||||
|
||||
patched () {
|
||||
pkg=$1
|
||||
shift 1
|
||||
cabal unpack $pkg
|
||||
cd $pkg*
|
||||
git init
|
||||
git config user.name dummy
|
||||
git config user.email dummy@example.com
|
||||
git add .
|
||||
git commit -m "pre-patched state of $pkg"
|
||||
for patch in ../../../haskell-patches/no-th/${pkg}_*; do
|
||||
if [ -e "$patch" ]; then
|
||||
echo trying $patch
|
||||
if ! patch -p1 < $patch; then
|
||||
echo "failed to apply $patch"
|
||||
echo "please resolve this, replace the patch with a new version, and exit the subshell to continue"
|
||||
$SHELL
|
||||
fi
|
||||
fi
|
||||
done
|
||||
cabalinstall "$@"
|
||||
rm -rf $pkg*
|
||||
cd ..
|
||||
}
|
||||
|
||||
installgitannexdeps () {
|
||||
pushd ../..
|
||||
echo cabal install --only-dependencies "$@"
|
||||
cabal install --only-dependencies "$@"
|
||||
popd
|
||||
}
|
||||
|
||||
install_pkgs () {
|
||||
rm -rf tmp
|
||||
mkdir tmp
|
||||
cd tmp
|
||||
|
||||
patched DAV
|
||||
|
||||
cd ..
|
||||
|
||||
installgitannexdeps
|
||||
}
|
||||
|
||||
cabal update
|
||||
install_pkgs
|
Loading…
Reference in a new issue