diff --git a/debian/changelog b/debian/changelog index f2b1d67586..a7d1aa0fbc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,8 @@ git-annex (4.20130522) UNRELEASED; urgency=low * XMPP: Send pings and use them to detect when contact with the server is lost. * hook special remote: Added combined hook program support. + * Android app: Avoid using hard links to app's lib directory, which + is sometimes on a different filesystem than the data directory. -- Joey Hess Tue, 21 May 2013 18:22:46 -0400 diff --git a/standalone/android/Makefile b/standalone/android/Makefile index 74a48c89fb..85457a7190 100644 --- a/standalone/android/Makefile +++ b/standalone/android/Makefile @@ -64,7 +64,7 @@ build: start $(GITTREE)/libexec/git-core/git-web--browse # Most of git is in one multicall binary, but a few important # commands are still shell scripts. Those are put into - # a tarball, along with a list of all the hard links that should be + # a tarball, along with a list of all the links that should be # set up. cd $(GITTREE) && mkdir -p links cd $(GITTREE) && find -samefile bin/git -not -wholename ./bin/git > links/git diff --git a/standalone/android/runshell b/standalone/android/runshell index 0bd193b74d..5e461f0624 100755 --- a/standalone/android/runshell +++ b/standalone/android/runshell @@ -27,7 +27,7 @@ buildtree () { if $cmd test -e "$base/bin/$prog"; then $cmd rm -f "$base/bin/$prog" fi - $cmd ln "$base/lib/lib.$prog.so" "$base/bin/$prog" + $cmd ln -s "$base/lib/lib.$prog.so" "$base/bin/$prog" done $cmd --install $base/bin @@ -41,7 +41,7 @@ buildtree () { if $cmd test -e "$base/$link"; then $cmd rm -f "$base/$link" fi - $cmd ln "$base/bin/$prog" "$base/$link" + $cmd ln -s "$base/bin/$prog" "$base/$link" done $cmd rm -f "$base/links/$prog" done diff --git a/standalone/android/start.c b/standalone/android/start.c index d49a086c71..c67c5da0ce 100644 --- a/standalone/android/start.c +++ b/standalone/android/start.c @@ -47,11 +47,15 @@ main () { } } - /* If this is the first run, set up busybox link. */ + /* If this is the first run, set up busybox symlink, + * which allows busybox to run. */ if (stat("busybox", &st_buf) != 0) { - if (link("lib/lib.busybox.so", "busybox") != 0) { - perror("link busybox"); - exit(1); + if (symlink("lib/lib.busybox.so", "busybox") != 0) { + /* Just in case! */ + if (link("lib/lib.busybox.so", "busybox") != 0) { + perror("link busybox"); + exit(1); + } } }