summaryrefslogtreecommitdiff
path: root/standalone
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-09-22 19:13:31 +0100
committerGravatar Joey Hess <joey@kitenet.net>2013-09-22 19:13:31 +0100
commitb81e86a6ed7db7e8957f664631a8cdb4126e02dc (patch)
tree13b7b4ac26c8b8d05852ec48d158d149478b2781 /standalone
parentf159e8bccd823a9125f3134fba5a5dc3c7dd7df7 (diff)
successfully builds (except XMPP)
Diffstat (limited to 'standalone')
-rw-r--r--standalone/android/evilsplicer-headers.hs7
-rw-r--r--standalone/android/haskell-patches/async_fix-build-with-new-ghc.patch25
-rw-r--r--standalone/android/haskell-patches/file-embed_export-TH-symbols.patch25
-rw-r--r--standalone/android/haskell-patches/gnuidn_fix-build-with-new-base.patch50
-rw-r--r--standalone/android/haskell-patches/wai-app-static_deal-with-TH.patch (renamed from standalone/android/haskell-patches/wai-app-static_1.3.1-remove-TH.patch)34
-rw-r--r--standalone/android/haskell-patches/yesod-routes_export-module-referenced-by-TH-splices.patch29
-rw-r--r--standalone/android/haskell-patches/yesod_001_hacked-up-for-Android.patch (renamed from standalone/android/haskell-patches/yesod_hacked-up-for-Android.patch)0
-rw-r--r--standalone/android/haskell-patches/yesod_002_hack-around-missing-symbols.patch41
-rwxr-xr-xstandalone/android/install-haskell-packages30
9 files changed, 214 insertions, 27 deletions
diff --git a/standalone/android/evilsplicer-headers.hs b/standalone/android/evilsplicer-headers.hs
index 35a20a001..ee4d6f1a3 100644
--- a/standalone/android/evilsplicer-headers.hs
+++ b/standalone/android/evilsplicer-headers.hs
@@ -6,6 +6,7 @@
- ** DO NOT COMMIT **
-}
import qualified Data.Monoid
+import qualified Data.Set
import qualified Data.Map
import qualified Data.Map as Data.Map.Base
import qualified Data.Foldable
@@ -16,12 +17,16 @@ import qualified Text.Hamlet
import qualified Text.Julius
import qualified Text.Css
import qualified "blaze-markup" Text.Blaze.Internal
-import qualified Yesod.Widget
+import qualified Yesod.Core.Widget
import qualified Yesod.Routes.TH.Types
import qualified Yesod.Routes.Dispatch
import qualified WaiAppStatic.Storage.Embedded
+import qualified WaiAppStatic.Storage.Embedded.Runtime
import qualified Data.FileEmbed
import qualified Data.ByteString.Internal
+import qualified Data.Text.Encoding
+import qualified Network.Wai
+import qualified Yesod.Core.Types
{- End EvilSplicer headers. -}
diff --git a/standalone/android/haskell-patches/async_fix-build-with-new-ghc.patch b/standalone/android/haskell-patches/async_fix-build-with-new-ghc.patch
new file mode 100644
index 000000000..727720ad4
--- /dev/null
+++ b/standalone/android/haskell-patches/async_fix-build-with-new-ghc.patch
@@ -0,0 +1,25 @@
+From 0035f0366e426af213244b2eb25ffb63cb9e74d0 Mon Sep 17 00:00:00 2001
+From: foo <foo@bar>
+Date: Sun, 22 Sep 2013 06:14:50 +0000
+Subject: [PATCH] fix build with new ghc
+
+---
+ async.cabal | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/async.cabal b/async.cabal
+index 8e47d9d..98e6312 100644
+--- a/async.cabal
++++ b/async.cabal
+@@ -70,7 +70,7 @@ source-repository head
+
+ library
+ exposed-modules: Control.Concurrent.Async
+- build-depends: base >= 4.3 && < 4.7, stm >= 2.2 && < 2.5
++ build-depends: base >= 4.3 && < 4.9, stm >= 2.2 && < 2.5
+
+ test-suite test-async
+ type: exitcode-stdio-1.0
+--
+1.7.10.4
+
diff --git a/standalone/android/haskell-patches/file-embed_export-TH-symbols.patch b/standalone/android/haskell-patches/file-embed_export-TH-symbols.patch
new file mode 100644
index 000000000..865cbe3cc
--- /dev/null
+++ b/standalone/android/haskell-patches/file-embed_export-TH-symbols.patch
@@ -0,0 +1,25 @@
+From fdbd29ce6e8ff11f721f9e74cac1f4ca14e6773d Mon Sep 17 00:00:00 2001
+From: foo <foo@bar>
+Date: Sun, 22 Sep 2013 07:06:33 +0000
+Subject: [PATCH] export TH symbols
+
+---
+ Data/FileEmbed.hs | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/Data/FileEmbed.hs b/Data/FileEmbed.hs
+index c17f082..6654f60 100644
+--- a/Data/FileEmbed.hs
++++ b/Data/FileEmbed.hs
+@@ -26,6 +26,8 @@ module Data.FileEmbed
+ #endif
+ , inject
+ , injectFile
++ -- used by TH (pointlessly)
++ , stringToBs
+ ) where
+
+ import Language.Haskell.TH.Syntax
+--
+1.7.10.4
+
diff --git a/standalone/android/haskell-patches/gnuidn_fix-build-with-new-base.patch b/standalone/android/haskell-patches/gnuidn_fix-build-with-new-base.patch
new file mode 100644
index 000000000..ff9d8f245
--- /dev/null
+++ b/standalone/android/haskell-patches/gnuidn_fix-build-with-new-base.patch
@@ -0,0 +1,50 @@
+From afdec6c9e66211a0ac8419fffe191b059d1fd00c Mon Sep 17 00:00:00 2001
+From: foo <foo@bar>
+Date: Sun, 22 Sep 2013 17:24:33 +0000
+Subject: [PATCH] fix build with new base
+
+---
+ Data/Text/IDN/IDNA.chs | 1 +
+ Data/Text/IDN/Punycode.chs | 1 +
+ Data/Text/IDN/StringPrep.chs | 1 +
+ 3 files changed, 3 insertions(+)
+
+diff --git a/Data/Text/IDN/IDNA.chs b/Data/Text/IDN/IDNA.chs
+index ed29ee4..dbb4ba5 100644
+--- a/Data/Text/IDN/IDNA.chs
++++ b/Data/Text/IDN/IDNA.chs
+@@ -31,6 +31,7 @@ import Foreign
+ import Foreign.C
+
+ import Data.Text.IDN.Internal
++import System.IO.Unsafe
+
+ #include <idna.h>
+ #include <idn-free.h>
+diff --git a/Data/Text/IDN/Punycode.chs b/Data/Text/IDN/Punycode.chs
+index 24b5fa6..4e62555 100644
+--- a/Data/Text/IDN/Punycode.chs
++++ b/Data/Text/IDN/Punycode.chs
+@@ -32,6 +32,7 @@ import Data.List (unfoldr)
+ import qualified Data.ByteString as B
+ import qualified Data.Text as T
+
++import System.IO.Unsafe
+ import Foreign
+ import Foreign.C
+
+diff --git a/Data/Text/IDN/StringPrep.chs b/Data/Text/IDN/StringPrep.chs
+index 752dc9e..5e9fd84 100644
+--- a/Data/Text/IDN/StringPrep.chs
++++ b/Data/Text/IDN/StringPrep.chs
+@@ -39,6 +39,7 @@ import qualified Data.ByteString as B
+ import qualified Data.Text as T
+ import qualified Data.Text.Encoding as TE
+
++import System.IO.Unsafe
+ import Foreign
+ import Foreign.C
+
+--
+1.7.10.4
+
diff --git a/standalone/android/haskell-patches/wai-app-static_1.3.1-remove-TH.patch b/standalone/android/haskell-patches/wai-app-static_deal-with-TH.patch
index 30bf5256a..d9860f922 100644
--- a/standalone/android/haskell-patches/wai-app-static_1.3.1-remove-TH.patch
+++ b/standalone/android/haskell-patches/wai-app-static_deal-with-TH.patch
@@ -1,16 +1,19 @@
-From c18ae75852b1340ca502528138bf421659f61a3d Mon Sep 17 00:00:00 2001
-From: Joey Hess <joey@kitenet.net>
-Date: Mon, 15 Apr 2013 12:44:15 -0400
-Subject: [PATCH] remove TH
+From 432a8fc47bb11cf8fd0a832e033cfb94a6332dbe Mon Sep 17 00:00:00 2001
+From: foo <foo@bar>
+Date: Sun, 22 Sep 2013 07:29:39 +0000
+Subject: [PATCH] deal with TH
+
+Export modules referenced by it.
Should not need these icons in git-annex, so not worth using the Evil
Splicer.
---
- Network/Wai/Application/Static.hs | 4 ----
- 1 file changed, 4 deletions(-)
+ Network/Wai/Application/Static.hs | 4 ----
+ wai-app-static.cabal | 2 +-
+ 2 files changed, 1 insertion(+), 5 deletions(-)
diff --git a/Network/Wai/Application/Static.hs b/Network/Wai/Application/Static.hs
-index 3195fbb..b48aa01 100644
+index 3f07391..75709b7 100644
--- a/Network/Wai/Application/Static.hs
+++ b/Network/Wai/Application/Static.hs
@@ -33,8 +33,6 @@ import Control.Monad.IO.Class (liftIO)
@@ -31,6 +34,21 @@ index 3195fbb..b48aa01 100644
staticAppPieces ss rawPieces req = liftIO $ do
case toPieces rawPieces of
Just pieces -> checkPieces ss pieces req >>= response
+diff --git a/wai-app-static.cabal b/wai-app-static.cabal
+index ec22813..e944caa 100644
+--- a/wai-app-static.cabal
++++ b/wai-app-static.cabal
+@@ -56,9 +56,9 @@ library
+ WaiAppStatic.Storage.Embedded
+ WaiAppStatic.Listing
+ WaiAppStatic.Types
+- other-modules: Util
+ WaiAppStatic.Storage.Embedded.Runtime
+ WaiAppStatic.Storage.Embedded.TH
++ other-modules: Util
+ ghc-options: -Wall
+ extensions: CPP
+
--
-1.8.2.rc3
+1.7.10.4
diff --git a/standalone/android/haskell-patches/yesod-routes_export-module-referenced-by-TH-splices.patch b/standalone/android/haskell-patches/yesod-routes_export-module-referenced-by-TH-splices.patch
new file mode 100644
index 000000000..e20e3c7f1
--- /dev/null
+++ b/standalone/android/haskell-patches/yesod-routes_export-module-referenced-by-TH-splices.patch
@@ -0,0 +1,29 @@
+From f6bfe8e01d8fe6d129ad3819070aa17934094a0a Mon Sep 17 00:00:00 2001
+From: foo <foo@bar>
+Date: Sun, 22 Sep 2013 06:24:09 +0000
+Subject: [PATCH] export module referenced by TH splices
+
+---
+ yesod-routes.cabal | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/yesod-routes.cabal b/yesod-routes.cabal
+index 0b245f2..a97582a 100644
+--- a/yesod-routes.cabal
++++ b/yesod-routes.cabal
+@@ -27,11 +27,11 @@ library
+ Yesod.Routes.Class
+ Yesod.Routes.Parse
+ Yesod.Routes.Overlap
++ Yesod.Routes.TH.Types
+ other-modules: Yesod.Routes.TH.Dispatch
+ Yesod.Routes.TH.RenderRoute
+ Yesod.Routes.TH.ParseRoute
+ Yesod.Routes.TH.RouteAttrs
+- Yesod.Routes.TH.Types
+ ghc-options: -Wall
+
+ test-suite runtests
+--
+1.7.10.4
+
diff --git a/standalone/android/haskell-patches/yesod_hacked-up-for-Android.patch b/standalone/android/haskell-patches/yesod_001_hacked-up-for-Android.patch
index 23ba50d33..23ba50d33 100644
--- a/standalone/android/haskell-patches/yesod_hacked-up-for-Android.patch
+++ b/standalone/android/haskell-patches/yesod_001_hacked-up-for-Android.patch
diff --git a/standalone/android/haskell-patches/yesod_002_hack-around-missing-symbols.patch b/standalone/android/haskell-patches/yesod_002_hack-around-missing-symbols.patch
new file mode 100644
index 000000000..eaad739e5
--- /dev/null
+++ b/standalone/android/haskell-patches/yesod_002_hack-around-missing-symbols.patch
@@ -0,0 +1,41 @@
+From 7e815b11f242d6836f9615439e32f9937bf2feaf Mon Sep 17 00:00:00 2001
+From: foo <foo@bar>
+Date: Sun, 22 Sep 2013 13:59:34 +0000
+Subject: [PATCH] hack around missing symbols
+
+---
+ Yesod.hs | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/Yesod.hs b/Yesod.hs
+index 3050bf5..fbe309c 100644
+--- a/Yesod.hs
++++ b/Yesod.hs
+@@ -5,7 +5,24 @@ module Yesod
+ ( -- * Re-exports from yesod-core
+ module Yesod.Core
+ , module Yesod.Form
++ , insertBy
++ , replace
++ , deleteBy
++ , delete
++ , insert
++ , Key
+ ) where
+
+ import Yesod.Core
+ import Yesod.Form
++
++-- These symbols are usually imported from persistent,
++-- But it is not built on Android. Still export them
++-- just so that hiding them will work.
++data Key = DummyKey
++insertBy = undefined
++replace = undefined
++deleteBy = undefined
++delete = undefined
++insert = undefined
++
+--
+1.7.10.4
+
diff --git a/standalone/android/install-haskell-packages b/standalone/android/install-haskell-packages
index 097afc94d..bd56120a6 100755
--- a/standalone/android/install-haskell-packages
+++ b/standalone/android/install-haskell-packages
@@ -2,18 +2,12 @@
# Bootstraps from an empty cabal to all the necessary haskell packages
# being installed, with the necessary patches to work on Android.
#
+# You should install ghc-android first.
+#
# 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 and packages to be installed
-# on the host system:
-# libgnutls-dev libxml2-dev libgsasl7-dev pkg-config c2hs
-#
-# 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
set -e
@@ -40,15 +34,11 @@ patched () {
$SHELL
fi
done
- cabalinstall "$@"
+ cabalinstall --force-reinstalls "$@"
rm -rf $pkg*
cd ..
}
-unpatched () {
- cabalinstall "$@"
-}
-
installgitannexdeps () {
echo cabal install git-annex --only-dependencies
cabal install git-annex --only-dependencies "$@"
@@ -76,24 +66,28 @@ install_pkgs () {
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 file-embed
+ patched wai-app-static
patched hamlet
+ patched shakespeare
+ patched shakespeare-css
+ patched shakespeare-js
+ patched yesod-routes
patched yesod-core
patched yesod-persistent
patched yesod-form
patched yesod-auth
patched yesod
+ patched async
+ patched gnuidn
- installgitannexdeps -f-Pairing -f-XMPP
+ installgitannexdeps -fAndroid -f-Pairing
cd ..
rm -rf tmp