I need an Android development environment. I briefly looked into rooting the Asus Transformer so I could put a Debian chroot on it and build git-annex in there, but this quickly devolved to the typical maze of forum posts all containing poor instructions and dead links. Not worth it.
Instead, I'm doing builds on my Sheevaplug, and once I have a static armel binary, will see what I need to do to get it running on Android.
Fixed building with the webapp disabled, was broken by recent improvements. I'll be building without the webapp on arm initially, because ghci/template haskell on arm is still getting sorted out. (I tried ghc 7.6.2 and ghci is available, but doesn't quite work.)
From there, I got a binary built pretty quickly (well, it's arm, so not too
quickly). Then tried to make it static by appending
-optl-static -optl-pthread
to the ghc command line.
This failed with a bunch of errors:
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../arm-linux-gnueabi/libxml2.a(nanohttp.o): In function `xmlNanoHTTPMethodRedir': (.text+0x2128): undefined reference to `inflateInit2_' /usr/lib/gcc/arm-linux-gnueabi/4.6/../../../arm-linux-gnueabi/libxml2.a(xzlib.o): In function `xz_decomp': (.text+0x36c): undefined reference to `lzma_code' ...
Disabling DBUS and (temporarily) XMPP got around that.
Result!
joey@leech:~/git-annex>ldd tmp/git-annex not a dynamic executable joey@leech:~/git-annex>ls -lha tmp/git-annex -rwxr-xr-x 1 joey joey 18M Feb 6 16:23 tmp/git-annex*
Next: Copy binary to Android device, and watch it fail in some interesting way.
Repeat.
Also more bug triage this morning...
Got the pre-commit hook to update direct mode mappings.
Uses git diff-index HEAD
to find out what's changed. The only
tricky part was detecting when HEAD
doesn't exist yet. Git's
plumbing is deficient in this area. Anyway, the mappings get updated
much better now.
Fixed a wacky bug where git annex uninit
behaved badly on a filesystem
that does not support hardlinks.