summaryrefslogtreecommitdiff
path: root/standalone/android/install-haskell-packages
blob: 3035e43d08cf2053ee8f6e1b336bab1ee25e1aea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#!/bin/sh
# 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.
# 
# Needs some extra C libraries to be installed inside the cross-compiler
# lib directory: libgnutls libxml2

# lib dir
set -e

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

# Not run every time because we don't care about the latest versions.
if [ ! -e $HOME/.ghc/android-14/arm-linux-androideabi-4.7/cabal/packages/hackage.haskell.org ]; then
	cabal update
fi

rm -rf tmp
mkdir tmp
cd tmp

patched () {
	pkg=$1
	version=$2
	shift 2
	cabal unpack $pkg-$version
	cd $pkg-$version
	for patch in ../../haskell-patches/${pkg}_*; do
		echo applying $patch
		patch -p1 < $patch
	done
	cabal install "$@"
	cd ..
}

unpatched () {
	echo "cabal install $@"
	cabal install "$@"
}

unpatched bytestring-0.10.3.0 text-0.11.2.3 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
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
unpatched certificate-1.3.7 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/"
patched network-protocol-xmpp 0.4.4
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
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
patched wai-extra 1.3.2.1
patched yesod-routes 1.1.2
unpatched http-conduit-1.8.7.1
patched DAV 0.3
patched yesod-core 1.1.8
patched yesod-persistent 1.1.0.1
patched yesod-form 1.2.1.1
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

cd ..
rm -rf tmp