git-annex/doc/design/assistant/blog/day_182__it_begins.mdwn
2013-02-06 16:45:02 -04:00

50 lines
2 KiB
Markdown

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:
<pre>
/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'
...
</pre>
Disabling DBUS and (temporarily) XMPP got around that.
Result!
<pre>
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*
</pre>
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.