Revert "Download android_tools from Google Cloud Storage."
This broke tests on Builder: Mojo Android Builder Tests (dbg), failing
the Unit tests step with:
(..)
File "/b/build/slave/mojo/build/src/build/android/pylib/cmd_helper.py", line 114, in GetCmdOutput
(_, output) = GetCmdStatusAndOutput(args, cwd, shell)
File "/b/build/slave/mojo/build/src/build/android/pylib/cmd_helper.py", line 150, in GetCmdStatusAndOutput
shell=shell, cwd=cwd)
File "/b/build/slave/mojo/build/src/build/android/pylib/cmd_helper.py", line 74, in Popen
preexec_fn=lambda: signal.signal(signal.SIGPIPE, signal.SIG_DFL))
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
To reproduce locally, run `mojob.py test --android`.
This reverts commit 969335949da05d293c492a7946a32f75aa27d281.
TBR=viettrungluu@chromium.org,toshik@chromium.org
Review URL: https://codereview.chromium.org/1195473004.
diff --git a/DEPS b/DEPS
index 230c388..5fe7716 100644
--- a/DEPS
+++ b/DEPS
@@ -132,6 +132,9 @@
'src/third_party/robolectric/lib':
Var('chromium_git') + '/chromium/third_party/robolectric.git' + '@' + '6b63c99a8b6967acdb42cbed0adb067c80efc810',
+ 'src/third_party/android_tools':
+ Var('chromium_git') + '/android_tools.git' + '@' + 'a3afc68f31ed9b32954954da95c855ee73820bd1',
+
'src/third_party/appurify-python/src':
Var('chromium_git') + '/external/github.com/appurify/appurify-python.git' + '@' + 'ee7abd5c5ae3106f72b2a0b9d2cb55094688e867',
@@ -169,12 +172,6 @@
'action': ['python', 'src/tools/dart/update.py'],
},
{
- # This downloads android_tool according to tools/android/VERSION_*.
- 'name': 'android_tools',
- 'pattern': '.',
- 'action': ['python', 'src/tools/android/download_android_tools.py'],
- },
- {
# This downloads SDK extras and puts them in the
# third_party/android_tools/sdk/extras directory on the bots. Developers
# need to manually install these packages and accept the ToS.
diff --git a/build/config/android/config.gni b/build/config/android/config.gni
index 7aa7f74..e74e8fe 100644
--- a/build/config/android/config.gni
+++ b/build/config/android/config.gni
@@ -17,7 +17,7 @@
if (!defined(default_android_sdk_root)) {
default_android_sdk_root = "//third_party/android_tools/sdk"
default_android_sdk_version = "22"
- default_android_sdk_build_tools_version = "22.0.1"
+ default_android_sdk_build_tools_version = "22.0.0"
}
if (!defined(google_play_services_library)) {
diff --git a/mojo/tools/roll/android_build.patch b/mojo/tools/roll/android_build.patch
deleted file mode 100644
index f1ca03a..0000000
--- a/mojo/tools/roll/android_build.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/build/config/android/config.gni
-+++ b/build/config/android/config.gni
-@@ -17,7 +17,7 @@ if (is_android) {
- if (!defined(default_android_sdk_root)) {
- default_android_sdk_root = "//third_party/android_tools/sdk"
- default_android_sdk_version = "22"
-- default_android_sdk_build_tools_version = "22.0.0"
-+ default_android_sdk_build_tools_version = "22.0.1"
- }
-
- if (!defined(google_play_services_library)) {
diff --git a/tools/android/README_android_tools.txt b/tools/android/README_android_tools.txt
deleted file mode 100644
index 4efb542..0000000
--- a/tools/android/README_android_tools.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-* How to update Android SDK for Linux/Mac OS X on GCS
-
-1. Run Android SDK Manager and update packages
-
- $ third_party/android_tools/sdk/tools/android update sdk
-
-2. Choose/Update packages
-
- The following packages are currently installed:
-
- - Android SDK Tools 24.3.2
- - Android SDK platform-tools 22 Rev.2
- - Android SDK Build-tools 22.0.1
- - Android 5.1.1 (API 22)
- - SDK Platform 22
- - Extras
- - Android Support Library 22.2
- - Google Play services 25
-
-3. Run upload_android_tools.py -t sdk
-
- $ tools/android/upload_android_tools.py -t sdk
-
-----------------------------------------------------------------------
-* How to update Android NDK for Linux/Mac OS X on GCS
-
-1. Download a new NDK binary (e.g. android-ndk-r10e-linux-x86_64.bin)
-2. cd third_party/android_tools
-
- $ cd third_party/android_tools
-
-3. Remove the old ndk directory
-
- $ rm -rf ndk
-
-4. Run the new NDK binary file
-
- $ ./android-ndk-r10e-linux-x86_64.bin
-
-5. Rename the extracted directory to ndk
-
- $ mv android-ndk-r10e ndk
-
-6. Run upload_android_tools.py -t ndk
-
- $ cd ../..
- $ tools/android/upload_android_tools.py -t ndk
diff --git a/tools/android/VERSION_LINUX_NDK b/tools/android/VERSION_LINUX_NDK
deleted file mode 100644
index f8f122d..0000000
--- a/tools/android/VERSION_LINUX_NDK
+++ /dev/null
@@ -1 +0,0 @@
-7b727f0d4c853c9848847839a317300cb83f4ece
diff --git a/tools/android/VERSION_LINUX_SDK b/tools/android/VERSION_LINUX_SDK
deleted file mode 100644
index d24f5c1..0000000
--- a/tools/android/VERSION_LINUX_SDK
+++ /dev/null
@@ -1 +0,0 @@
-0d320c50b0ed188c7e1182388e2beb623a1d307d
diff --git a/tools/android/VERSION_MACOSX_NDK b/tools/android/VERSION_MACOSX_NDK
deleted file mode 100644
index ef96811..0000000
--- a/tools/android/VERSION_MACOSX_NDK
+++ /dev/null
@@ -1 +0,0 @@
-e21479f1ae8d2fac385c3965672c912d08dff280
diff --git a/tools/android/VERSION_MACOSX_SDK b/tools/android/VERSION_MACOSX_SDK
deleted file mode 100644
index 2441d72..0000000
--- a/tools/android/VERSION_MACOSX_SDK
+++ /dev/null
@@ -1 +0,0 @@
-fa5ea0ca1e0c7c2e40914f3202c7545de4dbca9c
diff --git a/tools/android/download_android_tools.py b/tools/android/download_android_tools.py
deleted file mode 100755
index d28bce3..0000000
--- a/tools/android/download_android_tools.py
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/bin/python
-# Copyright 2015 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""
-Downloads trimmed-down Android Tools from Google Cloud Storage and extracts
-them to INSTALL_DIR, updating INSTALL_DIR/VERSION_* stamp files with current
-version. Does nothing if INSTALL_DIR/VERSION_* are already up to date.
-"""
-
-import os
-import shutil
-import subprocess
-import sys
-import tarfile
-
-# Path constants. (All of these should be absolute paths.)
-THIS_DIR = os.path.abspath(os.path.dirname(__file__))
-MOJO_DIR = os.path.abspath(os.path.join(THIS_DIR, '..', '..'))
-# Should be the same as in upload.py.
-INSTALL_DIR = os.path.join(MOJO_DIR, 'third_party', 'android_tools')
-
-sys.path.insert(0, os.path.join(MOJO_DIR, 'tools'))
-import find_depot_tools
-
-DEPOT_PATH = find_depot_tools.add_depot_tools_to_path()
-GSUTIL_PATH = os.path.join(DEPOT_PATH, 'gsutil.py')
-
-def RunCommand(command):
- """Run command and return success (True) or failure."""
-
- print 'Running %s' % (str(command))
- if subprocess.call(command, shell=False) == 0:
- return True
- print 'Failed.'
- return False
-
-def GetInstalledVersion(version_stamp):
- version_file = os.path.join(INSTALL_DIR, version_stamp)
- if not os.path.exists(version_file):
- return None
- with open(version_file) as f:
- return f.read().strip()
-
-def VersionStampName(tools_name):
- if sys.platform.startswith('linux'):
- return 'VERSION_LINUX_' + tools_name.upper()
- elif sys.platform == 'darwin':
- return 'VERSION_MACOSX_' + tools_name.upper()
- else:
- raise Exception('Unsupported platform: ' + sys.platform)
-
-def UpdateTools(tools_name):
- """Downloads zipped tools from Google Cloud Storage and extracts them,
- stamping current version."""
-
- # Read latest version.
- version_stamp = VersionStampName(tools_name)
- version = ''
- with open(os.path.join(THIS_DIR, version_stamp)) as f:
- version = f.read().strip()
- # Return if installed binaries are up to date.
- if version == GetInstalledVersion(version_stamp):
- return
-
- # Remove the old install directory checked out from git.
- if os.path.exists(os.path.join(INSTALL_DIR, '.git')):
- shutil.rmtree(INSTALL_DIR)
- # Make sure that the install directory exists.
- if not os.path.exists(INSTALL_DIR):
- os.mkdir(INSTALL_DIR)
- # Remove current installation.
- tools_root = os.path.join(INSTALL_DIR, tools_name)
- if os.path.exists(tools_root):
- shutil.rmtree(tools_root)
-
- # Download tools from GCS.
- archive_path = os.path.join(INSTALL_DIR, tools_name + '.tar.gz')
- download_cmd = ['python', GSUTIL_PATH, '-b', 'cp',
- 'gs://mojo/android/tool/%s.tar.gz' % version,
- archive_path]
- if not RunCommand(download_cmd):
- print ('WARNING: Failed to download Android tools.')
- return
-
- print "Extracting Android tools (" + tools_name + ")"
- with tarfile.open(archive_path) as arch:
- arch.extractall(INSTALL_DIR)
- os.remove(archive_path)
- # Write version as the last step.
- with open(os.path.join(INSTALL_DIR, version_stamp), 'w+') as f:
- f.write('%s\n' % version)
-
-def main():
- UpdateTools('sdk')
- UpdateTools('ndk')
-
-if __name__ == '__main__':
- sys.exit(main())
diff --git a/tools/android/upload_android_tools.py b/tools/android/upload_android_tools.py
deleted file mode 100755
index 80d7cae..0000000
--- a/tools/android/upload_android_tools.py
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/usr/bin/python
-# Copyright 2015 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""
-This script takes an Android Tools tree, creates a tar.gz archive and
-uploads it to Google Cloud Storage at gs://mojo/android/tool. It also produces
-the VERSION stamp files with the sha1 code of the uploaded archive.
-
-This script operates in the INSTALL_DIR directory, so it automatically updates
-your current installation of the android tools binaries on success. On failure
-it invalidates your current installation; to fix it, run
-run download_android_tools.py.
-"""
-
-import hashlib
-import os
-import shutil
-import subprocess
-import sys
-import tarfile
-import optparse
-
-# Path constants. (All of these should be absolute paths.)
-THIS_DIR = os.path.abspath(os.path.dirname(__file__))
-MOJO_DIR = os.path.abspath(os.path.join(THIS_DIR, '..', '..'))
-# Should be the same as in download.py.
-INSTALL_DIR = os.path.join(MOJO_DIR, 'third_party', 'android_tools')
-
-sys.path.insert(0, os.path.join(MOJO_DIR, 'tools'))
-import find_depot_tools
-
-DEPOT_PATH = find_depot_tools.add_depot_tools_to_path()
-GSUTIL_PATH = os.path.join(DEPOT_PATH, 'gsutil.py')
-
-def RunCommand(command, env=None):
- """Run command and return success (True) or failure."""
-
- print 'Running %s' % (str(command))
- if subprocess.call(command, shell=False, env=env) == 0:
- return True
- print 'Failed.'
- return False
-
-def VersionStampName(tools_name):
- if sys.platform.startswith('linux'):
- return 'VERSION_LINUX_' + tools_name.upper()
- elif sys.platform == 'darwin':
- return 'VERSION_MACOSX_' + tools_name.upper()
- else:
- raise Exception('Unsupported platform: ' + sys.platform)
-
-def CheckInstallDir(tools_name):
- """Check if the tools directory exists."""
-
- tools_dir = os.path.join(INSTALL_DIR, tools_name)
- if not os.path.exists(tools_dir):
- print tools_dir + ' does not exists'
- sys.exit(1)
- # Remove the existing version stamp.
- version_stamp = VersionStampName(tools_name)
- stamp_file = os.path.join(INSTALL_DIR, version_stamp)
- if os.path.exists(stamp_file):
- os.remove(stamp_file)
-
-def Compress(tools_name):
- """Compresses the tools into tar.gz and generates sha1 code, renames the
- archive to sha1.tar.gz and returns the sha1 code."""
-
- print "Compressing tools, this may take several minutes."
- os.chdir(INSTALL_DIR)
- archive_name = tools_name + '.tar.gz'
- with tarfile.open(os.path.join(archive_name), 'w|gz') as tools:
- tools.add(tools_name)
-
- sha1 = ''
- with open(os.path.join(INSTALL_DIR, archive_name)) as f:
- sha1 = hashlib.sha1(f.read()).hexdigest()
- os.rename(os.path.join(INSTALL_DIR, archive_name),
- os.path.join(INSTALL_DIR, '%s.tar.gz' % sha1))
- return sha1
-
-def Upload(tools_name, sha1):
- """Uploads INSTALL_DIR/sha1.tar.gz to Google Cloud Storage under
- gs://mojo/android/tool and writes sha1 to THIS_DIR/VERSION_*."""
-
- file_name = '%s.tar.gz' % sha1
- upload_cmd = ['python', GSUTIL_PATH, 'cp',
- '-n', # Do not upload if the file already exists.
- os.path.join(INSTALL_DIR, file_name),
- 'gs://mojo/android/tool/%s' % file_name]
-
- print "Uploading ' + tools_name + ' tools to GCS."
- if not RunCommand(upload_cmd):
- print "Failed to upload android tool to GCS."
- sys.exit(1)
- os.remove(os.path.join(INSTALL_DIR, file_name))
- # Write versions as the last step.
- version_stamp = VersionStampName(tools_name)
- stamp_file = os.path.join(THIS_DIR, version_stamp)
- with open(stamp_file, 'w+') as stamp:
- stamp.write('%s\n' % sha1)
-
- stamp_file = os.path.join(INSTALL_DIR, version_stamp)
- with open(stamp_file, 'w+') as stamp:
- stamp.write('%s\n' % sha1)
-
-def main(argv):
- option_parser = optparse.OptionParser()
- option_parser.add_option('-t',
- '--type',
- help='type of the tools: sdk or ndk',
- type='string')
- (options, args) = option_parser.parse_args(argv)
-
- if len(args) > 1:
- print 'Unknown argument: ', args[1:]
- option_parser.print_help()
- sys.exit(1)
-
- if not options.type in {'sdk', 'ndk'}:
- option_parser.print_help()
- sys.exit(1)
-
- CheckInstallDir(options.type)
- sha1 = Compress(options.type)
- Upload(options.type, sha1)
- print "Done."
-
-if __name__ == '__main__':
- sys.exit(main(sys.argv))