Makefile and patches for reproducible build of utilities for android

This commit is contained in:
Joey Hess 2013-02-13 16:23:06 -04:00
parent 63f5284949
commit f3b7e16293
5 changed files with 153 additions and 60 deletions

View file

@ -17,59 +17,3 @@ transfers when not on wifi. This may need to be configurable.
Due to use of the FAT filesystem, which doesn't do symlinks, [[desymlink]]
is probably needed for at least older Android devices that have SD cards.
### Utility porting notes
#### TODO
* Make build system that can generate ports, and tarball, from source
checkouts.
* Remove git commands and busybox builtins that are not used, to reduce
size.
#### git
To build git, you can use the C cross compiler installed by ghc-android.
I did so like this:
PATH=~/.ghc/android-14/arm-linux-androideabi-4.7/bin:$PATH NO_OPENSSL=1 NO_GETTEXT=1 NO_GECOS_IN_PWENT=1 NO_GETPASS=1 NO_NSEC=1 NO_MKDTEMP=1 NO_PTHREADS=1 NO_PERL=1 NO_CURL=1 NO_EXPAT=1 NO_TCLTK=1 NO_ICONV=1 make
This required first making cc a symlink to arm-linux-androideabi-gcc
#### rsync
Copy in config.sub and config.guess from recent autoconf, and build:
PATH=~/.ghc/android-14/arm-linux-androideabi-4.7/bin:$PATH ./configure --host=arm-linux-androideabi --disable-locale --disable-iconv-open --disable-iconv --disable-acl-support --disable-xattr-support
PATH=~/.ghc/android-14/arm-linux-androideabi-4.7/bin:$PATH make
Build failures can be worked around by removing uses of `S_IEXEC` and
getpass.
#### gnupg
PATH=~/.ghc/android-14/arm-linux-androideabi-4.7/bin:$PATH ./configure --host=arm-linux-androideabi --disable-gnupg-iconv --enable-minimal --disable-card-support --disable-agent-support --disable-photo-viewers --disable-keyserver-helpers --disable-nls
PATH=~/.ghc/android-14/arm-linux-androideabi-4.7/bin:$PATH make
Build fails in docs, but see `g10/gpg`
#### dropbear
Use git://github.com/android/platform_external_dropbear
Copy in config.sub and config.guess from recent autoconf.
Edit `cli-auth.c`, and add: `#include "netbsd_getpass.c"`
Edit `cli-main.c` and remove the HOME setting.
Edit options.h and set `DROPBEAR_RANDOM_DEV "/dev/urandom"`
PATH=~/.ghc/android-14/arm-linux-androideabi-4.7/bin:$PATH ./configure --host=arm-linux-androideabi --disable-lastlog --disable-utmp --disable-utmpx --disable-wtmp --disable-wtmpx
PATH=~/.ghc/android-14/arm-linux-androideabi-4.7/bin:$PATH make dbclient
#### busybox
cp configs/android2_defconfig .config
# edit config and set CONFIG_FEATURE_INSTALLER=y
PATH=~/.ghc/android-14/arm-linux-androideabi-4.7/bin:$PATH CROSS_COMPILE=arm-linux-androideabi- make