diff --git a/buildserver/Vagrantfile b/buildserver/Vagrantfile index ef1a407a..16bc2305 100644 --- a/buildserver/Vagrantfile +++ b/buildserver/Vagrantfile @@ -84,7 +84,7 @@ Vagrant.configure("2") do |config| args: [configfile['debian_mirror']] config.vm.provision "shell", path: "provision-android-sdk" config.vm.provision "shell", path: "provision-android-ndk", - args: ["/opt/android-sdk/ndk"] + args: ["/opt/android-sdk/ndk", "r21e", "r22b"] config.vm.provision "shell", path: "provision-gradle" end diff --git a/buildserver/provision-android-ndk b/buildserver/provision-android-ndk index 99e7c32e..9672b309 100644 --- a/buildserver/provision-android-ndk +++ b/buildserver/provision-android-ndk @@ -1,16 +1,19 @@ #!/bin/bash # +# $1 is the root dir to install the NDKs into +# $2 and after are the NDK releases to install echo $0 set -e set -x NDK_BASE=$1 +shift test -e $NDK_BASE || mkdir -p $NDK_BASE cd $NDK_BASE -for version in r21e r22b; do +for version in $@; do if [ ! -e ${NDK_BASE}/${version} ]; then unzip /vagrant/cache/android-ndk-${version}-linux-x86_64.zip > /dev/null mv android-ndk-${version} \ diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 4af0595f..63be8332 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -4117,15 +4117,16 @@ def _install_ndk(ndk): zipfp.extract(info.filename, path=ndk_base) os.chmod(os.path.join(ndk_base, info.filename), 0o644) # nosec bandit B103 os.remove(zipball) - extracted = glob.glob(os.path.join(ndk_base, '*'))[0] - version = get_ndk_version(extracted) - ndk_dir = os.path.join(ndk_base, version) - os.rename(extracted, ndk_dir) - if 'ndk_paths' not in config: - config['ndk_paths'] = dict() - config['ndk_paths'][ndk] = ndk_dir - logging.info(_('Set NDK {release} ({version}) up') - .format(release=ndk, version=version)) + for extracted in glob.glob(os.path.join(ndk_base, '*')): + version = get_ndk_version(extracted) + if os.path.basename(extracted) != version: + ndk_dir = os.path.join(ndk_base, version) + os.rename(extracted, ndk_dir) + if 'ndk_paths' not in config: + config['ndk_paths'] = dict() + config['ndk_paths'][ndk] = ndk_dir + logging.info(_('Set NDK {release} ({version}) up') + .format(release=ndk, version=version)) """Derived from https://gitlab.com/fdroid/android-sdk-transparency-log/-/blob/master/checksums.json"""