diff options
author | 2013-09-22 05:27:15 +0000 | |
---|---|---|
committer | 2013-09-22 01:43:28 -0400 | |
commit | 17617d04cefcce357616144bc7c60d972e5d8ae0 (patch) | |
tree | 3d2aceecfd5daef3c531131570e0257581287e2b /standalone/android/install-haskell-packages | |
parent | f522b2a4e778f07c82d10bf7477e69b35a7191f8 (diff) |
refresh haskell package patches for new android build
Android build is now almost entirely automated, except for the installation
of cross-built libs needed for XMPP.
Haskell packages updated to current newest versions. Am not currently
pinning the versions, as that didn't work out last time I tried it
(must have missed some pins before).
Diffstat (limited to 'standalone/android/install-haskell-packages')
-rwxr-xr-x | standalone/android/install-haskell-packages | 254 |
1 files changed, 81 insertions, 173 deletions
diff --git a/standalone/android/install-haskell-packages b/standalone/android/install-haskell-packages index ef43d87c1..c05ffdd33 100755 --- a/standalone/android/install-haskell-packages +++ b/standalone/android/install-haskell-packages @@ -2,23 +2,21 @@ # Bootstraps from an empty cabal to all the necessary haskell packages # being installed, with the necessary patches to work on Android. # -# Packages are installed at specific versions we have patches for. Newer -# versions often break cross-compilation by adding TH, etc. +# 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 # -# Needs some extra C libraries to be installed inside the cross-compiler -# lib directory: libgnutls libxml2 +# Needs some extra C libraries and packages to be installed +# on the host system: +# libgnutls-dev libxml2-dev libgsasl7-dev pkg-config c2hs # -# When run with "native" as a parameter, the same versions are installed -# in the host system. This is needed in order to use the EvilSplicer to -# expand Template Haskell. +# Also needs some C libraries to be installed inside the cross-compiler +# lib directory (~/.ghc/android-14/arm-linux-androideabi-4.7/arm-linux-androideabi/sysroot/usr/lib/) +# , cross-compiled for Android: libgnutls libxml2 -# lib dir set -e -if [ "$1" ]; then - mode="$1" - shift 1 -fi cabalopts="$@" cabalinstall () { @@ -28,36 +26,32 @@ cabalinstall () { patched () { pkg=$1 - version=$2 - if [ "$native" ]; then - cabalinstall --force-reinstalls $pkg-$version - else - shift 2 - cabal unpack $pkg-$version - cd $pkg-$version - for patch in ../../haskell-patches/${pkg}_*; do - echo applying $patch - patch -p1 < $patch - done - cabalinstall "$@" - cd .. - fi + shift 1 + cabal unpack $pkg + cd $pkg* + git init + 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 + fi + done + cabalinstall "$@" + rm -rf $pkg* + cd .. } unpatched () { cabalinstall "$@" } -onlycross () { - if [ ! "$native" ]; then - eval "$@" - fi -} - -onlynative () { - if [ "$native" ]; then - eval "$@" - fi +installgitannexdeps () { + echo cabal install git-annex --only-dependencies + cabal install git-annex --only-dependencies "$@" } install_pkgs () { @@ -65,145 +59,59 @@ install_pkgs () { mkdir tmp cd tmp - onlycross unpatched bytestring-0.10.3.0 text-0.11.3.1 parsec-3.1.3 - patched network 2.4.1.0 - unpatched cereal-0.3.5.2 - patched socks 0.4.2 - unpatched hslogger-1.2.1 - patched MissingH 1.2.0.0 - patched unix-time 0.1.4 - patched async 2.0.1.4 - patched zlib 0.5.4.0 - patched primitive 0.5.0.1 - patched vector 0.10.0.1 - patched distributive 0.3 - unpatched hashable-1.1.2.5 - patched case-insensitive 0.4.0.1 - unpatched nats-0.1 semigroups-0.9 tagged-0.4.4 comonad-3.0.1.1 comonad-transformers-3.0.1 - patched profunctors 3.3 - patched split 0.2.1.2 - unpatched monads-tf-0.1.0.1 - onlycross patched gnutls 0.1.4 - unpatched attoparsec-0.10.4.0 blaze-builder-0.3.1.1 - patched syb 0.3.7 - patched aeson 0.6.1.0 - patched lifted-base 0.2.0.2 - patched resourcet 0.4.4 - patched monad-control 0.3.1.4 - unpatched conduit-0.5.6 - patched monad-logger 0.2.3.2 - unpatched reflection-1.1.7 bifunctors-3.2 semigroupoids-3.0.2 - unpatched bifunctors-3.2 comonads-fd-3.0.1 groupoids-3.0.1.1 - unpatched profunctor-extras-3.3 - patched lens 3.8.5 - unpatched xml-types-0.3.3 - patched libxml-sax 0.7.3 - patched network-conduit 0.6.2.2 - unpatched asn1-data-0.7.1 asn1-types-0.1.3 attoparsec-conduit-0.5.0.3 - unpatched blaze-builder-conduit-0.5.0.3 blaze-markup-0.5.1.5 blaze-html-0.5.1.3 - patched cipher-aes 0.1.7 - unpatched crypto-api-0.10.2 - unpatched cprng-aes-0.3.4 - unpatched http-types-0.8.0 mime-types-0.1.0.3 - patched certificate 1.3.7 - unpatched system-fileio-0.3.11 tls-1.1.2 - unpatched utf8-string-0.3.7 - unpatched publicsuffixlist-0.1 - unpatched xml-conduit-1.0.3.3 - unpatched zlib-bindings-0.1.1.3 zlib-conduit-0.5.0.3 - patched shakespeare 1.0.3 - patched hamlet 1.1.6.1 - patched xml-hamlet 0.4.0.3 - unpatched certificate-1.3.7 - unpatched dataenc-0.12 hxt-charproperties-9.1.1 \ - hxt-regex-xmlschema-9.1.0 hxt-unicode-9.0.2 hxt-9.3.1.1 - unpatched -f-templateHaskell QuickCheck-2.5.1.1 - unpatched Crypto-4.2.5.1 - patched HTTP 4000.2.8 - patched hS3 0.5.7 - patched file-embed 0.0.4.7 - patched gsasl 0.3.5 \ - --ghc-options=-I$HOME/.ghc/android-14/arm-linux-androideabi-4.7/arm-linux-androideabi/sysroot/usr/include/ \ - --ld-options="-L$HOME/.ghc/android-14/arm-linux-androideabi-4.7/arm-linux-androideabi/sysroot/usr/lib/" - onlycross patched network-protocol-xmpp 0.4.4 - onlynative network-protocol-xmpp - patched shakespeare-css 1.0.2 - patched shakespeare-i18n 1.0.0.2 - patched shakespeare-js 1.1.2 - patched persistent 1.1.5.1 - onlycross unpatched largeword-1.0.4 crypto-api-0.10.2 http-date-0.0.4 \ - cryptohash-0.8.3 vault-0.2.0.4 unix-compat-0.4.1.1 \ - crypto-conduit-0.4.3 wai-1.3.0.3 - patched wai-app-static 1.3.1 - onlycross patched wai-extra 1.3.2.1 - patched yesod-routes 1.1.2 - onlycross unpatched http-conduit-1.8.7.1 - onlycross patched DAV 0.3 - onlynative unpatched DAV - patched yesod-core 1.1.8 - patched yesod-persistent 1.1.0.1 - patched yesod-form 1.2.1.1 - onlycross unpatched warp-1.3.7.2 yaml-0.8.2 - patched yesod-default 1.1.3.2 - patched yesod 1.1.8 - patched yesod-static 1.1.2 - unpatched ifelse-0.85 - unpatched SafeSemaphore-0.9.0 - if [ ! "$native" ]; then cabal install bloomfilter-1.2.6.10 --constraint 'bytestring >= 0.10.3.0'; fi - onlynative unpatched bloomfilter-1.2.6.10 - unpatched edit-distance-0.2.1.2 - unpatched uuid-1.2.12 - unpatched json-0.7 - unpatched SHA-1.6.1 - onlycross unpatched data-endian-0.0.1 - unpatched hinotify-0.3.5 - patched iproute 1.2.11 - unpatched dns 0.3.6 - - cd .. - rm -rf tmp -} + patched network + patched lifted-base + patched zlib + patched process + patched MissingH + patched bloomfilter + patched SafeSemaphore + patched unordered-containers + patched comonad + patched HTTP + patched MonadCatchIO-transformers + patched distributive + patched iproute + patched primitive + patched socks + patched entropy + patched vector + patched wai-app-static + patched persistent + patched profunctors + patched skein + patched lens + patched shakespeare + patched shakespeare-css + patched shakespeare-js + patched DAV + patched persistent-template + patched hamlet + patched yesod-core + patched yesod-persistent + patched yesod-form + patched yesod-auth + patched yesod -native_install () { - echo "Native install" - native=1 - if [ ! -e $HOME/.cabal/packages/hackage.haskell.org ]; then - cabal update - fi - install_pkgs -} + installgitannexdeps -f-Pairing -f-XMPP -cross_path () { - PATH=$HOME/.ghc/android-14/arm-linux-androideabi-4.7/bin:$HOME/.ghc/android-14/arm-linux-androideabi-4.7/arm-linux-androideabi/bin:$PATH + cd .. + rm -rf tmp } -cross_install () { - echo "Cross install" - native= - cross_path - if [ ! -e $HOME/.ghc/android-14/arm-linux-androideabi-4.7/cabal/packages/hackage.haskell.org ]; then - cabal update - fi - install_pkgs -} +echo +echo +echo native build +echo +cabal install cabal-install +cabal update +installgitannexdeps -case "$mode" in - native) - native_install - ;; - cross) - cross_install - ;; - cleancross) - # cross install, first removing all currently installed - # packages except those part of ghc - rm -f $(grep -l $HOME/.ghc/android-14/arm-linux-androideabi-4.7/.cabal/lib/ $HOME/.ghc/android-14/arm-linux-androideabi-4.7/lib/ghc-*/package.conf.d/*.conf) - cross_path - ghc-pkg recache - cross_install - ;; - "") - cross_install - native_install - ;; -esac +echo +echo +echo cross build +echo +PATH=$HOME/.ghc/android-14/arm-linux-androideabi-4.7/bin:$HOME/.ghc/android-14/arm-linux-androideabi-4.7/arm-linux-androideabi/bin:$PATH +cabal install cabal-install +cabal update +install_pkgs |