successfully builds (except XMPP)
This commit is contained in:
parent
cc71315c50
commit
00a12afffe
12 changed files with 227 additions and 38 deletions
8
Creds.hs
8
Creds.hs
|
@ -16,10 +16,9 @@ import Crypto
|
||||||
import Types.Remote (RemoteConfig, RemoteConfigKey)
|
import Types.Remote (RemoteConfig, RemoteConfigKey)
|
||||||
import Remote.Helper.Encryptable (remoteCipher, embedCreds)
|
import Remote.Helper.Encryptable (remoteCipher, embedCreds)
|
||||||
#ifndef mingw32_HOST_OS
|
#ifndef mingw32_HOST_OS
|
||||||
import Utility.Env (setEnv)
|
import Utility.Env (setEnv, getEnv)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
import System.Environment
|
|
||||||
import qualified Data.ByteString.Lazy.Char8 as L
|
import qualified Data.ByteString.Lazy.Char8 as L
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Utility.Base64
|
import Utility.Base64
|
||||||
|
@ -101,11 +100,10 @@ getRemoteCredPair c storage = maybe fromcache (return . Just) =<< fromenv
|
||||||
{- Gets a CredPair from the environment. -}
|
{- Gets a CredPair from the environment. -}
|
||||||
getEnvCredPair :: CredPairStorage -> IO (Maybe CredPair)
|
getEnvCredPair :: CredPairStorage -> IO (Maybe CredPair)
|
||||||
getEnvCredPair storage = liftM2 (,)
|
getEnvCredPair storage = liftM2 (,)
|
||||||
<$> get uenv
|
<$> getEnv uenv
|
||||||
<*> get penv
|
<*> getEnv penv
|
||||||
where
|
where
|
||||||
(uenv, penv) = credPairEnvironment storage
|
(uenv, penv) = credPairEnvironment storage
|
||||||
get = catchMaybeIO . getEnv
|
|
||||||
|
|
||||||
{- Stores a CredPair in the environment. -}
|
{- Stores a CredPair in the environment. -}
|
||||||
setEnvCredPair :: CredPair -> CredPairStorage -> IO ()
|
setEnvCredPair :: CredPair -> CredPairStorage -> IO ()
|
||||||
|
|
8
Makefile
8
Makefile
|
@ -160,12 +160,12 @@ osxapp: Build/Standalone Build/OSXMkLibs
|
||||||
rm -f tmp/git-annex.dmg.bz2
|
rm -f tmp/git-annex.dmg.bz2
|
||||||
bzip2 --fast tmp/git-annex.dmg
|
bzip2 --fast tmp/git-annex.dmg
|
||||||
|
|
||||||
ANDROID_FLAGS?=
|
ANDROID_FLAGS?=-f-XMPP
|
||||||
# Cross compile for Android.
|
# Cross compile for Android.
|
||||||
# Uses https://github.com/neurocyte/ghc-android
|
# Uses https://github.com/neurocyte/ghc-android
|
||||||
android: Build/EvilSplicer
|
android: Build/EvilSplicer
|
||||||
echo "Running native build, to get TH splices.."
|
echo "Running native build, to get TH splices.."
|
||||||
if [ ! -e dist/setup/setup ]; then $(CABAL) configure -f"-Production $(ANDROID_FLAGS)" -O0; fi
|
if [ ! -e dist/setup/setup ]; then $(CABAL) configure -f-Production -O0 $(ANDROID_FLAGS); fi
|
||||||
mkdir -p tmp
|
mkdir -p tmp
|
||||||
if ! $(CABAL) build --ghc-options=-ddump-splices 2> tmp/dump-splices; then tail tmp/dump-splices >&2; exit 1; fi
|
if ! $(CABAL) build --ghc-options=-ddump-splices 2> tmp/dump-splices; then tail tmp/dump-splices >&2; exit 1; fi
|
||||||
echo "Setting up Android build tree.."
|
echo "Setting up Android build tree.."
|
||||||
|
@ -183,9 +183,9 @@ android: Build/EvilSplicer
|
||||||
# Cabal cannot cross compile with custom build type, so workaround.
|
# Cabal cannot cross compile with custom build type, so workaround.
|
||||||
sed -i 's/Build-type: Custom/Build-type: Simple/' tmp/androidtree/git-annex.cabal
|
sed -i 's/Build-type: Custom/Build-type: Simple/' tmp/androidtree/git-annex.cabal
|
||||||
if [ ! -e tmp/androidtree/dist/setup/setup ]; then \
|
if [ ! -e tmp/androidtree/dist/setup/setup ]; then \
|
||||||
cd tmp/androidtree && $$HOME/.ghc/android-14/arm-linux-androideabi-4.7/arm-linux-androideabi/bin/cabal configure -f"Android $(ANDROID_FLAGS)"; \
|
cd tmp/androidtree && $$HOME/.ghc/android-14/arm-linux-androideabi-4.7/arm-linux-androideabi/bin/cabal configure -fAndroid $(ANDROID_FLAGS); \
|
||||||
fi
|
fi
|
||||||
cd tmp/androidtree && $(CABAL) build
|
cd tmp/androidtree && $$HOME/.ghc/android-14/arm-linux-androideabi-4.7/arm-linux-androideabi/bin/cabal build
|
||||||
|
|
||||||
adb:
|
adb:
|
||||||
ANDROID_FLAGS="-Production" $(MAKE) android
|
ANDROID_FLAGS="-Production" $(MAKE) android
|
||||||
|
|
|
@ -133,6 +133,10 @@ Executable git-annex
|
||||||
CPP-Options: -DWITH_FSEVENTS
|
CPP-Options: -DWITH_FSEVENTS
|
||||||
else
|
else
|
||||||
if (! os(windows) && ! os(solaris) && ! os(linux))
|
if (! os(windows) && ! os(solaris) && ! os(linux))
|
||||||
|
if flag(Android)
|
||||||
|
Build-Depends: hinotify
|
||||||
|
CPP-Options: -DWITH_INOTIFY
|
||||||
|
else
|
||||||
CPP-Options: -DWITH_KQUEUE
|
CPP-Options: -DWITH_KQUEUE
|
||||||
C-Sources: Utility/libkqueue.c
|
C-Sources: Utility/libkqueue.c
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
- ** DO NOT COMMIT **
|
- ** DO NOT COMMIT **
|
||||||
-}
|
-}
|
||||||
import qualified Data.Monoid
|
import qualified Data.Monoid
|
||||||
|
import qualified Data.Set
|
||||||
import qualified Data.Map
|
import qualified Data.Map
|
||||||
import qualified Data.Map as Data.Map.Base
|
import qualified Data.Map as Data.Map.Base
|
||||||
import qualified Data.Foldable
|
import qualified Data.Foldable
|
||||||
|
@ -16,12 +17,16 @@ import qualified Text.Hamlet
|
||||||
import qualified Text.Julius
|
import qualified Text.Julius
|
||||||
import qualified Text.Css
|
import qualified Text.Css
|
||||||
import qualified "blaze-markup" Text.Blaze.Internal
|
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.TH.Types
|
||||||
import qualified Yesod.Routes.Dispatch
|
import qualified Yesod.Routes.Dispatch
|
||||||
import qualified WaiAppStatic.Storage.Embedded
|
import qualified WaiAppStatic.Storage.Embedded
|
||||||
|
import qualified WaiAppStatic.Storage.Embedded.Runtime
|
||||||
import qualified Data.FileEmbed
|
import qualified Data.FileEmbed
|
||||||
import qualified Data.ByteString.Internal
|
import qualified Data.ByteString.Internal
|
||||||
|
import qualified Data.Text.Encoding
|
||||||
|
import qualified Network.Wai
|
||||||
|
import qualified Yesod.Core.Types
|
||||||
{- End EvilSplicer headers. -}
|
{- End EvilSplicer headers. -}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -1,16 +1,19 @@
|
||||||
From c18ae75852b1340ca502528138bf421659f61a3d Mon Sep 17 00:00:00 2001
|
From 432a8fc47bb11cf8fd0a832e033cfb94a6332dbe Mon Sep 17 00:00:00 2001
|
||||||
From: Joey Hess <joey@kitenet.net>
|
From: foo <foo@bar>
|
||||||
Date: Mon, 15 Apr 2013 12:44:15 -0400
|
Date: Sun, 22 Sep 2013 07:29:39 +0000
|
||||||
Subject: [PATCH] remove TH
|
Subject: [PATCH] deal with TH
|
||||||
|
|
||||||
|
Export modules referenced by it.
|
||||||
|
|
||||||
Should not need these icons in git-annex, so not worth using the Evil
|
Should not need these icons in git-annex, so not worth using the Evil
|
||||||
Splicer.
|
Splicer.
|
||||||
---
|
---
|
||||||
Network/Wai/Application/Static.hs | 4 ----
|
Network/Wai/Application/Static.hs | 4 ----
|
||||||
1 file changed, 4 deletions(-)
|
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
|
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
|
--- a/Network/Wai/Application/Static.hs
|
||||||
+++ b/Network/Wai/Application/Static.hs
|
+++ b/Network/Wai/Application/Static.hs
|
||||||
@@ -33,8 +33,6 @@ import Control.Monad.IO.Class (liftIO)
|
@@ -33,8 +33,6 @@ import Control.Monad.IO.Class (liftIO)
|
||||||
|
@ -31,6 +34,21 @@ index 3195fbb..b48aa01 100644
|
||||||
staticAppPieces ss rawPieces req = liftIO $ do
|
staticAppPieces ss rawPieces req = liftIO $ do
|
||||||
case toPieces rawPieces of
|
case toPieces rawPieces of
|
||||||
Just pieces -> checkPieces ss pieces req >>= response
|
Just pieces -> checkPieces ss pieces req >>= response
|
||||||
--
|
diff --git a/wai-app-static.cabal b/wai-app-static.cabal
|
||||||
1.8.2.rc3
|
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.7.10.4
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -2,18 +2,12 @@
|
||||||
# Bootstraps from an empty cabal to all the necessary haskell packages
|
# Bootstraps from an empty cabal to all the necessary haskell packages
|
||||||
# being installed, with the necessary patches to work on Android.
|
# 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.
|
# Note that the newest version of packages is installed.
|
||||||
# It attempts to reuse patches for older versions, but
|
# It attempts to reuse patches for older versions, but
|
||||||
# new versions of packages often break cross-compilation by adding TH,
|
# new versions of packages often break cross-compilation by adding TH,
|
||||||
# etc
|
# 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
|
set -e
|
||||||
|
|
||||||
|
@ -40,15 +34,11 @@ patched () {
|
||||||
$SHELL
|
$SHELL
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
cabalinstall "$@"
|
cabalinstall --force-reinstalls "$@"
|
||||||
rm -rf $pkg*
|
rm -rf $pkg*
|
||||||
cd ..
|
cd ..
|
||||||
}
|
}
|
||||||
|
|
||||||
unpatched () {
|
|
||||||
cabalinstall "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
installgitannexdeps () {
|
installgitannexdeps () {
|
||||||
echo cabal install git-annex --only-dependencies
|
echo cabal install git-annex --only-dependencies
|
||||||
cabal install git-annex --only-dependencies "$@"
|
cabal install git-annex --only-dependencies "$@"
|
||||||
|
@ -76,24 +66,28 @@ install_pkgs () {
|
||||||
patched socks
|
patched socks
|
||||||
patched entropy
|
patched entropy
|
||||||
patched vector
|
patched vector
|
||||||
patched wai-app-static
|
|
||||||
patched persistent
|
patched persistent
|
||||||
patched profunctors
|
patched profunctors
|
||||||
patched skein
|
patched skein
|
||||||
patched lens
|
patched lens
|
||||||
|
patched DAV
|
||||||
|
patched persistent-template
|
||||||
|
patched file-embed
|
||||||
|
patched wai-app-static
|
||||||
|
patched hamlet
|
||||||
patched shakespeare
|
patched shakespeare
|
||||||
patched shakespeare-css
|
patched shakespeare-css
|
||||||
patched shakespeare-js
|
patched shakespeare-js
|
||||||
patched DAV
|
patched yesod-routes
|
||||||
patched persistent-template
|
|
||||||
patched hamlet
|
|
||||||
patched yesod-core
|
patched yesod-core
|
||||||
patched yesod-persistent
|
patched yesod-persistent
|
||||||
patched yesod-form
|
patched yesod-form
|
||||||
patched yesod-auth
|
patched yesod-auth
|
||||||
patched yesod
|
patched yesod
|
||||||
|
patched async
|
||||||
|
patched gnuidn
|
||||||
|
|
||||||
installgitannexdeps -f-Pairing -f-XMPP
|
installgitannexdeps -fAndroid -f-Pairing
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf tmp
|
rm -rf tmp
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue