Android app: Avoid using hard links to app's lib directory, which is sometimes on a different filesystem than the data directory.
Assumes symlinks work on all android. If not, this would need to be adapted to try both. This worked for me.
This commit is contained in:
parent
cf96a69490
commit
4713f0c89d
4 changed files with 13 additions and 7 deletions
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -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 <joeyh@debian.org> Tue, 21 May 2013 18:22:46 -0400
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -47,13 +47,17 @@ 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 (symlink("lib/lib.busybox.so", "busybox") != 0) {
|
||||
/* Just in case! */
|
||||
if (link("lib/lib.busybox.so", "busybox") != 0) {
|
||||
perror("link busybox");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
execl("./busybox", "./busybox", "sh", "lib/lib.runshell.so", NULL);
|
||||
perror("error running busybox sh");
|
||||
|
|
Loading…
Reference in a new issue