summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--standalone/android/evilsplicer-headers.hs4
-rw-r--r--standalone/android/haskell-patches/file-embed-0.0.4.7-0001-remove-TH-and-export-one-symbol-used-by-TH.patch193
-rw-r--r--standalone/android/haskell-patches/file-embed-0.0.4.7-remove-TH.patch139
4 files changed, 198 insertions, 140 deletions
diff --git a/Makefile b/Makefile
index ac2958bde..995f21e81 100644
--- a/Makefile
+++ b/Makefile
@@ -174,7 +174,7 @@ android: Build/EvilSplicer
# and not overwritten.)
cp -uR tmp/splices/* tmp/androidtree
# Some additional dependencies needed by the expanded splices.
- sed -i 's/^ Build-Depends: / Build-Depends: yesod-routes, yesod-core, shakespeare-css, shakespeare-js, shakespeare, blaze-markup, /' tmp/androidtree/git-annex.cabal
+ sed -i 's/^ Build-Depends: / Build-Depends: yesod-routes, yesod-core, shakespeare-css, shakespeare-js, shakespeare, blaze-markup, file-embed, wai-app-static, /' tmp/androidtree/git-annex.cabal
# Avoid warnings due to sometimes unused imports added for the splices.
sed -i 's/-Wall/-Wall -fno-warn-unused-imports/' tmp/androidtree/git-annex.cabal
# Cabal cannot cross compile with custom build type, so workaround.
diff --git a/standalone/android/evilsplicer-headers.hs b/standalone/android/evilsplicer-headers.hs
index a0e240d39..2ac168046 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.Map
import qualified Data.Foldable
import qualified Data.Text
import qualified Data.Text.Lazy.Builder
@@ -16,6 +17,9 @@ import qualified Text.Css
import qualified "blaze-markup" Text.Blaze.Internal
import qualified Yesod.Widget
import qualified Yesod.Routes.TH.Types
+import qualified Yesod.Routes.Dispatch
+import qualified WaiAppStatic.Storage.Embedded
+import qualified Data.FileEmbed
{- End EvilSplicer headers. -}
diff --git a/standalone/android/haskell-patches/file-embed-0.0.4.7-0001-remove-TH-and-export-one-symbol-used-by-TH.patch b/standalone/android/haskell-patches/file-embed-0.0.4.7-0001-remove-TH-and-export-one-symbol-used-by-TH.patch
new file mode 100644
index 000000000..ff50d3947
--- /dev/null
+++ b/standalone/android/haskell-patches/file-embed-0.0.4.7-0001-remove-TH-and-export-one-symbol-used-by-TH.patch
@@ -0,0 +1,193 @@
+From 256ff157005f44c97fa5affe2ed9655815b3788e Mon Sep 17 00:00:00 2001
+From: Joey Hess <joey@kitenet.net>
+Date: Mon, 15 Apr 2013 12:38:22 -0400
+Subject: [PATCH] remove TH and export one symbol used by TH
+
+---
+ Data/.FileEmbed.hs.swp | Bin 16384 -> 0 bytes
+ Data/FileEmbed.hs | 80 +++----------------------------------------------
+ 2 files changed, 4 insertions(+), 76 deletions(-)
+ delete mode 100644 Data/.FileEmbed.hs.swp
+
+diff --git a/Data/.FileEmbed.hs.swp b/Data/.FileEmbed.hs.swp
+deleted file mode 100644
+index 1b2ddbfaa71697e9df3869555aee8c97ca7ea0cb..0000000000000000000000000000000000000000
+GIT binary patch
+literal 0
+HcmV?d00001
+
+literal 16384
+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
+
+diff --git a/Data/FileEmbed.hs b/Data/FileEmbed.hs
+index 66f7004..f8c98c9 100644
+--- a/Data/FileEmbed.hs
++++ b/Data/FileEmbed.hs
+@@ -1,31 +1,15 @@
+-{-# LANGUAGE TemplateHaskell #-}
+ {-# LANGUAGE CPP #-}
+ module Data.FileEmbed
+ ( -- * Embed at compile time
+- embedFile
+- , embedDir
+- , getDir
++ getDir
+ -- * Inject into an executable
+-#if MIN_VERSION_template_haskell(2,5,0)
+- , dummySpace
+-#endif
+ , inject
+ , injectFile
++
++ -- used by TH (pointlessly)
++ , stringToBs
+ ) where
+
+-import Language.Haskell.TH.Syntax
+- ( Exp (AppE, ListE, LitE, TupE, SigE)
+-#if MIN_VERSION_template_haskell(2,5,0)
+- , Lit (StringL, StringPrimL, IntegerL)
+-#else
+- , Lit (StringL, IntegerL)
+-#endif
+- , Q
+- , runIO
+-#if MIN_VERSION_template_haskell(2,7,0)
+- , Quasi(qAddDependentFile)
+-#endif
+- )
+ import System.Directory (doesDirectoryExist, doesFileExist,
+ getDirectoryContents)
+ import Control.Monad (filterM)
+@@ -37,51 +21,12 @@ import Data.ByteString.Unsafe (unsafePackAddressLen)
+ import System.IO.Unsafe (unsafePerformIO)
+ import System.FilePath ((</>))
+
+--- | Embed a single file in your source code.
+---
+--- > import qualified Data.ByteString
+--- >
+--- > myFile :: Data.ByteString.ByteString
+--- > myFile = $(embedFile "dirName/fileName")
+-embedFile :: FilePath -> Q Exp
+-embedFile fp =
+-#if MIN_VERSION_template_haskell(2,7,0)
+- qAddDependentFile fp >>
+-#endif
+- (runIO $ B.readFile fp) >>= bsToExp
+-
+--- | Embed a directory recusrively in your source code.
+---
+--- > import qualified Data.ByteString
+--- >
+--- > myDir :: [(FilePath, Data.ByteString.ByteString)]
+--- > myDir = $(embedDir "dirName")
+-embedDir :: FilePath -> Q Exp
+-embedDir fp = do
+- typ <- [t| [(FilePath, B.ByteString)] |]
+- e <- ListE <$> ((runIO $ fileList fp) >>= mapM (pairToExp fp))
+- return $ SigE e typ
+-
+ -- | Get a directory tree in the IO monad.
+ --
+ -- This is the workhorse of 'embedDir'
+ getDir :: FilePath -> IO [(FilePath, B.ByteString)]
+ getDir = fileList
+
+-pairToExp :: FilePath -> (FilePath, B.ByteString) -> Q Exp
+-pairToExp _root (path, bs) = do
+-#if MIN_VERSION_template_haskell(2,7,0)
+- qAddDependentFile $ _root ++ '/' : path
+-#endif
+- exp' <- bsToExp bs
+- return $! TupE [LitE $ StringL path, exp']
+-
+-bsToExp :: B.ByteString -> Q Exp
+-bsToExp bs = do
+- helper <- [| stringToBs |]
+- let chars = B8.unpack bs
+- return $! AppE helper $! LitE $! StringL chars
+-
+ stringToBs :: String -> B.ByteString
+ stringToBs = B8.pack
+
+@@ -123,23 +68,6 @@ padSize i =
+ let s = show i
+ in replicate (sizeLen - length s) '0' ++ s
+
+-#if MIN_VERSION_template_haskell(2,5,0)
+-dummySpace :: Int -> Q Exp
+-dummySpace space = do
+- let size = padSize space
+- let start = magic ++ size
+- let chars = LitE $ StringPrimL $
+-#if MIN_VERSION_template_haskell(2,6,0)
+- map (toEnum . fromEnum) $
+-#endif
+- start ++ replicate space '0'
+- let len = LitE $ IntegerL $ fromIntegral $ length start + space
+- upi <- [|unsafePerformIO|]
+- pack <- [|unsafePackAddressLen|]
+- getInner' <- [|getInner|]
+- return $ getInner' `AppE` (upi `AppE` (pack `AppE` len `AppE` chars))
+-#endif
+-
+ inject :: B.ByteString -- ^ bs to inject
+ -> B.ByteString -- ^ original BS containing dummy
+ -> Maybe B.ByteString -- ^ new BS, or Nothing if there is insufficient dummy space
+--
+1.8.2.rc3
+
diff --git a/standalone/android/haskell-patches/file-embed-0.0.4.7-remove-TH.patch b/standalone/android/haskell-patches/file-embed-0.0.4.7-remove-TH.patch
deleted file mode 100644
index df6016f69..000000000
--- a/standalone/android/haskell-patches/file-embed-0.0.4.7-remove-TH.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-From 2e6f4a373fc05968e6dadcc49185d64a69eeddf4 Mon Sep 17 00:00:00 2001
-From: Joey Hess <joey@kitenet.net>
-Date: Mon, 15 Apr 2013 12:38:22 -0400
-Subject: [PATCH] remove TH
-
----
- Data/.FileEmbed.hs.swp | Bin 4096 -> 0 bytes
- Data/FileEmbed.hs | 77 +------------------------------------------------
- 2 files changed, 1 insertion(+), 76 deletions(-)
- delete mode 100644 Data/.FileEmbed.hs.swp
-
-diff --git a/Data/.FileEmbed.hs.swp b/Data/.FileEmbed.hs.swp
-deleted file mode 100644
-index 7570045ca90875097c2d56ba885d26dcf344bc27..0000000000000000000000000000000000000000
-GIT binary patch
-literal 0
-HcmV?d00001
-
-literal 4096
-zcmYc?2=nw+FxN9?00IF9h8Ufkz&R6G7!1T17_#zHD?!49Kzd#&Athk>I*@_-X_+~x
-zx~aKIsVTY!dIowXdgl5ri6x2pZa{HYkg#4xF;T{iDjE%e(GVau1WHTNbS-!pjExKp
-sl$8_}goQ$h)j6teGz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONV3>pe0P*q}cmMzZ
-
-diff --git a/Data/FileEmbed.hs b/Data/FileEmbed.hs
-index 66f7004..b15e331 100644
---- a/Data/FileEmbed.hs
-+++ b/Data/FileEmbed.hs
-@@ -1,31 +1,12 @@
--{-# LANGUAGE TemplateHaskell #-}
- {-# LANGUAGE CPP #-}
- module Data.FileEmbed
- ( -- * Embed at compile time
-- embedFile
-- , embedDir
-- , getDir
-+ getDir
- -- * Inject into an executable
--#if MIN_VERSION_template_haskell(2,5,0)
-- , dummySpace
--#endif
- , inject
- , injectFile
- ) where
-
--import Language.Haskell.TH.Syntax
-- ( Exp (AppE, ListE, LitE, TupE, SigE)
--#if MIN_VERSION_template_haskell(2,5,0)
-- , Lit (StringL, StringPrimL, IntegerL)
--#else
-- , Lit (StringL, IntegerL)
--#endif
-- , Q
-- , runIO
--#if MIN_VERSION_template_haskell(2,7,0)
-- , Quasi(qAddDependentFile)
--#endif
-- )
- import System.Directory (doesDirectoryExist, doesFileExist,
- getDirectoryContents)
- import Control.Monad (filterM)
-@@ -37,51 +18,12 @@ import Data.ByteString.Unsafe (unsafePackAddressLen)
- import System.IO.Unsafe (unsafePerformIO)
- import System.FilePath ((</>))
-
---- | Embed a single file in your source code.
----
---- > import qualified Data.ByteString
---- >
---- > myFile :: Data.ByteString.ByteString
---- > myFile = $(embedFile "dirName/fileName")
--embedFile :: FilePath -> Q Exp
--embedFile fp =
--#if MIN_VERSION_template_haskell(2,7,0)
-- qAddDependentFile fp >>
--#endif
-- (runIO $ B.readFile fp) >>= bsToExp
--
---- | Embed a directory recusrively in your source code.
----
---- > import qualified Data.ByteString
---- >
---- > myDir :: [(FilePath, Data.ByteString.ByteString)]
---- > myDir = $(embedDir "dirName")
--embedDir :: FilePath -> Q Exp
--embedDir fp = do
-- typ <- [t| [(FilePath, B.ByteString)] |]
-- e <- ListE <$> ((runIO $ fileList fp) >>= mapM (pairToExp fp))
-- return $ SigE e typ
--
- -- | Get a directory tree in the IO monad.
- --
- -- This is the workhorse of 'embedDir'
- getDir :: FilePath -> IO [(FilePath, B.ByteString)]
- getDir = fileList
-
--pairToExp :: FilePath -> (FilePath, B.ByteString) -> Q Exp
--pairToExp _root (path, bs) = do
--#if MIN_VERSION_template_haskell(2,7,0)
-- qAddDependentFile $ _root ++ '/' : path
--#endif
-- exp' <- bsToExp bs
-- return $! TupE [LitE $ StringL path, exp']
--
--bsToExp :: B.ByteString -> Q Exp
--bsToExp bs = do
-- helper <- [| stringToBs |]
-- let chars = B8.unpack bs
-- return $! AppE helper $! LitE $! StringL chars
--
- stringToBs :: String -> B.ByteString
- stringToBs = B8.pack
-
-@@ -123,23 +65,6 @@ padSize i =
- let s = show i
- in replicate (sizeLen - length s) '0' ++ s
-
--#if MIN_VERSION_template_haskell(2,5,0)
--dummySpace :: Int -> Q Exp
--dummySpace space = do
-- let size = padSize space
-- let start = magic ++ size
-- let chars = LitE $ StringPrimL $
--#if MIN_VERSION_template_haskell(2,6,0)
-- map (toEnum . fromEnum) $
--#endif
-- start ++ replicate space '0'
-- let len = LitE $ IntegerL $ fromIntegral $ length start + space
-- upi <- [|unsafePerformIO|]
-- pack <- [|unsafePackAddressLen|]
-- getInner' <- [|getInner|]
-- return $ getInner' `AppE` (upi `AppE` (pack `AppE` len `AppE` chars))
--#endif
--
- inject :: B.ByteString -- ^ bs to inject
- -> B.ByteString -- ^ original BS containing dummy
- -> Maybe B.ByteString -- ^ new BS, or Nothing if there is insufficient dummy space
---
-1.8.2.rc3
-