From 82d09560c63ea282222b319437494ad6837be026 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 13 Jul 2016 16:45:05 +0100 Subject: [PATCH 1/2] all: add NDK r12b and set it as default --- buildserver/config.buildserver.py | 1 + buildserver/provision-android-ndk | 10 ++++++++++ docs/fdroid.texi | 6 +++--- examples/config.py | 3 ++- fdroidserver/build.py | 2 +- fdroidserver/common.py | 3 ++- fdroidserver/init.py | 2 +- fdroidserver/metadata.py | 2 +- makebuildserver | 2 ++ 9 files changed, 23 insertions(+), 8 deletions(-) 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..030b0159 100644 --- a/buildserver/provision-android-ndk +++ b/buildserver/provision-android-ndk @@ -30,5 +30,15 @@ if [ ! -e $NDK_BASE/r10e ]; then mv android-ndk-r10e r10e fi +if [ ! -e $NDK_BASE/r12b ]; then + if [ `uname -m` == 'x86_64' ] ; then + SUFFIX='_64' + else + SUFFIX='' + fi + 7zr x /vagrant/cache/android-ndk-r12b-linux-x86$SUFFIX.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 c3588d55..cf744c48 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 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/fdroidserver/build.py b/fdroidserver/build.py index eea35f0a..fbdfbf8d 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.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'), ] From d375318550b47b4fc697a69f9cb108ab8bd44916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 13 Jul 2016 16:47:58 +0100 Subject: [PATCH 2/2] all: remove 32-bit buildserver code We dropped support for 32-bit, so remove all the now unused code and references. --- buildserver/provision-android-ndk | 23 ++++------------------- docs/fdroid.texi | 4 +--- examples/makebuildserver.config.py | 9 +++------ 3 files changed, 8 insertions(+), 28 deletions(-) diff --git a/buildserver/provision-android-ndk b/buildserver/provision-android-ndk index 030b0159..4c4f0d54 100644 --- a/buildserver/provision-android-ndk +++ b/buildserver/provision-android-ndk @@ -10,33 +10,18 @@ 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 - if [ `uname -m` == 'x86_64' ] ; then - SUFFIX='_64' - else - SUFFIX='' - fi - 7zr x /vagrant/cache/android-ndk-r12b-linux-x86$SUFFIX.bin > /dev/null + 7zr x /vagrant/cache/android-ndk-r12b-linux-x86_64.bin > /dev/null mv android-ndk-r12b r12b fi diff --git a/docs/fdroid.texi b/docs/fdroid.texi index cf744c48..38b95abf 100644 --- a/docs/fdroid.texi +++ b/docs/fdroid.texi @@ -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/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)