Skip to content

Commit

Permalink
Merge pull request #73 from abarth/improve_roll_tools
Browse files Browse the repository at this point in the history
Improve roll.py to work with HEAD Chromium
  • Loading branch information
abarth committed Jul 17, 2015
2 parents e69b3d7 + 5b96c69 commit d1789ee
Show file tree
Hide file tree
Showing 3 changed files with 116 additions and 26 deletions.
33 changes: 33 additions & 0 deletions sky/tools/roll/android_build.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
--- a/build/android/pylib/constants/__init__.py
+++ b/build/android/pylib/constants/__init__.py
@@ -184,7 +184,7 @@ class ANDROID_SDK_VERSION_CODES(object):
LOLLIPOP_MR1 = 22

ANDROID_SDK_VERSION = ANDROID_SDK_VERSION_CODES.LOLLIPOP_MR1
-ANDROID_SDK_BUILD_TOOLS_VERSION = '22.0.0'
+ANDROID_SDK_BUILD_TOOLS_VERSION = '22.0.1'
ANDROID_SDK_ROOT = os.path.join(DIR_SOURCE_ROOT,
'third_party/android_tools/sdk')
ANDROID_SDK_TOOLS = os.path.join(ANDROID_SDK_ROOT,
--- a/build/common.gypi
+++ b/build/common.gypi
@@ -1682,7 +1682,7 @@
'android_host_arch%': '<!(uname -m)',
# Android API-level of the SDK used for compilation.
'android_sdk_version%': '22',
- 'android_sdk_build_tools_version%': '22.0.0',
+ 'android_sdk_build_tools_version%': '22.0.1',
'host_os%': "<!(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/')",
},
# Copy conditionally-set variables out one scope.
--- 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)) {
43 changes: 43 additions & 0 deletions sky/tools/roll/patch.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/usr/bin/env python
# Copyright 2014 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.

import os
import subprocess
import utils

def patch_and_filter():
"""Applies the *.patch files in the current dir and some hardcoded filters."""
os.chdir(utils.mojo_root_dir)

utils.filter_file("build/landmines.py",
lambda line: not "gyp_environment" in line)
utils.commit("filter gyp_environment out of build/landmines.py")

patch()


def patch(relative_patches_dir=os.curdir):
"""Applies the *.patch files in |relative_patches_dir|.
Args:
relative_patches_dir: A directory path relative to the current directory.
Defaults to the directory of this file.
Raises:
subprocess.CalledProcessError if the patch couldn't be applied.
"""
patches_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)),
relative_patches_dir)
assert os.path.isdir(patches_dir)

os.chdir(utils.mojo_root_dir)
for p in utils.find(["*.patch"], patches_dir):
print "applying patch %s" % os.path.basename(p)
try:
utils.system(["git", "apply", p])
utils.commit("applied patch %s" % os.path.basename(p))
except subprocess.CalledProcessError:
print "ERROR: patch %s failed to apply" % os.path.basename(p)
raise
66 changes: 40 additions & 26 deletions sky/tools/roll/roll.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import urllib2
from utils import commit
from utils import system
import patch

# //base and its dependencies
_base_deps = [
Expand Down Expand Up @@ -95,33 +96,39 @@
'build/config/ui.gni',
'build/ls.py',
'build/module_args/mojo.gni',
'build/symlink.py',
'tools/android/VERSION_LINUX_NDK',
'tools/android/VERSION_LINUX_SDK',
'tools/android/VERSION_MACOSX_NDK',
'tools/android/VERSION_MACOSX_SDK',
'tools/android/download_android_tools.py',
]


def rev(source_dir, dest_dir, dirs_to_rev):
for d in dirs_to_rev:
print "removing directory %s" % d
try:
system(["git", "rm", "-r", d], cwd=dest_dir)
except subprocess.CalledProcessError:
print "Could not remove %s" % d
print "cloning directory %s" % d
files = system(["git", "ls-files", d], cwd=source_dir)
for f in files.splitlines():
source_path = os.path.join(source_dir, f)
if not os.path.isfile(source_path):
continue
dest_path = os.path.join(dest_dir, f)
system(["mkdir", "-p", os.path.dirname(dest_path)], cwd=source_dir)
system(["cp", source_path, dest_path], cwd=source_dir)
system(["git", "add", d], cwd=dest_dir)

for f in files_not_to_roll:
system(["git", "checkout", "HEAD", f], cwd=dest_dir)

system(["git", "add", "."], cwd=dest_dir)
src_commit = system(["git", "rev-parse", "HEAD"], cwd=source_dir).strip()
commit("Update to mojo %s" % src_commit, cwd=dest_dir)
def rev(source_dir, dest_dir, dirs_to_rev, name):
for d in dirs_to_rev:
print "removing directory %s" % d
try:
system(["git", "rm", "-r", d], cwd=dest_dir)
except subprocess.CalledProcessError:
print "Could not remove %s" % d
print "cloning directory %s" % d
files = system(["git", "ls-files", d], cwd=source_dir)
for f in files.splitlines():
source_path = os.path.join(source_dir, f)
if not os.path.isfile(source_path):
continue
dest_path = os.path.join(dest_dir, f)
system(["mkdir", "-p", os.path.dirname(dest_path)], cwd=source_dir)
system(["cp", source_path, dest_path], cwd=source_dir)
system(["git", "add", d], cwd=dest_dir)

for f in files_not_to_roll:
system(["git", "checkout", "HEAD", f], cwd=dest_dir)

system(["git", "add", "."], cwd=dest_dir)
src_commit = system(["git", "rev-parse", "HEAD"], cwd=source_dir).strip()
commit("Update to %s %s" % (name, src_commit), cwd=dest_dir)


def main():
Expand All @@ -134,10 +141,17 @@ def main():
args = parser.parse_args()

if args.mojo_dir:
rev(args.mojo_dir, args.dest_dir, dirs_from_mojo)
rev(args.mojo_dir, args.dest_dir, dirs_from_mojo, 'mojo')

if args.chromium_dir:
rev(args.chromium_dir, args.dest_dir, dirs_from_chromium)
rev(args.chromium_dir, args.dest_dir, dirs_from_chromium, 'chromium')

try:
patch.patch_and_filter()
except subprocess.CalledProcessError:
print "ERROR: Roll failed due to a patch not applying"
print "Fix the patch to apply, commit the result, and re-run this script"
return 1

return 0

Expand Down

0 comments on commit d1789ee

Please sign in to comment.