From ae331349c64c2307a2ff06f2d3e1baedefc57d75 Mon Sep 17 00:00:00 2001 From: Henrik Kjellander Date: Tue, 28 Apr 2015 16:08:23 +0200 Subject: [PATCH] Always specify current OS when syncing Chromium. Recently, we've hit a rare case of a dependency being present only below 'unix' and not in the 'android' section of the DEPS file in Chromium (src/third_party/junit/src). This exposed a bug in our sync_chromium.py script, which is that when the --deps flag is passed to gclient sync, _only_ that platform is processed. That means our Android builders synced with --deps=android and thus only getting the Android deps, not the 'unix' ones (Linux). That behavior is different from a regular gclient sync, where both the current platform's DEPS and the one specified by appending a target_os variable into .gclient is used. Ensuring that we pass both the current platform and the optionally specified DEPS platform into our sync_chromium.py sync, gives us the same behavior as a regular sync for the special Chromium sync we use. TESTED= First: rm chromium/.last_sync_chromium Then I ran without this patch and with target_os = ["android"] in .gclient. Verified that --deps=android was passed. With this patch, I repeated the above and verified --deps=unix,android was passed. R=phoglund@webrtc.org Review URL: https://webrtc-codereview.appspot.com/52379004 Cr-Commit-Position: refs/heads/master@{#9103} --- sync_chromium.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/sync_chromium.py b/sync_chromium.py index 35d693e54..08b10427d 100755 --- a/sync_chromium.py +++ b/sync_chromium.py @@ -35,6 +35,20 @@ SCRIPT_VERSION = 4 ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) CHROMIUM_NO_HISTORY = 'CHROMIUM_NO_HISTORY' +# Duplicated from depot_tools/gclient.py since we cannot depend on that: +DEPS_OS_CHOICES = { + "win32": "win", + "win": "win", + "cygwin": "win", + "darwin": "mac", + "mac": "mac", + "unix": "unix", + "linux": "unix", + "linux2": "unix", + "linux3": "unix", + "android": "android", +} + def _parse_gclient_dict(): gclient_dict = {} try: @@ -51,7 +65,12 @@ def get_cache_dir(): def get_target_os_list(): - return ','.join(_parse_gclient_dict().get('target_os', [])) + # Always add the currently running OS since the --deps option will override + # that if specified: + target_os_list = [DEPS_OS_CHOICES.get(sys.platform, 'unix')] + # Add any target_os entries from .gclient. + target_os_list += _parse_gclient_dict().get('target_os', []) + return ','.join(target_os_list) def main():