adding arm64 build, and improved termux installation process

* Added arm64 Linux standalone build. (No autobuilder yet.)
* Improved termux installation process.

Added git-annex-install.sh script to avoid user needing to type as much in
termux. The scope of this script is limited; runshell handles the rest.

Runshell runs termux-fix-shebang on the shell scripts. The problem is
the bundled bin/sh script, deleting that script also works, but then the
others probably use the system Android /bin/sh, which could be old or
broken or not posix or whatever. Using termux sh to run the scripts is
better.

This commit was sponsored by Eric Drechsel on Patreon.
This commit is contained in:
Joey Hess 2018-10-11 13:22:02 -04:00
parent 0691372064
commit 0240775f32
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
31 changed files with 82 additions and 17 deletions

View file

@ -34,7 +34,7 @@ signingKey = "89C809CB"
-- it in the repository.
autobuilds :: [(URLString, FilePath)]
autobuilds =
(map linuxarch ["i386", "amd64", "armel", "i386-ancient"]) ++
(map linuxarch ["i386", "amd64", "armel", "arm64", "i386-ancient"]) ++
(map androidversion ["4.0", "4.3", "5.0"]) ++
[ (autobuild "x86_64-apple-yosemite/git-annex.dmg", "git-annex/OSX/current/10.10_Yosemite/git-annex.dmg")
, (autobuild "windows/git-annex-installer.exe", "git-annex/windows/current/git-annex-installer.exe")

View file

@ -15,8 +15,9 @@ git-annex (6.20180927) UNRELEASED; urgency=medium
* Fix potential crash in exporttree database due to failure to honor
uniqueness constraint.
* Fix crash when exporttree is set to a bad value.
* Linux standalone: Avoid using bundled cp before envionment is fully set
up.
* Linux standalone: Avoid using bundled cp before envionment is fully set up.
* Added arm64 Linux standalone build.
* Improved termux installation process.
-- Joey Hess <id@joeyh.name> Thu, 27 Sep 2018 15:27:20 -0400

View file

@ -12,12 +12,12 @@
<h2>Linux armel</h2>
<iframe width=1024 height=20em scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/armel/build-version">
</iframe>
<h2>Linux arm64</h2>
<iframe width=1024 height=20em scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/arm64/build-version">
</iframe>
<h2>Linux i386-ancient</h2>
<iframe width=1024 height=20em scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/i386-ancient/build-version">
</iframe>
<h2>Linux armel-ancient</h2>
<iframe width=1024 height=20em scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/armel-ancient/build-version">
</iframe>
<h2>Android</h2>
<iframe width=1024 height=20em scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/android/4.3/build-version">
</iframe>
@ -40,12 +40,12 @@
<h2>Linux armel</h2>
<iframe width=1024 scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/armel/">
</iframe>
<h2>Linux arm64</h2>
<iframe width=1024 scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/arm64/">
</iframe>
<h2>Linux i386-ancient</h2>
<iframe width=1024 scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/i386-ancient/">
</iframe>
<h2>Linux armel-ancient</h2>
<iframe width=1024 scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/armel-ancient/">
</iframe>
<h2>Android</h2>
<iframe width=1024 scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/android/">
</iframe>

View file

@ -0,0 +1,48 @@
#!/bin/sh
#
# Installs git-annex in termux on android.
#
# This is only a convenience script to avoid the user needing to type much
# in termux. The standalone tarball automatically adapts itself to the termux
# environment, so this script should stay as mininal as possible.
set -e
case $(uname -m) in
aarch64)
arch=arm64
;;
arm)
arch=armel
;;
x86_64)
arch=amd64
;;
x86_32)
arch=i386
;;
*)
echo "unknown architecture $(uname -m), cannot install" >&2
exit 1
;;
esac
url=https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-"$arch".tar.gz
# uncomment to use latest autobuild
#url=https://downloads.kitenet.net/git-annex/autobuild/"$arch"/git-annex-standalone-"$arch".tar.gz
echo "Installing dependencies with termux pkg manager..."
pkg install git wget tar coreutils proot
echo "Downloading git-annex..."
cd
wget -O- "$url" | tar zx
# This lets runshell finish the installation.
git-annex.linux/git-annex version
echo "git-annex is successfully installed."
echo "Now running termux-setup-storage, to let git-annex access system storage."
termux-setup-storage
echo "Installation complete."

View file

@ -9,6 +9,7 @@ dependencies and is self-contained.
* x86-64: [download tarball](https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz)
* x86-32, for ancient kernels: [download tarball](https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-i386-ancient.tar.gz)
* arm: [download tarball](https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-armel.tar.gz)
* arm64: [download tarball](https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-arm64.tar.gz)
To use, just unpack the tarball, `cd git-annex.linux` and run `./runshell`
-- this sets up an environment where you can use `git annex`, as well

View file

@ -4,13 +4,9 @@ Linux software in a terminal.
git-annex is not currently part of the Termux distribution, but it's easy
to install it. Paste these commands into Termux:
pkg install git wget tar coreutils proot
termux-setup-storage
cd
wget https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-armel.tar.gz
tar zxf git-annex-standalone-armel.tar.gz
rm git-annex-standalone-armel.tar.gz
git-annex.linux/runshell
pkg install wget
wget https://git-annex.branchable.com/install/Android/git-annex-install.sh
sh git-annex-install.sh
Now you can set up a git-annex repository or two, to manage your
Android files. To avoid typing any more, you can start up the
@ -34,7 +30,7 @@ well in this Termux environment.
## Starting on boot
If you install the Termux:Boot app, git-annex will also integrate with it.
Repositories you create with the webapp (or list in
Repositories you create with the webapp (or listed in
~/.config/git-annex/autostart) will have the assistant started in them on
boot, so you don't need to start it manually.
@ -46,3 +42,8 @@ boot, so you don't need to start it manually.
limitations of Android's /sdcard. You can get around this using v6
unlocked repositories, or by putting the git-annex repository on a better
filesystem on the Android device, such as your termux home directory.
## Upgrading
To upgrade to a new git-annex release, just run
`git-annex-install.sh` again.

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2018-10-11T17:26:38Z"
content="""
Bunch of old comments about problems with this that have been fixed were
moved to [[old_comments]].
"""]]

View file

@ -0,0 +1 @@
Some old comments, all obsoleted now. --[[Joey]]

View file

@ -8,3 +8,6 @@ Status: Builds fine on arm64, but needs an autobuilder. Building under
emulation could be done, or a scaleway arm64 server, which would be a
$5/month expense. Or, perhaps someone has an arm64 that could host the
autobuilder? --[[Joey]]
Currently running release builds for arm64 on my phone, but it's not
practical to run an autobuilder there. --[[Joey]]

View file

@ -189,6 +189,8 @@ case "$os" in
# it and use termux's git which works better.
cd "$base"
find . | grep git | grep -v git-annex | grep -v git-remote-tor-annex | grep -v git-remote-gcrypt | xargs rm -rf
# Fix shell scripts to work when run inside proot.
termux-fix-shebang bin/* runshell git-annex git-annex-shell git-annex-webapp
cd "$orig"
# Save the poor Android user the typing.
if ! [ -e "$HOME/.profile" ] || ! grep -q "$base" "$HOME/.profile"; then