diff --git a/buildserver/config.buildserver.py b/buildserver/config.buildserver.py index 50976dbe..57ae0b2b 100644 --- a/buildserver/config.buildserver.py +++ b/buildserver/config.buildserver.py @@ -2,6 +2,7 @@ sdk_path = "/home/vagrant/android-sdk" ndk_paths = { 'r9b': "/home/vagrant/android-ndk/r9b", 'r10e': "/home/vagrant/android-ndk/r10e", + 'r12b': "/home/vagrant/android-ndk/r12b", } java_paths = { '8': "/usr/lib/jvm/java-8-openjdk-i386", diff --git a/buildserver/provision-android-ndk b/buildserver/provision-android-ndk index 4ce42cc2..4c4f0d54 100644 --- a/buildserver/provision-android-ndk +++ b/buildserver/provision-android-ndk @@ -10,25 +10,20 @@ test -e $NDK_BASE || mkdir -p $NDK_BASE cd $NDK_BASE if [ ! -e $NDK_BASE/r9b ]; then - if [ `uname -m` == 'x86_64' ] ; then - SUFFIX='_64' - else - SUFFIX='' - fi - tar xjf /vagrant/cache/android-ndk-r9b-linux-x86$SUFFIX.tar.bz2 - tar xjf /vagrant/cache/android-ndk-r9b-linux-x86$SUFFIX-legacy-toolchains.tar.bz2 + tar xjf /vagrant/cache/android-ndk-r9b-linux-x86_64.tar.bz2 + tar xjf /vagrant/cache/android-ndk-r9b-linux-x86_64-legacy-toolchains.tar.bz2 mv android-ndk-r9b r9b fi if [ ! -e $NDK_BASE/r10e ]; then - if [ `uname -m` == 'x86_64' ] ; then - SUFFIX='_64' - else - SUFFIX='' - fi - 7zr x /vagrant/cache/android-ndk-r10e-linux-x86$SUFFIX.bin > /dev/null + 7zr x /vagrant/cache/android-ndk-r10e-linux-x86_64.bin > /dev/null mv android-ndk-r10e r10e fi +if [ ! -e $NDK_BASE/r12b ]; then + 7zr x /vagrant/cache/android-ndk-r12b-linux-x86_64.bin > /dev/null + mv android-ndk-r12b r12b +fi + chmod -R a+rX $NDK_BASE/ find $NDK_BASE/ -type f -executable -print0 | xargs -0 chmod a+x diff --git a/docs/fdroid.texi b/docs/fdroid.texi index d1568773..d84c59a5 100644 --- a/docs/fdroid.texi +++ b/docs/fdroid.texi @@ -1125,9 +1125,9 @@ Version of the NDK to use in this build. Defaults to the latest NDK release that included legacy toolchains, so as to not break builds that require toolchains no longer included in current versions of the NDK. -The buildserver supports r9b with its legacy toolchains and the latest release -as of writing this document, r10e. You may add support for more versions by -adding them to 'ndk_paths' in your config file. +The buildserver supports r9b with its legacy toolchains, r10e and the +latest release as of writing this document, r12b. You may add support +for more versions by adding them to 'ndk_paths' in your config file. @item gradle=[,,...] Build with Gradle instead of Ant, specifying what flavours to use. Flavours @@ -1561,9 +1561,7 @@ applications. @section Setting up a build server In addition to the basic setup previously described, you will also need -a Vagrant-compatible Debian Testing base box called 'jessie32' (or jessie64 -for a 64-bit VM, if you want it to be much slower, and require more disk -space). +a Vagrant-compatible Debian Testing base box called 'jessie64'. You can use a different version or distro for the base box, so long as you don't expect any help making it work. One thing to be aware of is that diff --git a/examples/config.py b/examples/config.py index 97628e7e..255b9c0c 100644 --- a/examples/config.py +++ b/examples/config.py @@ -12,7 +12,8 @@ # not installed. # ndk_paths = { # 'r9b': None, -# 'r10e': "$ANDROID_NDK", +# 'r10e': None, +# 'r12b': "$ANDROID_NDK", # } # java_paths = { diff --git a/examples/makebuildserver.config.py b/examples/makebuildserver.config.py index b43777ed..4ee73fbc 100644 --- a/examples/makebuildserver.config.py +++ b/examples/makebuildserver.config.py @@ -3,16 +3,16 @@ # You may want to alter these before running ./makebuildserver # Name of the base box to use -# basebox = "jessie32" +# basebox = "jessie64" # Location where testing32.box can be found, if you don't already have # it. For security reasons, it's recommended that you make your own # in a secure environment using trusted media (see the manual) but # you can use this default if you like... -# baseboxurl = "https://f-droid.org/jessie32.box" +# baseboxurl = "https://f-droid.org/jessie64.box" # # or if you have a cached local copy, you can use that first: -# baseboxurl = ["file:///home/fdroid/fdroidserver/cache/jessie32.box", "https://f-droid.org/jessie32.box"] +# baseboxurl = ["file:///home/fdroid/fdroidserver/cache/jessie64.box", "https://f-droid.org/jessie64.box"] # In the process of setting up the build server, many gigs of files # are downloaded (Android SDK components, gradle, etc). These are @@ -43,9 +43,6 @@ # Debian package proxy server - if you have one # aptproxy = "http://192.168.0.19:8000" -# Set to True if your base box is 64 bit (e.g. testing32.box isn't) -# arch64 = True - # If this is running on an older machine or on a virtualized system, # it can run a lot slower. If the provisioning fails with a warning # about the timeout, extend the timeout here. (default: 600 seconds) diff --git a/fdroidserver/build.py b/fdroidserver/build.py index 70ad1aee..d02947bd 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -460,7 +460,7 @@ def build_local(app, build, vcs, build_dir, output_dir, srclib_dir, extlib_dir, ndk_path = build.ndk_path() if build.ndk or (build.buildjni and build.buildjni != ['no']): if not ndk_path: - logging.critical("Android NDK version '%s' could not be found!" % build.ndk or 'r10e') + logging.critical("Android NDK version '%s' could not be found!" % build.ndk or 'r12b') logging.critical("Configured versions:") for k, v in config['ndk_paths'].items(): if k.endswith("_orig"): diff --git a/fdroidserver/common.py b/fdroidserver/common.py index ce81b385..e337a7f1 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -56,7 +56,8 @@ default_config = { 'sdk_path': "$ANDROID_HOME", 'ndk_paths': { 'r9b': None, - 'r10e': "$ANDROID_NDK", + 'r10e': None, + 'r12b': "$ANDROID_NDK", }, 'build_tools': "24.0.0", 'force_build_tools': False, diff --git a/fdroidserver/init.py b/fdroidserver/init.py index caa77734..f29b2d53 100644 --- a/fdroidserver/init.py +++ b/fdroidserver/init.py @@ -235,7 +235,7 @@ def main(): logging.info(' Android SDK:\t\t\t' + config['sdk_path']) if aapt: logging.info(' Android SDK Build Tools:\t' + os.path.dirname(aapt)) - logging.info(' Android NDK r10e (optional):\t$ANDROID_NDK') + logging.info(' Android NDK r12b (optional):\t$ANDROID_NDK') logging.info(' Keystore for signing key:\t' + keystore) if repo_keyalias is not None: logging.info(' Alias for key in store:\t' + repo_keyalias) diff --git a/fdroidserver/metadata.py b/fdroidserver/metadata.py index 9ba9b1fd..f20b2230 100644 --- a/fdroidserver/metadata.py +++ b/fdroidserver/metadata.py @@ -348,7 +348,7 @@ class Build(): def ndk_path(self): version = self.ndk if not version: - version = 'r10e' # falls back to latest + version = 'r12b' # falls back to latest paths = fdroidserver.common.config['ndk_paths'] if version not in paths: return '' diff --git a/makebuildserver b/makebuildserver index 173ca747..439910cf 100755 --- a/makebuildserver +++ b/makebuildserver @@ -244,6 +244,8 @@ cachefiles = [ '8956e9efeea95f49425ded8bb697013b66e162b064b0f66b5c75628f76e0f532'), ('https://dl.google.com/android/ndk/android-ndk-r9b-linux-x86_64-legacy-toolchains.tar.bz2', 'de93a394f7c8f3436db44568648f87738a8d09801a52f459dcad3fc047e045a1'), + ('https://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip', + 'eafae2d614e5475a3bcfd7c5f201db5b963cc1290ee3e8ae791ff0c66757781e'), ]